全部產品
Search
文件中心

PolarDB:ST_3DGridPath

更新時間:Jul 06, 2024

計算三維地理網格路徑。

文法

geomgrid[] ST_3DGridPath(geometry start, geometry end, box3d range, gridcost[] barriers, params text default '');

參數

參數名稱

描述

start

起始點。

end

終止點。

range

路徑規劃範圍。

barriers

所有障礙物的網格開銷。

params

計算參數。

params支援的參數及取值為:

  • algorithm:尋路演算法

    • dij:DIjkstra演算法。

    • astar(預設):A*演算法。

    • nb_astar:新雙向A*演算法。

  • movement:移動方式

    • cross(預設):只允許向相鄰網格移動。

    • octothorpe:向相鄰網格及對角網格移動。

    • strict_octothorpe:在相鄰網格可通行時可向對角網格移動。

  • distance:距離估算方式

    • euclidean:歐幾裡得距離。

    • manhattan(預設):曼哈頓距離。

    • chebyshev:切比雪夫距離。

例如:{"algorithm":"astar","movement":"strict_octothorpe"}

說明

params設定為空白,或者部分參數未設定時,系統會自動使用預設值。

描述

根據給定的資料計算網格路徑。

  • 起始點和終止點是3維點資料,其中的z值可以不精確,演算法會自動找到合適的z值並進行路徑規劃。

  • range是路徑規劃的範圍,通常以dsm資料為基礎進行設定。

  • barriers綜合了所有的障礙物開銷,通常是採用ST_CostUnion的結果。

  • 當params置為空白時,預設採用aster、cross和manhattan設定。計算結果為按起止順序排列好的geomgrid數組。

樣本

select st_astext(ST_3DGridPath(st_geomfromewkt('srid=4490;POINT Z (1 1 1)'), st_geomfromewkt('srid=4490;POINT Z (5 6 3)'),
'BOX3D(0 0 0,10 10 10)'::box3d, st_costunion(array[st_setcost(array[st_gridfromtext('GZ0000000001')],1), st_setcost(array[st_gridfromtext('GZ0000000000')],5)])));

--------------------------------------------------------------------------------
 {GZ0000000006,GZ0000000042,GZ0000000046,GZ0000000064,GZ0000000420,GZ0000000422,
GZ0000000426,GZ0000000604,GZ0000000640,GZ0000000644,GZ0000004200,GZ0000004240,
GZ0000004244,GZ0000004600,GZ0000004602,GZ0000004620,GZ0000004622,GZ0000006400,
GZ0000006420}

select ST_3DGridPath(st_geomfromewkt('srid=4490;POINT Z (1 1 1)'), st_geomfromewkt('srid=4490;POINT Z (5 6 3)'),
'BOX3D(0 0 0,10 10 10)'::box3d, st_costunion(array[st_setcost(array[st_gridfromtext('GZ0000000001')],1), st_setcost(array[st_gridfromtext('GZ0000000000')],5)]), '{"algorithm":"astar","movement":"strict_octothorpe","distance":"euclidean"}');

--------------------------------------------------------------------------------
 {GZ0000000006,GZ0000000060,GZ0000000066,GZ0000000600,GZ0000000606,GZ0000000660,
GZ0000000666,GZ0000006000,GZ0000006040,GZ0000006044,GZ0000006420}

三維路徑示意圖

image