【问题标题】:Reverse Geocode a lat/long coordinate using Geocoder on a HMS device在 HMS 设备上使用 Geocoder 对纬度/经度坐标进行反向地理编码
【发布时间】:2020-07-29 15:00:45
【问题描述】:

我正在尝试在 HMS(华为移动服务)设备上使用 android.location.Geocoder 对纬度/经度坐标进行地理编码,但结果始终是一个空列表。

val result = geoCoder.getFromLocation(latitude, longitude, MAX_RESULTS) // [] on HMS

为了验证这是否真的应该工作,我检查了Geocoder.isPresent(),它返回true

查看 LogCat 输出,我可以看到以下行,这表明我缺少一些 API 密钥或没有正确配置某些内容...

XX/? I/HwGeoCoderProvider: [I/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:136] onGetFromLocation: start to GetFromLocation 
XX/? D/HwGeoCoderProvider: [D/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:434] exceed max requesting limit
XX/? D/HwGeoCoderProvider: [D/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:162] exceed max requesting limit
XX/? I/HwGeoCoderProvider: [I/HwLocation/HwGeoCoderProvider 1877:388 HwGeoCoderProvider.java:455] {callTime=..., service=hwLocation, rom_type=1001, transId={{some uuid}}, package=com.android.phone, apiName=GeoCode_getFromLocation, costTime=1, result=10400}

我在安装了最新 HMS Core 版本 (5.0.0.304) 的 P40 Pro 上进行了尝试。我之前收到过一些结果,所以它肯定确实工作,但它显然达到了这个限制并停止工作。

如何在 HMS 设备上使用 android.location.Geocoder 对纬度/经度进行地理编码?需要进行哪些配置/设置才能避免达到此限制?

我已经看到提到使用位置/站点工具包的解决方法,但如果可能的话,我更喜欢使用“vanilla”Android API。

【问题讨论】:

    标签: android reverse-geocoding huawei-mobile-services huawei-location-kit


    【解决方案1】:

    你的问题是,在HMS设备上使用原生Android APIgetFromLocation时,系统提示API调用次数exceed max requesting limit

    可能的原因是您在网络状况不佳时频繁发起请求。为了保证资源的正确使用,系统对资源的使用进行了限制。建议重启HMS Core(APK)或设备,在网络条件好的时候发起请求,同时保证短时间内发起的请求不超过10个。

    感谢您的反馈。此问题将在 Location Kit 5.0.2 中得到纠正,该版本将于 2020 年 9 月 15 日发布。

    更新:

    Location Kit 5.0.2.301新版本为here,修改LocationRequest类中setMaxWaitTime方法的描述,防止因设置错误导致首次定位回调慢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-29
      • 2019-06-18
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 2016-08-10
      相关资源
      最近更新 更多