//百度坐标转高德(传入经度、纬度)
function bd_decrypt(bd_lng, bd_lat) {
var X_PI = Math.PI * 3000.0 / 180.0;
var x = bd_lng - 0.0065;
var y = bd_lat - 0.006;
var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
var gg_lng = z * Math.cos(theta);
var gg_lat = z * Math.sin(theta);
return {
lng: gg_lng,
lat: gg_lat
}
}
//高德坐标转百度(传入经度、纬度)
function bd_encrypt(gg_lng, gg_lat) {
var X_PI = Math.PI * 3000.0 / 180.0;
var x = gg_lng,
y = gg_lat;
var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI);
var bd_lng = z * Math.cos(theta) + 0.0065;
var bd_lat = z * Math.sin(theta) + 0.006;
return {
bd_lat: bd_lat,
bd_lng: bd_lng
};
}
//百度导航 //同步返回结果:
function baiduditu(addressDesc, latitude, longitude) {
var systemType = api.systemType;
var buttons = new Array();
var amap_installed = false;
var bmap_installed = false;
if (systemType == 'ios') {
var installed = api.appInstalled({
sync: true,
appBundle: 'iosamap://'
});
if (installed) {
amap_installed = true;
buttons.push('高德地图');
}
var installed = api.appInstalled({
sync: true,
appBundle: 'baidumap://'
});
if (installed) {
bmap_installed = true;
buttons.push('百度地图');
}
} else {
var installed = api.appInstalled({
sync: true,
appBundle: 'com.autonavi.minimap'
});
if (installed) {
amap_installed = true;
buttons.push('高德地图');
}
var installed = api.appInstalled({
sync: true,
appBundle: 'com.baidu.BaiduMap'
});
if (installed) {
bmap_installed = true;
buttons.push('百度地图');
}
}
if (bmap_installed == false && amap_installed == false) {
api.toast({
msg: '您没有安装任何地图软件'
});
return false;
}
// 因为后台给的是高德的经纬度所以要转成百度的
var baiduMap = bd_encrypt(longitude, latitude)
var address = addressDesc;
var latbaidu = baiduMap.bd_lat;
var lngbaidu = baiduMap.bd_lng;
var latgaode = latitude;
var lnggaode = longitude;
api.actionSheet({
cancelTitle: '取消',
buttons: buttons
}, function (ret, err) {
var index = ret.buttonIndex;
switch (index) {
case 1:
if (amap_installed && bmap_installed) {
if (systemType == 'ios') {
api.openApp({
iosUrl: 'iosamap://path?sourceApplication=applicationName&sid=BGVIS1&did=BGVIS2&dlat=' + latgaode + '&dlon=' + lnggaode + '&dname=' + address + '&dev=0&t=3',
}, function (ret, err) {
});
} else {
api.openApp({
androidPkg: 'android.intent.action.VIEW',
uri: 'amapuri://route/plan/?dlat=' + latgaode + '&dlon=' + lnggaode + '&dname=' + address + '&dev=0&t=3'
}, function (ret, err) {
});
}
} else {
if (amap_installed) {
if (systemType == 'ios') {
api.openApp({
iosUrl: 'iosamap://path?sourceApplication=applicationName&sid=BGVIS1&did=BGVIS2&dlat=' + latgaode + '&dlon=' + lnggaode + '&dname=' + address + '&dev=0&t=3',
}, function (ret, err) {
});
} else {
api.openApp({
androidPkg: 'android.intent.action.VIEW',
uri: 'amapuri://route/plan/?dlat=' + latgaode + '&dlon=' + lnggaode + '&dname=' + address + '&dev=0&t=3'
}, function (ret, err) {
});
}
}
if (bmap_installed) {
if (systemType == 'ios') {
api.openApp({
iosUrl: 'baidumap://map/direction?destination=latlng:' + latbaidu + ',' + lngbaidu + '|name:' + address + '&mode=riding',
}, function (ret, err) {
if (err) {
//alert(JSON.stringify(err));
}
});
} else {
api.openApp({
androidPkg: 'android.intent.action.VIEW',
uri: 'baidumap://map/direction?destination=latlng:' + latbaidu + ',' + lngbaidu + '|name:' + address + '&mode=riding'
}, function (ret, err) {
});
}
}
break;
}
case 2:
if (systemType == 'ios') {
api.openApp({
iosUrl: 'baidumap://map/direction?destination=latlng:' + latbaidu + ',' + lngbaidu + '|name:' + address + '&mode=riding',
}, function (ret, err) {
if (err) {
//alert(JSON.stringify(err));
}
});
} else {
api.openApp({
androidPkg: 'android.intent.action.VIEW',
uri: 'baidumap://map/direction?destination=latlng:' + latbaidu + ',' + lngbaidu + '|name:' + address + '&mode=riding'
}, function (ret, err) {
if (err) {
//alert(JSON.stringify(err));
}
});
}
break;
}
});
}
apicloud打开地图导航
最新推荐文章于 2022-08-29 12:28:06 发布