6

我有大量带有 GPS 位置的图片,编码为纬度/经度坐标,主要在洛杉矶。我想将这些转换为 (1) 邮政编码和 (2) 社区名称。是否有任何免费的网络服务或数据库可以这样做?

到目前为止,我能想到的最好的方法是从LA 时间页面上刮取邻域多边形,并尝试找出每个坐标位于哪个多边形中。然而,这可能是一项相当多的工作,而且并不是我所有的坐标都在洛杉矶。至于邮政编码,这个 2004数据库是我能找到的最好的数据库,但是邮政编码被编码为单个坐标而不是多边形。所以我能做的最好的就是找到从给定坐标到给定邮政编码坐标的最小距离,这不是最优的。

我的印象是 google-maps 或 open-street-maps 应该能够做到这一点(因为他们似乎“知道”每个社区和邮政编码的确切位置),但是我找不到任何 API 来进行查找/查询.

4

5 回答 5

14

由于非常棒的ggmap包,您现在可以直接在 R 本身中执行此操作。

像其他人提到的那样,您将使用 google maps API 进行反向地理编码(因此每天限制为 2,500 个查询),但它很简单:

library("ggmap")

# generate a single example address
lonlat_sample <- as.numeric(geocode("the hollyood bowl"))
lonlat_sample  # note the order is longitude, latitiude

res <- revgeocode(lonlat_sample, output="more")
# can then access zip and neighborhood where populated
res$postal_code
res$neighborhood
于 2012-07-05T23:35:54.320 回答
1

使用反向地理编码将您的纬度/经度转换为地址。但是,它对每天的查询数量有一些限制。

于 2012-07-01T06:58:39.470 回答
1

这是一篇不错的博客文章,其中包含如何使用谷歌地图进行地理编码和反向地理编码的示例。

于 2012-07-01T07:09:37.047 回答
0

试试这个:

http://www.usnaviguide.com/zip.htm

您每天可以在网站上进行多少次查询是有限制的,但他们也出售完整的数据库,该数据库每隔几个月就会更改一次。抱歉,我不知道任何免费资源。

于 2012-07-01T07:07:39.550 回答
0

正如其他人所建议的那样,将它们地理编码为街道地址应该适用于邮政编码。我不太确定社区,因为您可能需要查看街道编号是否为奇数/偶数,以查看它是否位于确定社区的道路的哪一侧。

另一种方法是准备 GIS 多边形特征(例如 ESRI 形状文件),针对这组多边形测试每个点,看看它与哪个多边形相交。

邮政编码非常简单,您可以从人口普查处下载形状文件。

http://www.census.gov/cgi-bin/geo/shapefiles2010/main

邻居更难,我猜。在美国的另一个地方,我必须通过结合市政府、房地产网站、报纸等的定义来自己创建我的形状文件,这样它看起来就像人们认为城市中的邻里一样,没有任何重叠或差距。组成这样一组多边形可能需要一些时间。您可以从上面的页面中抓取人口普查“块组”,甚至人口普查“块”并将它们合并

准备好多边形要素后,在不同的环境中有几个 GIS 工具(独立可执行文件、GUI 程序、c/python/sql 等 API,可能还有 R,用于进行多边形和点的交集。

于 2012-07-01T14:46:44.500 回答