首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Postgresql中根据经纬度查找城市名称?

如何在Postgresql中根据经纬度查找城市名称?
EN

Stack Overflow用户
提问于 2017-12-07 14:11:14
回答 1查看 1.8K关注 0票数 1

我有一个数据库,其中有各种属性的纬度和经度存储。我想找出,这些物业中的每一个都属于哪个城市(所有物业都在美国)。

EN

回答 1

Stack Overflow用户

发布于 2017-12-07 16:36:49

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

代码语言:javascript
复制
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函数进行转换。

最后,要检查某个特定的经纬度落入哪个城市,需要将经纬度转换为点几何图形,并对照城市数据进行检查。例如,可能是这样的东西

代码语言:javascript
复制
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))  
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47688675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档