uni-app中uni.getLocation配置了高德地图能返回定位信息但没有省市区数据

uni-app中uni.getLocation配置了高德地图能返回定位信息但没有省市区数据

问题描述

获取经纬度 省市区 详细地址

uni.getLocation({  
    type: 'gcj02',   
    geocode: true,   
    success: function(res) {  
        console.log('定位信息:'+JSON.stringify(res));  
    }  
});

结果:

定位信息:{“type”:“gcj02”,“altitude”:0,“latitude”:22.77997076667967,“longitude”:113.88851889306451,“speed”:0,“accuracy”:30,“address”:{“country”:"",“province”:"",“city”:"",“district”:"",“street”:"",“streetNum”:"",“poiName”:"",“cityCode”:""},“errMsg”:“getLocation:ok”}

省市区数据都是空的,这是为啥???


更多关于uni-app中uni.getLocation配置了高德地图能返回定位信息但没有省市区数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

是App端吗?只有app端会返回 或者直接使用 高德地图的 逆地理编码api来获取省市区数据 文档地址:https://lbs.amap.com/api/webservice/guide/api/georegeo#t5

更多关于uni-app中uni.getLocation配置了高德地图能返回定位信息但没有省市区数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html


只有app端才会进行逆编码返回地址信息,app端云打包需要申请地图key并配置在manifest定位里才能正常返回

解决了吗 兄弟 同样问题 目前hbuilderx基座是4.29 以前还可以现在返回空

解决了吗

在uni-app中使用uni.getLocation获取定位信息时,默认情况下返回的数据确实不包括详细的省市区信息。为了获取这些信息,你可以结合高德地图的逆地理编码API来实现。下面是一个基本的代码示例,展示了如何在uni-app中通过高德地图API获取定位信息及其对应的省市区数据。

首先,你需要在高德开放平台申请一个API Key,并确保你的应用有权限访问定位服务。

步骤一:安装uni-app相关依赖

确保你的uni-app项目已经创建,并且安装了必要的依赖。如果需要使用HTTPS请求,你可能需要安装axiosuni.request

步骤二:配置高德地图API Key

在你的manifest.json文件中,添加高德地图的API Key(这里假设你已经有了一个):

"mp-weixin": {
    "appid": "your-app-id",
    "setting": {
        "urlCheck": false
    },
    "usingComponents": true,
    "permission": {
        "scope.userLocation": {
            "desc": "你的位置信息将用于小程序位置接口的效果展示"
        }
    },
    "amap": {
        "key": "your-amap-api-key"
    }
}

注意:实际配置可能因平台而异,这里以微信小程序为例。

步骤三:获取定位信息并使用高德地图逆地理编码API

以下是一个示例代码,展示如何在uni-app中获取定位信息并使用高德地图逆地理编码API获取省市区数据:

uni.getLocation({
    type: 'gcj02', // 返回可以用于`uni.openLocation`的经纬度
    success: (res) => {
        const { latitude, longitude } = res;
        const url = `https://restapi.amap.com/v3/geocode/regeo?output=json&location=${latitude},${longitude}&key=your-amap-api-key`;

        uni.request({
            url,
            success: (data) => {
                const { regeocode } = data.data;
                if (regeocode && regeocode.formattedAddress) {
                    const addressComponents = regeocode.addressComponent;
                    const province = addressComponents.province;
                    const city = addressComponents.city;
                    const district = addressComponents.district;
                    console.log(`省:${province}, 市:${city}, 区:${district}`);
                }
            },
            fail: (err) => {
                console.error('逆地理编码失败', err);
            }
        });
    },
    fail: (err) => {
        console.error('获取定位失败', err);
    }
});

这段代码首先使用uni.getLocation获取当前位置的经纬度,然后使用这些经纬度调用高德地图的逆地理编码API,最后解析返回的JSON数据以获取省市区信息。

请确保替换your-amap-api-key为你的实际高德地图API Key,并根据需要调整代码以适应你的应用逻辑。

回到顶部