PostGis的几个简单应用算法

爱⌒轻易说出口 提交于 2020-03-07 00:18:05

1 点的最近点查询

select 
smoke, 
ST_AsGeoJSON(geom) as geom,
company, 
address 
from power t 
order by 
ST_Distance(t.geom,ST_GeometryFromText('POINT(113.77990722656251 34.63320791137959)',4326)) 
limit 1

4326为坐标系编号;原理是根据距离找最近的一个记录

2.根据点在数据库里查询在哪个多边形中

SELECT 
id,
geom
from dt_cy 
where 
ST_Contains(geom, st_geometryfromtext('POINT(113.458729 34.816974)',4326));          

3.使用knn(最近邻法),计算距离多边形最近的点

select 
*
from 
teatcyd 
ORDER BY teatcyd.geom <-> (SELECT geom from dt_cy where gid =74833) limit 1

4.创建索引(通用索引)提升查询效率

CREATE INDEX teatcyd_geom_idx ON teatcyd USING GIST (shape);


 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!