地理定位控件包装了w3c 的geolocation 接口,与map结合使用;在位置改变时可以响应事件。
通过 activate 和 deactivate 两个方法,实现动态的激活和注销。
可用 activate 激活控件,方法如下:
geolocate.activate();
注销控件可用 deactivate 方法实现,方法如下:
geolocate.deactivate();
如果map控件的投影不是 EPSG:4326 或者 EPSG:900913 时需要加载proj4js 库。
SuperMap. |
地理定位控件包装了w3c 的geolocation 接口,与map结合使用;在位置改变时可以响应事件。 |
Constants | |
EVENT_TYPES | |
Properties | |
bind | {Boolean} 地理位置改变时,当前地图的中心点是否变化。默认为true,地图中心点会变化。 |
geolocationOptions | {Object} 传递给 geolocation api 的可选参数。默认不传递任何参数。 参数可选: enableHighAccuracy:指示浏览器获取高精度的位置,默认为false. |
watch | {Boolean} 地理位置是否经常更新。默认为false,地理位置不会更新。 |
Constructor | |
SuperMap. |
创建 Geolocate 新对象,创建方法如下: |
Functions | |
activate | 激活控件和要素处理程序。 |
getCurrentLocation | 获取当前的地理位置。 |
{Object} 传递给 geolocation api 的可选参数。默认不传递任何参数。 参数可选: enableHighAccuracy:指示浏览器获取高精度的位置,默认为false. timeout:指定获取地理位置的超时时间,单位毫秒(ms),默认为不限时。 maximumAge:最长有效期,在重复获取地理位置时, 此参数指定多久再次获取位置。默认为0,表示浏览器需要立刻重新计算位置。 参数详见: http://dev.w3.org/geo/api/spec-source.html 。
创建 Geolocate 新对象,创建方法如下:
//实例化 Geolocate 对象 var geolocate = new SuperMap.Control.Geolocate({ bind:false, //geolocationOption 的参数可以参见 <http://dev.w3.org/geo/api/spec-source.html> geolocationOption:{ enableHighAccuracy:false, timeout:7000, maximumAge:0 } }); var map = new SuperMap.Map("map"); map.addControl(geolocate); //激活控件 geolocate.activate(); //监听了 locationupdated 和 locationFailed 两事件 //当返回新的位置时触发 locationupdated 事件,定位失败时触发 locationFailed 事件 geolocate.events.on({ "locationupdated":locationupdatedCompleted, "locationFailed":locationFailed }); //定义 locationupdated 事件的响应函数,需要传入event参数,该参数具有 position 和 point 两个属性 //其中,position 属性表示的是经纬度坐标,point 是具有x,y坐标值的几何点对象。 function locationupdatedCompleted (event){ //TODO } function locationFailed (event){ //TODO }
激活控件和要素处理程序。
activate: function ()
获取当前的地理位置。
getCurrentLocation: function()