Hi,
Lieber RobRobson,
Und nocheinmal: Wo erwartest Du eine asynchrone Verarbeitung? Ist etwa in getGeoCode ein AJAX-Aufruf enthalten, den es zuerst abzuwarten gilt, bevor Deine Geodaten zum Versenden überhaupt bereit sind? Das wäre das Einzige, das mir in diesem Zusammenhang einleuchtet, warum Du hier auf "asynchron" bestehst.
Was auch der Grund ist warum ich es auch am Anfang im OP erwähnte.
Meine Intention keinen Code zu posten war, euch lesezeit und arbeit zu ersparen. Aber ich liefere diesen auch gerne nach. Mittlerweile hab ich mich vom einfachen einsetzen in $.post() weggbewegt und will die ganze Arbeit mit der Location in ein Objekt kapseln.
var UserLocation = new UserLocation_obj;
UserLocation.getLatLngGoogle();
function UserLocation_obj() //Konstruktor
{
this.aktSuchOrt = false;
this.AktSuchOrtLatLng = false;
}
UserLocation_obj.prototype.getAktSuchOrt = function () { return this.aktSuchOrt }
UserLocation_obj.prototype.setAktSuchOrt = function (str) { this.aktSuchOrt = str; }
UserLocation_obj.prototype.getAktSuchOrtLatLng = function () { return this.AktSuchOrtLatLng }
UserLocation_obj.prototype.setAktSuchOrtLatLng = function (obj) { this.AktSuchOrtLatLng = obj; }
UserLocation_obj.prototype.getLatLngGoogle= function(eventObjekt)
{
this.setAktSuchOrt( $("#suche_ort").val() );
this.setAktSuchOrtLatLng( getUserCoord( this.getAktSuchOrt() ) );
alert( "drausse" + this.getAktSuchOrtLatLng( ) );
}
function getUserCoord( suche_ort ) //Google adapt
{
var myLocLatLng = false;
geocoder.geocode( { "address": suche_ort }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
myLocLatLng = results[0].geometry.location.toString();
alert( "drinnen" + myLocLatLng );
}
});
return myLocLatLng;
}
(Das drinnen-alert gibt richtig die gesuchten Koordinaten aus das drausen-alert immer nur false. Also den default-Wert in getUserCoord() )
Mein Problem ist nach wie vor das eine asyncrone Funktion vorliegt und das ich auf das Ergebniss dieser warten muss. Wie macht man das? (its all about events?)
Liebe Grüße,
Felix Riesterer.
Danke, viele Grüße, gutn Rutsch und frohes Neues Jahr ;)
Rob