0

我的脚本有问题。我已经正确设置了所有内容,但是地理编码不起作用,当我以我创建的表格输入城市名称然后单击“地理编码器”时,什么也没有发生。这是我的代码:

多变的 :

 var geocoder;
 var map;
 var markers = new Array();
 var i = 0;

地理编码脚本:

<!-- GEOCODER --> 
  function codeAddress() {
var address = document.getElementById("address").value;
geocoder.geocode( { 'address': address}, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
            document.getElementById('lat').value = results[0].geometry.location.lat();
            document.getElementById('lng').value = results[0].geometry.location.lng();
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
        map: map, 
        position: results[0].geometry.location
    });
            markers.push(marker);
            if(markers.length > 1)
                markers[(i-1)].setMap(null);
            i++;
  } else {
    alert("Le geocodage n\'a pu etre effectue pour la raison suivante: " + status);
  }
  <!-- GEOCODER --> 

形式:

  <div>
Adresse : <input id="address" type="text" value="paris">   
&nbsp; <input type="button" value="Geocoder" onsubmit="codeAddress()">
</div>

完整代码(仅 html):http: //jsfiddle.net/hCmQb/

4

1 回答 1

2

地理编码器未运行的原因是:

    <input type="button" value="Geocoder" onsubmit="codeAddress()">

你不想要“onsubmit”你想要“onclick”:

    <input type="button" value="Geocoder" onclick="codeAddress()">

您遇到的另一个问题是您的“地图”变量是初始化函数的本地变量。改变:

    var map = new google.maps.Map(document.getElementById('map_canvas'),
                                  mapOptions);

至:

map = new google.maps.Map(document.getElementById('map_canvas'),
                                 mapOptions);

工作示例

于 2013-03-03T16:55:29.627 回答