【问题标题】:Is there a way to accurately determine which city in US the user is in using Android Location Manager?有没有办法使用 Android 位置管理器准确确定用户在美国的哪个城市?
【发布时间】:2010-10-14 17:28:39
【问题描述】:

我正在尝试通过 Android 应用确定用户正在使用其当前位置的美国城市。我想使用 GPS 作为位置提供者,但我如何准确地从区域设置或纬度/经度数据中确定城市名称。

例如,当我从曼哈顿发推文时,我注意到 twitter 应用程序确定您在曼哈顿,但是否可以从位置数据中检索纽约市而不是曼哈顿,同样地,洛杉矶而不是比佛利山庄。

这是因为我只需要根据当前位置确定用户所在的城市。

感谢大家的帮助。

【问题讨论】:

    标签: java android geolocation geocoding reverse-geocoding


    【解决方案1】:

    为此,您需要 Geocoder 类。请参阅参考资料,它很容易使用:http://developer.android.com/reference/android/location/Geocoder.html。您提到的过程称为反向地理编码。我认为它非常准确(特别是如果只需要城市名称),我在一些项目中使用过它。

    但是,如果您只想确定用户当前所在的城市,那么使用小区信息而不是 gps 提供商可能就足够了。要使 gps 工作,用户必须在室外,基于小区信息的提供程序在建筑物内也能很好地工作。

    【讨论】:

    • 我是否需要任何 API 密钥等才能使用 Geocoder 类?我认为根据我的要求,我什至可以实际使用单元信息,因为我现在只需要城市名称,甚至不需要子地区。感谢您的链接和信息镰刀!!
    • 不,我很确定您不需要 API 密钥。这是一个相关的问题,线程中有一个示例,您可以尝试stackoverflow.com/questions/472313/… 不要忘记为您的应用请求 INTERNET 权限(我总是忘记:))。
    • 我使用LocationManager NETWORK_PROVIDER发现从Lat Long信息返回的地址通常为空。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    相关资源
    最近更新 更多