我在为以下函数返回latLng值时遇到麻烦。
function getUserPosition() {
var latLng;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); // #1
}, function () {
latLng = defaultPosition(); // #2
}
);
} else {
latLng = defaultPosition(); // #3
}
return latLng;
}
假定defaultPosition()返回一组有效的坐标。
我已经标记了三个latLng作业,这是我最新的“全面捕获”方法的一部分,但是仍然没有运气。
我已经检查了其他相关的答案,但似乎仍然无法解决我的特定问题,因此,很抱歉重新发布。
提前致谢。
由于location API的异步特性,您无法执行此操作,而是需要使用基于回调的方法,一旦locaion API返回该值,则将调用回调函数。
function getUserPosition(callback) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
callback(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));
}, function () {
callback(defaultPosition()); // #2
});
} else {
callback(defaultPosition()); // #3
}
}
getUserPosition(function(latLng){
//do all operations that depends on latLng here in the callback function
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句