2016-04-19 22 views
1

私はthis google dev.guideに続いてplace_idで逆ジオコード(Google)を実行しようとしています。しかし、ジオコード関数を初期化するための 'click'イベントの代わりに、ページがロードされたときにジオコード関数を実行したいと思います。すなわち、Unfortunaltelyこれは動作しませんページの読み込み時に逆ジオコードを初期化するにはどうすればよいですか?

function geocodePlaceId(geocoder, map, infowindow) { 
     var placeId = ChIJw2IskpfGxUcRRNxZ4A_lGWk; 
     geocoder.geocode({'placeId': placeId}, function(results, status) { 
      if (status === google.maps.GeocoderStatus.OK) { 
      etcetc 
     } 

を:私は(例によって)place_idをハードコードしまし

 document.addEventListener("DOMContentLoaded", function() { 
     geocodePlaceId(geocoder, map, infowindow); 
     }); 

ジオコード機能で:だから私はこのコードのクリックのEventListenerを置き換えます逆ジオコードが初期化されていません。この非常に適度なjavaプログラマーへのアドバイスは大歓迎です!

答えて

1

あなたのコードでjavascriptエラーが発生します:Uncaught ReferenceError: ChIJw2IskpfGxUcRRNxZ4A_lGWk is not defined placeIdは文字列です。

この:

var placeId = ChIJw2IskpfGxUcRRNxZ4A_lGWk; 

は次のようになります。

var placeId = "ChIJw2IskpfGxUcRRNxZ4A_lGWk"; 

コードスニペット:

function geocodePlaceId(geocoder, map, infowindow) { 
 
    var placeId = "ChIJw2IskpfGxUcRRNxZ4A_lGWk"; 
 
    geocoder.geocode({ 
 
    'placeId': placeId 
 
    }, function(results, status) { 
 

 
    if (status === google.maps.GeocoderStatus.OK) { 
 
     map.setZoom(11); 
 
     map.setCenter(results[0].geometry.location); 
 
     var marker = new google.maps.Marker({ 
 
     position: results[0].geometry.location, 
 
     map: map 
 
     }); 
 
     infowindow.setContent(results[0].formatted_address); 
 
     infowindow.open(map, marker); 
 
    } else { 
 
     window.alert('Geocoder failed due to: ' + status); 
 
    } 
 
    }); 
 
} 
 

 
function initialize() { 
 
    var map = new google.maps.Map(
 
    document.getElementById("map_canvas"), { 
 
     center: new google.maps.LatLng(37.4419, -122.1419), 
 
     zoom: 13, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 
    var geocoder = new google.maps.Geocoder(); 
 
    var infowindow = new google.maps.InfoWindow(); 
 
    geocodePlaceId(geocoder, map, infowindow); 
 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<div id="map_canvas"></div>

+0

thnx!作品! http://www.magistraver.nl/google.html – BerryGJS

関連する問題