高德导航插件

uniapp 高德导航插件地址:https://ext.dcloud.net.cn/plugin?id=2688

高德导航demo体验:

在这里插入图片描述

使用文档说明

1.首先需要先申请高德Key

高德开发api官网

进入控制台,点击应用管理,配置包名,申请高德apiKey

查询uniapp SHA1签名步骤

1) 将项目打包,然后把apk修改后缀为 .zip文件后解压;
2) 进入解压后的META-INF目录,该目录下会存在文件CERT.RSA
3) 在该目录下打开cmd,输入命令 :keytool -printcert -file CERT.RSA 这里将会显示出MD5和SHA1签名。

2.插件如何调用说明

1.初始化

const gaodeMap = uni.requireNativePlugin('gaode-map'); 

2.地图隐私合规检查接口

            //隐私权政策是否包含高德开平隐私权政策  true是包含
            var isContains = true;//隐私权政策是否包含高德开平隐私权政策  true是包含
            var isShow = true;//隐私权政策是否弹窗展示告知用户 true是展示 
            gaodeMap.updatePrivacyShow(isContains,isShow)

            //隐私权政策是否取得用户同意  true是用户同意
            gaodeMap.updatePrivacyAgree(true)

2.(起点,途径点,终点)导航

参数1:起点 可为空 [ ]
*参数2:途径点(最多支持三个) 可为空 [ ]
参数3:终点

	getShowRoute(){
				
				//起点 
				let start = {
					Name: '三元桥',
					Lat: 39.904556,
					Lng: 116.427231,
					ID: ""
				};
				//途径点(最多支持三个)
				let wayList = [];
				let json = {
					Name: '团结湖',
					Lat: 39.93413,
					Lng: 116.461676,
					ID: ""
				}
				let json1 = {
					Name: '华润大厦',
					Lat: 39.912914,
					Lng: 116.434247,
					ID: ""
				};
				wayList.push(json);
				wayList.push(json1);
				//终点
				let end = {
					Name: '北京站',
					Lat: 39.974556,
					Lng: 116.427231,
					ID: ""
				};
				gaodeMap.gotoShowRoute([],wayList,end,(res)=>{
					console.log(res)
				});
				/* gaodeMap.gotoShowRoute(start, wayList, end, (res) => {
					console.log(res)
				}); */
				/* gaodeMap.gotoShowRoute(start,[],end,(res)=>{
					console.log(res)
				}); */
				/* gaodeMap.gotoShowRoute([],[],end,(res)=>{
					console.log(res)
				}); */
			
			}

3.驾车导航

参数: {
//起始点位置纬度
startLat: this.latlng.lat,
//起始点位置经度
startLng: this.latlng.lng,
//起点名称 可省去不写
startName: “A”,
//终点纬度
endLat: this.latlng.lat + 0.00530826,
//终点经度
endLng: this.latlng.lng + 0.00403157,
//终点名称 可省去不写
endName: “B”
}

gaodeMap.gotoDriveRoute(mapNavi);

4.驾车导航(设置导航策略)

	/* 设置驾车策略导航 */
				let mapStrategy = {
					//起始点位置纬度
					startLat: this.latlng.lat,
					//起始点位置经度
					startLng: this.latlng.lng,
					//终点纬度
					endLat: this.latlng.lat + 0.00530826,
					//终点经度
					endLng: this.latlng.lng + 0.00403157,
					/* ongestion:躲避拥堵
						avoidhightspeed:不走高速
						cost:避免收费
						hightspeed:高速优先
						multiple:多路径 */
					congestion:true,
					avoidhightspeed:true,
					cost:false,
					hightspeed:false,
					multiple:false
				}
				gaodeMap.gotoDriveStrategy(mapStrategy, function(res) {
					console.log(res)
				});

5.骑行导航

	gaodeMap.gotoDriveRoute(mapNavi, function(res) {
					console.log(res)
				});

6.步行导航

/* 步行导航 当前位置,终点距离不能超过100公里 */
				gaodeMap.gotoWalkRoute(mapNavi, function(res) {
					console.log(res)
				});

7. 直接导航

	/* 直接导航 */
				gaodeMap.gotoStartGaoDeNav(mapNavi, function(res) {
					console.log(res)
				});

8.货车导航

//货车导航
				let car={ 
					carInfo:{
					        carNumber:"京DFZ239",//车号
					        carType:"1",//设置车辆类型,0小车,1货车
							vehicleSize:"4",//设置货车的等级
					        vehicleHeight:"4",//设置货车的高度,单位:米。
					        vehicleWeight:"96",//设置货车的自重
					        vehicleLoad:"100",//设置货车的载重,单位:吨
					        vehicleWidth:"2",//设置货车的最大宽度,单位:米。 如:1.8,1.5等等。
					        vehicleLength:"25",//设置货车的最大长度,单位:米
					        vehicleAxis:"6",设置货车的轴数
							vehicleLoadSwitch:true,//设置车辆的载重是否参与算路
							restriction:true,//设置是否躲避车辆限行。
					        },
					   poiList:[
					        {
					            Name:"三元桥",
								Lat:39.96087,
					            Lng:116.45798,
					            ID:""
					        },
							{
								Name: '团结湖',
								Lat: 39.93413,
								Lng: 116.461676,
								ID: ""
							}
						],
						end:{
							Name: '北京站',
							Lat: 39.994556,
							Lng: 116.427231,
							ID: ""
						}
						
				};
				gaodeMap.gotoAMapCarInfo(car,true, function(res) {
					console.log(res)
				});

9.自定义导航(接乘客,送乘客到目的地)

为避免勾选讯飞语音造成冲突,所有共用平台的讯飞语音,如使用此方法避免出现白屏,请勾选讯飞语音
在这里插入图片描述

let mapNavi = {
					//当前车位置
					currentPositionLat: this.latlng.lat,
					currentPositionLng: this.latlng.lng,
					//乘客起始点位置纬度
					userStartLat: this.latlng.lat+ 0.00100826, 
					//乘客起始点位置经度
					userStartLng: this.latlng.lng+ 0.00003157,
					startName: "某某路A小区",
					//乘客下车终点纬度
					userEndLat: this.latlng.lat + 0.00900826,
					//乘客下车终点经度
					userEndLng: this.latlng.lng + 0.00603157,
					endName: "某某路某街B小区", 
					phoneNum:"18790275701", //用户手机号
					type:0    //0代表正在前往乘客路上 1代表前往目的地
				}
				gaodeMap.startCustomNavigation(mapNavi, function(res) {
					/* code 200 到达乘客上车点 
					   code 201 到达目的地
					  totalDistance 驾车总距离 单位米
					   getLatLngTime 获取右滑按钮后提交的时间
					   lastLatLng 获取右滑按钮提交后的经纬度
					  */
					console.log(res)
				});

3.返回的code码说明

code码问题说明
0默认值
100导航初始化失败
101启动导航
102定位回调
103线路计算成功
104线路计算失败
105线路规划失败
106路径规划完毕,开始导航
107到达途经点
108到达目的地
109退出导航
110销毁导航
200到达乘客上车点
201到达目的地

4.高德相关错误码说明

响应码问题说明
-1路径计算失败。
2网络超时或网络失败。
3路径规划起点经纬度不合法。
4协议解析错误。
6路径规划终点经纬度不合法。
7算路服务端编码失败。
13key鉴权失败
18请求参数非法。
21途经点经纬度不合法。
22MD5安全码验证未通过。

5.vue使用示例

<script>
	const gaodeMap = uni.requireNativePlugin('gaode-map');
	let mapNavi = {};
	export default {
		data() {
			return {
				latlng: {
					lat: "",
					lng: ""
				}
			}
		},
		onLoad() {
			uni.getLocation({
				success: (res) => {
					console.log(res);
					this.latlng.lat = res.latitude;
					this.latlng.lng = res.longitude;
					mapNavi = {
						//起始点位置纬度
						startLat: this.latlng.lat,
						//起始点位置经度
						startLng: this.latlng.lng,
						startName: "A",
						//终点纬度
						endLat: this.latlng.lat + 0.00530826,
						//终点经度
						endLng: this.latlng.lng + 0.00403157,
						endName: "B"
					}
				}
			})

		},
		methods: {
		//自定义导航 仿打车app*/
			gotoCustomNavigation() {
				let mapNavi = {
					//当前车位置
					currentPositionLat: this.latlng.lat,
					currentPositionLng: this.latlng.lng,
					//乘客起始点位置纬度
					userStartLat: this.latlng.lat + 0.00100826,
					//乘客起始点位置经度
					userStartLng: this.latlng.lng + 0.00003157,
					startName: "某某路A小区",
					//乘客下车终点纬度
					userEndLat: this.latlng.lat + 0.00900826,
					//乘客下车终点经度
					userEndLng: this.latlng.lng + 0.00603157,
					endName: "某某路某街B小区",
					phoneNum: "18790275701", //用户手机号
					type: 0 //0代表正在前往乘客路上 1代表前往目的地
				}
				gaodeMap.startCustomNavigation(mapNavi, function(res) {
					/* code 200 到达乘客上车点 
					   code 201 到达目的地
					  totalDistance 驾车总距离 单位米
					   getLatLngTime 获取右滑按钮后提交的时间
					   lastLatLng 获取右滑按钮提交后的经纬度
					  */
					console.log(res)
				});
			},
			gotoStartGaoDeNav() {
				/* 直接导航 */
				gaodeMap.gotoStartGaoDeNav(mapNavi, function(res) {
					console.log(res)
				});
			},
			gotoRide() {
				/* 骑行导航 */
				gaodeMap.gotoRideRoute(mapNavi, function(res) {
					console.log(res)
				});
			},
			gotoDriveRoute() {
				/* 驾车导航 */
				gaodeMap.gotoDriveRoute(mapNavi, function(res) {
					console.log(res)
				});
			},
			gotoWalkRoute() {
				/* 步行导航 当前位置,终点距离不能超过100公里 */
				gaodeMap.gotoWalkRoute(mapNavi, function(res) {
					console.log(res)
				});
			},
			getShowRoute() {
				//起点 
				let start = {
					Name: '三元桥',
					Lat: 39.904556,
					Lng: 116.427231,
					ID: ""
				};
				//途径点(最多支持三个)
				let wayList = [];
				let json = {
					Name: '团结湖',
					Lat: 39.93413,
					Lng: 116.461676,
					ID: ""
				}
				let json1 = {
					Name: '华润大厦',
					Lat: 39.912914,
					Lng: 116.434247,
					ID: ""
				};
				wayList.push(json);
				wayList.push(json1);
				//终点
				let end = {
					Name: '北京站',
					Lat: 39.974556,
					Lng: 116.427231,
					ID: ""
				};
					gaodeMap.gotoShowRoute([],wayList,end,(res)=>{
					console.log(res)
				});
				/* gaodeMap.gotoShowRoute(start, wayList, end, (res) => {
					console.log(res)
				}); */
				/* gaodeMap.gotoShowRoute(start,[],end,(res)=>{
					console.log(res)
				}); */
				/* gaodeMap.gotoShowRoute([],[],end,(res)=>{
					console.log(res)
				}); */
			}

		}
	}
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值