减少地理定位watchPosition调用的频率

问题描述 投票:0回答:2

我正在为一家物流公司编写一个跟踪应用程序,该应用程序需要定期向基地报告每部手机的位置。

geolocation.watchPosition
方法似乎很理想,但据我所知,它每秒更新一次位置,似乎无法增加回调之间的间隔。从数据使用的角度来看,每秒一次有点太频繁了 - 每分钟一次是理想的选择。

是否有一个选项可以传递给 watchPosition 以使其以最小间隔执行回调?

html gps w3c-geolocation
2个回答
2
投票

PositionOptions有一个名为maximumAge的属性。

文档说:

是一个正长值,指示可接受返回的可能缓存位置的最大寿命(以毫秒为单位)。如果设置为 0,则意味着设备无法使用缓存的位置,并且必须尝试检索真实的当前位置。如果设置为“Infinity”,则设备必须返回缓存的位置,无论其年龄如何。默认值:0。 链接

它可以帮助你


1
投票

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

例如:

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);
© www.soinside.com 2019 - 2024. All rights reserved.