地理编码谷歌地图不起作用

时间:2013-03-03 15:45:46

标签: javascript html google-maps-api-3

我的脚本有问题。 我已正确设置所有内容但地理编码不起作用,当我以我创建的形式输入城市名称时,我点击“地理编码器”它没有任何反应。 这是我的代码:

变量:

 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/

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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

为:

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

working example