IT虾米网

获取线的中间点(postgis)详解

wyy 2021年08月26日 数据库 206 0
本文章主要介绍了获取线的中间点(postgis),具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

前言:QGIS没找到对应功能,只有 Mean Coordinate(s) ,但不能满足要求,最后找到了 PostGIS 的相关方法。

方法一:ST_LineInterpolatePoint

函数详情

select ST_ASText(ST_LineInterpolatePoint (ST_LineMerge(geom), 0.5)) from line 

这样就能获取中间点了。
ST_LineMerge是将multLineString 转成 LineString,即多线格式转为单线。
这个函数前提条件:线几何图形要求必须是单线(多段时也是首尾相连),即存在多段断开的multLineString,那么就会报错

方法二:ST_ClosestPoint & ST_Centroid

select ST_ASText(ST_ClosestPoint(geom, ST_Centroid(geom))) from line 

这个只能获取到近似中间点
原理是获取到中心点,再获取中心点离该线最近的那个点。线越是直的,那么越逼近中间点。这个不受多线的限制


发布评论
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

docker 部署 mkdocs (mkdocs-material)详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。