Android 通过web api以可靠的方式获取县名称

Android 通过web api以可靠的方式获取县名称,android,asp.net-web-api,reverse-geocoding,Android,Asp.net Web Api,Reverse Geocoding,我正在寻找任何允许我找到我所在的县的web api,给定一组lat/long。我知道这可以通过Android GeoCoder完成,但我对结果并不满意,即使是在我的家乡,位于一个城市,该位置返回空值,使用以下代码: addresses = geocoder.getFromLocation(mLocation.getLatitude(), mLocation.getLongitude(), 1); address=addresses.get(0); Log.v(TAG,""+address.get

我正在寻找任何允许我找到我所在的县的web api,给定一组lat/long。我知道这可以通过Android GeoCoder完成,但我对结果并不满意,即使是在我的家乡,位于一个城市,该位置返回空值,使用以下代码:

addresses = geocoder.getFromLocation(mLocation.getLatitude(), mLocation.getLongitude(), 1);
address=addresses.get(0);
Log.v(TAG,""+address.getSubAdminArea());
它找到了我的地址,我的州,我的城市,但不是我的县

最终,我希望这能在一种情况下起作用,在这种情况下,我可以远离铺砌的道路,但仍然知道我在哪个县,并且我确信,如果我甚至不能确定我在一个城市中的位置,我永远也无法确定我在一个乡村环境中的位置。我不想为这项服务付费,但如果服务足够好,我甚至愿意付费。我想使用一个web api,很明显,我会接受我需要在所说的远程位置访问internet

完美的应用程序将按照优先顺序满足以下要求

  • 在任何位置工作,非常可靠,无需道路
  • 在美国的职能
  • 在任何国家工作,相当于在一个县工作,优先考虑技术用途
  • 快速工作
  • 每天至少能免费拨打1000个电话
  • 还可以提取州信息和邮政编码
  • 即使在无人居住的小岛上也可以工作,当然前提是可以上网

  • 我不确定Android GeoCoder是否使用谷歌地理编码api,但我只是用我的地址测试了这个api,它返回的地址包括一个类似county的地址

    你能用你的地址试试这个吗

    参考:

    你可以试一试。它应该满足您的所有要求。它使用OpenStreetMap中的数据,能够和。请参见此示例反向地理编码查询:

    如果修改
    format
    参数,它还可以返回JSON而不是XML


    OSM的官方提名实例有一个相当严格的定义,因为它在捐赠的服务器上运行。但也有一些没有此类限制的替代实例,例如由提供的。当然,a也是可能的。

    我发现组合方法似乎是管理准确性和API调用的最佳方法。我已经做了一些工作,到目前为止,我使用以下4项服务,以便:

  • 安卓的
  • 仍在处理其他地址,但这些地址似乎适用于我迄今为止输入的所有典型地址


    其中,“地图探索”似乎是最有效的,它将计算出一个地区的邮政编码,这也将找到该县。总的来说,我很满意。谷歌地图API未能通过弗吉尼亚独立城市,例如,但我能够通过一点额外的代码使其工作。地理名称确实适用于弗吉尼亚州的独立城市。事实上,GeoNames似乎是总的赢家,但它在美国以外的地区不起作用,也不像边缘案例那样起作用。

    尽管Android使用了谷歌API,我还是会这么认为的。这是我的家庭住址,谢谢!这比我想象的要好,但仍然没有通过我希望能够使用的一些棘手的情况,比如我刚刚做了一个测试,它至少没有通过我发现的一个棘手的情况。不过,这还是值得考虑的,谢谢!我相信您将能够为每个地理编码器找到失败的案例:)