uniapp 移动端调起第三方地图(腾讯,百度,高德)并标注位置,进行导航

点击某个地方,调起下面的方法
方法要传入需要标注地点的纬度latitude,经度longitude,名字name

//打开第三方地图
			toMapAPP(latitude,longitude,name){
			    let url = "";
			    if (plus.os.name == "Android") {//判断是安卓端
					plus.nativeUI.actionSheet({//选择菜单
					    title: "选择地图应用",
					    cancel: "取消",
					    buttons: [{title: "腾讯地图"},{title: "百度地图"}, {title: "高德地图"}]
					}, function(e) {
					    switch (e.index) {
							//下面是拼接url,不同系统以及不同地图都有不同的拼接字段
					        case 1:
							    //注意referer=xxx的xxx替换成你在腾讯地图开发平台申请的key
					            url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
					            break;
					        case 2:
					            url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
					            break;
							case 3:
							    url = `androidamap://viewMap?sourceApplication=appname&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
								break;
					        default:
					            break;
					    }
					    if (url != "") {
					        url = encodeURI(url);
							//plus.runtime.openURL(url,function(e){})调起手机APP应用
					        plus.runtime.openURL(url, function(e) {
					            plus.nativeUI.alert("本机未安装指定的地图应用");
					        });
					    }
					})
			    } else {
			        // iOS上获取本机是否安装了百度高德地图,需要在manifest里配置
					// 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
					//(如urlschemewhitelist:["iosamap","baidumap"])  
			        plus.nativeUI.actionSheet({
			            title: "选择地图应用",
			            cancel: "取消",
			            buttons: [{title: "腾讯地图"},{title: "百度地图"}, {title: "高德地图"}]
			        }, function(e) {
			            switch (e.index) {
			                case 1:
			                    url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
			                    break;
			                case 2:
			                    url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&content=${name}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
			                    break;
							case 3:
							    url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
								break;
			                default:
			                    break;
			            }
			            if (url != "") {
			                url = encodeURI(url);
			                plus.runtime.openURL(url, function(e) {
			                    plus.nativeUI.alert("本机未安装指定的地图应用");
			                });
			            }
			        })
			    }
			}
  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
以下是使用uniapp腾讯地图SDK进行导航的示例代码: 1. 在HBuilderX中创建一个uniapp项目。 2. 在项目根目录下的manifest.json文件中添加以下权限: ```json "app-plus": { "modules": { "tencentMap": { "useNative": true } } }, ``` 3. 在HBuilderX中打开插件市场,搜索并安装tencentMap插件。 4. 在需要使用地图导航的页面中引入tencentMap插件: ```javascript import tencentMap from '@/uni_modules/tencentMap/js_sdk/tencentMap'; ``` 5. 在导航按钮的点击事件中添加以下代码: ```javascript let plugin = requirePlugin('tencentMap'); let key = '你的腾讯地图key'; // 请替换为你自己的key let referer = 'uniapp-demo'; // 请替换为你自己的应用名称 let endPoint = JSON.stringify({ // 导航终点 'name': '终点名称', 'latitude': 终点纬度, 'longitude': 终点经度 }); let mode = 'driving'; // 导航模式,可以选取 walking, bicycling, driving let url = 'https://apis.map.qq.com/tools/routeplan/' + '?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint + '&mode=' + mode; uni.navigateTo({ url: '/pages/webview/webview?url=' + encodeURIComponent(url) }) ``` 6. 在需要打开webview的页面中创建一个webview组件,用于显示地图导航页面: ```html <template> <view> <web-view :src="url"/> </view> </template> <script> export default { props: ['url'] } </script> ``` 7. 最后,你需要在腾讯地图开放平台上申请一个key,并将其替换为代码中的key。同时,你还需要在应用的开发者中心中设置referer。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值