import TransformCoordinate from "./transformCoordinate.js"; function openMapByDefault(latitude, longitude, name) { uni.openLocation({ type: "gcj02", latitude: latitude, longitude: longitude, name: name, success: function (res) { console.log("**定位信息", res); // that.latitude = res.latitude; // that.longitude = res.longitude; // that.area = res.address.city; }, fail: () => { uni.showModal({ content: "打开地图失败,请重", }); }, }); } function openMapByAndroid(latitude, longitude, name) { let url = ""; // 回调地址 let identity = ""; // 程序名称 if (plus.runtime.isApplicationExist({ pname: "com.baidu.BaiduMap" })) { // 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 = ""; // url失败的回调地址 let identity = ""; // 程序名称 if (plus.runtime.isApplicationExist({ action: "baidumap://" })) { // 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) { switch (coord_type) { case "gcj02": return [longitude, latitude]; break; case "bd09": return TransformCoordinate.bd09togcj02(longitude, latitude); break; case "wgs84": return TransformCoordinate.wgs84togcj02(longitude, latitude); break; default: return [longitude, latitude]; break; } } export default { /* 打开地图 */ openMap(latitude, longitude, name, coord_type = "gcj02") { let arr = getCoordByType(longitude, latitude, coord_type); // #ifdef APP-PLUS switch (uni.getSystemInfoSync().platform) { 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; } // #endif // #ifndef APP-PLUS openMapByDefault(arr[1], arr[0], name); // #endif }, };