我有一个数据库,里面有各种属性的纬度和经度。我想知道,这些房产都属于哪个城市(所有房产都在美国)。

最佳答案

说到Postgresql,首先你需要得到一个美国城市边界形状文件的数据。可能的地点是

https://www.census.gov/geo/maps-data/data/tiger.html
https://www.census.gov/geo/maps-data/data/tiger-cart-boundary.html
https://catalog.data.gov/dataset?tags=cities

之后,将数据导入postgres。我假设你的财产数据已经存储在postgres中了。确保城市边界的SRID几何类型为4326。如果不是,可以使用ST_转换函数轻松转换它。
最后,要检查某个特定纬度/经度属于哪个城市,需要将纬度/经度转换为点几何图形并对照城市数据进行检查。会是这样的事情
SELECT c.city_name FROM cities_boundaries AS c, properties AS p
WHERE ST_CONTAINS(c.geom, ST_SetSRID(ST_MakePoint(p.longitude, p.latitude), 4326))

关于sql - 如何在Postgresql中从经度和纬度中查找城市名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47688675/

10-13 09:41