我使用AngularJS开发了一个webapp。
其中一项功能仅在用户离指定地点列表特定距离内时启用。
为了实现这一目标,我可以每5秒刷新一次页面并执行计算以查看用户是否已经足够关闭任何位置并相应地启用该功能。但我认为这对服务器造成了不必要的负担,特别是当用户不动时。
有没有办法让我的网络应用只在地理定位发生变化时刷新,或者是另一种更好的方式来实现我的目标?
答案 0 :(得分:0)
检查http://dev.w3.org/geo/api/spec-source.html。 您可以保存以前的位置,然后不断轮询更改
var previousPosition = {
latitude: 40.023,
longitude: 23.203
};
function watchGeolocation(position) {
//position.coords.latitude, position.coords.longitude
if (position.coords.latitude != previousPosition.latitude ||
position.coords.longitude != previousPosition.longitude)
{
//update the view
}
}
// Request repeated updates.
var watchId = navigator.geolocation.watchPosition(watchGeolocation);
//clear watching the geolocation
navigator.geolocation.clearWatch(watchId);