Google maps getElevationForLocations
Ralf
- javascript
Hi,
ich möchte mit der google maps api realisieren, dass beliebig viele Marker mit je einem kleinen infowindow dran auf die Karte gesetzt werden können und jeder marker die Funktion getElevationForLocations nutzt um in "sein" infowindow "seine" Höhe zu schreiben.
Nun funktioniert getElevationForLocations ja asyncron, d.h. ich rufe es auf und übergeben eine callback funktion welche die Rückgabewerte verarbeitet. Im Beispielcode wird dabei die Höhe mit alert() ausgegeben. Nun soll aber die Höhe jemewis in dem infowindow ausgegeben werden, welches zu dem Marker gehört, der getElevationForLocations ausgelöst hat.
Ich muss also irgendwie ein handle des aufrufenden markers oder infowindows bis in die callback funktioen weiterreichen. Wie kann man das machen?
//getElevation(event) wird beim setzen / verschieben eines Markers aufgerufen
function getElevation(event) {
var locations = [];
// Retrieve the clicked location and push it on the array
var clickedLocation = event.latLng;
locations.push(clickedLocation);
// Create a LocationElevationRequest object using the array's one value
var positionalRequest = {
'locations': locations
}
// Initiate the location request
elevator.getElevationForLocations(positionalRequest, function(results, status) {
alert(f);
if (status == google.maps.ElevationStatus.OK) {
// Retrieve the first result
if (results[0]) {
//document.getElementById('markerElevation').value = results[0].elevation;
// Open an info window indicating the elevation at the clicked position
alert(results[0].elevation);
}else {
alert('No results found');
}
}else{
alert('Elevation service failed due to: ' + status);
}
});
}
Gruß Ralf