緯度、経度に対応する住所を変数(javascript)に格納しようとしています。コールバック関数を作成しました (多数の投稿を読んだ後)。コードは次のとおりです。ここで、住所を location3 という変数に格納します。
奇妙なことに、location3 が割り当てられた直後のアラートでは、それは未定義です。しかし、300 ミリ秒後に見ると、正しい値が得られます。location3 に割り当てられたアドレスをすぐに取得したい。どんな提案でも大歓迎です。
function codeLatLng1(lat,long,callback) {
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat,long);
if (geocoder) {
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
callback(results[1].formatted_address);
myvariable=results[1].formatted_address;
} else {
alert("No results found");
}
} else {
alert("Geocoder failed due to: " + status);
}
});
}
}
lat1_last=37;long1_last=-100;
codeLatLng1(lat1_last,long1_last,function(locat) {location3=locat;});
alert (location3); // THIS ALERT SHOWS THAT IT IS STILL UNDEFINED
setTimeout(function(){alert (location3);},300); // THIS ALERT GIVES THE RIGHT ADDRESS