【发布时间】:2012-12-18 19:25:28
【问题描述】:
我有一个点图层和一个线图层。点是道路交叉点,使用 DGPS 收集,而线是连接道路,通过手持 GPS 在跟踪模式下收集。结果,线实际上并没有连接到点。
现在我想:
从每个线串中删除所有中间节点,使其成为一条直线。
将线的开始和结束顶点捕捉到最近的点。
我正在使用 PostGIS 2.0。到目前为止,这是我所做的:
UPDATE line
SET geom = ST_Simplify(geom, 1000);
问。有没有其他更好的方法来完成它?(因为我使用了一个荒谬的容忍)
UPDATE line
SET geom = ST_AddPoint(
(SELECT geom FROM line WHERE id = 1),
(SELECT p.geom FROM point AS p, line AS l
ORDER BY ST_Distance(p.geom,(SELECT ST_StartPoint(l.geom) FROM lt WHERE l.id=1)) LIMIT 1),
0)
WHERE id=1;
这会将直线(id=1)延伸到最近的点(添加在直线开头的点)。
问。上面看起来有点复杂,有没有其他有效的方法/功能可用?
【问题讨论】:
标签: postgresql gis postgis spatial