2015-11-05 86 views
2

所以,我在3.9.0的OpenLayers地图关闭地理定位功能的想法是有一个切换按钮,单击时被停止跟踪,并从地理位置层去除功能关闭的OpenLayers 3地理位置

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); 

好了,这在技术上不能算作转弯开/关地理定位,因为它去除了所有的视觉元素, t实际上并不打开/关闭API。有没有这样的可能性,或者上述情况足够了?

回答

3

确实如此,经过一次小小的改变。

假设geolocation在您的代码引用的ol.Geolocation一个实例,调用geolocation.setTracking(false)将在浏览器地理位置API的调用geolocationclearWatch。相关的代码是here

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

+0

有史以来最有用的观察。非常感谢 – slevin