Android 通过web api以可靠的方式获取县名称
我正在寻找任何允许我找到我所在的县的web api,给定一组lat/long。我知道这可以通过Android GeoCoder完成,但我对结果并不满意,即使是在我的家乡,位于一个城市,该位置返回空值,使用以下代码: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
addresses = geocoder.getFromLocation(mLocation.getLatitude(), mLocation.getLongitude(), 1);
address=addresses.get(0);
Log.v(TAG,""+address.getSubAdminArea());
它找到了我的地址,我的州,我的城市,但不是我的县
最终,我希望这能在一种情况下起作用,在这种情况下,我可以远离铺砌的道路,但仍然知道我在哪个县,并且我确信,如果我甚至不能确定我在一个城市中的位置,我永远也无法确定我在一个乡村环境中的位置。我不想为这项服务付费,但如果服务足够好,我甚至愿意付费。我想使用一个web api,很明显,我会接受我需要在所说的远程位置访问internet
完美的应用程序将按照优先顺序满足以下要求
我不确定Android GeoCoder是否使用谷歌地理编码api,但我只是用我的地址测试了这个api,它返回的地址包括一个类似county的地址 你能用你的地址试试这个吗 参考: 你可以试一试。它应该满足您的所有要求。它使用OpenStreetMap中的数据,能够和。请参见此示例反向地理编码查询: 如果修改
format
参数,它还可以返回JSON而不是XML
OSM的官方提名实例有一个相当严格的定义,因为它在捐赠的服务器上运行。但也有一些没有此类限制的替代实例,例如由提供的。当然,a也是可能的。我发现组合方法似乎是管理准确性和API调用的最佳方法。我已经做了一些工作,到目前为止,我使用以下4项服务,以便:
其中,“地图探索”似乎是最有效的,它将计算出一个地区的邮政编码,这也将找到该县。总的来说,我很满意。谷歌地图API未能通过弗吉尼亚独立城市,例如,但我能够通过一点额外的代码使其工作。地理名称确实适用于弗吉尼亚州的独立城市。事实上,GeoNames似乎是总的赢家,但它在美国以外的地区不起作用,也不像边缘案例那样起作用。尽管Android使用了谷歌API,我还是会这么认为的。这是我的家庭住址,谢谢!这比我想象的要好,但仍然没有通过我希望能够使用的一些棘手的情况,比如我刚刚做了一个测试,它至少没有通过我发现的一个棘手的情况。不过,这还是值得考虑的,谢谢!我相信您将能够为每个地理编码器找到失败的案例:)