第455行: | 第455行: | ||
<div class="serve-explain-text"> | <div class="serve-explain-text"> | ||
注意: | 注意: | ||
+ | |||
1、direction?region=北京&origin=39.98871,116.43234&destination=40.055878,116.307854mode=transit&index=0&target=1 index=0&target=1 加了这两个,进入某条线路的详情或图区,现在用于到站提醒调起特定线路。已经有index的情况下,target不填就是默认0; | 1、direction?region=北京&origin=39.98871,116.43234&destination=40.055878,116.307854mode=transit&index=0&target=1 index=0&target=1 加了这两个,进入某条线路的详情或图区,现在用于到站提醒调起特定线路。已经有index的情况下,target不填就是默认0; | ||
2、仅仅发起检索,跳到搜索结果页, index, target则不是必须的。 | 2、仅仅发起检索,跳到搜索结果页, index, target则不是必须的。 | ||
+ | |||
+ | 3、带途经点的示例如下:[baidumap://map/direction?mode=driving&destination=上地&origin=西二旗&src=push&viaPoints={"viaPoints":[{"name":"北京西站","lat":39.902463,"lng":116.327737}]} baidumap://map/direction?mode=driving&destination=上地&origin=西二旗&src=push&viaPoints=%7B%22viaPoints%22%3A%5B%7B%22name%22%3A%22%E5%8C%97%E4%BA%AC%E8%A5%BF%E7%AB%99%22%2C%22lat%22%3A39.902463%2C%22lng%22%3A116.327737%7D%5D%7D] | ||
+ | |||
</div> | </div> | ||
<div class="separate-title">使用示例</div> | <div class="separate-title">使用示例</div> |
2018年1月30日 (二) 16:08的版本
移动应用、浏览器端应用均可调起Android版百度地图。
该调用方式是指第三方基于Android SDK进行应用开发时要调用Android版百度地图客户端需遵守的协议。该协议要正确执行除了要参数填写正确外,还必须要安装Android百度地图。
1 接口通用说明 1.1 实现原理 1.2 使用方法 2 接口说明 2.1 通用参数 2.2 图区功能 2.2.1 展示地图 2.2.2 自定义打点 2.2.3 展示地图图区 2.2.4 地址解析 2.2.5 反向地址解析 2.3 搜索功能 2.3.1 POI搜索 2.3.2 路线规划 2.3.3 公交、地铁路线查询 2.3.4 附近搜索 2.4 导航 2.4.1 驾车导航 2.4.2 骑行导航 2.4.3 步行导航 2.4.4 导航到家(公司)(map9.5.5以上版本支持) 2.5 信息显示 2.5.1 POI详情显示 2.5.2 离线导航包 2.5.3 路线(出行)页面调起协议 2.5.4 出行早知道 2.5.5 行程助手 2.5.6 实时公交页面(map9.5.5以上版本支持) 2.5.7 离线地图下载页面(map9.5.5以上版本支持) 2.5.8 实时汇率页面 2.5.9 实时翻译页面
android:scheme="baidumap" android:host="map" 属性.指定了接受Uri的scheme为baidumap,host为map。当接收到指定Uri后,在主界面中对Uri进行解析和业务拆分,实现功能的调用。 其中 native:scheme为baidumap,host为map web:scheme为bdapp,host为map
// 调起出行早知道页面 Intent i1 = new Intent(); i1.setData(Uri.parse("baidumap://map/newsassistant")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/newsassistant">调起出行早知道页面</a>
百度地图Open API所有接口共分为四类,分别为:图区功能类,搜索功能类,导航类和信息显示类。每个接口对应一个专门的Uri串,每个串中相应参数会在下面详细说明。
参数 | 描述 |
---|---|
coord_type | 坐标类型,可选参数,默认为bd09经纬度坐标。允许的值为bd09ll、bd09mc、gcj02、wgs84。bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托坐标,gcj02表示经过国测局加密的坐标,wgs84表示gps获取的坐标 |
src | 必选参数,格式为:companyName|appName 不传此参数,不保证服务 |
URL接口: baidumap://map/show
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
center | 中心点 | 可选 | lat,lng (先纬度,后经度) center和bounds不可全为空 |
bounds | 图区范围 | 可选 | lat,lng,lat,lng (先纬度,后经度, 先左下,后右上) center和bounds不可全为空 |
traffic | 是否开启路况,目前仅查看地图和打点支持,on表示开启,off表示关闭。 | 可选 | on、off |
zoom | 地图展示的级别 | 可选 | 13 |
Intent i1 = new Intent(); // 展示地图 i1.setData(Uri.parse(" baidumap://map/show?center=40.057406655722,116.29644071728&zoom=11&traffic=on&bounds=37.8608310000,112.5963090000,42.1942670000,118.9491260000")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/show?center=40.057406655722,116.29644071728 &zoom=11&traffic=on&bounds=37.8608310000,112.5963090000,42.1942670000,118.9491260000">展示地图</a>
URL接口:baidumap://map/marker
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
location | 经纬度 | 必选 | at,lng (先纬度,后经度) |
title | 打点标题 | 必选 | |
content | 打点内容 | 可选 | |
traffic | 是否开启路况,目前仅查看地图和打点支持,on表示开启,off表示关闭。 | 可选 | on、off |
// 自定义打点 i1.setData(Uri.parse("baidumap://map/marker?location=40.057406655722,116.2964407172&title=Marker&content=makeamarker&traffic=on")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/marker?location=40.05740665572, 116.2964407172&title=Marker&content=makeamarker&traffic=on"> 自定义打点</a>
URL接口:baidumap://map?
Intent i1 = new Intent(); // 展示地图图区 i1.setData(Uri.parse("baidumap://map?")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map?">展示地图图区</a>
URL接口: baidumap://map/geocoder
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
address | 地址名称 | 必选 | 北京市海淀区上地信息路9号奎科科技大厦 |
Intent i1 = new Intent(); // 地址解析 i1.setData(Uri.parse("baidumap://map/geocoder?src=openApiDemo&address=北京市海淀区上地信息路9号奎科科技大厦")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp:// map/geocoder?src=openApiDemo&address=北京市海淀区上地信息路9号奎科科技大厦">地址解析</a>
URL接口: baidumap://map/geocoder
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
location | 经纬度 | 必选 | lat,lng (先纬度,后经度) |
Intent i1 = new Intent(); // 反向地址解析 i1.setData(Uri.parse("baidumap://map/geocoder?location=39.98871,116.43234")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/geocoder?location=39.98871,116.43234">反向地 址解析</a>
URL接口:baidumap://map/place/search
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
query | 关键词 | 必选 | |
region | 城市名或县名 | 选择方式:地点搜索限定范围可以由region、bounds和location + radius方式进行,其中 bounds优先级最高、 region优先级最低 |
|
location | 中心点经纬度,或中心点经纬度和名称描述,注意,名称不参与检索,只负责显示。 | 同上 |
经纬度: 39.9761,116.3282 |
bounds | 视野范围 | 同上 | lat,lng ,lat,lng (先纬度,后经度, 先左下,后右上) |
radius | 检索半径,单位:m |
Intent i1 = new Intent(); // POI搜索 i1.setData(Uri.parse("baidumap://map/place/search?query=美食®ion=beijing&location=39.915168,116.403875&radius=1000&bounds=37.8608310000,112.5963090000,42.1942670000,118.9491260000")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/place/search?query=美食®ion=beijing& location=39.915168,116.403875&radius=1000&bounds=37.8608310000,112.5963090000,42.1942670000,118.9491260000">POI搜索</a>
URL接口:baidumap://map/direction
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
origin | 起点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示 | origin和destination 二者至少一个有值(默认值是当前定位地址) |
经纬度: 39.9761,116.3282 |
destination | 终点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。 | 同上 |
经纬度: 39.9761,116.3282 |
mode | 导航模式, 可选transit(公交)、 driving(驾车)、 walking(步行)和riding(骑行). 默认:driving |
可选 | |
region | 城市名或县名 | 可选 | |
origin_region | 起点所在城市或县 | 可选 | |
destination_region | 终点所在城市或县 | 可选 | |
sy | 公交检索策略,只针对mode字段填写transit情况下有效,值为数字。 0:推荐路线 2:少换乘 3:少步行 4:不坐地铁 5:时间短 6:地铁优先 |
可选 | |
index | 公交结果结果项,只针对公交检索,值为数字,从0开始 | 可选 | |
target | 0 图区,1 详情,只针对公交检索有效 | 可选 | 默认0 |
viaPoints | 途经点参数,内容为json格式,需要把内容encode后拼接到url中。 未编码的参数内容示例如下,
其中name为名称,lat为纬度,lng为经度 { |
可选 | 10.2新增 |
注意:
1、direction?region=北京&origin=39.98871,116.43234&destination=40.055878,116.307854mode=transit&index=0&target=1 index=0&target=1 加了这两个,进入某条线路的详情或图区,现在用于到站提醒调起特定线路。已经有index的情况下,target不填就是默认0;
2、仅仅发起检索,跳到搜索结果页, index, target则不是必须的。
3、带途经点的示例如下:[baidumap://map/direction?mode=driving&destination=上地&origin=西二旗&src=push&viaPoints={"viaPoints":[{"name":"北京西站","lat":39.902463,"lng":116.327737}]} baidumap://map/direction?mode=driving&destination=上地&origin=西二旗&src=push&viaPoints=%7B%22viaPoints%22%3A%5B%7B%22name%22%3A%22%E5%8C%97%E4%BA%AC%E8%A5%BF%E7%AB%99%22%2C%22lat%22%3A39.902463%2C%22lng%22%3A116.327737%7D%5D%7D]
1)公交路线规划示例: Intent i1 = new Intent(); // 公交路线规划 i1.setData(Uri.parse("baidumap://map/direction?origin=name:对外经贸大学|latlng:39.98871,116.43234&destination=name:西直门&mode=transit&sy=3&index=0&target=1")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/direction?origin=name:对外经贸大学|latlng: 39.98871,116.43234&destination=name:西直门&mode=transit&sy=3 &index=0&target=1">公交路线规划</a>
显示效果如下:
2)驾车路线规划示例: Intent i1 = new Intent(); // 驾车路线规划 i1.setData(Uri.parse("baidumap://map/direction?region=beijing&origin=39.98871,116.43234&destination=name:西直门&mode=driving")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/direction?region=beijing&origin=39.98871, 116.43234&destination=name:西直门&mode=driving">驾车路线规划</a>
显示效果如下:
3)步行路线规划示例: Intent i1 = new Intent(); // 步行路线规划 i1.setData(Uri.parse("baidumap://map/direction?region=beijing&origin=39.98871,116.43234&destination=40.057406655722,116.2964407172&mode=walking")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/direction?region=beijing&origin=39.98871, 116.43234&destination=40.057406655722,116.2964407172&mode=walking">步行路线规划</a>
显示效果如下:
4)骑行路线规划示例: Intent i1 = new Intent(); // 骑行路线规划 i1.setData(Uri.parse("baidumap://map/direction?region=beijing&origin=39.98871,116.43234&destination=40.057406655722,116.2964407172&mode=riding")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/direction?region=beijing&origin=39.98871, 116.43234&destination=40.057406655722,116.2964407172&mode=riding">骑行路线规划</a>
显示效果如下:
URL接口:baidumap://map/line
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
region | 城市名或县名 | 必选 | 北京 |
name | 线路名称 | 必选 | 运通112 |
Intent i1 = new Intent(); // 公交、地铁线路查询 i1.setData(Uri.parse("baidumap://map/line?region=北京&name=112")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/ line?region=北京&name=112">公交、地铁线路查询</a>
URL接口:baidumap://map/place/nearby
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
center | 中心点经纬度,或中心点经纬度和名称描述,注意,名称不参与检索,只负责显示。
如果有此参数则跳转搜周边页面,否则跳转附近页。 |
可选 | 经纬度:39.9761,116.3282
经纬度和名称:latlng:39.9761,116.3282|name:中关村 |
query | 检索关键字。如果有此关键字则直接发起检索 | 可选 | 例如:美食 |
radius | 检索半径,默认为5000 | 可选 |
注意:
1. 打开搜周边页: 传center, 不传query
2. 发起附近搜索: 传query。 center可选(参照注释4)。
3. 如果传入center,发起附近搜索的中心点为传入的center值,否则为定位位置。Intent i1 = new Intent(); // 附近搜索 i1.setData(Uri.parse("baidumap://map/place/nearby?query=团购")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/place/nearby?query=团购">附近搜索</a>
URL接口:baidumap://map/navi
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
location | 坐标点, location与query二者必须有一个,当有location时,忽略query | 可选 | 经纬度:39.9761,116.3282 |
query | 搜索key, location与query二者必须有一个,当有location时,忽略query | 可选 | 故宫 |
Intent i1 = new Intent(); // 驾车导航 i1.setData(Uri.parse("baidumap://map/navi?query=故宫")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/navi?query=故宫">驾车导航</a>
显示效果如下:
URL接口:baidumap://map/bikenavi
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
origin | 起点坐标点 | 必选 | 经纬度:39.98871,116.43234 |
destination | 终点坐标点 | 必选 | 经纬度:39.98871,116.43234 |
Intent i1 = new Intent(); // 骑行导航 i1.setData(Uri.parse("baidumap://map/bikenavi?origin=39.98871,116.43234&destination=39.91441,116.40405")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/bikenavi?origin=39.98871,116.43234& destination=39.91441,116.40405">骑行导航</a>
显示效果如下:
URL接口:baidumap://map/walknavi
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
origin | 起点坐标点 | 必选 | 经纬度:39.98871,116.43234 |
destination | 终点坐标点 | 必选 | 经纬度:39.98871,116.43234 |
Intent i1 = new Intent(); // 步行导航 i1.setData(Uri.parse("baidumap://map/walknavi?origin=40.057406655722,116.2964407172&destination=39.91441,116.40405")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/walknavi?origin=40.057406655722, 116.2964407172&destination=39.91441,116.40405">步行导航</a>
显示效果如下:
URL接口:baidumap://map/navi/common
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
addr | 地址类型: home:家 company:公司 |
必选 |
Intent i1 = new Intent(); // 导航到家 i1.setData(Uri.parse("baidumap://map/navi/common?addr=home")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/navi/common?addr=home">导航到家</a>
显示效果如下:
URL接口:baidumap://map/place/detail
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
uid | POI的ID,可以通过百度地图开放平台或者百度地图SDK获取 | 必选 | |
show_type | 展现方式(7.1版本增加的协议) | 可选 | 1.detail_bar是POI图区详情页(图区带底部bar的页面), 2.detail_page是poi详情页。 默认值:detail_bar。 |
Intent i1 = new Intent(); //POI详情显示 i1.setData(Uri.parse("baidumap://map/place/detail?uid=09185c56d24f7e44f1193763&show_type=detail_page")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/place/detail?uid=09185c56d24f7e44f1193763& show_type=detail_page"> POI详情显示</a>
显示效果如下:
URL接口:baidumap://map/navi/offlinemap
Intent i1 = new Intent(); //调起离线导航包下载页面 i1.setData(Uri.parse("baidumap://map/navi/offlinemap")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/navi/offlinemap">离线导航包</a>
显示效果如下:
URL接口:baidumap://map/routepage
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
type | 路线类型 | 可选 | String类型: bus 公交, car 驾车, walk 步行, ride 骑行, 默认car |
param | 额外参数 | 可选 | json格式,主要用于统计 |
action | 中转参数 | 可选 | set_home_action, set_company_action,,dig_home_action, dig_company_action。通过路线页面中转跳到某个二级页面。比如家地址认领页面 |
Intent i1 = new Intent(); // 路线(出行)页面调起:跳转到二级常用地址设置页面 i1.setData(Uri.parse("baidumap://map/routepage?type=car&action=set_home_action")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/routepage?type=car&action=set_home_action">路线(出行)页面调起</a>
显示效果如下:
Intent i1 = new Intent(); // 路线(出行)页面调起:跳转到二级常用地址设置页面 i1.setData(Uri.parse("baidumap://map/routepage?type=car")); startActivity(i1);
显示效果如下:
URL接口:baidumap://map/newsassistant
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
cityid | 城市id, 跳转到出行早知道页面的城市id。如果不传则跳转到当前城市页面。 | 可选 |
Intent i1 = new Intent(); // 调起出行早知道页面 i1.setData(Uri.parse("baidumap://map/newsassistant")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/newsassistant">调起出行早知道页面</a>
显示效果如下:
URL接口:baidumap://map/trip
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
action | edit 跳转编辑页; 其他任意字符串, 跳行程助手主页 |
必选 | |
sourceFrom | 统计用 | 可选 | |
tripId | 行程的id, | 可选 | string类型 |
end_uid | 终点uid | 可选 | |
end_name | 终点名称 | 可选 | |
end_loc | 终点坐标 | 可选 |
Intent i1 = new Intent(); // 调起行程助手主页或者编辑页 i1.setData(Uri.parse("baidumap://map/trip?action=edit&tripId=去西站")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/trip?action=edit&tripId=去西站">调起行程助手主页或者编辑页</a>
显示效果如下:
Intent i1 = new Intent(); // 调起行程助手主页或者编辑页 i1.setData(Uri.parse("baidumap://map/trip?action=home")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/trip?action=home">调起行程助手主页或者编辑页</a>
显示效果如下:
URL接口:baidumap://map/page/realtimebus
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
mode | 启动模式: CLEAN_MODE 启动后清除页面栈,back后退出程序; MAP_MODE 启动后清除页面栈,back回退后到住地图; NORMAL_MODE 启动后保留原有页面栈; NORMAL_MAP_MODE 如果有界面,保持栈不变,如果没有插入地图。 |
可选 |
Intent i1 = new Intent(); // 打开实时公交页面 i1.setData(Uri.parse("baidumap://map/page/realtimebus?mode= NORMAL_MAP_MODE")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/page/realtimebus?mode= NORMAL_MAP_MODE">打开实时公交页面</a>
显示效果如下:
URL接口:baidumap://map/page/offlinemap
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
mode | 启动模式: CLEAN_MODE 启动后清除页面栈,back后退出程序; MAP_MODE 启动后清除页面栈,back回退后到住地图; NORMAL_MODE 启动后保留原有页面栈; NORMAL_MAP_MODE 如果有界面,保持栈不变,如果没有插入地图。 |
可选 |
Intent i1 = new Intent(); // 离线地图下载页面 i1.setData(Uri.parse("baidumap://map/page/offlinemap?mode= NORMAL_MAP_MODE")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/page/offlinemap?mode= NORMAL_MAP_MODE">离线地图下载页面</a>
显示效果如下:
URL接口:baidumap://map/component?comName=international&target=international_exchangerate_page
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
mode | 启动模式: CLEAN_MODE 启动后清除页面栈,back后退出程序; MAP_MODE 启动后清除页面栈,back回退后到住地图; NORMAL_MODE 启动后保留原有页面栈; NORMAL_MAP_MODE 如果有界面,保持栈不变,如果没有插入地图。 |
可选 |
Intent i1 = new Intent(); // 实时汇率页面 i1.setData(Uri.parse("baidumap://map/component?comName=international&target=international_exchangerate_page?mode=NORMAL_MAP_MODE")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/component?comName=international&target=international_exchangerate_page?mode=NORMAL_MAP_MODE">实时汇率页面</a>
URL接口:baidumap://map/component?comName=international&target=international_translation_page
参数名称 | 描述 | 是否必选 | 格式(示例) |
---|---|---|---|
mode | 启动模式: CLEAN_MODE 启动后清除页面栈,back后退出程序; MAP_MODE 启动后清除页面栈,back回退后到住地图; NORMAL_MODE 启动后保留原有页面栈; NORMAL_MAP_MODE 如果有界面,保持栈不变,如果没有插入地图。 |
可选 |
Intent i1 = new Intent(); // 实时翻译页面 i1.setData(Uri.parse("baidumap://map/component?comName=international&target=international_translation_page?mode=NORMAL_MAP_MODE")); startActivity(i1); //网页应用调起Android百度地图方式举例 <a href="bdapp://map/component?comName=international&target=international_translation_page?mode=NORMAL_MAP_MODE">实时翻译页面</a>