代码:
// 获取地理位置
export const getCurrentPosition = function() {
return new Promise((resolve, reject) => {
if ("geolocation" in navigator) {
let coords;
/* 地理位置服务可用 */
navigator.geolocation.getCurrentPosition((position) => {
console.log(22, position);
coords = position.coords;
getCurrentPositionInfo(coords, resolve);
}, (error) => {
console.log(444, error);
//获取地理位置信息失败时所做的处理
resolve(false)
}, //以下是可选属性
{
timeout: 3000,
maximumAge: 60 * 1000,
});
console.log(333);
// if (!coords) {
//拒绝
// resolve(false)
// getCurrentPositionInfo({
// latitude: 39.916152,
// longitude: 116.403406,
// }, resolve);
// }
} else {
//拒绝
resolve(false)
}
});
}
function getCurrentPositionInfo(coords, resolve) {
$.ajax({
type: "get",
dataType: 'jsonp',
data: {
location: coords.latitude + ',' + coords.longitude,
key: vueApp.config.mapTxKey,
output: 'jsonp',
get_poi: 0,
},
jsonp: "callback",
jsonpCallback: "QQmap",
url: "https://apis.map.qq.com/ws/geocoder/v1/",
}).done((res) => {
res = res.result || {};
let ad_info = res.address_component || {};
ad_info.location = res.location || {};
ad_info.formatted_addresses = res.formatted_addresses || {};
ad_info.address = res.address || '';
resolve(ad_info);
})
}
使用:
let positionRes = await common.getCurrentPosition();
console.log('*', positionRes);