如何从lat lon转换为zipcode或state以生成choropleth映射

2024-04-29 09:45:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我收集了大量的地理空间数据(lat,lon)点(如果有帮助的话,存储在mongodb中)。 我想生成一个choropleth映射(http://vis.stanford.edu/protovis/ex/choropleth.html),它需要知道包含该点的状态。有没有一个数据库或算法可以做到这一点而不需要调用外部API(即我知道geopy和googlemapsapi之类的东西)。


Tags: 数据库http状态mongodbhtml地理visex
3条回答

实际上,你链接到的web应用包含你需要的数据-

如果查看每个状态的http://vis.stanford.edu/protovis/ex/us_lowres.js,borders[]包含一条[lat,long]多段线,该多段线勾勒出状态。加载此数据并检查多边形中的点-http://en.wikipedia.org/wiki/Point_in_polygon

Reverse Geocoding Without Web Access你可以通过预先计算每个状态上的边界框,并且只测试多边形中的点如果是边界框中的点,从而大大加快速度。

Here是如何在FORTRAN中完成的。还记得FORTRAN吗?我也是。不管怎样,它看起来很简单,因为每个州都有自己的范围。

编辑有人告诉我,您的起点是横向的,而不是zipcode。

把拉特朗地区转变为政治分区的算法叫做“地图”。说真的,这是艾伦普通地图,一个在一定范围内的每个点到它所属的分区的地图。所有48个相邻州的详细数字地图将是一个大数据库,然后需要一些(相当简单的)代码来确定每个州(描述为一系列勾勒边界的线段)的给定点是在其内部还是外部。

您可以尝试使用Geonames数据库。它有long/lat以及城市、邮政和其他位置类型的数据。它也是免费的。

但如果你需要在本地托管或导入到你自己的数据库中,美国地质勘探局和国家地质局提供了一个包含纬度/经度的城市的综合列表。它定期更新,免费,可靠。

  1. http://geonames.usgs.gov
  2. http://earth-info.nga.mil/gns/html/index.html

相关问题 更多 >