【问题标题】:How to convert from lat lon to zipcode or state to generate choropleth map如何从 lat lon 转换为 zipcode 或 state 以生成等值线图
【发布时间】:2011-03-11 03:01:43
【问题描述】:

我有大量的地理空间数据(纬度、经度)点(存储在 mongodb 中,如果有帮助的话)。 我想生成一个等值线图(http://vis.stanford.edu/protovis/ex/choropleth.html),这需要知道包含该点的状态。是否有数据库或算法可以做到这一点而无需调用外部 API(即我知道 geopy 和谷歌地图 API 之类的东西)。

【问题讨论】:

  • 我的下意识反应是建议对位置进行反向地理编码,但我可以看到您不想使用外部 API。我想您需要建立一个了解州边界数据并能够根据该数据映射纬度/经度的库。我想知道是否有人已经在这里完成了工作?有趣的问题:)

标签: python mongodb visualization geospatial data-visualization


【解决方案1】:

实际上,您链接到的网络应用程序包含您需要的数据 -

如果你查看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,您可以通过预先计算每个状态的边界框并仅在边界框内的点测试多边形内的点来加快速度。

【讨论】:

    【解决方案2】:

    Here 在 FORTRAN 中的操作方法。还记得 FORTRAN 吗?我也不。无论如何,它看起来很简单,因为每个州都有自己的范围。

    编辑有人向我指出,您的出发点是 LAT-LONG,而不是邮政编码。

    将经纬度转换为政治划分的算法称为“地图”。说真的,这就是普通地图,将某个范围内的每个点映射到它所属的分区。所有 48 个连续州的详细数字地图将是一个大数据库,然后您需要一些(相当简单的)代码来确定每个州(描述为勾勒边界的一系列线段)给定点是否在其中或退出。

    【讨论】:

    • Andres 询问的是如何将 lat/long 转换为 zip 或 state,而不是如何将 zip 转换为 state。
    • 哇,我把“lat lon to zipcode or state”读作“lat lon or zipcode to state”。正在编辑...
    • 好吧,我很感激你一直在嘲笑我。
    • 对不起,不是在嘲笑你。只是认为整个答案,包括 fortran 很有趣。我非常感谢您在回答问题时的奉献精神。
    • @Andres -- 我忘了笑脸:-)
    【解决方案3】:

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

    但如果您需要在本地托管或将其导入到您自己的数据库中,USGS 和 NGA 会提供带纬度/经度的城市综合列表。它会定期更新、免费且可靠。

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

    【讨论】:

      【解决方案4】:

      不确定数据的质量,但试一试:http://www.boutell.com/zipcodes/

      【讨论】:

      • 谢谢!我以前见过。再看一遍后,看起来邮政编码的纬度是它的中心。邮政编码区域有特定的形状吗?我想否则我可以对邮政编码进行 kNN 投票。
      • 我怀疑这些形状是否规则,但也许您可以使用 Voronoi 地图 (sgsi.com/MIUserGroup/Tech_FindNearest_SGSI.htm) 进行近似。
      【解决方案5】:

      如果您不介意非常粗略的解决方案,您可以调整点击地图here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-31
        • 2014-07-26
        • 2021-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-14
        相关资源
        最近更新 更多