降低地理定位watchPosition调用的频率

时间:2013-04-24 12:25:19

标签: html5 gps w3c-geolocation

我正在为物流公司编写跟踪应用程序,该应用程序需要定期向每个手机报告每个手机的位置。 geolocation.watchPosition方法似乎是理想的,除了我可以告诉它更新位置的频率为每秒一次,似乎无法增加回调之间的间隔。从数据使用的角度来看,每秒一次有点过于频繁 - 每分钟一次是理想的。

我可以传递给watchPosition以使其以最小间隔执行回调吗?

2 个答案:

答案 0 :(得分:1)

您可以允许它仍然每秒调用一次watchPosition,但是然后将报告分离回基于单独的回调,该回调在计时器上每分钟运行一次。

e.g:

var GPSStore = {};
navigator.geolocation.watchPosition(
  function(current_location) {
    // Just store the latest co-ordinates in memory as often as they are generated
    GPSStore.location = current_location;
  }
);
// Once a minute transmit the latest co-ordinates
setInterval(function() {
  transmitLocation(GPSStore.location);
}, 1000*60);

答案 1 :(得分:1)

PositionOptions有一个名为maximumAge的属性。

文档说:

  

是一个正长值,表示可以返回的可能缓存位置的最大年龄(以毫秒为单位)。如果设置为0,则表示设备无法使用缓存位置,必须尝试检索实际当前位置。如果设置为Infinity,则设备必须返回缓存位置,而不管其年龄如何。默认值:0。   link

它可以帮到你