我正在为希望能够在地图上看到司机的交付进度的客户创建一些跟踪功能。我的 APS.NET MVC4 应用程序中有一个 javascript 页面,它有一个一分钟的计时器,每分钟获取移动用户的当前位置,然后将该值存储在变量中,然后使用 ajax 调用保存该位置的 MVC 控制器函数数据存入数据库。然后可以在必应地图上查看位置数据。
我是否以正确的方式实现了这一点,还是应该使用 HTML5 WatchPosition 函数而不是 GetCurrentPosition 函数?我没有看到在 WatchPosition 函数中设置间隔的方法,它似乎每次位置变化时都会触发,这似乎会持续触发,我只需要每分钟左右的位置数据。感谢您对下面我的代码的建议。
var Latitude = 0;
var Longitude = 0;
var TrackingLoop = setInterval(function () { GetCurrentLocation() }, 60000);
function RestartTracking() { location.reload(); }
function GetCurrentLocation() {
if (navigator.geolocation) {
var timeoutVal = 10 * 1000 * 1000;
navigator.geolocation.getCurrentPosition(
displayPosition,
displayError,
{ enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
);
}
else {
alert("Geolocation is not supported by this browser");
}
}
function displayPosition(position) {
Latitude = position.coords.latitude;
Longitude = position.coords.longitude;
UpdateLocation(Latitude, Longitude);
}
function UpdateLocation(Latitude, Longitude) {
var JobID = document.getElementById("JobID").value;
$.ajax({
url: '/Job/UpdateLocation',
type: 'POST',
data: {
JobID: JobID,
Latitude: Latitude,
Longitude: Longitude
},
});
}