我想创建一个应用程序,它会在“实时”中显示我在谷歌地图上的当前位置。
以下是相关代码:
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秒。
是否可以使用谷歌地图刷新此位置,如果没有,我应该使用其他地图,如Leaflet或OpenLayers吗?
答案 0 :(得分:0)
您遇到的延迟可能是由于从设备获取位置的延迟。
此外,尝试检查错误作为getCurrentPosition
函数的第二个处理程序。
答案 1 :(得分:0)
如果你运行这样的代码
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秒,这是一个ZERO超时...所以,像你一样每两秒运行一次不会让它更新任何更快