PostGis的几个简单应用算法

2020/03/06 23:50
阅读数 244

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);


 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部