获取当前地址位置的最佳方式 Kotlin 2023

Best way to get current address location Kotlin 2023

提问人:Cipri 提问时间:1/28/2023 最后编辑:miguevCipri 更新时间:2/3/2023 访问量:602

问:

我想创建一个当前位置按钮来获取用户的当前地址。目前我正在使用,但它很慢,有时不起作用。fusedLocationClient.lastLocation

有没有更好和更新的方法可以在 2023 年使用 Kotlin 从用户那里获取当前地址。

有好的一天!

Android Kotlin 反向地理编码 fusedlocationproviderapi currentlocation

评论

0赞 Tenfour04 1/28/2023
使用会更正确,但这可能会更慢。fusedLocationClient.currentLocation
0赞 Cipri 1/28/2023
你是对的。还有其他选择吗?其他应用程序如何使用它并且它工作正常?像博尔特一样
0赞 rtsketo 1/28/2023
在 Koltin 2023 中获取当前地址位置的最佳方式与在 Kotlin 2022 中获取当前地址位置的最佳方式相同。
0赞 Cipri 1/28/2023
你能解释一下方法吗?@rtsketo
1赞 Cipri 1/29/2023
我已经有了纬度和长度,我想从中获取街道地址。目前我正在使用 geocoder.getFromLocation(latitute,longitude,1) 但不稳定,有时不起作用。还有什么可以使用的吗?

答:

0赞 C.F.G 2/2/2023 #1

看看简单而循序渐进的 Google 代码实验室:

https://codelabs.developers.google.com/codelabs/while-in-use-location/#1

您还可以在 GitHub 上提供的情况下使用和修改其完整模板

1赞 miguev 2/3/2023 #2

最后一条评论(1 月 28 日)使这个问题足够清晰,可以回答:

  1. lat,lng位置已经可用,这是起点。
  2. 目标是获得...街道地址
  3. 目前,这是使用geocoder.getFromLocation(latitute,longitude,1)
  4. 问题是这种方法不稳定,有时不起作用
  5. 那么问题来了:我还有什么可以使用的吗?

答案是:是的但有警告

首先,请注意,这是由 Android 免费提供的但不保证:geocoder.getFromLocation()

警告:地理编码服务可能无法保证可用性或准确性。结果仅供参考,不保证有意义或正确。请勿将此 API 用于任何安全关键或法规遵从性目的。

由于您关心的似乎是此服务的可靠性,因此 Google Maps Platform Geocoding API 可能会提供更好的解决方案,它确实提供了一定的延迟和可用性保证,因为它是 Google Maps Platform 核心服务之一。

此解决方案的第一个警告是,它不是完全免费的,请参阅此处地理编码 API 的计费方式,并根据您的用户群以及需要将 latlng 转换为地址的频率来考虑成本。确保限制您的 API 密钥优化您的使用

第二个警告,你甚至可能喜欢,是这个 API 不会只返回一个地址,它往往会返回几个地址。您可以使用 https://developers.google.com/maps/documentation/utils/geocoder 的地理编码器工具进行尝试(单击地图,它将对该点进行反向地理编码)。

评论

0赞 Cipri 2/16/2023
谢谢你的回答。知道如何在 Kotlin 中使用它吗?
0赞 Cipri 2/16/2023
另外,我正在调用 API,例如:“maps.googleapis.com/maps/api/geocode/...”,检索值需要 10 秒以上。
0赞 miguev 2/16/2023
我不熟悉 Kotlin,但我可以向您保证,10 秒远高于 Geocoding API 典型响应时间的 10 倍,您应该几乎总是在半秒内收到结果。
0赞 Cipri 2/17/2023
知道为什么我需要超过 10 秒吗?
0赞 miguev 2/18/2023
听起来像是您和 Google 网络之间的网络问题,它可能在任何地方。我会尝试的第一件事是测量不同网络中多个位置的响应时间,但这只是对网络进行故障排除的一个起点,它可能不是最好的起点。