uni-app中uni.getLocation使用腾讯地图SDK未返回address地址信息

发布于 1周前 作者 ionicwang 来自 Uni-App

示例代码

uni.getLocation({
  "type": "gcj02",
  "isHighAccuracy": true,
  "geocode": true
})

操作步骤

uni.getLocation({
  "type": "gcj02",
  "isHighAccuracy": true,
  "geocode": true
})

预期结果

返回address字段

实际结果

未返回address字段,字段都没有,还不是有字段,值为空的问题。

bug描述

配置了腾讯地图SDK,调用API:uni.getLocation

  1. 未返回address地址信息。
  2. 触发success回调,未触发complete回调事件。

环境与版本信息

项目创建方式 开发环境操作系统 操作系统版本号 HBuilderX类型 HBuilderX版本号 手机系统 手机系统版本号 手机厂商 手机机型 页面类型 vue版本 打包方式
HBuilderX Windows Windows11 正式 4.45 Android Android 14 小米 小米14 vue vue2 云端

2 回复

使用 plus.geolocation.getCurrentPosition 试试看呢,能正常返回吗?


在uni-app中使用uni.getLocation获取位置信息时,如果集成的是腾讯地图SDK但未返回address地址信息,可能是由于配置或调用方式不正确。以下是一个使用腾讯地图SDK在uni-app中获取位置并解析地址信息的示例代码。

首先,确保你已经在uni-app项目中正确集成了腾讯地图SDK。这通常包括在manifest.json中添加SDK配置,以及引入腾讯地图的相关JS SDK文件。

步骤 1: 配置manifest.json

manifest.jsonmp-weixin或其他平台的app-plus配置中,添加腾讯地图的SDK配置(具体配置请参考腾讯地图官方文档)。

"mp-weixin": {
    "appid": "your-app-id",
    "setting": {
        "urlCheck": false,
        "requestDomain": [],
        "wsRequestDomain": [],
        "uploadDomain": [],
        "downloadDomain": [],
        "debug": false
    },
    "usingComponents": true,
    "permission": {
        "scope.userLocation": {
            "desc": "你的位置信息将用于小程序位置接口的效果展示"
        }
    },
    "sdkConfigs": {
        "qqmap": { // 假设这里配置的是腾讯地图SDK
            "version": "1.4.15",
            "appid": "your-tencent-map-appid"
        }
    }
}

步骤 2: 引入腾讯地图JS SDK

在你的页面或组件中引入腾讯地图的JS SDK。

<script src="https://map.qq.com/api/gljs?v=1.exp&key=your-tencent-map-key"></script>

步骤 3: 使用uni.getLocation并解析地址

在获取到位置信息后,使用腾讯地图的逆地理编码API来解析地址。

uni.getLocation({
    type: 'gcj02', // 坐标系
    success: function (res) {
        const latitude = res.latitude;
        const longitude = res.longitude;

        // 调用腾讯地图逆地理编码API
        qq.maps.geocoder({
            address: '',
            location: new qq.maps.LatLng(latitude, longitude),
            success: function (response) {
                if (response && response.detail && response.detail.address) {
                    console.log('地址信息:', response.detail.address);
                } else {
                    console.error('解析地址失败:', response);
                }
            },
            fail: function (error) {
                console.error('调用腾讯地图API失败:', error);
            }
        });
    },
    fail: function (error) {
        console.error('获取位置信息失败:', error);
    }
});

注意:qq.maps.geocoder是腾讯地图JS SDK的API,确保你已经正确引入了SDK。同时,your-tencent-map-key需要替换为你实际的腾讯地图API密钥。

以上代码提供了一个基本的框架,用于在uni-app中使用腾讯地图SDK获取位置并解析地址。如果遇到问题,请检查SDK配置、API密钥以及网络请求是否成功。

回到顶部