bMap
来自于:APICloud 官方立即使用
基础类
室内地图
标注、气泡类
覆盖物类
搜索类
autocomplete searchDistrict removeDistrict
离线地图类
addOfflineListener removeOfflineListener
步骑行导航
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
百度地图简介
百度地图是百度提供的一项网络地图搜索服务,覆盖了国内近400个城市、数千个区县。在百度地图里,用户可以查询街道、商场、楼盘的地理位置,也可以找到离您最近的所有餐馆、学校、银行、公园等等。2010年8月26日,在使用百度地图服务时,除普通的电子地图功能之外,新增加了三维地图按钮。
百度地图特色功能
智能查询,出行无忧: 拥有强大的路线查询及规划能力,告别迷路可能。从A到B,总能给出最佳线路及打车费用,还有N条备选方案。支持公交、驾车、步行、地铁四种出行方式;随时随地查看实时路况,街道真实全景图和室内图。
导航精准,零罚单: 语音搜索功能,帮助告别繁琐的手动输入,让您开车更安全。 路况播报,实时播报您周围路况动态,随时清晰掌握每一条道路的路况及电子眼预报,不再为罚单发愁。 步行也能导航!结合街道全景,精彩一步到位。
权威数据,免费下载: 覆盖行业最全、最准的地点信息,提供海量资源免费下载。离线也能看地图,离线包瘦身90%,支持在线更新,更快捷更省流量!导航资源数据包,免费下载路口3D+卫星版实景图。
附近吃喝玩乐,商务预订,一网打尽: 提供附近美食、酒店、电影、购物、打车、外卖、景点、银行等海量商户信息,包括商户电话、地址、地图、点评,一键规划路线,在线预订;免费下载优惠券,还可享受最新鲜的团购折扣信息。
模块概述
bMap 模块封装了百度地图的原生 SDK,集成了百度地图常用基本接口;手机版原生地图,不同于 js 地图,相对于js地图而言,本模块封装的原生手机地图更加流畅迅速、动画效果更加逼真。使用此模块可轻松把百度地图集成到自己的app内,实现百度地图常用的定位、关键字搜索、周边搜索、自定义标注及气泡、查公交路线等各种功能;另外本模块已支持百度地图离线版本。
若某些带UI的接口不能满足开发设计需求,开发者(借助于原生开发者)可在本模块基础上修改少量原生代码,随心所欲的自定义百度地图所具有的原生功能,简单、轻松、快捷、高效、迅速集成百度地图,将自己的 app 和百度地图实现无缝链接。模块原生代码开源地址为:https://github.com/apicloudcom/bMap
模块使用攻略
注意事项
- 本模块内带动画效果的接口不可同时调用(两个以上),需要设置延迟(
setTimeout
)处理。 - bMap 模块是 baiduMap 模块的优化版。不可与baiduMap、aMapNavigation, aMap模块同时使用
- 需要在APICloud 网站控制台编译界面选择定位权限。
- 使用本模块需云编译安装包,或以自定义 loader 的形式使用
- 离线地图功能属于“基础地图”这个功能模块,开发者使用时请注意选择
使用此模块之前必须先配置 config 文件,ios 配置方法如下:
- 名称:bMap
- 参数:ios_api_key
- 备注:同一个 App 需要同时支持 iOS 和 Android 平台,必须单独申请各自的 apiKey,并同时配置在 config 文件中
- 配置示例:
<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、Android从1.2.3版本开始,需用升级环境编译
模块接口
initMapSDK
初始化百度地图引擎,本接口仅支持 iOS 平台,android平台不需要初始化
使用场景:
当开发者尚未调用 open 接口,直接调用 getLocation、getCoordsFromName、getNameFromCoords、getDistance 以及搜索类接口时,需要首先调用此接口初始化地图引擎,然后在本接口的回调内调用检索相关接口(getLocation、getCoordsFromName、getNameFromCoords、getDistance 以及搜索类),以提高检索成功率。
initMapSDK(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否初始化成功,true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
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系统
可提供的1.0.4及更高版本
open
打开百度地图
open({params}, callback(ret))
params
rect:
- 类型:JSON 对象
- 描述:(可选项)模块的位置及尺寸
- 内部字段:
{
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:
- 类型:数字
- 描述:(可选项)设置百度地图缩放等级,取值范围:3-18级
- 默认值:10
showUserLocation:
- 类型:布尔
- 描述:(可选项)是否在地图上显示用户位置
- 默认值:true
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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及更高版本
customStyle
定制地图主题,需要在open接口调用前调用。
注意:在iOS端百度新版SDK改为open接口之后调用。
customStyle({params})
params
configPath:
- 类型:字符串类型
- 描述:(可选项)主图文件路径,要求本地路径(widget://、fs://)(android不支持widget),configPath优先级高于customConfig
- 注:使用自定义主题时,请参照百度个性地图来生成sty文件
- 默认:使用模块内置主题
customConfig:
- 类型:字符串类型
- 描述:(可选项)模块内置主题 ,iOS端不支持本参数
- 默认:night
- night:黑夜
- lightblue:清新蓝
- midnightblue:午夜蓝
mode:
- 类型:数字
- 描述:(可选项)模块内置主题文件位置,0:本地;1:加载在线文件或在线缓存文件。仅支持iOS端
- 默认:0
示例代码
var bMap = api.require('bMap');
bMap.customStyle();
可用性
iOS系统,Android系统
可提供的1.1.8及更高版本
enableCustom
打开/关闭定制主题,需要在open接口调用后才生效
注意:在iOS端百度新版SDK改为open接口之后调用。
enableCustom({params})
params
enable:
- 类型:布尔类型
- 描述:(可选项)是否打开定制主题
- 默认:true
示例代码
var bMap = api.require('bMap');
bMap.enableCustom();
可用性
iOS系统,Android系统
可提供的1.1.8及更高版本
close
关闭百度地图
close()
示例代码
var map = api.require('bMap');
map.close();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
show
显示百度地图
show()
示例代码
var map = api.require('bMap');
map.show();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hide
隐藏百度地图
hide()
示例代码
var map = api.require('bMap');
map.hide();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRect
重设地图的显示区域
setRect({params})
params
rect:
- 类型:JSON 对象
- 描述:(可选项)模块的位置及尺寸
- 内部字段:
{
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及更高版本
getLocation
开始定位,若要支持后台定位需配置 config.xml 文件 location 字段,无需调用 open 接口即可定位。在 android 平台上,离线定位功能需要手动打开GPS,并在无遮挡物的室外
getLocation({params}, callback(ret, err))
params
accuracy:
- 类型:字符串
- 描述:(可选项)定位精度
- 默认值:'100m'
- 取值范围:
- 10m
- 100m
- 1km
- 3km
autoStop:
- 类型:布尔
- 描述:(可选项)获取到位置信息后是否自动停止定位
- 默认值:true
filter:
- 类型:数字
- 描述:(可选项)位置更新所需的最小距离(单位米),autoStop 为 true 时,此参数有效
- 默认值:1.0
enableLocInForeground:
- 类型:布尔类型
- 描述:(可选项) 开发者应用如果有后台定位需求,在退到后台的时候,为了保证定位可以在后台一直运行,可以设置为true,适配android 8后台无法定位问题,其他版本下也会提高定位进程存活率(ios不支持)
- 默认值:false
notification:
- 类型:JSON对象
- 描述:(必选项) 通知栏的提示,此字段只有在enableLocInForeground设置为true时有效。(百度为了app能够在后台持续定位,就得需要开启一个前台服务,要开启一个前台服务就得开启通知栏提示)(ios不支持)
内部字段:
{
id : 1, //(必选项) 数字类型;为通知栏notifation设置唯一id,必须大于0
contentTitle : //(必选项) 字符串类型;标题
contentText: //(必选项) 字符串类型;内容
}
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
lon: 116.213, //数字类型;经度
lat: 39.213, //数字类型;纬度
accuracy: 65, //数字类型;本次定位的精度,仅支持 iOS 平台
timestamp: 1396068155591, //数字类型;时间戳
locationType:netWork //字符串;定位类型;GPS||NetWork||OffLine(仅限Android)
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 0, //数字类型;错误码
msg: '' //字符串类型;错误信息说明
}
示例代码
var bMap = api.require('bMap');
bMap.getLocation({
accuracy: '100m',
autoStop: true,
filter: 1
}, function(ret, err) {
if (ret.status) {
alert(JSON.stringify(ret));
} else {
alert(err.code);
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopLocation
停止定位
stopLocation()
示例代码
var bMap = api.require('bMap');
bMap.stopLocation();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getLocationServices
获取定位是否开启,及当前 app 获取的定位权限
getLocationServices(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
} else {
alert("未开启定位功能!");
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getCoordsFromName
根据地址查找经纬度,无需调用 open 接口即可使用
getCoordsFromName({params}, callback(ret, err))
params
city:
- 类型:字符串
- 描述:(可选项)地址所在城市
address:
- 类型:字符串
- 描述:地址信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
lon: 116.351, //数字类型;地址所在经度
lat: 39.283 //数字类型;地址所在纬度
}
err:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getNameFromCoords
根据经纬度查找地址信息,无需调用 open 接口即可使用
getNameFromCoords({params}, callback(ret, err))
params
lon:
- 类型:数字
- 描述:经度
lat:
- 类型:数字
- 描述:纬度
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getDistance
获取地图两点之间的距离,无需调用 open 接口即可使用
getDistance({params}, callback(ret))
params
start:
- 类型:JSON 对象
- 描述:起点经纬度
- 内部字段:
{
lon: 106.486654, //数字类型;起点的经度
lat: 29.490295 //数字类型;起点的纬度
}
end:
- 类型:JSON 对象
- 描述:终点经纬度
- 内部字段:
{
lon: 106.581515, //数字类型;终点的经度
lat: 29.615467 //数字类型;终点的纬度
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
是否在地图上显示用户位置,会自动移动地图可视区域中心点到用户当前坐标位置,自带地图移动动画效果
showUserLocation({params})
params
isShow:
- 类型:布尔
- 描述:(可选项)是否显示用户位置
- 默认值:true
trackingMode:
- 类型:字符串
- 描述:(可选项)用户当前位置显示形式
- 默认值:none
- 取值范围:
- none(标准模式)注:Android平台为指向箭头,iOS平台为圆点
- follow(跟踪模式)
- compass(罗盘模式)
imageName:
- 类型:字符串
- 描述:(可选项)自定义当前位置图标的图片名称 (android不支持)
- 注意:使用此模块需要自定义模块,参见“概述”内容
- 默认值:百度地图默认当前位置图标
imagePath:
- 类型:字符串
- 描述:(可选项)当前位置显示图标的图片,支持fs,widget (ios不支持)
- 默认值:百度地图默认当前位置图标
示例代码
var map = api.require('bMap');
map.showUserLocation({
isShow: true,
trackingMode: 'none'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setCenter
根据经纬度设置百度地图中心点,此接口可带动画效果
setCenter({params})
params
coords:
- 类型:JSON 对象
- 描述:中心点的经纬度
- 内部字段:
{
lon: 116.404, //数字类型;设置中心点的经度
lat: 39.915 //数字类型;设置中心点的纬度
}
animation:
- 类型:布尔类型
- 描述:(可选项)设置地图的中心点时,是否带动画效果
- 默认:true
示例代码
var map = api.require('bMap');
map.setCenter({
coords: {
lon: 116.404,
lat: 39.915
},
animation: false
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getCenter
获取百度地图中心点坐标
getCenter(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
设置百度地图缩放等级,此接口自带动画效果
setZoomLevel({params})
params
level:
- 类型:数字
- 描述:(可选项)地图比例尺级别,取值范围:3-18级
- 默认值:10
示例代码
var map = api.require('bMap');
map.setZoomLevel({
level: 10
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getZoomLevel
获取百度地图比例尺级别,取值范围:3-18级
getZoomLevel(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
level: 10, //数字类型;地图比例尺级别,取值范围:3-18级
}
示例代码
var map = api.require('bMap');
map.getZoomLevel(function(ret) {
alert(ret.level);
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setMaxAndMinZoomLevel
设置最大缩放比例,取值范围:3-18级
setMaxAndMinZoomLevel({params})
params
maxLevel:
- 类型:数字
- 描述:(可选项)设置的最大缩放比例
- 默认:15
minLevel:
- 类型:数字
- 描述:(可选项)设置的最小缩放比例
- 默认:10
示例代码
var map = api.require('bMap');
map.setMaxAndMinZoomLevel({
maxLevel: 15,
minLevel:10
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setShowMapPoi
设定地图是否显示底图 poi 标注(不包含室内图标注)
setShowMapPoi({params})
params
showMapPoi:
- 类型:布尔
- 描述:(可选项)是否显示地图 poi
- 默认值:true
示例代码
var map = api.require('bMap');
map.setShowMapPoi({
showMapPoi: true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getShowMapPoi
获取地图是否显示底图 poi 标注(不包含室内图标注),Android系统(不支持)
getShowMapPoi(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
showMapPoi: true //布尔类型;是否显示地图 poi
}
示例代码
var map = api.require('bMap');
map.getShowMapPoi(function(ret) {
alert(ret.showMapPoi);
});
可用性
iOS系统,Android系统(不支持)
可提供的1.0.0及更高版本
setMapAttr
设置百度地图相关属性
setMapAttr({params})
params
type:
- 类型:字符串
- 描述:(可选项)设置地图类型
- 默认值:'standard'
- 取值范围:
- standard(标准地图)
- trafficOn(打开实时路况)
- trafAndsate(实时路况和卫星地图)
- satellite(卫星地图)
zoomEnable:
- 类型:布尔
- 描述:(可选项)捏合手势是否可以缩放地图
- 默认值:true
scrollEnable:
- 类型:布尔
- 描述:(可选项)拖动手势是否可以移动地图
- 默认值:ture
rotateEnabled:
- 类型:布尔
- 描述:(可选项)拖动手势是否可以旋转地图
- 默认值:ture
overlookEnabled:
- 类型:布尔
- 描述:(可选项)拖动手势是否可以改变地图俯视角度
- 默认值:ture
示例代码
var map = api.require('bMap');
map.setMapAttr({
type: 'standard'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRotation
设置百度地图旋转角度,此接口自带动画效果
setRotation({params})
params
degree:
- 类型:数字
- 描述:(可选项)地图旋转角度,取值范围:-180° - 180°
- 默认值:0
示例代码
var map = api.require('bMap');
map.setRotation({
degree: 30
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setOverlook
设置百度地图俯视角度,此接口自带动画效果
setOverlook({params})
params
degree:
- 类型:数字
- 描述:(可选项)地图俯视角度,取值范围:-45° - 0°
- 默认值:0
示例代码
var map = api.require('bMap');
map.setOverlook({
degree: -30
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setScaleBar
设置百度地图比例尺
setScaleBar({params})
params
show:
- 类型:布尔
- 描述:(可选项)是否显示比例尺
- 默认值:false
position:
- 类型:JSON 对象
- 描述:(可选项)比例尺的位置,设定坐标以地图左上角为原点
- 内部字段:
{ 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及更高版本
setCompass
设置百度地图指南针位置,只有地图旋转或视角变化时才显示指南针 注:android默认会在地图旋转的时候显示指南针,不支持自定义位置
setCompass({params})
params
position:
- 类型:JSON 对象
- 描述:(可选项)指南针的位置,设定坐标以地图左上角为原点
- 内部字段:
{ 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
设置百度地图交通路况
setTraffic({params})
params
traffic:
- 类型:布尔
- 描述:(可选项)是否显示交通路况
- 默认值:true
示例代码
var map = api.require('bMap');
map.setTraffic({
traffic: true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setHeatMap
设置百度地图城市热力图
setHeatMap({params})
params
heatMap:
- 类型:布尔
- 描述:(可选项)是否显示城市热力图
- 默认值:true
示例代码
var map = api.require('bMap');
map.setHeatMap({
heatMap: true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setBuilding
设定地图是否现实 3D 楼块效果,地图放大,才会有 3D 楼快效果,倾斜视角 3D 效果会更明显
setBuilding({params})
params
building:
- 类型:布尔
- 描述:(可选项)是否现实3D楼块效果
- 默认值:true
示例代码
var map = api.require('bMap');
map.setBuilding({
building: true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRegion
设置地图显示范围(矩形区域),此接口可带动画效果
setRegion({params})
params
lbLon:
- 类型:数字
- 描述:矩形区域左下角的经度
lbLat:
- 类型:数字
- 描述:矩形区域左下角的纬度
rtLon:
- 类型:数字
- 描述:矩形区域右上角的经度
rtLat:
- 类型:数字
- 描述:矩形区域右上角的纬度
animation:
- 类型:布尔类型
- 描述:(可选项)设置地图的区域时,是否带动画效果
- 默认:true
示例代码
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
获取地图显示范围(矩形区域)
getRegion(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
transCoords
将其它类型的地理坐标转换为百度坐标。无需调用 open 接口即可使用
transCoords({params}, callback(ret, err))
params
type:
- 类型:字符串
- 描述:原始地理坐标类型
- 默认值:common
- 取值范围:
- gps(GPS设备采集的原始GPS坐标)
- common(google、soso、aliyun、mapabc、amap和高德地图所用坐标)
lon:
- 类型:数字
- 描述:原始地理坐标经度
lat:
- 类型:数字
- 描述:原始地理坐标纬度
mcode:
- 类型:字符串
- 描述:到百度地图开放平台获取的安全码(Android端),点击应用的设置按钮 -> 设置界面 -> 安全码(数字签名+;+包名)
- 注:android从1.2.3版本开始,不支持此参数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
lon: 116.213, //数字类型;转换后的百度地理坐标经度
lat: 39.213 //数字类型;转换后的百度地理坐标纬度
}
err:
- 类型:JSON 对象
- 内部字段:
{
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.apicloud.A6985734480360'
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
zoomIn
缩小地图,放大视角,放大一级比例尺,此接口自带动画效果
zoomIn()
示例代码
var map = api.require('bMap');
map.zoomIn();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
zoomOut
放大地图,缩小视角,缩小一级比例尺,此接口自带动画效果
zoomOut()
示例代码
var map = api.require('bMap');
map.zoomOut();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addEventListener
监听地图相关事件
addEventListener({params}, callback(ret))
params
name:
- 类型:字符串
- 描述:地图相关事件名称
- 取值范围:
- longPress(长按事件)
- viewChange(地图视角范围改变事件)
- click(单击事件)
- dbclick(双击事件)
- zoom(放大缩小事件)iOS 平台暂不支持此监听
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isPolygonContantsPoint
判断已知点是否在指定的多边形区域内
isPolygonContantsPoint({params}, callback(ret))
params
point:
- 类型:JSON 对象
- 描述:已知点的地理坐标
- 内部字段:
{
lon: 116.297, //数字类型;经度
lat: 40.109 //数字类型;纬度
}
points:
- 类型:数组
- 描述:多边形的各个点组成的数组
- 内部字段:
[{
lon: 116.297, //数字类型;经度
lat: 40.109 //数字类型;纬度
}]
callBack(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
停止监听地图相关事件
removeEventListener({params})
params
name:
- 类型:字符串
- 描述:地图相关事件名称
- 取值范围:
- longPress(长按事件)
- viewChange(地图视角范围改变事件)
- click(单击事件)
- dbclick(双击事件)
- zoom(放大缩小事件)
示例代码
var map = api.require('bMap');
map.removeEventListener({
name: 'longPress'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startSearchGPS
开始搜索GPS信息(卫星个数,以及每个卫星的信噪比数组),本接口仅支持 android 平台
startSearchGPS(callback(ret, err))
callBack
ret:
- 类型:JSON 对象
- 内部字段:
{
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及更高版本
stopSearchGPS
停止搜索GPS信息,本接口仅支持 android 平台
stopSearchGPS()
示例代码
var map = api.require('bMap');
map.stopSearchGPS();
可用性
Android系统
可提供的1.0.0及更高版本
getCurrentLocation
获取当前定位,需调用 open 接口,且showUserLocation为true时,才可定位。
getCurrentLocation(callback(ret))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
code: 1 //数字类型;错误码,取值如下:
// 1:尚未定位成功
//-1:未知错误
}
示例代码
var bMap = api.require('bMap');
bMap.getCurrentLocation(
function(ret, err) {
if (ret.status){
alert(JSON.stringify(ret));
}else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
snapshotMap
截图 需调用 open 接口
snapshotMap(params, callback(ret))
params
path:
- 类型:字符串类型
- 描述:图片保存的路径 支持fs://
- 默认值:无
rect:
- 类型:JSON类型
- 描述:截图区域;如果不写此参数,截全屏;注:开发者要确保rect的x <= w and y <= h,否则截屏失败
- 默认值:无
- 内部字段
x: // 数字类型;左边开始区域
y: // 数字类型;上边开始区域
w:// 数字类型;右边截止区域
h:// 数字类型;底部截止区域
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否获取成功,true|false
path:'' //字符串类型;图片保存路径;status为true时有值
}
示例代码
var bMap = api.require('bMap');
bMap.snapshotMap(
function(ret, err) {
if(ret.status){
alert(JSON.stringify(ret));
}
});
showAnnotations
传入地标点,自适应地图层级需调用 open 接口
showAnnotations(params, callback(ret))
params
pointArray:
- 类型:数组类型
- 描述:地标点数组(Android不支持该参数)
- 默认值:无
- 内部字段
[
{
lon:, //经度
lat:, //纬度
},
]
location:
- 类型:JSON对象
- 描述:中心点位置(仅支持Android)
- 默认值:无
- 内部字段
{
lon:, //经度
lat:, //纬度
}
zoomLevel:
- 类型:数字类型
- 描述:放大级别(仅支持Android)
- 默认:19
- 取值范围(放大级别 - 比例尺):
- 1 - 10000km
- 2 - 5000km
- 3 - 2000km
- 4 - 1000km
- 5 - 500km
- 6 - 200km
- 7 - 100km
- 8 - 50km
- 9 - 25km
- 10 - 20km
- 11 - 10km
- 12 - 5km
- 13 - 2km
- 14 - 1km
- 15 - 500m
- 16 - 200m
- 17 - 100m
- 18 - 50m
- 19 - 20m
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否获取成功,true|false
}
示例代码
var bMap = api.require('bMap');
bMap.showAnnotations(
function(ret, err) {
if(ret.status){
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.2.1及更高版本
setIndoorMap
打开关闭室内地图
注意
1.因路况、卫星图和城市热力图,仅支持20级地图数据显示,室内地图放大到22级,打开路况、卫星图或城市热力图,无相应数据显示。
2.室内图默认是关闭的,通过本接口打开
setIndoorMap({params})
params
draggable:
- 类型:布尔
- 描述:(可选项)是否打开室内地图
- 默认值:true
示例代码
var map = api.require('bMap');
map.setIndoorMap({
enable: true
});
可用性
iOS系统,Android系统
可提供的1.0.9及更高版本
addIndoorListener
添加进出室内地图的监听
addIndoorListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
enter: true, //布尔型;进出室内地图,true:进入
strID: ‘’, //字符串类型;室内ID
strFloor:‘’, //字符串类型;当前楼层
}
示例代码
var map = api.require('bMap');
map.addIndoorListener(function(ret) {
if (ret.status) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.9及更高版本
switchIndoorMapFloor
切换楼层
switchIndoorMapFloor({params},callback(ret,err))
params
strID:
- 类型:字符串
- 描述:室内ID
strFloor:
- 类型:字符串
- 描述:楼层
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否设置成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 1 //数字类型;错误码
//1:切换楼层失败
//2:地图还未聚焦到传入的室内图
//3:当前室内图不存在该楼层
}
示例代码
var map = api.require('bMap');
map.switchIndoorMapFloor({
strFloor:'',
strID:''
});
可用性
iOS系统,Android系统
可提供的1.0.9及更高版本
indoorSearch
搜索室内地图内容
indoorSearch({params}, callback(ret, err))
params
strID:
- 类型:字符串
- 描述:室内ID
keyword:
- 类型:字符串
- 描述:关键字
pageIndex:
- 类型:数字
- 描述:分页索引,可选,默认为0
pageCapacity:
- 类型:数字
- 描述:分页数量,可选,默认为10,最多为50
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addAnnotations
在地图上添加标注信息
addAnnotations({params}, callback(ret))
params
annotations:
- 类型:数组
- 描述:图标标注信息组成的数组
- 内部字段:
[{
id: 1, //数字类型;图标标注的唯一标识
lon: 116.233, //数字类型;图标标注所在位置的经度
lat: 39.134, //数字类型;图标标注所在位置的纬度
icon: 'widget://', //(可选项)字符串类型;指定的标注图标,要求本地路径(fs://、widget://),若不传则显示公用的 icon 图标
draggable: true //(可选项)布尔类型;所添加的标注是否可被拖动,若不传则以公用的 draggable 为准
size: 30, //(可选项)数字类型;标注大小;默认:30(注:由于android上百度地图并没有提供接口来控制标注的大小,而是模块本身通过给定的宽高来计算缩放比来缩放背景图片(也就是icon参数),以此来达到改变整个标注大小的目的,会有一定的偏差,所以在android上的处理方式是如果不传此参数,按照原图来展示)
}]
icon:
- 类型:字符串
- 描述:(可选项)公用的标注图标,要求本地路径(fs://、widget://)
- 默认值:红色大头针
draggable:
- 类型:布尔
- 描述:(可选项)所添加的标注是否可被拖动
- 默认值:false
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
获取指定标注的经纬度
getAnnotationCoords({params}, callback(ret))
params
id:
- 类型:数字
- 描述:指定的标注 id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
设置某个已添加标注的经纬度
setAnnotationCoords(callback(ret, err))
params
id:
- 类型:数字
- 描述:指定的标注 id
lon:
- 类型:数字
- 描述:设置的经度
lat:
- 类型:数字
- 描述:设置的纬度
示例代码
var map = api.require('bMap');
map.setAnnotationCoords({
id: 2,
lon: 116.39,
lat: 40.209
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
annotationExist
判断标注是否存在
annotationExist({params}, callback(ret))
params
id:
- 类型:数字
- 描述:指定的标注 id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
设置点击标注时弹出的气泡信息
setBubble({params}, callback(ret))
params
id:
- 类型:数字
- 描述:要设置气泡的标注 id
bgImg:
- 类型:字符串
- 描述:(可选项)弹出气泡的背景图片(160*90规格),要求本地路径(fs://、widget://)
- 默认值:默认气泡样式
rect:
- 类型:JSON 对象
- 描述气泡的配图的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;气泡左上角的 x (相对)坐标 ;默认:10
y: 0, //(可选项)数字类型;气泡左上角的 y (相对)坐标 ;默认:5
w: 320, //(可选项)数字类型;气泡的宽度;默认:35
h: 480 //(可选项)数字类型;气泡的高度;默认:50
}
content:
- 类型:JSON 对象
- 描述:弹出气泡的内容
- 内部字段:
{
title: '', //字符串类型;弹出气泡的标题
subTitle: '', //(可选项)字符串类型;弹出气泡的概述内容,若不传则 title 在上下位置居中显示
illus: '' //(可选项)字符串类型;弹出气泡的配图(30*40规格),支持http://、https://、widget://、fs://等协议
}
styles:
- 类型:JSON 对象
- 描述:弹出气泡的样式
- 内部字段:
{
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
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
popupBubble
弹出指定标注的气泡
popupBubble({params})
params
id:
- 类型:数字
- 描述:气泡的 id
示例代码
var map = api.require('bMap');
map.popupBubble({
id: 2
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeBubble
关闭已弹出的气泡
closeBubble({params})
params
id:
- 类型:数字
- 描述:气泡的 id
示例代码
var map = api.require('bMap');
map.closeBubble({
id: 2
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addBillboard
在地图上添加布告牌
addBillboard({params})
params
id:
- 类型:数字
- 描述:布告牌的 id,注意:本 id 不可与 addAnnotations 接口内的 id 相同
coords:
- 类型:JSON 对象
- 描述:布告牌所在位置的坐标
- 内部字段:
{
lon: 116.233, //数字类型;布告牌所在位置的经度
lat: 39.134 //数字类型;布告牌所在位置的纬度
}
bgImg:
- 类型:字符串
- 描述:布告牌的背景图片(160*75规格),要求本地路径(fs://、widget://)
content:
- 类型:JSON 对象
- 描述:布告牌的内容
- 内部字段:
{
title: '', //(可选项)字符串类型;布告牌的标题
subTitle: '', //(可选项)字符串类型;布告牌的概述内容
illus: '' //(可选项)字符串类型;布告牌的配图(35*50规格),支持http://、https://、widget://、fs://等协议
}
styles:
- 类型:JSON 对象
- 描述:布告牌的样式
- 内部字段:
{
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:
- 类型:JSON 对象
- 描述:(可选项)布告牌右上角角标的样式,不配置则不显示
- 内部字段:
{
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
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addMobileAnnotations
在地图上添加可移动、旋转的标注图标,注意:本 id 不可与 addAnnotations、addBillboard 接口内的 id 相同
addMobileAnnotations({params})
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及更高版本
moveAnnotation
移动地图上已添加的可移动、旋转的标注图标,在移动动画开始前,会先做 0.3 秒的旋转动画,使所移动的图标中间轴线顶端对准终点坐标点。由于百度官方 SDK 的 bug 限制,在 Android 平台上,如果标注添加到地图当前可视区域以外的区域,则不可以移动该标注
moveAnnotation({params}, callback(ret, err))
params
id:
- 类型:数字
- 描述:要移动的标注的 id
duration:
- 类型:数字
- 描述:(可选项)标注图标移动动画的时间,单位为秒(s),不包括旋转动画时间
- 默认值:1.0(s)
end:
- 类型:JSON 对象
- 描述:终点经纬度
- 内部字段:
{
lon: 116.581515, //数字类型;终点的经度
lat: 29.615467 //数字类型;终点的纬度
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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及更高版本
removeAnnotations
移除指定 id 的标注(可移动、不可移动)或布告牌
removeAnnotations({params})
params
ids:
- 类型:数组
- 描述:(可选项)要移除的标注或布告牌id(数字),若不传或传空则移除所有addAnnotations、addBillboard、addMobileAnnotations接口添加的标注
示例代码
var map = api.require('bMap');
map.removeAnnotations({
ids: [1,3,5,7]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addCluster
往地图上添加聚合点
显示逻辑:
可以添加多个点到地图上。缩放地图时,会自动根据当前显示区域,将多个点聚合成一个点显示在地图上,并显示该点包含多少个聚合点。聚合点无点击相应事件,单个点才有(通过addClusterListener接口监听)。聚合点及单个点的样式可通过 styles 参数控制。比如:在天安门广场添加了20个聚合点,当地图缩小到当前屏幕显示五环以内的北京时,天安门广场位置只显示一个点,点的标题显示为数字20。当地图放大到当前屏幕只显示天安门广场时才显示单个点,可以通过 addClusterListener 接口监听其单击事件。
addCluster({params})
params
styles:
- 类型:JSON对象
- 描述:(可选项)聚合点的样式配置
- 内部字段:
{
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:
- 类型:字符串/数组类型
- 描述:为字符串类型时表示点信息文件路径,要求本地路径(widget://、fs://);若传数组类型则表示直接将点数据传给模块
- 内部字段:
[{
lat:, //数字类型;点纬度
lon:, //数字类型;点纬度
title:, //字符串类型;点击后弹出气泡的标题
subtitle:, //字符串类型;点击后弹出气泡的子标题
customID: //字符串类型;点自定义ID
}]
示例代码
var map = api.require('bMap');
map.addCluster({
styles: {
size: {
w: 22,
h: 22
},
corner: 11,
bg: {
point:'',
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
设置点击标注时弹出的气泡信息
setWebBubble({params})
params
id:
- 类型:数字
- 描述:要设置气泡的标注 id
url:
- 类型:字符串
- 描述:(可选项)弹出气泡的网页地址,用户点击标注时,模块在标注上弹出窗口(类似open一个frame,模块会用webview去加载此url的网页显示出来),当data参数不为空时,url将做为baseUrl,data中的html引用的资源文件根路径以该url为基础。
data:
- 类型:字符串
- 描述:(可选项)页面加载的数据内容,可以为html片段或者整张html文件的数据,当data为空或者不传的时候, 会将url地址作为整个加载进去
size:
- 类型:JSON对象
- 描述:(可选项)气泡的大小配置
- 内部字段
{
width: 50, //(可选项)数字类型;气泡的宽;默认:50
height: 50 //(可选项)数字类型;气泡的高;默认:50
}
bg:
- 类型:字符串
- 描述:(可选项)弹出气泡的背景设置,支持rgb、rgba、#、img(要求本地路径,如:widget://、fs://)(android不支持rgb、rgba、#)
- 默认:rgba(0,0,0,0)
示例代码
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
添加网页气泡点击监听
addWebBubbleListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
id: 1 //数字类型;用户点击气泡返回的id
}
示例代码
var map = api.require('bMap');
map.addWebBubbleListener(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,android系统
可提供的1.1.7及更高版本
removeWebBubbleListener
移除网页气泡点击监听
removeWebBubbleListener(callback(ret))
示例代码
var map = api.require('bMap');
map.removeWebBubbleListener();
可用性
iOS系统,android系统
可提供的1.1.7及更高版本
removeCluster
移除本次添加的聚合点
removeCluster()
示例代码
var map = api.require('bMap');
map.removeCluster();
可用性
iOS系统,Android系统
可提供的1.1.4及更高版本
addClusterListener
添加聚合点点击事件的监听
addClusterListener(callback(ret))
ret:
- 类型:JSON 对象
- 内部字段:
{
customID: //字符串类型;点击的标注的id
}
示例代码
var map = api.require('bMap');
map.addClusterListener(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.1.4及更高版本
addLine
在地图上添加折线
addLine({params})
params
id:
- 类型:数字
- 描述:折线的 id
styles:
- 类型:JSON 对象
- 描述:(可选项)折线的样式
- 内部字段:
{
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
在地图上添加多边形
addPolygon({params})
params
id:
- 类型:数字
- 描述:多边形的 id,不可与 addLine 接口内的 id 相同
styles:
- 类型:JSON 对象
- 描述:(可选项)多边形的样式
- 内部字段:
{
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
在地图上添加弧形
addArc({params})
params
id:
- 类型:数字
- 描述:多边形的 id,不可与 addLine、addPolygon 接口内的 id 相同
styles:
- 类型:JSON 对象
- 描述:(可选项)弧形的样式
- 内部字段:
{
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
在地图上添加圆形
addCircle({params})
params
id:
- 类型:数字
- 描述:圆形的 id,不可与 addLine、addPolygon、addArc 接口的 id 相同
center:
- 类型:JSON 对象
- 描述:圆形中心点的经纬度
- 内部字段:
{
lon: 116.297, //数字类型;圆形中心点的经度
lat: 40.109 //数字类型;圆形中心点的纬度
}
radius:
- 类型:数字
- 描述:圆形的半径
styles:
- 类型:JSON 对象
- 描述:(可选项)圆形的样式
- 内部字段:
{
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
在地图上添加图片
addImg({params})
params
id:
- 类型:数字
- 描述:图片 id,不可与 addLine、addPolygon、addArc、addCircle 接口的 id 相同
imgPath:
- 类型:字符串
- 描述:图片的路径,要求本地路径(fs://、widget://)
lbLon:
- 类型:数字
- 描述:左下角点的经度
lbLat:
- 类型:数字
- 描述:左下角点的纬度
rtLon:
- 类型:数字
- 描述:右上角点的经度
rtLat:
- 类型:数字
- 描述:右上角点的纬度
opacity:
- 类型:数字
- 描述:图片透明度,取值范围:0-1
- 默认:1
示例代码
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
根据绘制轨迹
drawRouteByPoints({params})
params
id:
- 类型:数字
- 描述:图片 id,不可与 addLine、addPolygon、addArc、addCircle、addImage 接口的 id 相同
width:
- 类型:数字类型
- 描述:(可选项)线宽
- 默认:13
color:
- 类型:字符串
- 描述:(可选项)颜色
- 默认:#AAFF0000
dash:
- 类型:布尔
- 描述:(可选项)是否虚线,仅支持Android端
- 默认:false
textureImg:
- 类型:字符串
- 描述:(可选项)纹理图片地址,要求本地路径(fs://、widget://)
points:
- 类型:JSONArray
- 描述:(可选项)位置点
- 内部字段
[{
lat:0.0, // 数字类型;维度
lon:0.0 // 数字类型;经度
}]
pointsFilePath:
- 类型:字符串
- 描述:(可选项)位置点资源文件(数据格式与points内部字段一致),支持 widget:// & fs://,该字段优先级高于points字段。iOS端必须是标准的json格式否则无法解析
示例代码
var map = api.require('bMap');
map.drawRouteByPoints({
points:[{
lat:0.0, // 数字类型;维度
lon:0.0 // 数字类型;经度
}]
});
可用性
Android ,iOS 系统
可提供的 1.3.5 及更高版本
removeOverlay
移除指定 id 的覆盖物(addLine、addPolygon、addArc、addCircle、addImg添加的覆盖物)
removeOverlay({params})
params
ids:
- 类型:数组
- 描述:要移除的 id(数字)组成的数组
示例代码
var map = api.require('bMap');
map.removeOverlay({
ids: [1, 2, 3, 4, 5]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
searchRoute
搜索路线方案,无需调用 open 接口即可使用
searchRoute({params}, callback(ret, err))
params
id:
- 类型:数字
- 描述:搜索的路线 id ,drawRoute 时使用
type:
- 类型:字符串
- 描述:(可选项)路线类型
- 默认值:transit
- 取值范围:
- drive(开车)
- transit(公交)
- walk(步行)
- riding(骑行)
policy:
- 类型:字符串
- 描述:(可选项)路线策略,type 为 walk(步行)或 riding(骑行)时,此参数可不传
- 默认值:'ebus_time_first/ecar_time_first'
- 注:android从1.1.6版本开始公交换乘不支持(ebus_no_subway, ebus_time_first, ebus_transfer_first, ebus_walk_first字段)
- 取值范围:
- ecar_fee_first(驾乘检索策略常量:较少费用)
- ecar_dis_first(驾乘检索策略常量:最短距离)
- ecar_time_first(驾乘检索策略常量:时间优先)
- ecar_avoid_jam(驾乘检索策略常量:躲避拥堵)
- ebus_no_subway(公交检索策略常量:不含地铁)
- ebus_time_first(公交检索策略常量:时间优先)
- ebus_transfer_first(公交检索策略常量:最少换乘)
- ebus_walk_first(公交检索策略常量:最少步行距离)
- ebus_in_time (市内公交检索策略常量:时间短)(ios不支持)
- ebus_in_transfer (市内公交检索策略常量:少换乘)(ios不支持)
- ebus_in_walk (市内公交检索策略常量:少不行)(ios不支持)
- ebus_in_no_subway (市内公交检索策略常量:不坐地铁)(ios不支持)
- ebus_in_subway_first (市内公交检索策略常量:地铁优先)(ios不支持)
- ebus_in_suggest (市内公交检索策略常量:推荐)(ios不支持)
- ebus_out_price (跨城公交检索策略常量:价格低)(ios不支持)
- ebus_out_time (跨城公交检索策略常量:时间短)(ios不支持)
- ebus_out_start_early (跨城公交检索策略常量:出发早)(ios不支持)
start:
- 类型:JSON 对象
- 描述:起点信息
- 内部字段:
{
lon: 116.403838, //(可选项)数字类型;起点经度
lat: 39.914437 //(可选项)数字类型;起点纬度
}
waypoints:
- 类型:数组对象
- 描述:(可选项)途经点信息组成的数组,仅当 type 为 drive 时有效,在 iOS端最多支持10个。
- 内部字段:
[{
lon: 116.403838, //数字类型;途径点经度
lat: 39.914437 //数字类型;途径点纬度
}]
end:
- 类型:JSON 对象
- 描述:终点信息
- 内部字段:
{
lon: 116.384852, //(可选项)数字类型;终点经度
lat: 39.989576 //(可选项)数字类型;终点纬度
}
isSameCity:
- 类型:布尔类型
- 描述:起点和终点是否是同一城市,仅支持Android端
- 注:当type为transit时,必须写此字段
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
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及更高版本
drawRoute
在地图上显示指定路线,调用本接口前,必须保证已经调用过接口 open 和 searchRoute
drawRoute({params}, callback(ret, err))
params
id:
- 类型:数字
- 描述:路线 id (searchRoute 时传的 id),removeRoute 时使用此 id 移除路线
autoresizing:
- 类型:布尔
- 描述:路线渲染结束是否自动调整地图可视区域
- 默认值:true
index:
- 类型:数字类型
- 描述:路线方案的索引,在 searchRoute 时返回的多个路线方案组成的数组中的索引
- 默认值:0
styles:
- 类型:JSON 对象
- 描述:路线样式设置
- 注:android目前sdk不支持地铁类型,所以出行方式为地铁的均会以公交的方式来绘制了路线,包括节点
- 内部字段:
{
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://);默认:百度图标
}
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
nodeIndex: 0, //数字类型;点击路线上结点的索引(该路线在所属方案 nodes 数组内的索引)
routeId: 1 //数字类型;点击的结点所在的路线的 id
}
示例代码
var map = api.require('bMap');
map.searchRoute({
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及更高版本
removeRoute
移除指定 id 的路线
removeRoute({params})
params
ids:
- 类型:数组
- 描述:所要移除的 id(数字)组成的数组
示例代码
var map = api.require('bMap');
map.removeRoute({
ids: [1, 2, 3]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
searchBusRoute
根据关键字搜索公交、地铁线路,无需调用 open 接口即可搜索
searchBusRoute({params}, callback(ret, err))
params
city:
- 类型:字符串
- 描述:城市
line:
- 类型:字符串
- 描述:公交、地铁线路号(例如:1路,1号线)
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
results: [{ //数组类型;返回搜索结果列表
name: '', //字符串类型;名称
uid: '', //字符串类型;兴趣点 uid
city: '', //字符串类型;所在城市
poiType: 0 //数字类型;POI 类型
//取值类型:
//2(公交线路)
//4(地铁线路)
}]
}
err:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
drawBusRoute
根据 searchBusRoute 搜索返回的 uid 查询线路详情并绘制在地图上
drawBusRoute({params}, callback(ret, err))
params
id:
- 类型:数字
- 描述:地图上显示的公交、地铁路线的 id,removeBusRoute 时使用此 id
autoresizing:
- 类型:布尔
- 描述:路线渲染结束是否自动调整地图可视区域
- 默认值:true
city:
- 类型:字符串
- 描述:城市
uid:
- 类型:字符串
- 描述:searchBusRoute 接口获取到的目标兴趣点的 uid
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
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){
alert(JSON.stringify(ret));
}else{
alert(JSON.stringify(err));
}
});
}
}else{
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeBusRoute
移除地图上显示的公交、地铁线路
removeBusRoute({params})
params
ids:
- 类型:数组
- 描述:所要移除的公交、地铁线路的 id(数字)组成的数组
示例代码
var map = api.require('bMap');
map.removeBusRoute({
ids:[1]
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
searchInCity
根据单个关键字搜索兴趣点,无需调用 open 接口即可搜索
searchInCity({params}, callback(ret, err))
params
city:
- 类型:字符串
- 描述:要搜索的城市
keyword:
- 类型:字符串
- 描述:搜索的关键字
pageIndex:
- 类型:数字
- 描述:(可选项)分页索引
- 默认:0
pageCapacity:
- 类型:数字
- 描述:(可选项)每页包含数据条数,最多为50
- 默认:10
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
searchNearby
根据单个关键字在圆形区域内搜索兴趣点,无需调用 open 接口即可搜索
searchNearby({params}, callback(ret, err))
params
keyword:
- 类型:字符串
- 描述:搜索关键字
lon:
- 类型:数字
- 描述:指定区域中心点的经度
lat:
- 类型:数字
- 描述:指定区域中心点的纬度
radius:
- 类型:数字
- 描述:指定区域的半径,单位为 m(米)
pageIndex:
- 类型:数字
- 描述:(可选项)分页索引
- 默认:0
pageCapacity:
- 类型:数字
- 描述:(可选项)每页包含数据条数,最多为20
- 默认:10
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
searchInBounds
根据单个关键字在方形区域内搜索兴趣点,无需调用 open 接口即可搜索
searchInBounds({params}, callback(ret, err))
params
keyword:
- 类型:字符串
- 描述:搜索关键字
lbLon:
- 类型:数字
- 描述:矩形左下角的经度
lbLat:
- 类型:数字
- 描述:矩形左下角的纬度
rtLon:
- 类型:数字
- 描述:矩形右上角的经度
rtLat:
- 类型:数字
- 描述:矩形右上角的纬度
pageIndex:
- 类型:数字
- 描述:(可选项)分页索引
- 默认:0
pageCapacity:
- 类型:数字
- 描述:(可选项)每页包含数据条数,最多为50
- 默认:10
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
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:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
} else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
autocomplete
根据关键字返回建议搜索关键字,无需调用 open 接口即可搜索
autocomplete({params}, callback(ret, err))
params
keyword:
- 类型:字符串
- 描述:关键字
city:
- 类型:字符串
- 描述:(可选项)要搜索的城市
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
results: [] //数组类型;返回建议搜索关键字组成的数组
allResults: [] //数组类型;返回建议搜索关键字检索点所有信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
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 {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
searchDistrict
行政区边界检索绘制,需要先调用 open 接口
searchDistrict({params}, callback(ret, err))
params
id:
- 类型:字符串
- 描述:搜索的行政区id,removeDistrict时使用
city:
- 类型:字符串
- 描述:城市名字
district:
- 类型:字符串
- 描述:(可选项)区县名字
style:
- 类型:JSON 对象
- 描述:边界样式设置
- 内部字段:
{
fillColor: '', //(可选项)字符串类型;填充颜色,支持rgb、rgba、#;默认:'rgba(0,0,0,0)'
strokeColor: '', //(可选项)字符串类型;画笔颜色,支持rgb、rgba、#;默认:'#ff0000'
lineWidth: 1, //(可选项)数值类型;画笔宽度;默认:1
lineDash: true, //(可选项)布尔类型;是否为虚线样式;默认:false
}
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
success: true, //布尔型;true||false
}
err:
- 类型:JSON 对象
- 内部字段:
{
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){
alert(JSON.stringify(ret));
}else {
alert(JSON.stringify(err));
}
});
可用性
iOS系统,Android系统
可提供的1.1.9及更高版本
removeDistrict
移除行政区边界
removeDistrict({params})
params
id:
- 类型:字符串
- 描述:searchDistrict传入的id
示例代码
var map = api.require('bMap');
map.removeDistrict({
id: '0'
}
);
可用性
iOS系统,Android系统
可提供的1.1.9及更高版本
getHotCityList
获取热门城市列表,无需调用 open 接口
getHotCityList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getOfflineCityList
获取支持离线下载城市列表,无需调用 open 接口
getOfflineCityList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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){
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
searchCityByName
根据城市名搜索该城市离线地图记录,无需调用 open 接口
searchCityByName({params}, callback(ret))
params
name:
- 类型:字符串
- 描述:指定搜索的城市名
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getAllUpdateInfo
获取各城市离线地图更新信息,无需调用 open 接口
getAllUpdateInfo(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getUpdateInfoByID
获取指定城市id离线地图更新信息,无需调用 open 接口
getUpdateInfoByID({params}, callback(ret))
params
cityID:
- 类型:数字
- 描述:指定的城市id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
start
启动下载指定城市 id 的离线地图,无需调用 open 接口
start({params}, callback(ret))
params
cityID:
- 类型:数字
- 描述:指定的城市id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
示例代码
var map = api.require('bMap');
map.start({
cityID: 1
}, function(ret) {
if (ret.status) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
update
启动更新指定城市 id 的离线地图,无需调用 open 接口
update({params}, callback(ret))
params
cityID:
- 类型:数字
- 描述:指定的城市id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
示例代码
var map = api.require('bMap');
map.update({
cityID: 1
}, function(ret) {
if (ret.status) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pause
暂停下载指定城市 id 的离线地图,无需调用 open 接口
pause({params}, callback(ret))
params
cityID:
- 类型:数字
- 描述:指定的城市id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
示例代码
var map = api.require('bMap');
map.pause({
cityID: 1
}, function(ret) {
if (ret.status) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
remove
删除下载指定城市 id 的离线地图,无需调用 open 接口
remove({params}, callback(ret))
params
cityID:
- 类型:数字
- 描述:指定的城市id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;true||false
}
示例代码
var map = api.require('bMap');
map.remove({
cityID: 1
}, function(ret) {
if (ret.status) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addOfflineListener
监听离线地图相关事件
addOfflineListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
移除监听离线地图事件
removeOfflineListener()
示例代码
var map = api.require('bMap');
map.removeOfflineListener();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
walkNavi
步行导航
walkNavi({params}, callback(ret))
params
currentPosition:
- 类型:JSON 对象
- 描述:起始位置
- 内部字段:
{
latitude: 40.049879, //数字类型;纬度;(必传,通过getLocation 获取当前位置)
longitude: 116.279853 //数字类型;经度;(必传,通过getLocation 获取当前位置)
}
destination:
- 类型:JSON 对象
- 描述:终点位置
- 内部字段:
{
latitude: 40.058918, //数字类型;纬度;默认:0
longitude: 116.312621 //数字类型;经度;默认:0
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cyclingNavi
骑行导航
cyclingNavi({params}, callback(ret))
params
currentPosition:
- 类型:JSON 对象
- 描述:起始位置
- 内部字段:
{
latitude: 40.049879, //数字类型;纬度;(必传,通过getLocation 获取当前位置)
longitude: 116.279853 //数字类型;经度;(必传,通过getLocation 获取当前位置)
}
destination:
- 类型:JSON 对象
- 描述:终点位置
- 内部字段:
{
latitude: 40.058918, //数字类型;纬度;默认:0
longitude: 116.312621 //数字类型;经度;默认:0
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addTTSListening
监听语音播报文本
addTTSListening({params}, callback(ret))
params
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
text: '', //字符串类型;语音播报的文本
}
示例代码
var map = api.require('bMap');
map.addTTSListening({
}, function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。