planningRoute.js
function openMapRoute(lat,lon,cityName) {
var url = '';
if (plus.os.name == 'Android') {
var hasBaiduMap = plus.runtime.isApplicationExist({
pname: 'com.baidu.BaiduMap',
action: 'baidumap://'
});
var hasAmap = plus.runtime.isApplicationExist({
pname: 'com.autonavi.minimap',
action: 'androidamap://'
});
var urlBaiduMap = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=源应用';
var urlAmap = 'androidamap://viewMap?sourceApplication=源应用&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon +
'&dev=0';
if (hasAmap && hasBaiduMap) {
plus.nativeUI.actionSheet({
title: '选择地图应用',
cancel: '取消',
buttons: [{
title: '百度地图'
}, {
title: '高德地图'
}]
}, function(e) {
switch (e.index) {
case 1:
plus.runtime.openURL(urlBaiduMap);
break;
case 2:
plus.runtime.openURL(urlAmap);
break;
}
});
} else if (hasAmap) {
plus.runtime.openURL(urlAmap);
} else if (hasBaiduMap) {
plus.runtime.openURL(urlBaiduMap);
} else {
url = 'geo:' + lat + ',' + lon + '?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82';
plus.runtime.openURL(url); //如果是国外应用,应该优先使用这个,会启动google地图。这个接口不能统一坐标系,进入百度地图时会有偏差
}
} else {
// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置,在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加(如urlschemewhitelist:["iosamap","baidumap"])
plus.nativeUI.actionSheet({
title: '选择地图应用',
cancel: '取消',
buttons: [{
title: 'Apple地图'
}, {
title: '百度地图'
}, {
title: '高德地图'
}]
}, function(e) {
switch (e.index) {
case 1:
url = 'http://maps.apple.com/?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82&ll=' + lat + ',' + lon +
'&spn=0.008766,0.019441';
break;
case 2:
url = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=源应用';
break;
case 3:
url = 'iosamap://viewMap?sourceApplication=源应用&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon + '&dev=0';
break;
default:
break;
}
if (url != '') {
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert('本机未安装指定的地图应用');
});
}
});
}
}
// 获取地址坐标,注入坐标,开启地图
export default function addressCoordinates(cityName) {
plus.maps.Map.geocode(
cityName,
event => {
var address = event.address; // 转换后的地理位置
var point = event.coord; // 转换后的坐标信息
var coordType = event.coordType; // 转换后的坐标系类型
// 注入
openMapRoute(point.latitude, point.longitude,cityName)
},
e => {
var address = e.address; // 转换后的地理位置
var point = e.coord; // 转换后的坐标信息
var coordType = e.coordType; // 转换后的坐标系类型
// 注入
openMapRoute(point.latitude, point.longitude,cityName)
}
);
}
enterprise.vue
1.先导入
import planningRoute from '@/static/utils/planningRoute.js'
2.调用
planningRoute(address){
planningRoute(address)
}