我有一个数据库,其中有各种属性的纬度和经度存储。我想找出,这些物业中的每一个都属于哪个城市(所有物业都在美国)。
发布于 2017-12-07 16:36:49
谈到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_transform函数进行转换。
最后,要检查某个特定的经纬度落入哪个城市,需要将经纬度转换为点几何图形,并对照城市数据进行检查。例如,可能是这样的东西
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)) https://stackoverflow.com/questions/47688675
复制相似问题