定位 最后更新时间: 2021年01月22日
插件名称 | 说明 | 是否插件 |
---|---|---|
定位插件,整合了浏览器定位、精确IP定位、sdk辅助定位多种手段 | 是 | |
城市查询,IP定位获取当前城市信息 | 是 |
AMap.Geolocation 插件
AMap.Geolocation 定位服务插件。融合了浏览器定位、高精度IP定位、安卓定位sdk辅助定位等多种手段,提供了获取当前准确位置、获取当前城市信息、持续定位(浏览器定位)等功能。用户可以通过两种当时获得定位的成败和结果,一种是在 getCurrentPosition
的时候传入回调函数来处理定位结果,一种是通过事件监听来取得定位结果。Geolocation定位常见问题说明
注:默认情况下,PC 端优先使用精确 IP 定位,解决多数浏览器无法完成定位的现状,IP定位失败后使用浏览器定位;手机端优先使用浏览器定位,失败后使用IP定位;对于安卓 WebView 页面的开发者,可以结合定位 sdk 进行辅助定位,详细说明见useNative
参数。精确IP定位时不返回accuracy
字段值。
代码示例
mapObj = new AMap.Map('iCenter');
mapObj.plugin('AMap.Geolocation', function () {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true,//是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
maximumAge: 0, //定位结果缓存0毫秒,默认:0
convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
showButton: true, //显示定位按钮,默认:true
buttonPosition: 'LB', //定位按钮停靠位置,默认:'LB',左下角
buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true
showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true
panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true
zoomToAccuracy:true //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
});
mapObj.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
AMap.event.addListener(geolocation, 'error', onError); //返回定位出错信息
});
构造函数 | 说明 |
---|---|
| 构造函数,创建浏览器定位实例 |
GeolocationOptions | 类型 | 说明 |
---|---|---|
|
| 是否使用高精度 默认值:true |
|
| 超时毫秒数,若在指定时间内未定位成功,返回超时错误信息“TIMEOUT” 默认值:无穷大 |
|
| 是否禁止使用IP定位,默认值为0,可选值0-3 0: 可以使用IP定位 1: 手机设备禁止使用IP定位 2: PC上禁止使用IP定位 3: 所有终端禁止使用IP定位 |
|
| 是否禁止使用浏览器Geolocation定位,默认值为0,可选值0-3 0: 可以使用浏览器定位 1: 手机设备禁止使用浏览器定位 2: PC上禁止使用浏览器定位 3: 所有终端禁止使用浏览器定位 |
|
| 默认为false,设置为true的时候可以调整PC端为优先使用浏览器定位,失败后使用IP定位 |
|
| 缓存毫秒数。定位成功后,定位结果的保留时间 默认值:0 |
|
| 是否使用坐标偏移,取值true:为高德地图坐标,取值false:为浏览器定位坐标 默认值:true |
|
| 是否显示定位按钮 默认值:true |
|
| 自定义定位按钮的内容。可支持HTML代码或Dom元素对象,不设置该属性则使用默认按钮样式 |
|
| 定位按钮可停靠的位置 “LT”:左上角 “LB”:左下角 “RT”:右上角 “RB”:右下角 默认值:“LB” |
| 按钮距离停靠位置的偏移量 默认值:Pixel(10,20) | |
|
| 定位成功时是否在定位位置显示一个Marker 默认值:true |
| 定位点Marker的配置,不设置该属性则使用默认Marker样式 | |
|
| 定位成功并且有精度信息时,是否用一个圆圈circle表示精度范围 默认值:true |
| 定位点Circle的配置,不设置该属性则使用默认Circle样式 | |
|
| 定位成功后,是否把定位得到的坐标设置为地图中心点坐标 默认值:true |
|
| 定位成功且显示精度范围时,是否把地图视野调整到正好显示精度范围 默认值:false |
|
| 是否使用安卓定位sdk用来进行定位,默认:false 适用于同时在APP中使用安卓定位sdk并在APP WebView中使用了JSAPI的开发者。开启后,将优先尝试使用sdk进行定位,失败后依次尝试浏览器定位和IP定位。 注:如果要使用辅助定位的功能,除了需要将useNative属性设置为true以外,还需要调用高德定位sdk中,AMapLocationClient类的startAssistantLocation方法,开启辅助H5定位功能;如果不用,就调用stopAssistantLocation()方法停止辅助H5定位功能。具体用法可参考定位SDK的参考手册 |
|
| JSAPI在定位成功的时候会将得到的经纬度进行逆地理编码后获取地址信息,以方便开发者的进一步使用; extensions用来设定是否需要周边POI、道路交叉口等信息,可选值'base'、'all'。 默认为'base',只返回地址信息; 设定为'all'的时候将返回周边POI、道路交叉口等信息。 |
方法 | 返回值 | 说明 |
---|---|---|
|
| 是否支持浏览器定位,当不支持是getCurrentPosition也会使用尝试进行精确IP定位 |
| 获取用户当前的精确位置信息 当回调函数中的status为complete的时候表示定位成功,result为GeolocationResult对象; 当回调函数中的status为error的时候表示定位失败,result为GeolocationError对象; callback的方式和事件监听的方式二者选择一种即可。 | |
|
| 使用浏览器定位接口监控当前位置,移动端有效。在监控过程中,每隔一段时间会自动调用定位成功或失败的回调函数。 注:由于时间间隔受浏览器限制,如您想自定义时间间隔,建议您使用定时器,每隔一段时间调用一次getCurrentPosition获取当前位置。 |
|
| 取消对当前位置的监控 |
| 进行IP城市查询 status为complete的时候表示查询成功,result包含省、市、adcode、citycode、城市中心点center等信息; status为error的时候表示查询失败 |
事件 | 参数 | 说明 |
---|---|---|
| 定位成功时触发此事件 | |
| 定位失败时触发此事件 |
GeolocationResult 对象
属性 | 类型 | 说明 |
---|---|---|
| 定位结果 | |
|
| 精度范围,单位:米 |
|
| 定位结果的来源,可能的值有:'html5'、'ip'、'sdk' |
|
| 形成当前定位结果的一些信息 |
|
| 是否经过坐标纠偏 |
|
| 状态信息 "SUCCESS" |
|
| 地址信息,详情参考Geocoder |
|
| 地址 |
|
| 定位点附近的POI信息,extensions等于'base'的时候为空 |
|
| 定位点附近的道路信息,extensions等于'base'的时候为空 |
|
| 定位点附近的道路交叉口信息,extensions等于'base'的时候为空 |
GeolocationError 对象
错误信息列表
错误信息 | 参数含义 | 说明 |
---|---|---|
|
| |
|
|
AMap.CitySearch
AMap.CitySearch 根据IP返回对应城市信息,提供根据输入IP或自动获取IP获取对应城市信息功能。用户可以通过自定义回调函数取回并显示查询结果。若服务请求失败,系统将返回错误信息。
构造函数 | 说明 |
---|---|
| 构造函数,提供IP定位返回所在城市信息功能 |
方法 | 返回值 | 说明 |
---|---|---|
| 自动获取用户IP,回调返回当前用户所在城市 当status为complete时,result为CitySearchResult; 当status为error时,result为错误信息info; 当status为no_data时,代表检索返回0结果 | |
| 根据输入IP地址返回对应城市信息 status同上 |
事件 | 参数 | 说明 |
---|---|---|
| 当查询成功时触发此事件 | |
| 当查询失败时触发此事件 |
CitySearchResult 对象
属性 | 类型 | 说明 |
---|---|---|
|
| 城市名称 |
| 地图展示该城市时使用的矩形区域 |