0
我已經寫了一個函數,返回任何GPS座標傳遞給該功能,但由於某種原因,它不返回鎮的城鎮。如果我提醒這個城鎮,它會讓我看到正確的城鎮。谷歌地圖地理編碼位置不返回鎮
代碼:
function getTown(latitude,longitude){
// Define Geocoding
var geocoder = new google.maps.Geocoder();
// Using the longitude/latitude get address details
var latlng = new google.maps.LatLng(latitude,longitude);
geocoder.geocode({'latLng': latlng}, function(results, status){
// If response ok then get details
if (status == google.maps.GeocoderStatus.OK) {
var town = results[1].address_components[1].long_name;
return town; // Returns Norwich when alerted using the e.g below.
}
});
}
例子:
getTown(52.649334,1.288052);
這沒有什麼區別? –
如果你期望的是運行'var town = getTown(52.649334,1.288052);'並且將城鎮設置爲** Norwich **,那麼它的**從不會**發生。對「geocoder.geocode」的調用需要時間。多少時間?每次您調用該方法時,它會有所不同,但在您通過互聯網發送請求以從Google獲取一些數據時可能需要幾百毫秒。您正在使用[異步I/O](http://en.wikipedia.org/wiki/Asynchronous_I/O),這是您編程任務中的一個重要概念。 –
我怎麼能立即發出警報,而不是回報它? –