2026-05-28 09:48:42 +08:00

87 lines
2.6 KiB
TypeScript

export function getMapAddress() {
// 高德配置
const TIANDITU_KEY = '4ce26ecef55ae1ec47910a72a098efc0'
return new Promise<{ address: string }>((resolve, reject) => {
uni.getLocation({
type: 'wgs84',
altitude: true,
isHighAccuracy: true,
success(res) {
console.log(res, '经纬度')
const url = `https://api.tianditu.gov.cn/geocoder?postStr={'lon':${res.longitude},'lat':${res.latitude},'ver':2}&type=geocode&tk=${TIANDITU_KEY}`
uni.request({
url: url,
method: 'GET',
success(res: any) {
resolve({ address: res?.data?.result?.formatted_address || '' })
console.log(res, 'address')
},
fail(res) {
resolve({ address: '拒绝定位' })
console.error('获取地址失败:', res)
uni.showModal({
title: '提示',
content: '请先允许定位!',
success: function (res) {
if (res.confirm) {
uni.openSetting()
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
},
fail(e) {
console.log('拒绝定位', e)
}
})
})
}
export function getMapLbs() {
// 高德配置
const AMAP_KEY = 'be262c006216c542747fce766130cee3'
return new Promise<{ address: string }>((resolve, reject) => {
uni.getLocation({
type: 'gcj02',
altitude: true,
isHighAccuracy: true,
success(res) {
console.log(res, '经纬度')
const url = `https://restapi.amap.com/v3/geocode/regeo?location=${res.longitude},${res.latitude}&key=${AMAP_KEY}`
uni.request({
url: url,
method: 'GET',
success(res: any) {
console.log(res, 'address')
resolve(res?.data?.regeocode)
},
fail(res) {
resolve({ address: '拒绝定位' })
console.error('获取地址失败:', res)
uni.showModal({
title: '提示',
content: '请先允许定位!',
success: function (res) {
if (res.confirm) {
uni.openSetting()
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
}
})
},
fail(e) {
console.log('拒绝定位', e)
}
})
})
}