- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Ionic 应用程序中,我使用以下选项实现了地理位置 watchPosition。我的选项设置为每 10 秒触发一次,但它每秒触发一次。通常每秒会触发两次。
function watchPosition() {
var options = {
maximumAge: 10000,
timeout: 10000,
enableHighAccuracy: true,
}
watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
function onSuccess(pos) {
...
}
function onError(error) {
...
}
}
当我的设备准备就绪时,我使用 addListener 触发 watchPosition 函数:
原来的调用是这样的: var watchID = null ; document.addEventListener("deviceready", watchPosition);
然后我改成这样: document.addEventListener("deviceready",setupWatch) ;
function setupWatch() {
// global var here so it can be cleared on logout (or whenever).
activeWatch = setInterval(watchPosition, 5000);
}
而且它仍然每秒都会触发。
然后我简单地替换了 addEventListener
,我意识到 eventListener 已经在 Ionics $ionicPlatform.ready() { .. }
内部,因此 eventListener 不是需要。然而,现在只要调用这个就会触发 watchPosition 每秒 5 次,而不是每 5 秒一次。:
setupWatch() ;
有关 watchPosition 最佳实践的其他问题。继续调用此函数的理想超时是多少...每秒是否正常,负载/处理是否过多,电池消耗是否更快等等?
最佳答案
您使用的timeout
和maximumAge
并没有定义您从浏览器获得答案的频率。以下是 MDN 关于这些属性的说明:
PositionOptions.timeout
Is a positive long value representing the maximum length of time (in milliseconds) the device is allowed to take in order to return a position.
PositionOptions.maximumAge
Is a positive long value indicating the maximum age in milliseconds of a possible cached position that is acceptable to return.
我建议您将回调中的值存储在变量中,并使用另一个 setInterval
以您可以定义的速率返回该值。
编辑
如果您想处理回答率,可以使用函数 getCurrentPosition
,该函数只会触发一次回调 ( source )
关于javascript - 地理位置 watchPosition 每秒触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183239/
我用这个代码获得了第一名,我想一直获得它。 var init = function() { navigator.geolocation.getCurrentPosition(functi
我正在开发 Ionic 应用程序,想解决 Geolocation Watch Position 的问题。我想每 1 分钟而不是 5 秒后获取数据。我的代码如下, var opti = { enabl
我正在为 MapDotNet 的 Touchgeo ( http://www.mapdotnet.com/index.php/component/content/article?id=131) 中的地
我使用以下代码通过 watchPosition 获取用户位置。我还想为失败参数定义代码并将选项传递给 watchPosition,但我不确定代码应该放在哪里。 if (navigator.geoloc
我正在开发一个phonegap应用程序,该应用程序在其功能中使用设备的当前位置,但在Iphone上测试时,该应用程序每60秒给出一条错误消息,如下所示: 我用来获取位置的源代码是: function
我正在尝试在谷歌地图上创建一个标记来向用户显示当前位置。使用以下代码我可以做到这一点,但每次 watchPosition 刷新时都会创建一个新点。每次添加新点时如何清除以前的标记? // Geoloc
在我的 Ionic 应用程序中,我使用以下选项实现了地理位置 watchPosition。我的选项设置为每 10 秒触发一次,但它每秒触发一次。通常每秒会触发两次。 function watchPos
我正在使用 sencha 2.3.1 + phonegap 3.3.0 为 Android 构建一个位置感知应用程序,并使用地理定位显示按与用户位置的接近程度排序的目的地列表。如果基于网络的位置设置打
我正在使用 html 5 创建一个 android 应用程序,我想在用户移动时从用户那里访问 latlong。我使用过 watchPostion,但它只给我一次用户位置。 var watchI
我尝试将 JavaScript Promise 与地理定位结合使用,但无法使其与 geolocation.watchPosition 一起正常工作,then 子句仅被调用一次: function Ge
我一直在使用地理位置 navigator.geolocation.getCurrentPosition但发现不如 navigator.geolocation.watchPosition 准确。所以我的
getCurrentPosition() 和 watchPosition() 有什么区别。我阅读了几篇关于 getCurrentPosition() 和 watchPosition() 的文章。但我都
我正在尝试设置我的代码来定位 Android 手机或平板电脑上最准确的位置。由于 getCurrentPosition 没有给 GPS 足够的时间来查找位置,因此我使用 watchPosition。这
我正在尝试实现一个需要跟踪用户位置的功能,首先,我使用 getCurrentLocation 检索用户的位置,然后传递坐标以放置指示用户位置的标记(标记变量是全局设置的),然后我调用 watchPos
我试过这段代码: Location Location Location var watchID = null; // PhoneGap is ready
我有一个监控设备位置的服务: getLocation(opts): Observable { return Observable.create(observer => { if
好的,我的代码在下面,所以我将解释我在做什么以及我得到的结果。 我正在尝试使用 navigator.geolocation.watchPosition 获取用户位置。我已经指定了成功和错误回调。我第一
我在请求用户提供地理位置数据的网站上遇到此错误: getCurrentPosition() and watchPosition() are deprecated on insecure origins
我需要确定50m范围内一个人的位置。我想知道是否应该使用 navigator.location.watchPostion() 或一遍又一遍地调用 getCurrentPostion() 。 watch
下面是我使用的代码,用于查找用户的位置。 if (navigator.geolocation) navigator.geolocation.getCurrentPosition(function(po
我是一名优秀的程序员,十分优秀!