uni-app applet sdk calls third-party maps

Mini program calls third-party maps

1. The js method is as follows

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'})) {
    
     // 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) {
    
    
	return [longitude, latitude]
}
export default {
    
    
	/* 打开地图 */
	openMap(latitude, longitude, name, coord_type='gcj02') {
    
    
		let arr = getCoordByType(longitude, latitude, coord_type)
		// #ifdef APP-PLUS
		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;
		}	
		// #endif
		// #ifndef APP-PLUS
		openMapByDefault(arr[1], arr[0], name)
		// #endif
	}
}

2. Call method

import Map from '@/utilities/open-map.js'

Map.openMap(Number(item.lat), Number(item.lng),item.hospLvName)

3. Native APP configuration is required

Insert picture description here

Guess you like

Origin blog.csdn.net/qq_39367226/article/details/111357862