地理定位控件包装了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()