setAgreePrivacy initMapSDK open customStyle enableCustom close show hide setRect getLocation stopLocation getLocationServices getCoordsFromName getNameFromCoords getDistance showUserLocation setCenter getCenter setZoomLevel getZoomLevel setMaxAndMinZoomLevel getShowMapPoi setShowMapPoi setMapAttr setRotation setOverlook setScaleBar setCompass setHeatMap setBuilding setRegion getRegion transCoords zoomIn zoomOut isPolygonContantsPoint addEventListener removeEventListener startSearchGPS stopSearchGPS getCurrentLocation snapshotMap
addAnnotations getAnnotationCoords setAnnotationCoords annotationExist setBubble popupBubble closeBubble addBillboard addMobileAnnotations moveAnnotation removeAnnotations addCluster removeCluster addClusterListener setWebBubble addWebBubbleListener removeWebBubbleListener
searchRoute
drawRoute
removeRoute
searchBusRoute
drawBusRoute
removeBusRoute
searchInCity
searchNearby
searchInBounds
autocomplete
searchDistrict
removeDistrict
getHotCityList
getOfflineCityList
searchCityByName
getAllUpdateInfo
getUpdateInfoByID
start
update
pause
remove
addOfflineListener
removeOfflineListener
为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
百度地图简介
百度地图是百度提供的一项网络地图搜索服务,覆盖了国内近400个城市、数千个区县。在百度地图里,用户可以查询街道、商场、楼盘的地理位置,也可以找到离您最近的所有餐馆、学校、银行、公园等等。2010年8月26日,在使用百度地图服务时,除普通的电子地图功能之外,新增加了三维地图按钮。
百度地图特色功能
智能查询,出行无忧: 拥有强大的路线查询及规划能力,告别迷路可能。从A到B,总能给出最佳线路及打车费用,还有N条备选方案。支持公交、驾车、步行、地铁四种出行方式;随时随地查看实时路况,街道真实全景图和室内图。
导航精准,零罚单: 语音搜索功能,帮助告别繁琐的手动输入,让您开车更安全。 路况播报,实时播报您周围路况动态,随时清晰掌握每一条道路的路况及电子眼预报,不再为罚单发愁。 步行也能导航!结合街道全景,精彩一步到位。
权威数据,免费下载: 覆盖行业最全、最准的地点信息,提供海量资源免费下载。离线也能看地图,离线包瘦身90%,支持在线更新,更快捷更省流量!导航资源数据包,免费下载路口3D+卫星版实景图。
附近吃喝玩乐,商务预订,一网打尽: 提供附近美食、酒店、电影、购物、打车、外卖、景点、银行等海量商户信息,包括商户电话、地址、地图、点评,一键规划路线,在线预订;免费下载优惠券,还可享受最新鲜的团购折扣信息。
原生插件概述
bMap 原生插件封装了百度地图的原生 SDK,集成了百度地图常用基本接口;手机版原生地图,不同于 js 地图,相对于js地图而言,本原生插件封装的原生手机地图更加流畅迅速、动画效果更加逼真。使用此原生插件可轻松把百度地图集成到自己的app内,实现百度地图常用的定位、关键字搜索、周边搜索、自定义标注及气泡、查公交路线等各种功能;另外本原生插件已支持百度地图离线版本。
若某些带UI的接口不能满足开发设计需求,开发者(借助于原生开发者)可在本原生插件基础上修改少量原生代码,随心所欲的自定义百度地图所具有的原生功能,简单、轻松、快捷、高效、迅速集成百度地图,将自己的 app 和百度地图实现无缝链接。
原生插件使用攻略
注意事项
setTimeout
)处理。使用此原生插件之前必须先配置 config 文件,ios 配置方法如下:
<feature name="bMap">
<param name="ios_api_key" value="81qz3dBYB5q2nGji4IYrawr1" />
</feature>
字段描述:
ios_api_key:在百度地图开放平台申请的 iOS 端 AK
百度ak申请方法见 百度地图接入指南,申请百度key注意事项
注意:在使用搜索类接口时,请确保您的 ak 是通过百度认证的状态,否则会报异常
iOS如果需要自定义当前位置图标需要自定义原生插件
制作方法如下:下载 bMap 原生插件 zip 包并解压,将自己的图片替换 zip 包内 target 目录下的 mapapi.bundle 里的 images 目录内的 icon_center_point。然后重新压缩为 zip 包文件上传自定义原生插件,云编译时勾选该原生插件。点击 android 下载安卓平台原生插件包。
安卓配置如下:
Android 需要将以下代码拷贝到config.xml中,其中的value值替换成你的appKey即可
<meta-data name="com.baidu.lbsapi.API_KEY" value="your app key"/>
隐私合规接口
自原生插件 1.5.0后请务必同意该接口,否则该原生插件将不能正常使用,隐私政策可参考百度地图官网
setAgreePrivacy(callback(ret, err))
var map = api.require('bMap');
map.setAgreePrivacy({
agree:true
});
iOS、Android系统
可提供的1.5.0及更高版本
初始化百度地图引擎,Android & ios都需要调用该接口进行初始化
使用场景:
当开发者尚未调用 open 接口,直接调用 getLocation、getCoordsFromName、getNameFromCoords、getDistance 以及搜索类接口时,需要首先调用此接口初始化地图引擎,然后在本接口的回调内调用检索相关接口(getLocation、getCoordsFromName、getNameFromCoords、getDistance 以及搜索类),以提高检索成功率。
initMapSDK(callback(ret, err))
ret:
{
status: true //布尔类型;是否初始化成功,true||false
}
err:
{
code: 0 //数字类型;错误码,取值范围如下:
//-300:链接服务器错误
//-200:服务返回数据异常
//0:授权验证通过
//1:因网络鉴权失败
//2:KEY非法鉴权失败
//101:ak不存在
//102:mcode签名值不正确
//200:APP不存在,AK有误请检查再重试
//201:APP被用户自己禁用,请在控制台解禁
//更多错误码参考:http://lbsyun.baidu.com/index.php?title=lbscloud/api/appendix
}
var map = api.require('bMap');
map.initMapSDK(function(ret) {
if (ret.status) {
alert('地图初始化成功,可以从百度地图服务器检索信息了!');
}
});
iOS、Android系统
可提供的1.0.4及更高版本
打开百度地图
open({params}, callback(ret))
rect:
{
x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;地图的宽度;默认:所属的 Window 或 Frame 的宽度
h: 480 //(可选项)数字类型;地图的高度;默认:所属的 Window 或 Frame 的高度
}
center:
{
lon: 116.213, //数字类型;打开地图时设置的中心点经度
lat: 39.213 //数字类型;打开地图时设置的中心点纬度
}
zoomLevel:
showUserLocation:
fixedOn:
fixed:
ret:
{
status: true //布尔型;true||false
}
var map = api.require('bMap');
map.open({
rect: {
x: 0,
y: 0,
w: 320,
h: 300
},
center: {
lon: 116.4021310000,
lat: 39.9994480000
},
zoomLevel: 10,
showUserLocation: true,
fixedOn: api.frameName,
fixed: true
}, function(ret) {
if (ret.status) {
alert('地图打开成功');
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
定制地图主题,需要在open接口调用前调用。
注意:在iOS端百度新版SDK改为open接口之后调用。
customStyle({params})
configPath:
customConfig:
mode:
var bMap = api.require('bMap');
bMap.customStyle();
iOS系统,Android系统
可提供的1.1.8及更高版本
打开/关闭定制主题,需要在open接口调用后才生效
注意:在iOS端百度新版SDK改为open接口之后调用。
enableCustom({params})
enable:
var bMap = api.require('bMap');
bMap.enableCustom();
iOS系统,Android系统
可提供的1.1.8及更高版本
关闭百度地图
close()
var map = api.require('bMap');
map.close();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示百度地图
show()
var map = api.require('bMap');
map.show();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏百度地图
hide()
var map = api.require('bMap');
map.hide();
iOS系统,Android系统
可提供的1.0.0及更高版本
重设地图的显示区域
setRect({params})
rect:
{
x: 0, //(可选项)数字类型;地图左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:原值
y: 0, //(可选项)数字类型;地图左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:原值
w: 320, //(可选项)数字类型;地图的宽度;默认:原值
h: 480 //(可选项)数字类型;地图的高度;默认:原值
}
var map = api.require('bMap');
map.setRect({
rect: {
x: 0,
y: 0,
w: 320,
h: 300
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开始定位,若要支持后台定位需配置 config.xml 文件 location 字段,无需调用 open 接口即可定位。在 android 平台上,离线定位功能需要手动打开GPS,并在无遮挡物的室外
getLocation({params}, callback(ret, err))
accuracy:
autoStop:
filter:
enableLocInForeground:
notification:
内部字段:
{
id : 1, //(必选项) 数字类型;为通知栏notifation设置唯一id,必须大于0
contentTitle : //(必选项) 字符串类型;标题
contentText: //(必选项) 字符串类型;内容
}
ret:
{
status: true, //布尔型;true||false
lon: 116.213, //数字类型;经度
lat: 39.213, //数字类型;纬度
accuracy: 65, //数字类型;本次定位的精度,仅支持 iOS 平台
timestamp: 1396068155591, //数字类型;时间戳
locationType:netWork //字符串;定位类型;GPS||NetWork||OffLine(仅限Android)
}
err:
{
code: 0, //数字类型;错误码
msg: '' //字符串类型;错误信息说明
}
var bMap = api.require('bMap');
bMap.getLocation({
accuracy: '100m',
autoStop: true,
filter: 1
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
alert(err.code);
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止定位
stopLocation()
var bMap = api.require('bMap');
bMap.stopLocation();
iOS系统,Android系统
可提供的1.0.0及更高版本
获取定位是否开启,及当前 app 获取的定位权限
getLocationServices(callback(ret))
ret:
{
enable: true, //布尔型;当前设备定位功能是否开启,true|false;在Android 平台上本参数表示GPS是否开启;在iOS 平台上本参数表示当前设备定位功能是否可用,若判断当前app的定位功能,可用authorizationStatus识别。
authorizationStatus: //字符串;当前 App 获取的定位权限,Android 平台无此参数。取值范围如下:
//notDetermined:用户从未选择过权限
//restricted:未授权,且用户无法更新,如家长控制情况下
//denied:用户拒绝该应用使用定位服务
//always:总是使用
//whenInUse:按需使用
}
var bMap = api.require('bMap');
bMap.getLocationServices(function(ret, err) {
if (ret.enable) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
alert("未开启定位功能!");
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据地址查找经纬度,无需调用 open 接口即可使用
getCoordsFromName({params}, callback(ret, err))
city:
address:
ret:
{
status: true, //布尔型;true||false
lon: 116.351, //数字类型;地址所在经度
lat: 39.283 //数字类型;地址所在纬度
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.getCoordsFromName({
city: '北京',
address: '天安门'
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据经纬度查找地址信息,无需调用 open 接口即可使用
getNameFromCoords({params}, callback(ret, err))
lon:
lat:
ret:
{
status: true, //布尔型;true||false
province: '', //字符串类型;省份
city: '', //字符串类型;城市
district: '', //字符串类型;县区
streetName: '', //字符串类型;街道名
streetNumber: '', //字符串类型;街道号
country:'', //字符串类型;国家
countryCode:'', //字符串类型;国家代码
adCode:'', //字符串类型;行政区域编码
businessCircle:'', //字符串类型;商圈名称
sematicDescription:'', //字符串类型;结合当前位置POI的语义化结果描述
cityCode:'', //字符串类型;城市编码
lon: 116.351, //数字类型;经度
lat: 39.283, //数字类型;纬度
address: '', //字符串类型;地址信息
poiList:[{ //数组类型;经纬度点热点列表
name: '', //字符串类型;热点名称
uid: '', //字符串类型;热点id
address: '', //字符串类型;热点地址
city: '', //字符串类型;热点所在城市
phone: '', //字符串类型;热点电话
postcode: '', //字符串类型;热点邮编
epoitype: '', //字符串类型;热点类型,0:普通点 1:公交站 2:公交线路 3:地铁站 4:地铁线路
coord: { //JSON对象;热点坐标信息
lat: , //数字类型;热点纬度
lon: //数字类型;热点经度
}
}]
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.getNameFromCoords({
lon: 116.384767,
lat: 39.989539
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取地图两点之间的距离,无需调用 open 接口即可使用 在版本 1.4.0 后不再支持
getDistance({params}, callback(ret))
start:
{
lon: 106.486654, //数字类型;起点的经度
lat: 29.490295 //数字类型;起点的纬度
}
end:
{
lon: 106.581515, //数字类型;终点的经度
lat: 29.615467 //数字类型;终点的纬度
}
ret:
{
status: true, //布尔型;true||false
distance: 16670.90 //数字类型;两点之间的距离,单位:米
}
var map = api.require('bMap');
map.getDistance({
start: {
lon: 106.486654,
lat: 29.490295
},
end: {
lon: 106.581515,
lat: 29.615467
}
}, function(ret) {
if (ret.status) {
alert(ret.distance);
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
是否在地图上显示用户位置,会自动移动地图可视区域中心点到用户当前坐标位置,自带地图移动动画效果
showUserLocation({params})
isShow:
trackingMode:
imageName:
imagePath:
var map = api.require('bMap');
map.showUserLocation({
isShow: true,
trackingMode: 'none'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据经纬度设置百度地图中心点,此接口可带动画效果
setCenter({params})
coords:
{
lon: 116.404, //数字类型;设置中心点的经度
lat: 39.915 //数字类型;设置中心点的纬度
}
animation:
var map = api.require('bMap');
map.setCenter({
coords: {
lon: 116.404,
lat: 39.915
},
animation: false
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取百度地图中心点坐标
getCenter(callback(ret))
ret:
{
lon: 116.404, //数字类型;地图中心点的经度
lat: 39.915 //数字类型;地图中心点的纬度
}
var map = api.require('bMap');
map.getCenter(function(ret) {
alert(ret.lon + '*' + ret.lat);
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置百度地图缩放等级,此接口自带动画效果
setZoomLevel({params})
level:
var map = api.require('bMap');
map.setZoomLevel({
level: 10
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取百度地图比例尺级别,取值范围:3-18级
getZoomLevel(callback(ret))
ret:
{
level: 10, //数字类型;地图比例尺级别,取值范围:3-18级
}
var map = api.require('bMap');
map.getZoomLevel(function(ret) {
alert(ret.level);
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置最大缩放比例,取值范围:3-18级
setMaxAndMinZoomLevel({params})
maxLevel:
minLevel:
var map = api.require('bMap');
map.setMaxAndMinZoomLevel({
maxLevel: 15,
minLevel:10
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设定地图是否显示底图 poi 标注(不包含室内图标注)
setShowMapPoi({params})
showMapPoi:
var map = api.require('bMap');
map.setShowMapPoi({
showMapPoi: true
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取地图是否显示底图 poi 标注(不包含室内图标注),Android系统(不支持)
getShowMapPoi(callback(ret))
ret:
{
showMapPoi: true //布尔类型;是否显示地图 poi
}
var map = api.require('bMap');
map.getShowMapPoi(function(ret) {
alert(ret.showMapPoi);
});
iOS系统,Android系统(不支持)
可提供的1.0.0及更高版本
设置百度地图相关属性
setMapAttr({params})
type:
zoomEnable:
scrollEnable:
rotateEnabled:
overlookEnabled:
var map = api.require('bMap');
map.setMapAttr({
type: 'standard'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置百度地图旋转角度,此接口自带动画效果
setRotation({params})
degree:
var map = api.require('bMap');
map.setRotation({
degree: 30
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置百度地图俯视角度,此接口自带动画效果
setOverlook({params})
degree:
var map = api.require('bMap');
map.setOverlook({
degree: -30
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置百度地图比例尺
setScaleBar({params})
show:
position:
{
x: 0, //(可选项)数字类型;比例尺左上角的 x 坐标(相对于地图);默认:0
y: 0 //(可选项)数字类型;比例尺左上角的 y 坐标(相对于地图);默认:0
}
var map = api.require('bMap');
map.setScaleBar({
show: true,
position: {
x: 100,
y: 100
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置百度地图指南针位置,只有地图旋转或视角变化时才显示指南针 注:android默认会在地图旋转的时候显示指南针,不支持自定义位置
setCompass({params})
position:
{
x: 0, //(可选项)数字类型;指南针中心点的 x 坐标(相对于地图);默认:指南针宽度/2.0
y: 0 //(可选项)数字类型;指南针中心点的 y 坐标(相对于地图);默认:指南针高度/2.0
}
var map = api.require('bMap');
map.setCompass({
position: {
x: 100,
y: 100
}
});
iOS系统
可提供的1.0.0及更高版本
设置百度地图交通路况
setTraffic({params})
traffic:
var map = api.require('bMap');
map.setTraffic({
traffic: true
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置百度地图城市热力图
setHeatMap({params})
heatMap:
var map = api.require('bMap');
map.setHeatMap({
heatMap: true
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设定地图是否现实 3D 楼块效果,地图放大,才会有 3D 楼快效果,倾斜视角 3D 效果会更明显
setBuilding({params})
building:
var map = api.require('bMap');
map.setBuilding({
building: true
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置地图显示范围(矩形区域),此接口可带动画效果
setRegion({params})
lbLon:
lbLat:
rtLon:
rtLat:
animation:
var map = api.require('bMap');
map.setRegion({
lbLon: 116.027143,
lbLat: 39.772348,
rtLon: 116.832025,
rtLat: 40.126349,
animation: true
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取地图显示范围(矩形区域)
getRegion(callback(ret))
ret:
{
status: true, //布尔型;true||false
lbLon: 116.027143, //数字类型;矩形区域左下角的经度
lbLat: 39.772348, //数字类型;矩形区域左下角的纬度
rtLon: 116.832025, //数字类型;矩形区域右上角的经度
rtLat: 40.126349 //数字类型;矩形区域右上角的纬度
}
var map = api.require('bMap');
map.getRegion(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
将其它类型的地理坐标转换为百度坐标。无需调用 open 接口即可使用
transCoords({params}, callback(ret, err))
type:
lon:
lat:
mcode:
ret:
{
status: true, //布尔型;true||false
lon: 116.213, //数字类型;转换后的百度地理坐标经度
lat: 39.213 //数字类型;转换后的百度地理坐标纬度
}
err:
{
code: 1 //数字类型;错误码
//1:(参数非法)
//2:(转换失败)
}
var map = api.require('bMap');
map.transCoords({
type: "common",
lon: 116.351,
lat: 39.283,
mcode: '0B:13:25:D7:85:46:0A:67:12:F3:29:88:64:56:63:10:7A:9C:C4:59;com.builder.A6985734480360'
}, function(ret, err) {
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统,Android系统
可提供的1.0.0及更高版本
缩小地图,放大视角,放大一级比例尺,此接口自带动画效果
zoomIn()
var map = api.require('bMap');
map.zoomIn();
iOS系统,Android系统
可提供的1.0.0及更高版本
放大地图,缩小视角,缩小一级比例尺,此接口自带动画效果
zoomOut()
var map = api.require('bMap');
map.zoomOut();
iOS系统,Android系统
可提供的1.0.0及更高版本
监听地图相关事件
addEventListener({params}, callback(ret))
name:
ret:
{
status: true, //布尔型;true||false
lon: 116.351, //数字类型;触发事件的地点的经度(longPress,click,dbclick),地图中心的经度(viewChange,zoom)
lat: 39.283, //数字类型;触发事件的地点的纬度(longPress,click,dbclick),地图中心的经度(viewChange,zoom)
zoom: 15, //数字类型;地图缩放角度
rotate: 30, //数字类型;地图旋转角度
overlook: 30 //数字类型;视角倾斜度
zoomType: 'zoomIn' //字符串类型;zoomIn 放大,zoomOut缩小;
}
var map = api.require('bMap');
map.addEventListener({
name: 'longPress'
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
判断已知点是否在指定的多边形区域内(在版本1.4.0+以后不支持)
isPolygonContantsPoint({params}, callback(ret))
point:
{
lon: 116.297, //数字类型;经度
lat: 40.109 //数字类型;纬度
}
points:
[{
lon: 116.297, //数字类型;经度
lat: 40.109 //数字类型;纬度
}]
ret:
{
status: true //布尔类型;目标点是否在指定区域内,true || false
}
var map = api.require('bMap');
map.isPolygonContantsPoint({
point: {
lon: 116.39432327,
lat: 39.98963192
},
points: [{
lon: 116.39432327,
lat: 39.98963192
}, {
lon: 116.49432328,
lat: 39.98963192
}, {
lon: 116.39432327,
lat: 39.88933191
}]
}, function(ret) {
alert(ret.status);
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止监听地图相关事件
removeEventListener({params})
name:
var map = api.require('bMap');
map.removeEventListener({
name: 'longPress'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开始搜索GPS信息(卫星个数,以及每个卫星的信噪比数组),本接口仅支持 android 平台
startSearchGPS(callback(ret, err))
ret:
{
status: true, //布尔类型;true || false,为false时可能是未开启GPS
satelliteCount: 3, //数字类型; 当前能搜索到的卫星数
snrArray: [20,30,23] //数组类型;各个卫星的信噪比
}
var map = api.require('bMap');
map.startSearchGPS(
function(ret) {
if (ret.status) {
alert(ret.satelliteCount);
}
}
);
Android系统
可提供的1.0.0及更高版本
停止搜索GPS信息,本接口仅支持 android 平台
stopSearchGPS()
var map = api.require('bMap');
map.stopSearchGPS();
Android系统
可提供的1.0.0及更高版本
获取当前定位,需调用 open 接口,且showUserLocation为true时,才可定位。
getCurrentLocation(callback(ret))
ret:
{
status: true, //布尔类型;是否获取成功,true|false
lon: 116.213, //数字类型;经度
lat: 39.213, //数字类型;纬度
updating: false, //布尔类型;是否正在更新位置信息,暂仅支持 iOS 平台
title: '', //字符串类型;当前位置的标题信息,暂仅支持 iOS 平台
subtitle: '', //字符串类型;当前位置的子标题信息,暂仅支持 iOS 平台
headInfo: { //JSON 对象;当前位置方向信息,暂仅支持 iOS 平台
magnetic: 20, //数字类型;地磁方向角度,范围:0.0 - 359.9,0表示正北
trueHeading: 10, //数字类型;地理方向角度,范围:0.0 - 359.9,0表示正北
accuracy: 10 //数字类型;方向精度,Represents the maximum deviation of where the magnetic heading may differ from the actual geomagnetic heading in degrees. A negative value indicates an invalid heading
}
}
err:
{
code: 1 //数字类型;错误码,取值如下:
// 1:尚未定位成功
//-1:未知错误
}
var bMap = api.require('bMap');
bMap.getCurrentLocation(
function(ret, err) {
if (ret.status){
api.alert({
msg: JSON.stringify(ret)
})
}else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
截图 需调用 open 接口
snapshotMap(params, callback(ret))
path:
rect:
x: // 数字类型;左边开始区域
y: // 数字类型;上边开始区域
w:// 数字类型;右边截止区域
h:// 数字类型;底部截止区域
ret:
{
status: true, //布尔类型;是否获取成功,true|false
path:'' //字符串类型;图片保存路径;status为true时有值
}
var bMap = api.require('bMap');
bMap.snapshotMap(
function(ret, err) {
if(ret.status){
api.alert({
msg: JSON.stringify(ret)
})
}
});
传入地标点,自适应地图层级需调用 open 接口
showAnnotations(params, callback(ret))
pointArray:
[
{
lon:, //经度
lat:, //纬度
},
]
location:
{
lon:, //经度
lat:, //纬度
}
zoomLevel:
ret:
{
status: true, //布尔类型;是否获取成功,true|false
}
var bMap = api.require('bMap');
bMap.showAnnotations(
function(ret, err) {
if(ret.status){
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.2.1及更高版本
打开关闭室内地图
注意
1.因路况、卫星图和城市热力图,仅支持20级地图数据显示,室内地图放大到22级,打开路况、卫星图或城市热力图,无相应数据显示。
2.室内图默认是关闭的,通过本接口打开
setIndoorMap({params})
draggable:
var map = api.require('bMap');
map.setIndoorMap({
enable: true
});
iOS系统,Android系统
可提供的1.0.9及更高版本
添加进出室内地图的监听
addIndoorListener(callback(ret))
ret:
{
enter: true, //布尔型;进出室内地图,true:进入
strID: ‘’, //字符串类型;室内ID
strFloor:‘’, //字符串类型;当前楼层
}
var map = api.require('bMap');
map.addIndoorListener(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.9及更高版本
切换楼层
switchIndoorMapFloor({params},callback(ret,err))
strID:
strFloor:
ret:
{
status: true, //布尔类型;是否设置成功
}
err:
{
code: 1 //数字类型;错误码
//1:切换楼层失败
//2:地图还未聚焦到传入的室内图
//3:当前室内图不存在该楼层
}
var map = api.require('bMap');
map.switchIndoorMapFloor({
strFloor:'',
strID:''
});
iOS系统,Android系统
可提供的1.0.9及更高版本
搜索室内地图内容
indoorSearch({params}, callback(ret, err))
strID:
keyword:
pageIndex:
pageCapacity:
ret:
{
status: true, //布尔型;是否检索成功true||false
totalPoiNum: , //数字类型;本次POI室内搜索的总结果数
currPoiNum: , //数字类型;当前页的室内POI结果数(android不支持)
pageNum: , //数字类型;本次POI室内搜索的总页数
pageIndex: , //数字类型;当前页的索引(android不支持)
poiIndoorInfoList: [{ //数组类型;返回搜索结果列表
name: '', //字符串类型;名称
uid: '', //字符串类型;POIuid
indoorId: '', //字符串类型;该室内POI所在 室内ID
floor: '', //字符串类型;该室内POI所在楼层
address: '', //字符串类型;地址
city: '', //字符串类型;所在城市(android不支持)
cid: '', //字符串类型;所在城市id(ios不支持)
phone: '', //字符串类型;电话号码
pt: { //JOSN对象;位置信息
latitude:, //数字类型;维度
longtitude: //数字类型;经度
},
tag: '', //字符串类型;POI标签
price: '', //数字类型;价格
starLevel: '', //数字类型;星级(0-50),50表示五星
grouponFlag: '', //数字类型;是否有团购
takeoutFlag: 0 , //数字类型;是否有外卖
waitedFlag: '', //数字类型;是否排队
grouponNum: '', //数字类型;团购数,-1表示没有团购信息
}]
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(该城市不支持公交搜索)
//4(不支持跨城市公交)
//5(没有找到检索结果)
//6(起终点太近)
//7(key错误)
//8(网络连接错误)
//9(网络连接超时)
//10(还未完成鉴权,请在鉴权通过后重试)
//11(室内图ID错误)
//12(室内图检索楼层错误)
//13(起终点不在支持室内路线的室内图内)
//14(起终点不在同一个室内)
//15(参数错误)
}
var map = api.require('bMap');
map.indoorSearch({
strID: '',
keyword: ''
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加标注信息
addAnnotations({params}, callback(ret))
annotations:
[{
id: 1, //数字类型;图标标注的唯一标识
lon: 116.233, //数字类型;图标标注所在位置的经度
lat: 39.134, //数字类型;图标标注所在位置的纬度
icon: 'widget://', //(可选项)字符串类型;指定的标注图标,要求本地路径(fs://、widget://),若不传则显示公用的 icon 图标
draggable: true //(可选项)布尔类型;所添加的标注是否可被拖动,若不传则以公用的 draggable 为准
size: 30, //(可选项)数字类型;标注大小;默认:30(注:由于android上百度地图并没有提供接口来控制标注的大小,而是原生插件本身通过给定的宽高来计算缩放比来缩放背景图片(也就是icon参数),以此来达到改变整个标注大小的目的,会有一定的偏差,所以在android上的处理方式是如果不传此参数,按照原图来展示)
}]
icon:
draggable:
ret:
{
id: 10 //数字类型;相应事件的标注的
eventType: 'clickContent', //字符串类型;交互事件类型
//取值范围:
//click(用户点击标注事件)
//drag(用户拖动标注事件)
dragState: 'starting' //字符串类型;标注被拖动的状态,当 eventType 为 drag 时本字段有值,
//取值范围:
//starting(开始拖动)
//dragging (拖动中)
//ending (拖动结束)
}
var map = api.require('bMap');
map.addAnnotations({
annotations: [{
id: 1,
lon: 116.297,
lat: 40.109
}, {
id: 2,
lon: 116.29,
lat: 40.109
}, {
id: 3,
lon: 116.298,
lat: 40.11
}],
icon: 'widget://',
draggable: true
}, function(ret) {
if (ret) {
alert(ret.id);
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取指定标注的经纬度
getAnnotationCoords({params}, callback(ret))
id:
ret:
{
lon: 116.213, //数字类型;标注的经度
lat: 39.213 //数字类型;标注的纬度
}
var map = api.require('bMap');
map.getAnnotationCoords({
id: 2
}, function(ret) {
if (ret) {
api.alert({ msg: JSON.stringify(ret) });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置某个已添加标注的经纬度
setAnnotationCoords(callback(ret, err))
id:
lon:
lat:
var map = api.require('bMap');
map.setAnnotationCoords({
id: 2,
lon: 116.39,
lat: 40.209
});
iOS系统,Android系统
可提供的1.0.0及更高版本
判断标注是否存在
annotationExist({params}, callback(ret))
id:
ret:
{
status: true //布尔类型;标注是否存在,true || false
}
var map = api.require('bMap');
map.annotationExist({
id: 2
}, function(ret) {
if (ret.status) {
api.alert({ msg: '存在' });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置点击标注时弹出的气泡信息
setBubble({params}, callback(ret))
id:
bgImg:
rect:
{
x: 0, //(可选项)数字类型;气泡左上角的 x (相对)坐标 ;默认:10
y: 0, //(可选项)数字类型;气泡左上角的 y (相对)坐标 ;默认:5
w: 320, //(可选项)数字类型;气泡的宽度;默认:35
h: 480 //(可选项)数字类型;气泡的高度;默认:50
}
content:
{
title: '', //字符串类型;弹出气泡的标题
subTitle: '', //(可选项)字符串类型;弹出气泡的概述内容,若不传则 title 在上下位置居中显示
illus: '' //(可选项)字符串类型;弹出气泡的配图(30*40规格),支持http://、https://、widget://、fs://等协议
}
styles:
{
titleColor: '#000', //(可选项)字符串类型;气泡标题的文字颜色,支持rgb、rgba、#;默认:'#000'
titleSize: 16, //(可选项)数字类型;气泡标题的文字大小;默认:16
subTitleColor: '#000', //(可选项)字符串类型;气泡概述内容的文字颜色,支持rgb、rgba、#;默认:'#000'
subTitleSize: 14, //(可选项)数字类型;气泡概述内容的文字大小;默认:14
illusAlign: 'left' //(可选项)字符串类型;气泡配图的显示位置;默认:'left'
//取值范围:
//left(图片居左)
//right(图片居右)
w: 160, //(可选项)数字类型;气泡的宽;默认:title的长度,并且不会超过地图视图的宽度-64,不会小于160(注:android不会计算title的长度,传多少是多少;另:由于android上百度地图并没有提供接口来控制气泡的宽高,而是原生插件本身通过给定的宽高来计算缩放比来缩放背景图片(也就是bgImg参数),以此来达到改变整个气泡大小的目的,会有一定的偏差,所以在android上的处理方式是如果不传此参数,按照原图来展示;h参数同理)
h: 90, //(可选项)数字类型;气泡的高;默认:90
}
ret:
{
id: 10, //数字类型;用户点击气泡返回的id
eventType: 'clickContent', //字符串类型;交互事件类型
//取值范围:
//clickContent(点击气泡文本内容)
//clickIllus(点击配图)
}
var map = api.require('bMap');
map.setBubble({
id: 2,
bgImg: 'widget://res/bubble_bg.png',
rect:{
x: 10,
y: 5,
w: 35,
h: 50
},
content: {
title: '大标题',
subTitle: '概述内容',
illus: 'http://ico.ooopic.com/ajax/iconpng/?id=145044.png'
},
styles: {
titleColor: '#000',
titleSize: 16,
subTitleColor: '#999',
subTitleSize: 12,
illusAlign: 'left'
}
}, function(ret) {
if (ret) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
弹出指定标注的气泡
popupBubble({params})
id:
var map = api.require('bMap');
map.popupBubble({
id: 2
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭已弹出的气泡
closeBubble({params})
id:
var map = api.require('bMap');
map.closeBubble({
id: 2
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加布告牌
addBillboard({params})
id:
coords:
{
lon: 116.233, //数字类型;布告牌所在位置的经度
lat: 39.134 //数字类型;布告牌所在位置的纬度
}
bgImg:
content:
{
title: '', //(可选项)字符串类型;布告牌的标题
subTitle: '', //(可选项)字符串类型;布告牌的概述内容
illus: '' //(可选项)字符串类型;布告牌的配图(35*50规格),支持http://、https://、widget://、fs://等协议
}
styles:
{
titleColor: '#000', //(可选项)字符串类型;布告牌标题的文字颜色,支持rgb、rgba、#;默认:'#000'
titleSize: 14, //(可选项)数字类型;布告牌标题的文字大小;默认:16
subTitleColor: '#000', //(可选项)字符串类型;布告牌概述内容的文字颜色,支持rgb、rgba、#;默认:'#000'
subTitleSize: 12, //(可选项)数字类型;布告牌概述内容的文字大小;默认:16
marginT: 10, //(可选项)数字类型;标题距布告牌顶端的距离,有插图时标题的左右间距都固定为10;默认:10
marginB: 15, //(可选项)数字类型;子标题距布告牌低端的距离,有插图时子标题的左右间距都固定为10;默认:原值
titleInCenter:false; // (可选项) 布尔类型;标题是否居中于布告牌;默认:false;仅支持Android
textAlignment: 'left', //(可选项)字符串类型;标题和自标题对齐方式;默认:'left' 改参数仅支持ios
//取值范围:
//left(居左对齐)
//center(居中对齐)
//right(居右对齐)
illusAlign: 'left', //(可选项)字符串类型;布告牌配图的显示位置;默认:自适应
//取值范围:
//left(图片居左)
//right(图片居右)
illusRect: { //JSON对象;插图位置大小
x:, //数字类型;插图左边距;默认:5
y:, //数字类型;插图上边距;默认:5
w:, //数字类型;插图宽;默认:35
h: //数字类型;插图高;默认:50
},
w: 160, //(可选项)数字类型;气泡的宽;默认:160(注:由于android上百度地图并没有提供接口来控制布告牌的大小,而是原生插件本身通过给定的宽高来计算缩放比来缩放背景图片(也就是bgImg参数),以此来达到改变整个布告牌大小的目的,会有一定的偏差,所以在android上的处理方式是如果不传此参数,按照原图来展示;h参数同理)
h: 75, //(可选项)数字类型;气泡的高;默认:75
}
badge:
{
titleColor: '#000', //(可选项)字符串类型;徽章文字颜色,支持rgb、rgba、#;默认:'#FF1493'
titleSize:16, // (可选性) 数字类型;标题字体大小,默认:16;仅支持Android
bgColor: '#000', //(可选项)字符串类型;徽章背景,支持rgb、rgba、#;默认:'#FFC0CB'
content: '#000', //(可选项)字符串类型;徽章文本;默认:''
w: 80, //(可选项)数字类型;徽章的宽;默认:60
h: 20, //(可选项)数字类型;徽章的高;默认:20
corner: 5, //(可选项)数字类型;徽章的圆角;默认:5
leftMargin:150, //(可选性)数字类型;徽章左边距,默认:50 仅支持Android
}
ret:
{
id: 4, //数字类型;用户点击布告牌返回的id
}
var map = api.require('bMap');
map.addBillboard({
id: 4,
coords: {
lon: 116.233,
lat: 39.134
},
bgImg: 'widget://image/bMapTest.png',
content: {
title: '大标题大标题大标题大标题',
subTitle: '概述内容概述内容概述内容',
illus: 'http://ico.ooopic.com/ajax/iconpng/?id=145044.png'
},
styles: {
titleColor: '#000',
titleSize: 16,
subTitleColor: '#999',
subTitleSize: 12,
illusAlign: 'left'
}
}, function(ret) {
if (ret) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加可移动、旋转的标注图标,注意:本 id 不可与 addAnnotations、addBillboard 接口内的 id 相同
addMobileAnnotations({params})
annotations:
[{
id: 10, //数字类型;图标标注的唯一标识
lon: 116.233, //数字类型;图标标注所在位置的经度
lat: 39.134, //数字类型;图标标注所在位置的纬度
icon: 'widget://' //字符串类型;指定的标注图标,要求本地路径(fs://、widget://)
}]
var map = api.require('bMap');
map.addMobileAnnotations({
annotations: [{
id: 10,
lon: 116.297,
lat: 40.109,
icon: 'widget://image/bMap_car1.png'
}, {
id: 11,
lon: 116.98,
lat: 40.109,
icon: 'widget://image/bMap_car2.png'
}, {
id: 12,
lon: 115.30,
lat: 40.109,
icon: 'widget://image/bMap_car3.png'
}, {
id: 13,
lon: 116.297,
lat: 39.109,
icon: 'widget://image/bMap_car1.png'
}, {
id: 14,
lon: 116.98,
lat: 39.109,
icon: 'widget://image/bMap_car2.png'
}, {
id: 15,
lon: 115.30,
lat: 39.109,
icon: 'widget://image/bMap_car3.png'
}]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移动地图上已添加的可移动、旋转的标注图标,在移动动画开始前,会先做 0.3 秒的旋转动画,使所移动的图标中间轴线顶端对准终点坐标点。由于百度官方 SDK 的 bug 限制,在 Android 平台上,如果标注添加到地图当前可视区域以外的区域,则不可以移动该标注
moveAnnotation({params}, callback(ret, err))
id:
duration:
end:
{
lon: 116.581515, //数字类型;终点的经度
lat: 29.615467 //数字类型;终点的纬度
}
ret:
{
id: //数字类型;移动动画结束的标注的 id
}
var map = api.require('bMap');
for (var i = 0; i < 6; i++) {
map.moveAnnotation({
id: 10 + i,
duration: 6,
end: {
lon: 116.3843839609304,
lat: 39.98964439091298
}
}, function(ret, err) {
alert(ret.id + '移动结束')
});
}
iOS系统,Android系统
可提供的1.0.0及更高版本
移除指定 id 的标注(可移动、不可移动)或布告牌
removeAnnotations({params})
ids:
var map = api.require('bMap');
map.removeAnnotations({
ids: [1,3,5,7]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
往地图上添加聚合点
显示逻辑:
可以添加多个点到地图上。缩放地图时,会自动根据当前显示区域,将多个点聚合成一个点显示在地图上,并显示该点包含多少个聚合点。聚合点无点击相应事件,单个点才有(通过addClusterListener接口监听)。聚合点及单个点的样式可通过 styles 参数控制。比如:在天安门广场添加了20个聚合点,当地图缩小到当前屏幕显示五环以内的北京时,天安门广场位置只显示一个点,点的标题显示为数字20。当地图放大到当前屏幕只显示天安门广场时才显示单个点,可以通过 addClusterListener 接口监听其单击事件。
addCluster({params})
styles:
{
size: { //(可选项)JSON对象;聚合点的大小(注:android上此参数只能设置pointBg为颜色的时候,单个标注的大小)
w:, //(可选项)数字类型;聚合点的宽;默认:22.0
h: //(可选项)数字类型;聚合点的高;默认:22.0
},
bg: { //JSON对象;聚合点样式配置
pointBg:'', //字符串类型;单个点的背景配置,支持rgba、rgb、#、img;默认:默认图标
grade:[], //数组类型;聚合点等级组成的数组,(android不支持)如:[1,5,10]表示有2-5、6-10、10+(不包含10个以上点的聚合点)三个等级,每个等级的聚合点可配置不同的样式(对应bgs数组内的元素)。;默认:[1,5,10]
bgs:[], //数组类型;各等级聚合点的背景配置,与grade一一对应,支持rgb、rgba、#、img(本地路径fs://、widget://);(android不支持)默认:['蓝色','绿色','红色']
numberColors[]//数组类型;各等级聚合点显示的数字字体颜色,与grade一一对应,支持rgb、rgba、#;(android不支持)默认:['#fff','#fff','#fff']
}
}
data:
[{
lat:, //数字类型;点纬度
lon:, //数字类型;点纬度
title:, //字符串类型;点击后弹出气泡的标题
subtitle:, //字符串类型;点击后弹出气泡的子标题
customID: //字符串类型;点自定义ID
}]
var map = api.require('bMap');
map.addCluster({
styles: {
size: {
w: 22,
h: 22
},
corner: 11,
bg: {
pointBg:'',
grade:[1,5,10],
bgs:['#0000ff','#00ff00','#ff0000'],
numberColors:['#fff','#fff','#fff']
}
},
data:[{
lat:39.989556,
lon:116.384731,
title:'泰翔商务楼',
subtitle:'',
customID:'65'
}]
});
iOS系统,Android系统
可提供的1.1.4及更高版本
设置点击标注时弹出的气泡信息
setWebBubble({params})
id:
url:
data:
size:
{
width: 50, //(可选项)数字类型;气泡的宽;默认:50
height: 50 //(可选项)数字类型;气泡的高;默认:50
}
bg:
var map = api.require('bMap');
map.setWebBubble({
id:1,
size : {
width:100,
height:100
},
bg:'rgba(0,0,0,0.6)', // android此参数必须传背景图
url:'http://img6.ph.126.net',
data:'哈哈 <img src="hBiG96B8egigBULxUWcOpA==/109212290980771276.jpg">'
});
iOS系统,android系统
可提供的1.1.7及更高版本
添加网页气泡点击监听
addWebBubbleListener(callback(ret))
ret:
{
id: 1 //数字类型;用户点击气泡返回的id
}
var map = api.require('bMap');
map.addWebBubbleListener(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
iOS系统,android系统
可提供的1.1.7及更高版本
移除网页气泡点击监听
removeWebBubbleListener(callback(ret))
var map = api.require('bMap');
map.removeWebBubbleListener();
iOS系统,android系统
可提供的1.1.7及更高版本
移除本次添加的聚合点
removeCluster()
var map = api.require('bMap');
map.removeCluster();
iOS系统,Android系统
可提供的1.1.4及更高版本
添加聚合点点击事件的监听
addClusterListener(callback(ret))
ret:
{
customID: //字符串类型;点击的标注的id
}
var map = api.require('bMap');
map.addClusterListener(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.1.4及更高版本
在地图上添加折线
addLine({params})
id:
styles:
{
borderColor: '#000', //(可选项)字符串类型;折线的颜色,支持rgb、rgba、#;默认值:'#000'
borderWidth: 3, //(可选项)数字类型;折线的宽度,默认:1
lineDash:false, // (可选项) 布尔类型;是否支持虚线
dashImg:'' // (可选项) 自定义纹理图片(支持fs://, widget://)
}
points:
[{
lon: 116.297, //数字类型;经度
lat: 40.109 //数字类型;纬度
}]
var map = api.require('bMap');
map.addLine({
id: 1,
styles: {
borderColor: '#FF0000',
borderWidth: 3
},
points: [{
lon:116.39432327,
lat:39.98963192
},{
lon: 116.49432328,
lat: 39.98963192
},{
lon: 116.39432327,
lat: 39.88933191
}]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加多边形
addPolygon({params})
id:
styles:
{
borderColor: '#000', //(可选项)字符串类型;多边形的边框颜色,支持rgb、rgba、#;默认:'#000'
fillColor: '#000', //(可选项)字符串类型;多边形的填充色,支持rgb、rgba、#;默认:'#000'
borderWidth: 3 //(可选项)数字类型;多边形的边框宽度,默认:1
}
points:
[{
lon: 116.297, //数字类型;经度
lat: 40.109 //数字类型;纬度
}]
var map = api.require('bMap');
map.addPolygon({
id: 2,
styles: {
borderColor: '#FF0000',
borderWidth: 3,
fillColor: '#0000ff'
},
points: [{
lon: 116.39432327,
lat: 39.98963192
}, {
lon: 116.49432328,
lat: 39.98963192
}, {
lon: 116.39432327,
lat: 39.88933191
}]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加弧形
addArc({params})
id:
styles:
{
borderColor: '#000', //(可选项)字符串类型;弧形的边框颜色,支持rgb、rgba、#;默认:'#000'
borderWidth: 3 //(可选项)数字类型;弧形的边框宽度,默认:1
}
points:
[{
lon: 116.297, //数字类型;经度
lat: 40.109 //数字类型;纬度
}]
var map = api.require('bMap');
map.addArc({
id: 3,
styles: {
borderColor: '#FF0000',
borderWidth: 3
},
points: [{
lon: 116.39432327,
lat: 39.98963192
}, {
lon: 116.49432328,
lat: 39.98963192
}, {
lon: 116.39432327,
lat: 39.88933191
}]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加圆形
addCircle({params})
id:
center:
{
lon: 116.297, //数字类型;圆形中心点的经度
lat: 40.109 //数字类型;圆形中心点的纬度
}
radius:
styles:
{
borderColor: '#000', //(可选项)字符串类型;圆形的边框颜色,支持rgb、rgba、#;默认:'#000'
fillColor: '#000', //(可选项)字符串类型;圆形的填充色,支持rgb、rgba、#;默认:'#000'
borderWidth: 3 //(可选项)数字类型;圆形的边框宽度,默认:1
}
var map = api.require('bMap');
map.addCircle({
id: 4,
center: {
lon: 116.39432327,
lat: 39.98963192
},
radius: 500,
styles: {
borderColor: '#FF0000',
borderWidth: 3,
fillColor: '#0000ff'
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上添加图片
addImg({params})
id:
imgPath:
lbLon:
lbLat:
rtLon:
rtLat:
opacity:
var map = api.require('bMap');
map.addImg({
id: 5,
imgPath: 'widget://res/over_img.png',
lbLon: 116.39432327,
lbLat: 39.88933191,
rtLon: 116.49432328,
rtLat: 39.98963192,
opacity: 0.8
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据绘制轨迹
drawRouteByPoints({params})
id:
width:
color:
dash:
textureImg:
points:
[{
lat:0.0, // 数字类型;维度
lon:0.0 // 数字类型;经度
}]
pointsFilePath:
var map = api.require('bMap');
map.drawRouteByPoints({
points:[{
lat:0.0, // 数字类型;维度
lon:0.0 // 数字类型;经度
}]
});
Android ,iOS 系统
可提供的 1.3.5 及更高版本
移除指定 id 的覆盖物(addLine、addPolygon、addArc、addCircle、addImg添加的覆盖物)
removeOverlay({params})
ids:
var map = api.require('bMap');
map.removeOverlay({
ids: [1, 2, 3, 4, 5]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
搜索路线方案,无需调用 open 接口即可使用
searchRoute({params}, callback(ret, err))
id:
type:
policy:
start:
{
lon: 116.403838, //(可选项)数字类型;起点经度
lat: 39.914437 //(可选项)数字类型;起点纬度
}
waypoints:
[{
lon: 116.403838, //数字类型;途径点经度
lat: 39.914437 //数字类型;途径点纬度
}]
end:
{
lon: 116.384852, //(可选项)数字类型;终点经度
lat: 39.989576 //(可选项)数字类型;终点纬度
}
isSameCity:
ret:
{
status: true, //布尔型;true||false
plans: [{ //数组类型;路线方案描述
start:{ //JSON对象;起点信息
lon: 116.384852, //数字类型;起点经度
lat: 39.989576, //数字类型;起点纬度
description: '' //字符串类型;起点说明文字
},
end:{ //JSON对象;终点信息
lon: 116.384852, //数字类型;终点经度
lat: 39.989576, //数字类型;终点纬度
description: '' //字符串类型;终点说明文字
},
nodes:[{ //数组类型;路线经过的结点信息组成的数组
lon: 116.384852, //数字类型;结点经度
lat: 39.989576, //数字类型;结点纬度
degree: 30, //数字类型;结点转弯角度
description: '' //字符串类型;结点说明文字
}],
distance: 1000, //数字类型;路线长度,单位:米
duration: 10 //数字类型;路线耗时,单位:秒
}]
}
err:
{
code: 1, //数字类型;
//错误码:
//-1(未知错误)
//1(检索词有歧义)
//2(检索地址有歧义)
//3(该城市不支持公交搜索)
//4(不支持跨城市公交)
//5(没有找到检索结果)
//6(起终点太近)
//7(key错误)
//8(网络连接错误)
//9(网络连接超时)
//10(还未完成鉴权,请在鉴权通过后重试)
//数组类型;建议起点信息,若传入的起点信息不明确,则返回该字段
suggestStarts: [{
name: '', //字符串类型;地点名
city: '', //字符串类型;地点所在城市
lon: 116.213, //数字类型;地点经度
lat: 39.213 //数字类型;地点纬度
}],
//数组类型;建议终点信息,若传入的终点信息不明确,则返回该字段
suggestEnds: [{
name: '', //字符串类型;地点名
city: '', //字符串类型;地点所在城市
lon: 116.213, //数字类型;地点经度
lat: 39.213 //数字类型;地点纬度
}]
}
var map = api.require('bMap');
map.searchRoute({
id: 1,
type: 'drive',
policy: 'ecar_fee_first',
start: {
lon: 116.403838,
lat: 39.914437
},
end: {
lon: 116.384852,
lat: 39.989576
}
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: JSON.stringify(ret) });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
在地图上显示指定路线,调用本接口前,必须保证已经调用过接口 open 和 searchRoute
drawRoute({params}, callback(ret, err))
id:
autoresizing:
index:
styles:
{
start: { //(可选项)JSON对象;起点样式配置,不传则不显示
icon: '', //(可选项)字符串类型;起点图标,要求本地路径(fs://、widget://);默认:百度
size: //(可选项)数字类型;起点图标大小;默认:30 (android不支持)
},
end: { //(可选项)JSON对象;终点样式配置,不传则不显示
icon: '', //(可选项)字符串类型;终点图标路径,要求本地路径(fs://、widget://);默认:百度图标
size: //(可选项)数字类型;终点图标大小;默认:30 (android不支持)
},
line: { //(可选项)JSON对象;路线样式配置,不传则显示默认值
color:'#0000FF', //(可选项)字符串类型;折线的颜色,支持rgb、rgba、#;默认值:'#0000FF'
width: 3, //(可选项)数字类型;折线的宽度,默认:3
dash: false, //(可选项)布尔类型;是否显示为虚线;默认:false
textureImg:'' //(可选项)字符串类型;纹理图片路径,要求本地路径(fs://、widget://);默认:无
},
node: { //(可选项)JSON类型;节点样式,不传则不显示。注意节点并不一定是转弯点。
size:, //(可选项)数字类型;节点大小;默认:17 (android不支持)
icon: //(可选项)字符串类型;节点图标,要求本地路径(fs://、widget://);默认:百度图标
},
busLine: { //(可选项)JSON对象;乘公交路时的线样式配置,不传则以line为准 ,仅当搜索路线类型为 transit 时有效
color:'#0000FF', //(可选项)字符串类型;折线的颜色,支持rgb、rgba、#;默认值:'#0000FF'
width: 3, //(可选项)数字类型;折线的宽度,默认:3
dash: false, //(可选项)布尔类型;是否显示为虚线;默认:false
textureImg:'' //(可选项)字符串类型;纹理图片路径,要求本地路径(fs://、widget://);默认:无(android上当dash为true,此字段生效)
},
subwayLine: { //(可选项)JSON对象;乘坐地铁时的路线样式配置,不传则以line为准 ,仅当搜索路线类型为 transit 时有效
color:'#0000FF', //(可选项)字符串类型;折线的颜色,支持rgb、rgba、#;默认值:'#0000FF'
width: 3, //(可选项)数字类型;折线的宽度,默认:3
dash: false, //(可选项)布尔类型;是否显示为虚线;默认:false
textureImg:'' //(可选项)字符串类型;纹理图片路径,要求本地路径(fs://、widget://);默认:无(android上当dash为true,此字段生效)
},
walkLine: { //(可选项)JSON对象;步行时的路线样式配置,不传则以line为准 ,仅当搜索路线类型为 transit 时有效
color:'#0000FF', //(可选项)字符串类型;折线的颜色,支持rgb、rgba、#;默认值:'#0000FF'
width: 3, //(可选项)数字类型;折线的宽度,默认:3
dash: false, //(可选项)布尔类型;是否显示为虚线;默认:false
textureImg:'' //(可选项)字符串类型;纹理图片路径,要求本地路径(fs://、widget://);默认:无(android上当dash为true,此字段生效)
},
busNode: { //(可选项)JSON类型;切换为公交时节点样式,不传则显示默认值,仅当搜索路线类型为 transit 时有效
size:, //(可选项)数字类型;节点大小;默认:17
icon: //(可选项)字符串类型;节点图标,要求本地路径(fs://、widget://);默认:百度图标
},
subwayNode: { //(可选项)JSON类型;切换为地铁时节点样式,不传则显示默认值,仅当搜索路线类型为 transit 时有效
size:, //(可选项)数字类型;节点大小;默认:17
icon: //(可选项)字符串类型;节点图标,要求本地路径(fs://、widget://);默认:百度图标
},
walkNode: { //(可选项)JSON类型;切换为步行时节点样式,不传则显示默认值,仅当搜索路线类型为 transit 时有效
size:, //(可选项)数字类型;节点大小;默认:17
icon: //(可选项)字符串类型;节点图标,要求本地路径(fs://、widget://);默认:百度图标
}
}
ret:
{
nodeIndex: 0, //数字类型;点击路线上结点的索引(该路线在所属方案 nodes 数组内的索引)
routeId: 1 //数字类型;点击的结点所在的路线的 id
}
var map = api.require('bMap');
map.searchRoute({
id: 1,
type: 'drive',
policy: 'ecar_fee_first',
start: {
lon: 116.403838,
lat: 39.914437
},
end: {
lon: 116.384852,
lat: 39.989576
}
}, function(ret, err) {
if (ret.status) {
map.drawRoute({
id: 1,
autoresizing: false,
index: 0,
styles: {
start: {
icon: 'widget://image/bmap_start.png'
},
end: {
icon: 'widget://image/bmap_end.png'
}
}
}, function(ret) {
api.alert({ msg: JSON.stringify(ret) });
});
} else {
api.alert({ msg: JSON.stringify(err) });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除指定 id 的路线
removeRoute({params})
ids:
var map = api.require('bMap');
map.removeRoute({
ids: [1, 2, 3]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据关键字搜索公交、地铁线路,无需调用 open 接口即可搜索
searchBusRoute({params}, callback(ret, err))
city:
line:
ret:
{
status: true, //布尔型;true||false
results: [{ //数组类型;返回搜索结果列表
name: '', //字符串类型;名称
uid: '', //字符串类型;兴趣点 uid
city: '', //字符串类型;所在城市
poiType: 0 //数字类型;POI 类型
//取值类型:
//2(公交线路)
//4(地铁线路)
}]
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.searchBusRoute({
city: '北京',
line: '110'
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据 searchBusRoute 搜索返回的 uid 查询线路详情并绘制在地图上
drawBusRoute({params}, callback(ret, err))
id:
autoresizing:
city:
uid:
ret:
{
status: true, //布尔型;true||false
eventType: 'draw', //字符串类型;回调事件类型
//取值范围:
//draw(添加路线)
//click(用户点击路线上的结点)
name: '', //字符串类型;公交线路名称
company: '', //字符串类型;公交公司名称
startTime: '', //字符串类型;公交路线首班车时间,格式为:hh:ss
endTime: '', //字符串类型;公交路线末班车时间,格式为:hh:ss
isMonTicket: '', //布尔类型;公交是线是否有月票
stations: [{ //数组类型;所有站点信息
lon: 116.404, //数字类型;公交站经度
lat: 39.915, //数字类型;公交站纬度
description: '' //字符串类型;公交站描述
}],
nodeIndex: 0, //数字类型;点击路线上结点的索引(在 stations 数组内的索引)
routeId: 1 //数字类型;点击的结点所在的路线的 id
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.searchBusRoute({
city: '北京',
line: '110'
},function(ret, err){
if(ret.status){
var results = ret.results;
for(var i=0, len=results.length; i<len; i++){
var res = results[i];
map.drawBusRoute({
id: i+1,
autoresizing:false,
city: res.city,
uid: res.uid,
nodeShow: false
},function(ret){
if(ret.status){
api.alert({
msg: JSON.stringify(ret)
})
}else{
api.alert({
msg: JSON.stringify(err)
})
}
});
}
}else{
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除地图上显示的公交、地铁线路
removeBusRoute({params})
ids:
var map = api.require('bMap');
map.removeBusRoute({
ids:[1]
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据单个关键字搜索兴趣点,无需调用 open 接口即可搜索
searchInCity({params}, callback(ret, err))
city:
keyword:
pageIndex:
pageCapacity:
ret:
{
status: true, //布尔型;true||false
totalNum: 10, //数字类型;本次搜索的总结果数
currentNum: 5, //数字类型;当前页的结果数
totalPage: 10, //数字类型;本次搜索的总页数
pageIndex: 1, //数字类型;当前页的索引
results: [{ //数组类型;返回搜索结果列表
lon: 116.213, //数字类型;当前内容的经度
lat: 39.213, //数字类型;当前内容的纬度
name: '', //字符串类型;名称
uid: 123 //数字类型;兴趣点的id
address: '', //字符串类型;地址
city: '', //字符串类型;所在城市
phone: '', //字符串类型;电话号码
poiType: 0 //数字类型;POI 类型
//取值类型:
//0(普通点)
//1(公交站)
//2(公交线路)
//3(地铁站)
//4(地铁线路)
}]
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.searchInCity({
city: '北京',
keyword: '学校',
pageIndex: 0,
pageCapacity: 20
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据单个关键字在圆形区域内搜索兴趣点,无需调用 open 接口即可搜索
searchNearby({params}, callback(ret, err))
keyword:
lon:
lat:
radius:
pageIndex:
pageCapacity:
ret:
{
status: true, //布尔型;true||false
totalNum: 20, //数字类型;本次搜索的总结果数
currentNum: 5, //数字类型;当前页的结果数
totalPage: 3, //数字类型;本次搜索的总页数
pageIndex: 1, //数字类型;当前页的索引
results: [{ //数组类型;返回搜索结果列表
lon: 116.213, //数字类型;当前内容的经度
lat: 39.213, //数字类型;当前内容的纬度
name: '', //字符串类型;名称
uid: 123 //数字类型;兴趣点id
address: '', //字符串类型;地址
city: '', //字符串类型;所在城市
phone: '', //字符串类型;电话号码
poiType: 0 //数字类型;POI 类型
//取值类型:
//0(普通点)
//1(公交站)
//2(公交线路)
//3(地铁站)
//4(地铁线路)
}]
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.searchNearby({
keyword: 'KTV',
lon: 116.384767,
lat: 39.989539,
radius: 2000
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据单个关键字在方形区域内搜索兴趣点,无需调用 open 接口即可搜索
searchInBounds({params}, callback(ret, err))
keyword:
lbLon:
lbLat:
rtLon:
rtLat:
pageIndex:
pageCapacity:
ret:
{
status: true, //布尔型;true||false
totalNum: 20, //数字类型;本次搜索的总结果数
currentNum: 5, //数字类型;当前页的结果数
totalPage: 3, //数字类型;本次搜索的总页数
pageIndex: 1, //数字类型;当前页的索引
results: [{ //数组类型;返回搜索结果列表
lon: 116.213, //数字类型;当前内容的经度
lat: 39.213, //数字类型;当前内容的纬度
name: '', //字符串类型;名称
uid: 123 //数字类型;兴趣点id
address: '', //字符串类型;地址
city: '', //字符串类型;所在城市
phone: '', //字符串类型;电话号码
poiType: 0 //数字类型;POI 类型
//取值类型:
//0(普通点)
//1(公交站)
//2(公交线路)
//3(地铁站)
//4(地铁线路)
}]
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.searchInBounds({
keyword: '图书馆',
lbLon: 112.47723797622677,
lbLat: 34.556480000000015,
rtLon: 109.77539000000002,
rtLat: 33.43144
}, function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据关键字返回建议搜索关键字,无需调用 open 接口即可搜索
autocomplete({params}, callback(ret, err))
keyword:
city:
ret:
{
status: true, //布尔型;true||false
results: [] //数组类型;返回建议搜索关键字组成的数组
allResults: [] //数组类型;返回建议搜索关键字检索点所有信息
}
err:
{
code: 1 //数字类型;错误码
//1(检索词有岐义)
//2(检索地址有岐义)
//3(没有找到检索结果)
//4(key错误)
//5(网络连接错误)
//6(网络连接超时)
//7(还未完成鉴权,请在鉴权通过后重试)
}
var map = api.require('bMap');
map.autocomplete({
keyword: '北京西站',
city: '北京'
}, function(ret) {
if (ret.status) {
alert(JSON.stringify(ret.results));
} else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
行政区边界检索绘制,需要先调用 open 接口
searchDistrict({params}, callback(ret, err))
id:
city:
district:
style:
{
fillColor: '', //(可选项)字符串类型;填充颜色,支持rgb、rgba、#;默认:'rgba(0,0,0,0)'
strokeColor: '', //(可选项)字符串类型;画笔颜色,支持rgb、rgba、#;默认:'#ff0000'
lineWidth: 1, //(可选项)数值类型;画笔宽度;默认:1
lineDash: true, //(可选项)布尔类型;是否为虚线样式;默认:false
}
ret:
{
success: true, //布尔型;true||false
}
err:
{
code: 0 //数字类型;错误码
//0 检索失败
//1 检索词有歧义
//2 检索地址有岐义
//3 该城市不支持公交搜索
//4 不支持跨城市公交
//5 没有找到检索结果
//6 起终点太近
//7 key错误
//8 网络连接错误
//9 网络连接超时
//10 还未完成鉴权,请在鉴权通过后重试
//11 室内图ID错误
//12 室内图检索楼层错误
//13 起终点不在支持室内路线的室内图内
//14 起终点不在同一个室内
//15 参数错误
//16 服务器错误
}
var map = api.require('bMap');
map.searchDistrict({
id : '0',
city: '北京',
district: '朝阳区',
style : {
//fillColor : '#ff0000',
//strokeColor : '#00ff00',
lineWidth : 3
}
},function(ret,err){
if(ret.success){
api.alert({
msg: JSON.stringify(ret)
})
}else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.1.9及更高版本
移除行政区边界
removeDistrict({params})
id:
var map = api.require('bMap');
map.removeDistrict({
id: '0'
}
);
iOS系统,Android系统
可提供的1.1.9及更高版本
获取热门城市列表,无需调用 open 接口
getHotCityList(callback(ret))
ret:
{
status: true, //布尔型;true||false
records : [{ //数组类型;返回热门城市的信息
name: '', //字符串类型;城市名称
size: , //数字类型;数据包总大小
cityID: , //数字类型;城市ID
cityType: , //数字类型;城市类型,0:全国;1:省份;2:城市;如果是省份,可以通过childCities得到子城市列表
childCities:[{ //数组类型;子城市列表
name: '', //字符串类型;城市名称
cityID: //数字类型;城市ID
}]
}]
}
var map = api.require('bMap');
map.getHotCityList(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取支持离线下载城市列表,无需调用 open 接口
getOfflineCityList(callback(ret))
ret:
{
status: true, //布尔型;true||false
records : [{ //数组类型;返回支持离线下载城市的信息
name: '', //字符串类型;城市名称
size: , //数字类型;数据包总大小
cityID: , //数字类型;城市ID
cityType: , //数字类型;城市类型,0:全国;1:省份;2:城市;如果是省份,可以通过childCities得到子城市列表
childCities:[{ //数组类型;子城市列表
name: '', //字符串类型;城市名称
cityID: //数字类型;城市ID
}]
}]
}
var map = api.require('bMap');
map.getOfflineCityList(function(ret){
if(ret.status){
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
根据城市名搜索该城市离线地图记录,无需调用 open 接口
searchCityByName({params}, callback(ret))
name:
ret:
{
status: true, //布尔型;true||false
records : [{ //数组类型;返回支持离线下载城市的信息
name: '', //字符串类型;城市名称
size: , //数字类型;数据包总大小
cityID: , //数字类型;城市ID
cityType: , //数字类型;城市类型,0:全国;1:省份;2:城市;如果是省份,可以通过childCities得到子城市列表
childCities:[{ //数组类型;子城市列表
name: '', //字符串类型;城市名称
cityID: //数字类型;城市ID
}]
}]
}
var map = api.require('bMap');
map.searchCityByName({
name: "北京"
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取各城市离线地图更新信息,无需调用 open 接口
getAllUpdateInfo(callback(ret))
ret:
{
status: true, //布尔型;true||false
records : [{ //数组类型;返回支持离线下载城市的信息
name: '', //字符串类型;城市名称
size: , //数字类型;数据包总大小
cityID: , //数字类型;城市ID
serversize: , //数字类型;服务端数据大小,当update为YES时有效,单位:字节
ratio: , //数字类型;下载比率,100为下载完成,下载完成后会自动导入,status为4时离线包导入完成
update: , //布尔类型;更新状态,离线包是否有更新(有更新需重新下载)
lat: , //数字类型;城市中心点纬度坐标
lon: , //数字类型;城市中心点纬度坐标
status: //数字类型;下载状态,
//-1:未定义
//1:正在下载
//2:等待下载
//3:已暂停
//4:完成
//5:校验失败
//6:网络异常
//7:读写异常
//8:Wifi网络异常
//9:离线包数据格式异常,需重新下载离线包
//10:离线包导入中
}]
}
var map = api.require('bMap');
map.getAllUpdateInfo(function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取指定城市id离线地图更新信息,无需调用 open 接口
getUpdateInfoByID({params}, callback(ret))
cityID:
ret:
{
status: true, //布尔型;true||false
cityInfo : { //JSON对象;返回指定城市的离线地图更新信息
name: '', //字符串类型;城市名称
size: , //数字类型;数据包总大小
cityID: , //数字类型;城市ID
serversize: , //数字类型;服务端数据大小,当update为YES时有效,单位:字节
ratio: , //数字类型;下载比率,100为下载完成,下载完成后会自动导入,status为4时离线包导入完成
update: , //布尔类型;更新状态,离线包是否有更新(有更新需重新下载)
lat: , //数字类型;城市中心点纬度坐标
lon: , //数字类型;城市中心点纬度坐标
status: //数字类型;下载状态,
//-1:未定义
//1:正在下载
//2:等待下载
//3:已暂停
//4:完成
//5:校验失败
//6:网络异常
//7:读写异常
//8:Wifi网络异常
//9:离线包数据格式异常,需重新下载离线包
//10:离线包导入中
}
}
var map = api.require('bMap');
map.getUpdateInfoByID({
cityID: 1
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
启动下载指定城市 id 的离线地图,无需调用 open 接口
start({params}, callback(ret))
cityID:
ret:
{
status: true, //布尔型;true||false
}
var map = api.require('bMap');
map.start({
cityID: 1
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
启动更新指定城市 id 的离线地图,无需调用 open 接口
update({params}, callback(ret))
cityID:
ret:
{
status: true, //布尔型;true||false
}
var map = api.require('bMap');
map.update({
cityID: 1
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
暂停下载指定城市 id 的离线地图,无需调用 open 接口
pause({params}, callback(ret))
cityID:
ret:
{
status: true, //布尔型;true||false
}
var map = api.require('bMap');
map.pause({
cityID: 1
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除下载指定城市 id 的离线地图,无需调用 open 接口
remove({params}, callback(ret))
cityID:
ret:
{
status: true, //布尔型;true||false
}
var map = api.require('bMap');
map.remove({
cityID: 1
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
监听离线地图相关事件
addOfflineListener(callback(ret))
ret:
{
type: 0, //数字类型;事件类型,取值范围如下:
//0:下载或更新
//1:检测到的压缩包个数(android不支持)
//2:当前解压的离线包(android中此类型表示离线地图网络问题)
//3:错误的离线包(android不支持)
//4:有新版本
//5:扫描完毕(android不支持)
//6:新增离线包(android中此类型表示新安装离线地图事件)
state: //数字类型;事件状态,
//当 type为 0 时,表示正在下载或更新城市id为state的离线包
//当 type 为1时,表示检测到state个离线压缩包
//当 type 为2时,表示正在解压第state个离线包
//当 type 为3时,表示有state个错误包
//当 type 为4时,表示id为state的城市离线包有更新
//当 type 为5时,表示扫瞄完成,成功导入state个离线包
//当 type 为6时,表示新安装的离线地图数目
}
var map = api.require('bMap');
map.addOfflineListener(function(ret) {
switch (ret.type) {
case 0:
{
map.getUpdateInfoByID({
cityID: 1
}, function(ret) {
api.alert({ msg: ret.cityInfo.name + "下载进度:" + ret.cityInfo.ratio });
});
}
break;
case 1:
{
alert('检测到离线包个数是:' + ret.state);
}
break;
case 2:
{
alert('正在解压第state个离线包,导入时会回调此类型');
}
break;
case 3:
{
alert('有state个错误包,导入完成后会回调此类型');
}
break;
case 4:
{
alert('id为state的state城市有新版本,可调用update接口进行更新');
}
break;
case 5:
{
alert('导入成功state个离线包,导入成功后会回调此类型');
}
break;
case 6:
{
alert('新增离线包');
}
break;
default:
break;
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除监听离线地图事件
removeOfflineListener()
var map = api.require('bMap');
map.removeOfflineListener();
iOS系统,Android系统
可提供的1.0.0及更高版本
步行导航
walkNavi({params}, callback(ret))
currentPosition:
{
latitude: 40.049879, //数字类型;纬度;(必传,通过getLocation 获取当前位置)
longitude: 116.279853 //数字类型;经度;(必传,通过getLocation 获取当前位置)
}
destination:
{
latitude: 40.058918, //数字类型;纬度;默认:0
longitude: 116.312621 //数字类型;经度;默认:0
}
ret:
{
status: true, //布尔型;true||false ;打开页面是否成功
}
var map = api.require('bMap');
map.walkNavi({
currentPosition:{
latitude:40.049879, //纬度
longitude:116.279853 //经度
},
destination:{
latitude:40.058918, //纬度
longitude:116.312621 //经度
}
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
骑行导航
cyclingNavi({params}, callback(ret))
currentPosition:
{
latitude: 40.049879, //数字类型;纬度;(必传,通过getLocation 获取当前位置)
longitude: 116.279853 //数字类型;经度;(必传,通过getLocation 获取当前位置)
}
destination:
{
latitude: 40.058918, //数字类型;纬度;默认:0
longitude: 116.312621 //数字类型;经度;默认:0
}
ret:
{
status: true, //布尔型;true||false ;打开页面是否成功
}
var map = api.require('bMap');
map.cyclingNavi({
currentPosition:{
latitude:40.049879, //纬度
longitude:116.279853 //经度
},
destination:{
latitude:40.058918, //纬度
longitude:116.312621 //经度
}
}, function(ret) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
监听语音播报文本
addTTSListening({params}, callback(ret))
ret:
{
text: '', //字符串类型;语音播报的文本
}
var map = api.require('bMap');
map.addTTSListening({
}, function(ret) {
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统,Android系统
可提供的1.0.0及更高版本
为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。