1

2 つのマーカーを含むマップを取得したいと考えています。LatLng を使用する場合 (JS コード / WORKS JUST FINE / を参照) 問題ありません... しかし、すぐにジオコーディングを使用しようとすると (JS コード / YU NOT WORKING? / を参照)、機能しません。これはすべて間違っていると思います:

var addresse3=geocoder.geocode({'address': 'Winkelriedstrasse 47, 6004 Luzern'})[0].geometry.location;

誰でも私を助けることができますか?よろしくお願いします。

var myCenter=new google.maps.LatLng(47.050944,8.309441);
var geocoder;
var map;
function initialize(){  
    var mapProp = {
      center            :myCenter         
    };
    var geocoder = new google.maps.Geocoder();
    var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
    /*WORKS JUST FINE*/
    var marker1=new google.maps.Marker({
        position: new google.maps.LatLng(47.050944,8.309441)
    });
    marker1.setMap(map);
    var infowindow1 = new google.maps.InfoWindow({
        content:"marker1"
    });
    google.maps.event.addListener(marker1, 'click', function() {
        infowindow1.open(map,marker1);
    });  
    /*Y U NOT WORKING?*/
    var adresse3=geocoder.geocode({'address': 'Winkelriedstrasse 47, 6004 Luzern'})[0].geometry.location;
    var marker3=new google.maps.Marker({
        position: adresse3
    });
    marker3.setMap(map);
    var infowindow3 = new google.maps.InfoWindow({
        content:"marker3"
    });
    google.maps.event.addListener(marker3, 'click', function() {
        infowindow3.open(map,marker3);
    }); 
}
google.maps.event.addDomListener(window, 'load', initialize);
4

3 に答える 3

1

あなたの問題は、 geocoder.geocode が非同期であるため、コールバック関数を渡す必要があることです。

Google マップのドキュメントからの適応:

geocoder.geocode({'address': 'Winkelriedstrasse 47, 6004 Luzern'}, function(results, status)     {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
    });
  } else {
    alert("Geocode was not successful for the following reason: " + status);
  }
});
于 2013-04-12T14:56:00.900 に答える
0

ニコラス、あなたは行にエラーがあります:

geocoder.geocode('address': 'Winkelriedstrasse 47, 6004 Luzern', function(results, status) 

このコードを使用してください:

geocoder.geocode({'address': 'Winkelriedstrasse 47, 6004 Luzern'}, function(results, status) 
于 2013-11-01T08:22:20.593 に答える