postgis 几何抽稀 减少点数

て烟熏妆下的殇ゞ 提交于 2020-04-05 17:40:49
postgis 几何抽稀

ST_Simplify(geometry geomA, float tolerance, boolean preserveCollapsed)
preserveCollapsed 参数可以减少点数的删除

ST_SimplifyPreserveTopology(geometry geomA, float tolerance)
与ST_Simplify类似 将避免创建无效的派生几何(特别是多边形) 

ST_SimplifyPreserveTopology可以防止过度简化。圆最多可以变成正方形 而 ST_Simplify可以将一个圆变成一个三角形

由于简化是逐对象进行的 所以会生成多个分部件 需要使用ST_Multi函数将单个的geometry 转化为 Multi*

tolerance 是公差
tolerance 可以为小数 实际用到时候 可能要选择一个非常小的值 0.00001 因为两个点之间的经纬度可能很小
st_astext(st_simplify(ST_GeomFromText(data), 0.00001))

可以通过转换使用米为单位去过滤 相当于 20米范围内一个点
st_astext(st_transform(st_multi(ST_SimplifyPreserveTopology(st_transform(st_geomfromtext("data",4326), 3857), 20)),4326))

st_astext 将geometry 转为为wkt格式数据

 

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