【问题标题】:Turn off Openlayers 3 Geolocation关闭 Openlayers 3 地理位置
【发布时间】:2015-11-05 17:44:39
【问题描述】:

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

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

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

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 openlayers-3


    【解决方案1】:

    确实如此,经过一个小改动。

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

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

    【讨论】:

    • 有史以来最有用的观察。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 2012-11-16
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    相关资源
    最近更新 更多