【发布时间】:2015-01-12 20:06:43
【问题描述】:
我该如何使用:
navigator.geolocation.getCurrentPosition()
获取当前位置的坐标。
这是来自谷歌网站的例子:
function initialize() {
var mapOptions = {
zoom: 6
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
// Try HTML5 geolocation
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
var infowindow = new google.maps.InfoWindow({
map: map,
position: pos,
content: 'Location found using HTML5.'
});
map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
}
我尝试将 var pos 部分替换为全局变量 myPos ,但没有成功。
我的意思是我总是在初始化()函数之后得到 myPos 未定义。
在加载表单(窗口)时调用的初始化函数中获取纬度和经度 navigator.geolocation.getCurrentPosition() 的正确方法是什么?
【问题讨论】:
-
地理定位服务是异步的(所以在回调函数运行之前不会定义位置)。 Your code as posted works for me
-
也许你是对的,除非调用 getcurrentposition,否则我怎么能告诉函数不继续?
-
您要求采用异步函数,由于某种原因,它是异步的,并使其同步...研究/了解异步函数。