我想要创建一个应用程序,什么是显示我目前的位置谷歌地图上的“实时”。
以下是相关代码:
function updatePosition() {
navigator.geolocation.getCurrentPosition(function (position) {
var myLatLng = {lat: position.coords.latitude, lng: position.coords.longitude};
marker.setPosition(myLatLng);
$('#log').append('<p>new position - lat: ' + position.coords.latitude + ', lng: ' + position.coords.longitude + ' </p>');
});
}
setInterval(updatePosition, 2000);我该怎么说..。它起作用了。但不像我预料的那样。相反,2秒,它刷新我的位置,并写入日志约5-30秒。
是否可以用谷歌地图刷新这个位置,或者如果没有,我应该使用另一张地图,如传单或OpenLayers吗?
发布于 2016-10-17 21:32:50
如果您像这样运行代码
function updatePosition() {
navigator.geolocation.getCurrentPosition(function (position) {
var myLatLng = {lat: position.coords.latitude, lng: position.coords.longitude};
console.log(myLatLng);
setTimeout(updatePosition, 0);
});
}
updatePosition();您将看到getCurrentPosition花费有限的时间-在我的例子中,5秒,这是一个零超时.所以,像你一样每两秒运行一次并不能使它更新得更快。
发布于 2016-10-17 21:28:34
您遇到的延迟可能是由于从设备获取位置的延迟造成的。此外,尝试检查错误作为getCurrentPosition函数的第二个处理程序。
https://stackoverflow.com/questions/40095821
复制相似问题