2016-04-19 12 views
1

Ich versuche, einen umgekehrten Geocode (Google) auf einer place_id, nach this google dev.guide. Aber anstelle des 'click'-Ereignisses zum Initialisieren der Geokodierungsfunktion möchte ich die Geocode-Funktion ausführen, wenn die Seite geladen wird. So ersetzte ich das Click-eventlistener mit diesem Code:Wie initialisiere ich den umgekehrten Geocode beim Laden der Seite?

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

In der geocode Funktion habe ich die place_id fest einprogrammiert (mittels Beispiel):

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

Unfortunaltely funktioniert das nicht, das heißt Es ist kein umgekehrter Geocode initialisiert. Jeder Rat an diesen sehr moderaten Java-Programmierer wäre sehr willkommen!

Antwort

1

Ich erhalte JavaScript-Fehler mit Ihrem Code: Uncaught ReferenceError: ChIJw2IskpfGxUcRRNxZ4A_lGWk is not defined. Die placeId ist eine Zeichenfolge. Diese

:

var placeId = ChIJw2IskpfGxUcRRNxZ4A_lGWk; 

Sollte sein:

var placeId = "ChIJw2IskpfGxUcRRNxZ4A_lGWk"; 

Code-Schnipsel:

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! funktioniert! http://www.magistraver.nl/google.html – BerryGJS