Javascript-Funktion / Google Maps API

Hallo!

Ich will das folgende Script verwenden, um auf einer Website eine google-Karte zu verwenden, auf der ich mehrere Adressen markiere:
http://andreknieriem.de/adresskoordinaten-mit-der-go…

Ich möchte das Script aber so anpassen, dass die Koordinaten nicht in ein DIV geschrieben werden, sondern Rückgabewert der Funktion getcoord() sind.
Was muss ich tun? Folgender Versuch bringt nicht das gewünschte Ergebnis:

function getcoord(adr) {
  var user1Location = adr;
  var geocoder = new google.maps.Geocoder();
  //convert location into longitude and latitude
  geocoder.geocode({
       address: user1Location
 }, function(locResult) {
           console.log(locResult);
           var lat1 = locResult[0].geometry.location.lat();
           var lng1 = locResult[0].geometry.location.lng();
    var koo = lat1 +’,’+ lng1;
    return koo;
  });
}

Ein „alert(getcoord(‚Kurfürstenstraße 1, 12105 Berlin‘))“ gibt dann als Ergebnis „undefined“ zurück. Was mache ich falsch?
Zusatz: wenn ich in der Funktion (zum Testen) statt des „return koo;“ ein „alert(koo);“ mache, dann gibt er die korrekten Koordinaten aus.
Es hängt also bloß am „return“. Wie geht denn das bei dieser verschachtelten Funktion in Funktion?

Hallo!

Ich will das folgende Script verwenden, um auf einer Website
eine google-Karte zu verwenden, auf der ich mehrere Adressen
markiere:

Ich möchte das Script aber so anpassen, dass die Koordinaten
nicht in ein DIV geschrieben werden, sondern Rückgabewert der
Funktion getcoord() sind.
Was muss ich tun? Folgender Versuch bringt nicht das
gewünschte Ergebnis:

Ein „alert(getcoord(‚Kurfürstenstraße 1, 12105 Berlin‘))“ gibt
dann als Ergebnis „undefined“ zurück. Was mache ich falsch?

Du benutzt die API falsch :wink:

Zusatz: wenn ich in der Funktion (zum Testen) statt des
„return koo;“ ein „alert(koo);“ mache, dann gibt er die
korrekten Koordinaten aus.
Es hängt also bloß am „return“. Wie geht denn das bei dieser
verschachtelten Funktion in Funktion?

function getcoord(adr) {
  var user1Location = adr;
  var geocoder = new google.maps.Geocoder();

hier beginnt deine Fehlannahme,
die funktion hat die Aufrufparameter (location,callback)
callback ist eine anonyme Funktion, die aufgerufen wird, wenn der Serviceaufruf erfolgreich war, in locResult steckt dann das Ergebnis der Serviceanfrage
wichtig ist, dass die Methode ASYNCHRON (wie in AJAX) läuft, das heisst, er ist mit deiner function geocode() durch und erst wenn der Service aufruf kommt, führt er den rest aus

  geocoder.geocode({
       address: user1Location
 }, function(locResult) {
           console.log(locResult);
           var lat1 = locResult[0].geometry.location.lat();
           var lng1 = locResult[0].geometry.location.lng();
    var koo = lat1 +’,’+ lng1;

hier würde er für die anonyme function (locResult) ein ergebnis zurückgeben, nicht aber für deine funktion

    return koo;

besser wäre hier
machWasMit(koo);

  });
}

hoffe konnte dir helfen
gruß
mathias