该程序是google map api 的,代码如下:
<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<!--不添加xmlns:v="urn:scheams-microsoft-com:vml"可能导致IE无法使用GPolyline.-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312"/>
<title>Google Map JavaScript API Example</title>
<!--导入Googlemapapi库-->
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyBzjMedAUUuMRpgU3o5s39gB0NNN4OfHCw"
type="text/JavaScript">
</script>
<script type="text/JavaScript">
//<![CDTAT[
var map; //全局Gmap
var geocoder;
var centerPoint;
var er = new Array(); function load(){
if(GBrowserIsCompatible()){
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(34.26,108.94156),4);

geocoder = new GClientGeocoder();
}
}

function showAddress(level){
map.clearOverlays();
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;
setMarker(start);
setMarker(end);
for(var i=0; i<er.length; i++){
map.addOverlay(er[i]);
}
getCenter();
map.setCenter(centerPoint, level);
er.splice(0,2);
}

function setMarker(address){
         if(geocoder){
     geocoder.getLatLng(
             address,
             function(point) {
             if (!point) {
              alert("不能解析: " + address);
             } else {
              er.push(new GMarker(point));
             }
       }
     );
}
}

function getCenter(){
var lat = (er[0].getLatLng().lat() + er[1].getLatLng().lat())/2;
var lng = (er[0].getLatLng().lng() + er[1].getLatLng().lng())/2;
centerPoint = new GLatLng(lat, lng);
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<center>
<h1>距离查询系统</h1>
起始地:<input type="text" id="start" name="start" />————
目的地:<input type="text" id="end" name="end" />
<input type="submit" value="查询" name="submit" onClick="showAddress(5)"/>
<div id="map" style="width:1320px; height:610px" /></div>
</center>
</body>
</html>
问题是第一次输入之后,点查询之后要再点一次一次才会执行,chrome debug显示第一次点击不执行的原因是
function setMarker(address){
         if(geocoder){
     geocoder.getLatLng(
             address,
             function(point) {
             if (!point) {
              alert("不能解析: " + address);
             } else {
              er.push(new GMarker(point));
             }
       }
     );
}
}
参数都能传进去,不知道为什么就不能解析,第二次就能解析,请高手帮忙看下。