geolocation - 关闭 Openlayers 3 地理定位

标签 geolocation openlayers-3

所以,我在 Openlayers 3.9.0 map 中关闭地理定位功能的想法是有一个切换按钮,当点击它时它会停止跟踪并从地理定位图层中删除该功能

geolocation.setTracking('false');
featuresOverlay.getSource().clear();

然后再次打开它,它会打开跟踪,向地理定位图层添加一个功能,设置其坐标并重新居中 map

geolocation.setTracking('true');
featuresOverlay.getSource().addFeature(positionFeature);
var coordinates = geolocation.getPosition();
positionFeature.setGeometry(coordinates ? new ol.geom.Point(coordinates) : null);
view.setCenter(coordinates);

嗯,这在技术上不算作打开/关闭地理定位,因为它删除了所有视觉元素,它实际上并没有打开/关闭 API。有没有这种可能,或者以上就够了?

最佳答案

当然可以,经过一个小改动。

假设代码中的 geolocation 引用了 ol.Geolocation 的实例,调用 geolocation.setTracking(false) 将使 geolocation 在浏览器的地理定位 API 上调用 clearWatch。相关代码为here .

但是,setTracking 需要一个 bool 值。您发送字符串 'false',它被解释为真值(因为它是一个非空字符串)。从 setTracking 参数中移除引号,它应该会按预期工作。

关于geolocation - 关闭 Openlayers 3 地理定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33551349/

相关文章:

ios - 获取经度和纬度

android - 当位置共享、WiFi 和移动互联网关闭时,Moto Assist 应用程序如何识别运动?

java - Android 位置未从自定义类返回位置

javascript - 无法从 map 中删除所有图层

javascript - Ionic 带有地理位置警报 : 'mySecondApp.app/www/index.html' Would like to use your current location

google-maps - Grails-从lat,lang找到位置

postgresql - 在 openlayers 3 中重新投影图层

javascript - 检查 OL3 功能相等性的最简单方法

javascript - OpenLayers 3 重新加载层