Geolocation 查找Lat/Long的县名称

Geolocation 查找Lat/Long的县名称,geolocation,geocoding,latitude-longitude,Geolocation,Geocoding,Latitude Longitude,我正试图找到一个Web服务,它可以让我获得一个特定Lat/Long的县名(而不是国家名)。我将在服务器应用程序(可能是Java应用程序)中执行查找。我想,如果有图书馆的话,它就不会成为一个Web服务,但我想知道最新的信息。我已经到处寻找了很多支持这个的API,但是到目前为止我还没有找到一个可以工作的API。我已经尝试过Yahoo API,如下所示: 但它不会填充地址信息。我也尝试过一些“标志”选项,但没有效果 我也看过谷歌的API,但我读过很多地方都没有谷歌的API 那么,是否有人知道任何AP

我正试图找到一个Web服务,它可以让我获得一个特定Lat/Long的县名(而不是国家名)。我将在服务器应用程序(可能是Java应用程序)中执行查找。我想,如果有图书馆的话,它就不会成为一个Web服务,但我想知道最新的信息。我已经到处寻找了很多支持这个的API,但是到目前为止我还没有找到一个可以工作的API。我已经尝试过Yahoo API,如下所示:

但它不会填充地址信息。我也尝试过一些“标志”选项,但没有效果

我也看过谷歌的API,但我读过很多地方都没有谷歌的API

那么,是否有人知道任何API将花费Lat/Long并返回与该位置关联的县?如果你有任何例子,那就太好了


我还想知道哪些API允许在商业应用程序中使用。我发现的很多数据表明,你不能用这些数据来赚钱。我可能读错了,但我想建立一个服务,我可能会收费,将使用这些数据。所以我需要选择。也许在我探索选择的时候提供免费服务,然后再支付服务费

您可能需要查看属性中是否有包含县名称的多边形。如果这样做,则允许您使用此数据。您将对县多边形执行点入多边形查询,然后进行要素属性查找。

谷歌会为您的示例填充县

在响应中,在键
address\u components
下查看,其中包含表示
“Adams”
县的此对象

{
    long_name: "Adams"
    short_name: "Adams"
    -types: [
        "administrative_area_level_2"
        "political"
    ]
}
这是地理编码API的

administration\u area\u level\u 2
表示国家级以下的二级民事实体。在美国,这些行政级别是县。并非所有国家都表现出这样的行政级别


也许这是一个很棒的解决方案。它是json格式的。我总是在我的项目中使用它

10.345561123.896932

并使用php简单地提取信息

$x = file_get_contents("http://maps.google.com/maps/geo?ll=10.345561,123.896932");

$j_decodex = json_decode($x);

print_r($j_decodex);

为了完整起见,我找到了另一个API来获取这些数据,它非常简单,所以我想与大家分享

FCC为这个问题提供了一个块API,它使用普查数据来执行查找

他们的使用限制政策是(从developer@fcc.gov)

对于块转换API,我们没有任何使用限制,但是如果可以的话,我们确实要求您尝试将请求随时间分散

另一种选择:

  • 从下载城市数据库
  • 将每个城市作为lat/long->Country映射添加到空间索引中,如R树(某些数据库也具有此功能)
  • 使用最近邻搜索查找与任何给定点的最近人类住区对应的国家
优点:

  • 不依赖于可用的外部服务器
  • 速度快得多(每秒可轻松进行数千次查找)
缺点:

  • 可能会在边境附近给出错误答案,尤其是在人口稀少的地区

谢谢您提供的信息!看起来只要一直填充它,它就会工作。我得再做些测试。关于谷歌地图数据的授权有什么想法吗?谷歌只允许你将其反向地理编码与嵌入式谷歌地图结合使用。James D>你所说的“谷歌只允许”是什么意思?这只是一个http调用,那么谷歌或任何人如何确定这些结果的用途?或者你是指别的什么。@Jasper-这是使用该API的服务条款的一部分。摘自上的文档,“地理编码API只能与谷歌地图一起使用;禁止在地图上不显示地理编码结果。有关允许使用的完整详细信息,请参阅地图API服务条款许可证限制。”Anurag>如果您只想根据lat和long(而不是在地图中使用)获取地址,请立即-根据条件,这是不允许的?如果是的话,还有什么选择?使用maps.google.com和maps.googleapis.com有什么区别吗?我认为我应该使用地理编码API而不是maps.google.com,但我只是想知道是否有任何区别。使用这一点对你来说非常简单。仅供参考,谷歌的ToS只允许你使用他们的地理编码API生成你在他们的地图上使用的结果。{“状态”:{“代码”:610,“请求”:“地理代码”,“错误消息”:“地理编码API v2已于2013年9月9日被拒绝。现在应使用地理编码API v3。有关详细信息,请访问“}”谢谢!这确实是一个很好的信息。我现在要试用google API,但是他的API看起来也很有希望,并且消除了外部依赖。这个API有使用限制吗?在网站上找不到任何东西我也找不到。他们的ToS中甚至没有提到它:你可以从他们的ToS页面和一个不过我收到了FCC关于使用限制的回复。我已经编辑了答案。他们显然对API进行了删减。这里有一个链接指向它的替代品。