HarmonyOS 鸿蒙Next 3301300逆地理编码查询失败

HarmonyOS 鸿蒙Next 3301300逆地理编码查询失败 不是,怎么一直失败啊??

![](

10 回复

我这边没问题

添加权限

测试代码

import geoLocationManager from '@ohos.geoLocationManager';

@Entry
@Component
struct test {
  build() {
    Column() {
      Button('逆地理编码查询')
        .onClick(() => {
          let reverseGeocodeRequest = { "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "locale": 'zh' };
          try {
            geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
              if (err) {
                console.log('getAddressesFromLocation: err=' + JSON.stringify(err));
              }
              if (data) {
                console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
              }
            });
          } catch (err) {
            console.error("errCode:" + err.code + ",errMessage:" + err.message);
          }
        })
        .margin(100)
    }.width('100%')
  }
}

输出结果

02-27 13:57:05.505 17897-11390/? I 0FEFE/JsApp: getAddressesFromLocation: data=[{“latitude”:31.120929,“longitude”:121.110896,“locale”:“zh”,“placeName”:“青昆路上海龙鼎苗木培育中心”,“countryCode”:“CN”,“countryName”:“中国”,“administrativeArea”:“上海市”,“subAdministrativeArea”:"",“locality”:“上海市”,“subLocality”:“青浦区”,“roadName”:“青昆路”,“subRoadName”:“755号”,“premises”:"",“postalCode”:"",“phoneNumber”:"",“addressUrl”:"",“descriptions”:[“上海市青浦区青昆路上海龙鼎苗木培育中心”],“descriptionsSize”:1,“isFromMock”:false}]

更多关于HarmonyOS 鸿蒙Next 3301300逆地理编码查询失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


补充:用真机没问题,模拟器 和 previewer不行。

那G了,没有真机调试,模拟器都能模拟定位居然会不支持逆地理编码。

您是API10吧,API9不支持使用ohos.permission.LOCATION这个权限,

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/geocode-guidelines-V5

这个文档说了要先用isGeoServiceAvailable判断机器是否可以用地理编码与逆地理编码能力。

调用isGeoServiceAvailable查询地理编码与逆地理编码服务是否可用,如果服务可用再继续进行步骤3。如果服务不可用,说明该设备不具备地理编码与逆地理编码能力,请勿使用相关接口。

我的也获取不到数据了,我记得之前可以的,看了文档好像和这个有关

cke_874.png

我的不是获取不到数据,api9精准位置两个权限位置都获取了,都获取得到,3301300,是说数据传不到云端解析返回,网不好什么的,看上面那个人可以进行逆地理编码。貌似模拟器就是不行,所以我就先用百度地图的逆地理编码的api了,模拟器就能用了。

我是这么写的

这是之前用模拟器没反应,所以我后面用了百度地图的api,

在HarmonyOS鸿蒙Next 3301300中,逆地理编码查询失败可能是由于以下原因导致的:

  1. 网络连接问题:逆地理编码查询依赖于网络服务,如果设备网络连接不稳定或无法访问相关服务,查询可能会失败。

  2. API密钥问题:如果使用了第三方地图服务API进行逆地理编码,API密钥可能无效或配额耗尽,导致查询失败。

  3. 服务端问题:提供逆地理编码服务的地图服务商可能出现了服务端故障或维护,导致查询失败。

  4. 参数错误:输入的经纬度参数可能有误,或不符合服务商的要求格式,导致查询失败。

  5. 权限问题:应用可能缺少必要的权限(如网络访问权限或定位权限),导致无法进行逆地理编码查询。

  6. SDK版本问题:使用的鸿蒙SDK版本可能存在问题,或与地图服务商的SDK不兼容,导致查询失败。

  7. 区域限制:某些地图服务商可能对特定区域的地理编码查询有限制,导致查询失败。

  8. 缓存问题:如果之前成功查询过相同的地理位置,系统可能尝试从缓存中读取数据,但缓存数据可能已过期或损坏,导致查询失败。

回到顶部