我正在尝试使用此功能获取城市的纬度:
GridBagLayout
此功能(例如:function get_lat(city) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
"address": city
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK && results.length > 0) {
var location = results[0].geometry.location;
return location.lat();
} else {
}
});
}
始终返回get_lat("Amsterdam")
)。地理编码器本身确实有效:在undefined
行之前添加console.log(location.lat())
输出正确的纬度。
有谁知道我做错了什么?
更新
我如何在地图中使用纬度?
return
在首次访问时无效(它位于Ionic应用程序中)。刷新后确实有效。
答案 0 :(得分:1)
您将从function(results, status)
内的匿名get_lat
返回,而不是从get_lat
返回。
由于您要从谷歌的回调中检索纬度,您可以做的是向get_lat
添加第二个参数(另一个回调函数),一旦您从谷歌的服务中检索纬度,就会返回纬度:
function get_lat(city, callback) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
"address": city
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK && results.length > 0) {
var location = results[0].geometry.location;
callback(location.lat()); // return lat
} else {
callback(SOME_ERROR_VALUE); // return error
}
});
}
你会像以下一样使用它:
get_lat('Amsterdam', function(lat)) {
console.log('here is my lat: ' + lat);
});