简介
该方法支持跳转第三方地图并定位指定坐标。
APP端跳转至百度地图(第三方软件);若无,则跳转至高德地图(第三方软件);若均无,则打开腾讯地图(uni自带方法:uni.openLocation)
其它端打开腾讯地图(uni自带方法:uni.openLocation)
demo
源码:https://github.com/yapeee/uni-components
测试数据:
wgs84: 39.9078008469, 116.391290596
bd09: 39.915547, 116.403909
gcj02: 39.9091591069, 116.3974783161
基础用法
import Map from '../ms-openMap.js' Map.openMap(latitude, longitude, name, coord_type)
属性说明
参数
说明
类型
latitude
纬度(默认GCJ-02坐标系)
Float
longitude
经度(默认GCJ-02坐标系)
Float
name
地图标注名称
String
coord_type
坐标类型,可选参数。示例:gcj02、bd09、wgs84
String
实现方案
首先判断程序的运行平台,不同的平台调用不同的打开地图的方法。android和ios平台下,判断并打开百度地图和高德地图。其他平台下,打开腾讯地图网页版(uni自带方法)。
一、判断运行平台
通过条件编译及uni.getSystemInfoSync().platform来判断android、ios及其他平台。
// #ifdef APP-PLUS switch(uni.getSystemInfoSync().platform){ case 'android': console.log('运行Android上') openMapByAndroid(latitude, longitude, name) break; case 'ios': console.log('运行iOS上') openMapByIos(latitude, longitude, name) break; default: openMapByDefault(latitude, longitude, name) console.log('运行在开发者工具上') break; } // #endif // #ifndef APP-PLUS openMapByDefault(latitude, longitude, name) // #endif tips:
平台判断有2种场景,一种是在编译期判断,一种是在运行期判断。
编译期判断:即条件编译,不同平台在编译出包后已经是不同的代码。
运行期判断:运行期判断是指代码已经打入包中,仍然需要在运行期判断平台,此时可使用 uni.getSystemInfoSync().platform 判断客户端环境是 Android、iOS 还是小程序开发工具(在百度小程序开发工具、微信小程序开发工具、支付宝小程序开发工具中使用 uni.getSystemInfoSync().platform 返回值均为 devtools)。
二、APP打开第三方地图的方法
HTML5+是对接SDK与页面的中间件,用于页面通过js调用底层的SDK接口。
2.1、 APP判断第三方应用是否存在
/* * appInf: ( ApplicationInf ) 必选 要判断第三方程序的描述信息 * Android平台需要通过设置appInf的pname属性(包名)进行查询。 * iOS平台需要通过设置appInf的action属性(Scheme)进行查询,在iOS9以后需要添加白名单才可查询, * 在manifest.json文件plus->distribute->apple->urlschemewhitelist节点下添加(如urlschemewhitelist:["weixin"]). */ plus.runtime.isApplicationExist(appInf);
2.1.1、判断百度地图应用是否存在
plus.runtime.isApplicationExist({pname: 'com.baidu.BaiduMap', action: 'baidumap://'})
2.1.2、判断高德地图应用是否存在
plus.runtime.isApplicationExist({pname: 'com.autonavi.minimap'},action: 'iosamap://'})
2.2、APP调用第三方程序打开指定的URL
/* * 说明:调用第三方程序打开指定的URL * 参数: * url: ( String ) 必选 要打开的URL地址 * errorCB: ( OpenErrorCallback ) 可选 打开URL地址失败的回调 * identity: ( String ) 可选 指定打开URL地址的程序名称 */ plus.runtime.openURL( url, errorCB, identity );
2.2.1、打开第三方程序实际应用
function openURL(url, identity ) { let newurl = encodeURI(url); plus.runtime.openURL( newurl, function(res){ uni.showModal({ content: res.message }) }, identity); }
2.2.2、打开android百度地图
url = `baidumap://map/marker"htmlcode">url = `androidamap://viewMap"htmlcode">url = `baidumap://map/marker"htmlcode">url = `iosamap://viewMap"color: #ff0000">三、其他平台打开地图的方法其他平台采用uni.openLocation(OBJECT)方法使用应用内置地图查看位置。
uni.openLocation({ latitude: latitude, longitude: longitude, name: name, fail: () => { uni.showModal({ content: '打开地图失败,请重' }) }, })更新日志
2020-01-02
支持BD-09(百度坐标)、GCJ-02(高德、腾讯)、WGS-84(GPS坐标)坐标系。
2019.12.10
第一次发布,支持跳转第三方地图并定位指定坐标。
参考
百度地图URI API
高德地图URI API
uni-app HTML5+ API以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]