簡體   English   中英

PostGIS功能將幾何LINE連接在一起?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM