标题很长,但问题很简单,我还没有找到好的解决方案。
先决条件
我目前正在实现一项功能,该功能将在地图中显示设备的当前位置,它基于 OpenLayers 的 Geolocate 控件。它对于初始负载非常有效,但我想模拟一个人使用他们的设备在地理上移动以进行测试。
我尝试过的
Emulation.setGeolocationOverride
,但这不会触发 watchPosition
被更新为 navigator.geolocation
。有人知道解决这个问题的最佳实践吗?目前我必须恢复一些重构并使用
setInterval
模拟一些更新。然而,如果我没有在野外使用我的开发设备运行,这将无法完全测试 navigator.geolocation
功能的行为。
对于使用 OpenLayers 2.x 的任何人,我想补充一点,通过使用
Geolocate控件将
watch
属性指定为 true,您可以省去很多麻烦。这是默认的false
,导致很多测试失败。如果设置了 watch
属性,则使用 DevTools 的 Sensors功能进行简单测试即可按预期工作。