目录

 

前言

原理

示例代码

1.百度地图

2.高德地图


前言

最近由于业务需求需要拉起百度地图和高德地图进行导航,

原理

百度和高德都给开发者提供了接口,开发者只需要调用接口传递起始坐标就可以了。

示例代码

1.百度地图

效果图:

代码:

try {LatLng startLatLng = new LatLng(39.940387, 116.29446);LatLng endLatLng = new LatLng(39.87397, 116.529025);String uri = String.format("baidumap://map/direction?origin=%s,%s&destination=" +"%s,%s&mode=driving&src=com.34xian.demo", startLatLng.latitude, startLatLng.longitude,endLatLng.latitude, endLatLng.longitude);Intent intent = new Intent();intent.setData(Uri.parse(uri));startActivity(intent);}catch (ActivityNotFoundException e) {ToastUtil.showShort(this, "请安装百度地图");}

注:代码坐标与效果图坐标不同(都是随机拾取的)

参数说明:

参数名称 描述 是否必选 格式(示例)
origin 起点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。如果没有origin的情况下,会使用用户定位的坐标点作为起点 origin和destination二者至少一个有值(默认值是当前定位地址) latlng:39.98871,116.43234 (注意:坐标先纬度,后经度)
名称和经纬度:name:天安门|latlng:39.98871,116.43234|addr:北京市东城区东长安街(注意:坐标先纬度,后经度)
建筑ID和楼层ID: name:天安门|latlng:39.98871,116.43234|building:10041552286161815796|floor:F1(注意:建筑ID和楼层ID必须同时提供,用于是内步行路线规划)
注意:仅有名称的情况下,请不要带“name:”,只需要origin=“起点名称”
destination 终点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。 同上 latlng:39.98871,116.43234 (注意:坐标先纬度,后经度)
名称和经纬度:name:天安门|latlng:39.98871,116.43234|addr:北京市东城区东长安街(注意:坐标先纬度,后经度)
建筑ID和楼层ID: name:天安门|latlng:39.98871,116.43234|building:10041552286161815796|floor:F1(注意:建筑ID和楼层ID必须同时提供,用于是内步行路线规划)
注意:仅有名称的情况下,请不要带“name:”,只需要destination=“终点名称”
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
car_type 驾车路线规划类型 可选 BLK:躲避拥堵(自驾)
TIME:高速优先(自驾)
DIS:不走高速(自驾)
FEE:少收费(自驾)
DEFAULT: 默认偏好; 默认使用地图中已保存的路线偏好(缺省值)。
除缺省值外,若用户已勾选车牌限行,其他类型都会默认增加车牌限行的偏好。
viaPoints 途经点参数,内容为json格式,需要把内容encode后拼接到url中。
未编码的参数内容示例如下,其中name为名称,lat为纬度,lng为经度

{
"viaPoints": [
{
"name": "北京西站",
"lat": 39.902463,
"lng": 116.327737
},
{
"name": "北京动物园",
"lat": 39.945136,
"lng": 116.346983
},
{
"name": "清华大学",
"lat": 40.011006,
"lng": 116.338897
}
]
}

可选 10.2新增
src 统计来源 必选 参数格式为:andr.companyName.appName
不传此参数,不保证服务

注意:
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]

2.高德地图

效果图:

 

代码:

try {double gdLatitude = 39.92848272double gdLongitude = 116.39560823String uri = String.format("amapuri://route/plan/?dlat=%s&dlon=%s&dname=B&dev=0&t=0",gdLatitude, gdLongitude);Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");intent.addCategory("android.intent.category.DEFAULT");intent.setData(Uri.parse(uri));intent.setPackage("com.autonavi.minimap");startActivity(intent);}catch (ActivityNotFoundException e) {ToastUtil.showShort(this, "请安装高德地图");}

参数说明:

参数

说明

是否必填

route

服务类型

sourceApplication

第三方调用应用名称。如 amap

sid

起点的POIID

slat

起点纬度。如果不填写此参数则自动将用户当前位置设为起点纬度。

slon

起点经度。如果不填写此参数则自动将用户当前位置设为起点经度。 

sname

起点名称

did

终点的POIID

dlat

终点纬度

dlon

终点经度

dname

终点名称

dev

起终点是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)

m

驾车方式 =0(速度快)=1(费用少) =2(路程短)=3 不走高速 =4(躲避拥堵)=5(不走高速且避免收费) =6(不走高速且躲避拥堵) =7(躲避收费和拥堵) =8(不走高速躲避收费和拥堵)。 公交 =0(速度快)=1(费用少) =2(换乘较少)=3(步行少)=4(舒适)=5(不乘地铁)

由于与用户本地设置冲突,Android平台7.5.9版本起不支持该参数,偏好设置将以用户本地设置为准

t

t = 0(驾车)= 1(公交)= 2(步行)= 3(骑行)= 4(火车)= 5(长途客车)

 (骑行仅在V7.8.8以上版本支持) 

rideType

仅当 t = 3 时该参数生效。rideType = elebike    电动车,rideType = bike/为空 自行车

(电动车规划仅在V8.65.0及以上版本支持)

盛京三四线

更多相关文章

  1. Android获取App当前页面的Activity名称
  2. 查看Android应用包名package和入口activity名称
  3. ANDROID 开发日志(2012-01-04)
  4. android中自定义的控件,使用自定义属性attrs.xml
  5. android和ios GoogleMap画导航线路图 路径规划(Directions)
  6. Android(安卓)studio 任意修改项目包名(含com)
  7. Android编程获取地理位置的经度和纬度实例
  8. android so库多平台引用第三方so库,及多平台编译
  9. ADB命令行 使用总结(持续更新中)

随机推荐

  1. application全局变量
  2. Android的animation
  3. android 渐变的半圆进度条
  4. 在Eclipse 中关联android sdk 源代码
  5. Android的Location功能代码
  6. Android(安卓)Dialog定义没有标题的注意
  7. 关于android studio 的FAILURE: Build fa
  8. 获取android系统信息或应用程序信息
  9. 7 android 星级滑块
  10. **android studio 编写淘宝界面## 标题**