Python - 根据经纬度返回美国州名

1 投票
1 回答
1023 浏览
提问于 2025-04-17 23:55

有没有人知道在Python中,有什么离线的方法可以根据经纬度返回美国的州名?

因为我需要处理超过70万个经纬度对,所以使用谷歌的API不太合适。

这些经纬度值存储在一个数据框中,但在这里可以把它们看作一个列表。

举个例子:

lat_vals = [32]
lon_vals = [-109]

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

>>> NM

1 个回答

1

由于你有大量的数据,可能需要考虑使用PostGIS来对这些数据进行一些分析。其实,Python在空间分析方面的工具并不太好,即使你尝试用OGR GDAL来做。

最好的办法是搭建一个基本的PostgreSQL和PostGIS数据库,然后使用Quantum GIS把你的形状文件加载到数据库中(数据库 >> 分割 >> 导入形状文件到PostgreSQL)

接下来,你可以运行一些基本的SQL命令来提取你的数据。

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

如果你想获取美国各州的形状文件数据,可以去Tiger Census Data页面。

在数据加载完后,如果你想用Python,可以使用psycopg2来连接你的数据库。

希望这些信息对你有帮助,这并不是一个简单的解决方案。

撰写回答