您现在的位置: 开发 > 地图 JS API > 参考手册 > 定位 >

高德 开发 地图 JS API 参考手册 定位

更新时间:2017年06月13日

插件名称

说明

是否插件

AMap.Geolocation

定位插件,整合了浏览器定位、精确IP定位、sdk辅助定位多种手段

AMap.CitySearch

城市查询,IP定位获取当前城市信息

AMap.Geolocation 插件

AMap.Geolocation定位服务插件。融合了浏览器定位、高精度IP定位、安卓定位sdk辅助定位等多种手段,提供了获取当前准确位置、获取当前城市信息、持续定位(浏览器定位)等功能。用户可以通过两种当时获得定位的成败和结果,一种是在getCurrentPosition的时候传入回调函数来处理定位结果,一种是通过事件监听来取得定位结果。Geolocation定位常见问题说明

:默认情况下,PC端优先使用精确IP定位,解决多数浏览器无法完成定位的现状,IP定位失败后使用浏览器定位;手机端优先使用浏览器定位,失败后使用IP定位;对于安卓WebView页面的开发者,可以结合定位sdk进行辅助定位,详细说明见useNative参数。IP定位的精度值为'null'。

由于Chrome、IOS10等已不再支持非安全域的浏览器定位请求,为保证定位成功率和精度,请尽快升级您的站点到HTTPS。

代码示例

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);      //返回定位出错信息
});

相关示例

构造函数

说明

AMap.Geolocation(opts:GeolocationOptions )

构造函数,创建浏览器定位实例

GeolocationOptions

类型

说明

enableHighAccuracy

Boolean

是否使用高精度

默认值:true

timeout

Number

超时毫秒数,若在指定时间内未定位成功,返回超时错误信息“TIMEOUT”

默认值:无穷大

noIpLocate

Number

是否禁止使用IP定位,默认值为0,可选值0-3

0: 可以使用IP定位

1: 手机设备禁止使用IP定位

2: PC上禁止使用IP定位

3: 所有终端禁止使用IP定位

noGeoLocation

Number

是否禁止使用浏览器Geolocation定位,默认值为0,可选值0-3

0: 可以使用浏览器定位

1: 手机设备禁止使用浏览器定位

2: PC上禁止使用浏览器定位

3: 所有终端禁止使用浏览器定位

GeoLocationFirst

Boolean

默认为false,设置为true的时候可以调整PC端为优先使用浏览器定位,失败后使用IP定位

maximumAge

Number

缓存毫秒数。定位成功后,定位结果的保留时间

默认值:0

convert

Boolean

是否使用坐标偏移,取值true:为高德地图坐标,取值false:为浏览器定位坐标

默认值:true

showButton

Boolean

是否显示定位按钮

默认值:true

buttonDom

String|DomElement

自定义定位按钮的内容。可支持HTML代码或Dom元素对象,不设置该属性则使用默认按钮样式

buttonPosition

String

定位按钮可停靠的位置

“LT”:左上角

“LB”:左下角

“RT”:右上角

“RB”:右下角

默认值:“LB”

buttonOffset

Pixel

按钮距离停靠位置的偏移量

默认值:Pixel(10,20)

showMarker

Boolean

定位成功时是否在定位位置显示一个Marker

默认值:true

markerOptions

MarkerOptions

定位点Marker的配置,不设置该属性则使用默认Marker样式

showCircle

Boolean

定位成功并且有精度信息时,是否用一个圆圈circle表示精度范围

默认值:true

circleOptions

CircleOptions

定位点Circle的配置,不设置该属性则使用默认Circle样式

panToLocation

Boolean

定位成功后,是否把定位得到的坐标设置为地图中心点坐标

默认值:true

zoomToAccuracy

Boolean

定位成功且显示精度范围时,是否把地图视野调整到正好显示精度范围

默认值:false

useNative

Boolean

是否使用安卓定位sdk用来进行定位,默认:false

适用于同时在APP中使用安卓定位sdk并在APP WebView中使用了JSAPI的开发者。开启后,将优先尝试使用sdk进行定位,失败后依次尝试浏览器定位和IP定位。

注:如果要使用辅助定位的功能,除了需要将useNative属性设置为true以外,还需要调用高德定位sdk中,LocationManagerProxy类的startSocket()方法,开启辅助H5定位功能;如果不用,就调用stopSocket()方法停止辅助H5定位功能。具体用法可参考定位SDK的参考手册

extensions

String

JSAPI在定位成功的时候会将得到的经纬度进行逆地理编码后获取地址信息,以方便开发者的进一步使用;

extensions用来设定是否需要周边POI、道路交叉口等信息,可选值'base'、'all'。

默认为'base',只返回地址信息;

设定为'all'的时候将返回周边POI、道路交叉口等信息。

方法

返回值

说明

isSupported( )

Boolean

是否支持浏览器定位,当不支持是getCurrentPosition也会使用尝试进行精确IP定位

getCurrentPosition(callback:function(status,result){})


获取用户当前的精确位置信息

当回调函数中的status为complete的时候表示定位成功,result为GeolocationResult对象;

当回调函数中的status为error的时候表示定位失败,result为GeolocationError对象;                 callback的方式和事件监听的方式二者选择一种即可。

watchPosition( )

Number

使用浏览器定位接口监控当前位置,移动端有效。在监控过程中,每隔一段时间会自动调用定位成功或失败的回调函数。

注:由于时间间隔受浏览器限制,如您想自定义时间间隔,建议您使用定时器,每隔一段时间调用一次getCurrentPosition获取当前位置。

clearWatch(watchId:Number)

Number

取消对当前位置的监控

getCityInfo(callback:function(status,result){})


进行IP城市查询

status为complete的时候表示查询成功,result包含省、市、adcode、citycode、城市中心点center等信息;

status为error的时候表示查询失败

事件

参数

说明

complete

GeolocationResult

定位成功时触发此事件

error

GeolocationError

定位失败时触发此事件

GeolocationResult 对象

属性

类型

说明

position

LngLat

定位结果

accuracy

Number

精度范围,单位:米

location_type

String

定位结果的来源,可能的值有:'html5'、'ip'、'sdk'

message

String

形成当前定位结果的一些信息

isConverted

Boolean

是否经过坐标纠偏

info

String

状态信息 "SUCCESS"

addressComponent

AddressComponent

地址信息,详情参考Geocoder

formattedAddress

String

地址

pois

Array

定位点附近的POI信息,extensions等于'base'的时候为空

roads

Array

定位点附近的道路信息,extensions等于'base'的时候为空

crosses

Array

定位点附近的道路交叉口信息,extensions等于'base'的时候为空

GeolocationError 对象

属性

类型

说明

info

String

错误信息,参考错误信息列表

message

String

造成定位失败结果的一些有用信息message说明

错误信息列表

错误信息

参数含义

说明

NOT_SUPPORTED

当前浏览器不支持定位功能 


FAILED

定位失败,失败原因可在message字段中获得。定位失败的原因


AMap.CitySearch

AMap.CitySearch 根据IP返回对应城市信息,提供根据输入IP或自动获取IP获取对应城市信息功能。用户可以通过自定义回调函数取回并显示查询结果。若服务请求失败,系统将返回错误信息

构造函数

说明

AMap.CitySearch( )

构造函数,提供IP定位返回所在城市信息功能

方法

返回值

说明

getLocalCity(cbk:function(status:String,result:info/CitySearchResult))


自动获取用户IP,回调返回当前用户所在城市

当status为complete时,result为CitySearchResult;

当status为error时,result为错误信息info;

当status为no_data时,代表检索返回0结果

getCityByIp(ip:String,

callback:function(status:String,result:info/CitySearchResult))


根据输入IP地址返回对应城市信息

status同上

事件

参数

说明

complete

CitySearchResult

当查询成功时触发此事件

error

ErrorStatus

当查询失败时触发此事件

CitySearchResult 对象

属性

类型

说明

city

String

城市名称

bounds

Bounds

地图展示该城市时使用的矩形区域

移动端
示例中心
功能
在线体验
常见问题