您当前的位置: URI API > 接口说明 > android端
android端

适用环境

移动应用、浏览器端应用均可调起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以上版本支持)

1 接口通用说明

1.1 实现原理

在百度地图的清单文件中对主页面设置了

android:scheme="baidumap"
 
android:host="map"
 
属性.指定了接受Uri的scheme为baidumap,host为map。当接收到指定Uri后,在主界面中对Uri进行解析和业务拆分,实现功能的调用。
其中
 
native:scheme为baidumap,host为map
 
web:scheme为bdapp,host为map

1.2使用方法

第三方APP在使用该类型接口时,手机中需要安装Android百度地图,同时需要拼写符合协议规范的Uri串,通过srartActivity的方式进行调用。示例如下

// 调起出行早知道页面
 
Intent i1 = new Intent();
 
i1.setData(Uri.parse("baidumap://map/newsassistant"));
 
startActivity(i1);
 
//网页应用调起Android百度地图方式举例
 
<a href="bdapp://map/newsassistant">调起出行早知道页面</a>

在第三方APP中执行上述代码就可以打开百度地图的出行早知道界面。如下图:

image2016-10-2113-23-22.png

2 接口说明

百度地图Open API所有接口共分为四类,分别为:图区功能类,搜索功能类,导航类和信息显示类。每个接口对应一个专门的Uri串,每个串中相应参数会在下面详细说明。

2.1 通用参数

每个协议都可以填写的通用参数

参数说明

参数 描述
coord_type 坐标类型,可选参数,默认为bd09经纬度坐标。允许的值为bd09ll、bd09mc、gcj02、wgs84。bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托坐标,gcj02表示经过国测局加密的坐标,wgs84表示gps获取的坐标
src 必选参数,格式为:companyName|appName
不传此参数,不保证服务

2.2 图区功能

2.2.1 展示地图

展示地图,可通过zoom、center以及bounds来指定地图的视野范围。

URL接口: baidumap://map/show

参数说明

参数名称 描述 是否必选 格式(示例)
center 中心点 可选 lat,lng (先纬度,后经度)
center和bounds不可全为空
bounds 图区范围 可选 lat,lng,lat,lng (先纬度,后经度, 先左下,后右上)
center和bounds不可全为空
traffic 是否开启路况,目前仅查看地图和打点支持,on表示开启,off表示关闭。 可选 on、off
zoom 地图展示的级别 可选 13

注意: 1. 地点搜索限定范围可以由bounds和zoom+center方式进行,其中bounds优先级最高。

使用示例:

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>

显示效果如下:

image2016-10-2113-25-44.png

2.2.2 自定义打点 调用该接口可调起Android百度地图,且在指定坐标点上显示点的名称和内容信息。

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>

显示效果如下:

image2016-10-2113-26-14.png

2.2.3 展示地图图区 展示地图图区,无参数。

URL接口:baidumap://map?

使用示例:

Intent i1 = new Intent();
 
// 展示地图图区
 
i1.setData(Uri.parse("baidumap://map?"));
 
startActivity(i1);
 
//网页应用调起Android百度地图方式举例
 
<a href="bdapp://map?">展示地图图区</a>

显示效果如下:

image2016-10-2113-26-41.png

2.2.4 地址解析 调用该接口可以在调起百度地图时,在图区显示地址对应的坐标点。

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>

显示效果如下:

image2016-10-2113-27-21.png

2.2.5 反向地址解析=== 调用该接口可调起百度地图,经过逆地理编码后,以标注形式显示位置和地址信息。

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>

显示效果如下:

image2016-10-2113-27-45.png

2.3 搜索功能

2.3.1 POI搜索

根据给定的关键字、检索条件进行检索。

URL接口:baidumap://map/place/search

参数说明

参数名称 描述 是否必选 格式(示例)
query 关键词 必选
region 城市名或县名 选择方式:地点搜索限定范围可以由region、bounds和location + radius方式进行,其中
bounds优先级最高、
region优先级最低
location 中心点经纬度,或中心点经纬度和名称描述,注意,名称不参与检索,只负责显示。 同上

经纬度: 39.9761,116.3282
经纬度和名称: latlng:39.9761,116.3282|name:中关村 (注意:坐标先纬度,后经度)

bounds 视野范围 同上 lat,lng ,lat,lng (先纬度,后经度, 先左下,后右上)
radius 检索半径,单位:m

使用示例:

Intent i1 = new Intent();
 
// POI搜索
 
i1.setData(Uri.parse("baidumap://map/place/search?query=美食&region=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=美食&region=beijing&
location=39.915168,116.403875&radius=1000&bounds=37.8608310000,112.5963090000,42.1942670000,118.9491260000">POI搜索</a>

显示效果如下:

image2016-10-2113-28-3.png

2.3.2路线规划

路线规划

公交、驾车、步行导航

URL接口:baidumap://map/direction

参数说明

参数名称 描述 是否必选 格式(示例)
origin 起点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示 origin和destination
二者至少一个有值(默认值是当前定位地址)

经纬度: 39.9761,116.3282
经纬度和名称:
latlng:39.9761,116.3282|name:中关村 (注意:坐标先纬度,后经度)

destination 终点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。 同上

经纬度: 39.9761,116.3282
经纬度和名称:
latlng:39.9761,116.3282|name:中关村 (注意:坐标先纬度,后经度)

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

注意:

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则不是必须的

使用示例:

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>

显示效果如下:

image2016-10-2113-28-21.png

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>

显示效果如下:

image2016-10-2113-28-43.png

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>

显示效果如下:

image2016-10-2113-29-9.png

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>

显示效果如下:

image2016-10-2113-32-9.png


2.3.3 公交、地铁线路查询 公交、地铁线路查询

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>

显示效果如下:

image2016-10-2113-30-8.png

2.3.4 附近搜索 进入附近页,搜周边页,或者直接发起周边检索

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>

显示效果如下:

image2016-10-2113-32-56.png

2.4 导航

2.4.1 驾车导航

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>

显示效果如下:

image2016-10-2113-34-8.png

2.4.2 骑行导航

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>

显示效果如下:

image2016-10-2113-33-21.png

2.4.3 步行导航

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>

显示效果如下:

image2016-10-2113-33-34.png

2.4.4 导航到家(公司)(map9.5.5以上版本支持)

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>

显示效果如下:

image2016-10-2113-34-8.png

2.5 信息显示

2.5.1 POI详情显示

根据poi的uid展示详情页。

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>

显示效果如下:

image2016-10-2113-34-35.png

2.5.2 离线导航包

调起离线导航包下载页面,无参数

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>

显示效果如下:

image2016-10-2113-34-53.png

2.5.3 路线(出行)页面调起协议

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>

显示效果如下:

image2016-10-2113-46-23.png

Intent i1 = new Intent();
 
// 路线(出行)页面调起:跳转到二级常用地址设置页面
 
i1.setData(Uri.parse("baidumap://map/routepage?type=car"));
 
startActivity(i1);

显示效果如下:

image2016-10-2113-46-36.png

2.5.4 出行早知道

跳转出行早知道页面

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>

显示效果如下:

image2016-10-2113-47-0.png

2.5.5 行程助手

跳转行程助手主页或者编辑页

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>

显示效果如下:

image2016-10-2113-47-14.png

Intent i1 = new Intent();
 
// 调起行程助手主页或者编辑页
 
i1.setData(Uri.parse("baidumap://map/trip?action=home"));
 
startActivity(i1);
 
//网页应用调起Android百度地图方式举例
 
<a href="bdapp://map/trip?action=home">调起行程助手主页或者编辑页</a>

显示效果如下:

image2016-10-2113-47-30.png

2.5.6 实时公交页面(map9.5.5以上版本支持)

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>

显示效果如下:

image2016-10-2113-47-52.png

2.5.7 离线地图下载页面(map9.5.5以上版本支持)

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>

显示效果如下:

image2016-10-2113-48-5.png