PostGIS如何快速定位一个坐标点的三级行政归属?
PostGIS数据库中有区县表(qx)、街道表(jd)、社区表(sq)三张表,分别存放区、街道、社区的地理数据(polygon或multipolygon,其中街道表和社区表有的地理数据是空值),三者关系如图 ( 下级表存放了上级表对应的ID
) 。
目标是查找给定坐标点对应的三级行政归属。比如给定坐标 P1=POINT(111.12840242385864 27.115157896031524)
,一条查询语句
找出该点属于哪个区哪个街道哪个社区,区、街道、社区的归属找到几个就返回几个
,这里说明一下为什么要求一条语句,因为多个语句的话存在多次查询指令,前后端之间网络IO将消耗大量时间。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
经过不断搜索与尝试,成功实现一句话查询,使用的
子查询
解决问题,具体代码在下面。但是这个查法的不足之处是没有充分利用三表之间的关系:先查点所在区县,再查此区县下的街道,再查此街道下的社区,提高查询速度。查询代码: