我正在尝试构建一个只需要在移动设备上打开浏览器窗口的跟踪器。除了navigator.gelocation.getCurrentPosition之外,所有代码似乎都有效。正如您所看到的,我每隔几秒就会使用一个计时器来循环我的代码。我期待在时间内输出实时位置信息的代码,但相反,它似乎诉诸使用最后的已知位置 - 或者如果没有,它将找到位置然后继续使用相同的位置。
我不确定这是Android或我的代码是否存在问题,但它似乎在iPhone上运行良好 - 但不是我测试了它,所以我无法确定。
提前致谢!
var lati = " ";
var longi = " ";
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 15
});
var timerID = setInterval(function() {
// Try HTML5 geolocation.
if (navigator.geolocation) {
var infoWindow = new google.maps.InfoWindow({map: map});
navigator.geolocation.getCurrentPosition(function(position) {
var pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
lati = (position.coords.latitude);
longi = (position.coords.longitude);
console.log(lati, "Lol");
infoWindow.setPosition(pos);
infoWindow.setContent('lati');
map.setCenter(pos);
}, function() {
handleLocationError(true, infoWindow, map.getCenter());
});
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn\'t support geolocation.');
}
//in a loop (setInterval) get coords and apply them to database
{
$.ajax({ url: 'php_test.php',
data: {'Lati': lati, 'Longi': longi},
type: 'post',
dataType:'json',
success: function(output) {
alert(output);
}
});
}
}, 2 * 1000);
}
答案 0 :(得分:0)
我面临同样的问题,但我意识到调试getCurrentPosition在不安全的起源上已被弃用。
也许你可以实现How do I get the current GPS location programmatically in Android?
之类的东西