AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/07/27 10:37
您当前查看的是 JSAPI GL 历史版本文档。该版本仅用于维护现有项目,不建议用于新项目开发。新项目请使用 JSAPI 4.0,如需升级现有项目,请参考升级指南
You are viewing the legacy JSAPI GL documentation. This version is maintained for existing projects only and is not recommended for new development. For new projects, use the JSAPI 4.0 documentation. If you are upgrading an existing project, please refer to the Migration Guide.
定位
简介

JavaScript API提供在Web端获取当前位置信息的方法,融合了浏览器定位、IP定位、安卓定位SDK辅助定位等多种手段,提供了获取当前准确位置、获取当前城市信息等功能。
浏览器定位精度和性能依赖浏览器自身特性,IP定位的精度值为城市级别。
对于安卓WebView页面的开发者,可以结合定位SDK进行辅助定位,使用方法参见定位SDK相关章节
注意:

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

  2. iOS15系统浏览器默认关闭位置请求,需要用户设置手机为允许/询问后方可获取精确的定位,定位权限的开启方式请参见iOS15定位问题

  3. 由于浏览器原生定位成功率并不高,我们提供ip和安卓sdk定位进行辅助,如果定位精准在城市级别,可提供ak联系我们提高定位精准度。

提供的定位服务
接口类名说明

浏览器定位

Geolocation

优先调用浏览器H5定位接口,如果失败会调用IP定位

IP定位

LocalCity

根据用户IP 返回城市级别的定位结果

定位SDK辅助定位

Geolocation

当您的APP中有内置的Web页面,同时在Web页面需要提供您的当前位置信息时,可调用集成在App中的百度地图定位SDK来获取更精准的位置信息

状态码说明
状态码说明

6

ERR_PERMISSION_DENIED,没有权限,定位被拒绝

2

ERR_POSITION_UNAVAILABLE,定位不可用

8

ERR_POSITION_UNAVAILABLE,定位超时

定位方法代码示例
1. 浏览器定位
var map = new BMapGL.Map('allmap');
var point = new BMapGL.Point(116.331398, 39.897445);
map.centerAndZoom(point, 12);
var geolocation = new BMapGL.Geolocation();
geolocation.getCurrentPosition(function (r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMapGL.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
alert('您的位置:' + r.point.lng + ',' + r.point.lat);
} else {
alert('failed' + this.getStatus());
}
});
2. IP定位
var map = new BMapGL.Map('allmap');
var point = new BMapGL.Point(116.331398, 39.897445);
map.centerAndZoom(point, 12);
function myFun(result) {
var cityName = result.name;
map.setCenter(cityName);
alert('当前定位城市:' + cityName);
}
var myCity = new BMapGL.LocalCity();
myCity.get(myFun);
3. 定位SDK辅助定位
var map = new BMapGL.Map('allmap');
var point = new BMapGL.Point(116.331398, 39.897445);
map.centerAndZoom(point, 12);
var geolocation = new BMapGL.Geolocation();
// 开启SDK辅助定位
geolocation.enableSDKLocation();
geolocation.getCurrentPosition(function (r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
alert('您的位置:' + r.point.lng + ',' + r.point.lat);
} else {
alert('failed' + this.getStatus());
}
});

上一篇

出行路线规划

下一篇

线图层
本篇文章对您是否有帮助?