0

API を使用して場所の場所の詳細を表示しています。ただし、地図も表示できません。Javaスクリプトをデバッグしようとすると、参照エラーが発生します

 service.getDetails() 

マーカーのクリックイベントで情報ウィンドウに場所の詳細を表示したい。誰でもこれで私を助けることができます.Hereは私のコードです

function initialize() {
var map = new google.maps.Map(document.getElementById('map-canvas'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng(-33.8665433, 151.1956316),
zoom: 15
});

var request = {
reference: 'CnRkAAAAGnBVNFDeQoOQHzgdOpOqJNV7K9-c5IQrWFUYD9TNhUmz5-  aHhfqyKH0zmAcUlkqVCrpaKcV8ZjGQKzB6GXxtzUYcP-muHafGsmW-1CwjTPBCmK43AZpAwW0FRtQDQADj3H2bzwwHVIXlQAiccm7r4xIQmjt_Oqm2FejWpBxLWs3L_RoUbharABi5FMnKnzmRL2TGju6UA4k'
};

var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);

service.getDetails(request, function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location
  });
  google.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(place.name);
    infowindow.open(map, this);
  });
}
 });
  }
4

2 に答える 2

0

リクエストでこのライブラリを明示的にロードする必要があります。

https://maps.googleapis.com/maps/api/js?libraries=places&key=yourApiKey

于 2013-05-17T11:40:23.957 に答える
0

場所の参照は、セッション内でのみ有効です。文字列を保存して再度使用することはできません。

var request =  {
      reference: place.reference
};
google.maps.event.addListener(marker,'click',function(){
    service.getDetails(request, function(place, status) {
      if (status == google.maps.places.PlacesServiceStatus.OK) {
        var contentStr = '<h5>'+place.name+'</h5><p>'+place.formatted_address;
        if (!!place.formatted_phone_number) contentStr += '<br>'+place.formatted_phone_number;
        if (!!place.website) contentStr += '<br><a target="_blank" href="'+place.website+'">'+place.website+'</a>';
        contentStr += '<br>'+place.types+'</p>';
        infowindow.setContent(contentStr);
        infowindow.open(map,marker);
      } else { 
        var contentStr = "<h5>No Result, status="+status+"</h5>";
        infowindow.setContent(contentStr);
        infowindow.open(map,marker);
      }
    });

于 2013-05-17T13:40:06.740 に答える