导航的话通常都是调用第三方(高德,或者百度)。如果指定那个地图的话可以在高德地图开发文档中找。这边直接上代码
navigaToShop(item) {
let shop_latitude = item.latitude;//目的地纬度
let shop_longtude = item.longitude;//目的地经度
let shop_address =item.stationname;//目的地地址
let current_latitude = this.latitude;//当前纬度
let current_longitude = this.longitude;//当前经度
var packageName = 'com.autonavi.minimap';
var main = plus.android.runtimeMainActivity();
var packageManager = main.getPackageManager();
var PackageManager = plus.android.importClass(packageManager);
var packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
if (packageInfo)
{
var Uri = plus.android.importClass("android.net.Uri");
var url = "amapuri://route/plan?sourceApplication=maxuslife" + "&sid=A&slat=" + current_latitude + "&slon=" + current_longitude + "&sname=" + this .current_address + "&did=B&dlat=" + shop_latitude + "&dlon=" + shop_longtude + "&dname=" + shop_address + "D10&dev=0&t=0";
var Intent = plus.android.importClass('android.content.Intent');
var intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
var uri = Uri.parse(url);
//将功能Scheme以URI的方式传入
data intent.setData(uri);
intent.setPackage("com.autonavi.minimap");
var main = plus.android.runtimeMainActivity();
main.startActivity(intent);
} else {
uni.showToast({ icon: 'none', title: `未安装高德导航APP,请先安装` })
} },
我在项目中的代码
/**
* @description: 唤起高德导航
*/
toAddress() {
let startLon = this.longitude;
let startLat = this.latitude;
let endLon = this.driverLongitude;
let endLat = this.driverLatitude;
// 无人机导航经纬度
if (this.taskInfo.instruction == 1) {
let endLat = this.takeoffLatitude;
let endLon = this.takeoffLongitude;
}
var packageName = 'com.autonavi.minimap';
var main = plus.android.runtimeMainActivity();
var packageManager = main.getPackageManager();
var PackageManager = plus.android.importClass(packageManager);
var packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
if (packageInfo) {
var Uri = plus.android.importClass('android.net.Uri');
var url =
'amapuri://route/plan?sourceApplication=maxuslife' +
'&sid=A&slat=' +
startLat +
'&slon=' +
startLon +
'&sname=起始地点' +
'&did=B&dlat=' +
endLat +
'&dlon=' +
endLon +
'&dname=结束地点&dev=0&t=0';
var Intent = plus.android.importClass('android.content.Intent');
var intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addCategory(Intent.CATEGORY_DEFAULT);
var uri = Uri.parse(url);
//将功能Scheme以URI的方式传入data
intent.setData(uri);
intent.setPackage('com.autonavi.minimap');
var main = plus.android.runtimeMainActivity();
main.startActivity(intent);
} else {
alert('未安装' + packageName + '')
uni.showToast({
title: `请安装高德地图`
});
}
},
如果想要手机安装了什么导航软件则开启哪种导航软件可以用uni-app自带的uni.openLocation
toAddress() {
let startLon = this.longitude;
let startLat = this.latitude;
let endLon = this.driverLongitude;
let endLat = this.driverLatitude;
// 无人机导航经纬度
if (this.taskInfo.instruction == 1) {
let endLat = this.takeoffLatitude;
let endLon = this.takeoffLongitude;
}
uni.openLocation({
latitude: Number(endLat),
longitude: Number(endLon),
name: '当前位置导航任务位置',
address: '',
success() {
console.log('success');
}
});
},