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 に答える