[英]PostGIS function to connect geometry LINE together?
(注意:the_geom是一個幾何值(TYPE:LINESTRING),在這種情況下我將它們隨機化以便於閱讀)
gid | kstart | kend | ctrl_sec_no | the_geom | the_sum_geom
626 | 238 | 239 | 120802 | 123456 | NULL
638 | 249 | 250 | 120802 | 234567 | NULL
4037| 239 | 249 | 120802 | 345678 | NULL
[真實實踐說明]只是為那些不介意目的的人跳過這個
我想對表B中的每一行(aka.land_inventory)做'this'(來自我過去的問題的一組查詢,位於本文末尾的鏈接)。 這兩個表通過'ctrl_sec_no'(也就是道路的控制段號)相關,這意味着::在一個ctrl_sec_no - 120802(事實上,它是一條相當於連接在一起的3個幾何LINESTRING(the_geom)的道路,從kstart 238(從238公里開始)到kend 250)
[PostGIS問題]
問題是如何將這3行{aka gid(626,638,4037)從表}連接在一起,並通過使用PostGIS函數(無論如何)導致'the_sum_geom'(最初為NULL)。 之后我們將使用這個'the_sum_geom'在這個幾何LINESTRING上找到POINT
您正在尋找的功能是ST_Union ,您需要將其與聚合形式一起使用:
update mytable set the_sum_geom =
ST_LineMerge( ( select ST_Union(the_geom) from mytable where ctrl_sec_no = 120802 ) )
where ctrl_sec_no = 120802;
使用ST_LineMerge,您可以從Multiline轉換為LineString,但有一個警告,如果多行不能合並,它將返回多行而不做任何修改。 請參閱ST_LineMerge文檔以了解ST_LineMerge可以或不可以執行的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.