小程序调用第三方地图
1、js方法如下
function openMapByDefault(latitude, longitude, name) {
uni.openLocation({
latitude: latitude,
longitude: longitude,
name: name,
fail: () => {
uni.showModal({
content: '打开地图失败,请重'
})
},
})
}
function openMapByAndroid(latitude, longitude, name) {
let url = '';
let identity = '';
if(plus.runtime.isApplicationExist({
pname: 'com.baidu.BaiduMap'})) {
url = `baidumap://map/marker?location=${
latitude},${
longitude}&title=${
name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`
identity = 'com.baidu.BaiduMap'
openURL(url, identity)
}
else if(plus.runtime.isApplicationExist({
pname: 'com.autonavi.minimap'})) {
url = `androidamap://viewMap?sourceApplication=appname&poiname=${
name}&lat=${
latitude}&lon=${
longitude}&dev=0`
identity = 'com.autonavi.minimap'
openURL(url, identity)
}
else {
openMapByDefault(latitude, longitude, name)
}
}
function openMapByIos(latitude, longitude, name) {
let url = '';
let errorCB = '';
let identity = '';
if(plus.runtime.isApplicationExist({
action: 'baidumap://'})) {
url = `baidumap://map/marker?location=${
latitude},${
longitude}&title=${
name}&content=${
name}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
openURL(url, identity)
}
else if(plus.runtime.isApplicationExist({
action: 'iosamap://'})) {
url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${
name}&lat=${
latitude}&lon=${
longitude}&dev=0`
openURL(url, identity)
}
else {
openMapByDefault(latitude, longitude, name)
}
}
function openURL(url, identity ) {
let newurl = encodeURI(url);
plus.runtime.openURL( newurl, function(res){
uni.showModal({
content: res.message
})
}, identity);
}
function getCoordByType(longitude, latitude, coord_type) {
return [longitude, latitude]
}
export default {
openMap(latitude, longitude, name, coord_type='gcj02') {
let arr = getCoordByType(longitude, latitude, coord_type)
switch(plus.os.name){
case 'Android':
console.log('运行Android上')
openMapByAndroid(arr[1], arr[0], name)
break;
case 'iOS':
console.log('运行iOS上')
openMapByIos(arr[1], arr[0], name)
break;
default:
openMapByDefault(arr[1], arr[0], name)
console.log('运行在开发者工具上')
break;
}
openMapByDefault(arr[1], arr[0], name)
}
}
2、调用方法
import Map from '@/utilities/open-map.js'
Map.openMap(Number(item.lat), Number(item.lng),item.hospLvName)
3、需要原生APP配置