mapquest から GIS データを取得するこの単純な関数があります。
function reverseGeocoding(lat,lng){
var url = 'http://open.mapquestapi.com/nominatim/v1/reverse?format=json&lat=' + lat + '&lon=' +lng+' &zoom=18&addressdetails=1';
$.ajax({
url: url,
crossDomain:true,
success: function(response){
$("#revgeo-place").html(response.display_name);
}
});
}
この関数が別の関数から呼び出されたときに戻り値が非同期に更新されるようにするにはどうすれば改善できますか?
関数にDOM参照を明示的に入れたくありません.ajaxを非同期に保ちたいのですが、理想的には次のようにする必要があります。
$("#revgeo-place").html(reverseGeocoding(lat,lng).display_name);
function reverseGeocoding(lat,lng){
var url = 'http://open.mapquestapi.com/nominatim/v1/reverse?format=json&lat=' + lat + '&lon=' +lng+' &zoom=18&addressdetails=1';
$.ajax({
url: url,
crossDomain:true,
success: function(response){
console.log(response);
return response;
}
});
}
これを行うと、DOM オブジェクトが更新されないように見えます。その後、関数は応答を返します。
どんなアイデアも役に立ちます ありがとう!