Ralf: Google maps getElevationForLocations

Beitrag lesen

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