前端获取当前地理位置(腾讯)

 代码:

// 获取地理位置
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);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值