Python - 给定纬度和经度返回美国的州名

时间:2014-03-26 04:51:09

标签: python geocoding

有没有人知道Python中用于返回美国状态的离线方法,给定一个纬度/经度对? 我需要运行700k + lat / lon对,因此Google的API不合适。

Lat / Lon值存储在数据框中,但可以在此处视为列表。

示例:

lat_vals = [32]
lon_vals = [-109]

for lat, lon in zip(lat_vals, lon_vals):
    get_state(lat, lon)

>>> NM

1 个答案:

答案 0 :(得分:1)

由于您拥有大量数据,您可能需要考虑使用PostGIS对您的数据进行一些分析。即使您尝试将其与OGR GDAL一起使用,Python也没有任何用于进行空间分析的好工具。

最好的办法是设置一个基本的PostgreSQL& PostGIS数据库,使用Quantum GIS在数据库中加载shapefile (数据库>> Spit>>将Shapefile导入PostgreSQL)

然后,您可以运行这些基本的SQL命令来提取数据。

SELECT states.name, points.name
FROM states, points
WHERE ST_Contains(states.geom, points.geom)

要获取USA States shapefile数据,请转到Tiger Census Data页面。

如果要在数据全部加载后使用Python,可以使用psycopg2连接到数据库。

我希望这有帮助,而不是一个简单的解决方案。