2015-09-08 68 views
0

我很努力地將一系列Oracle SDO(特定於多邊形)轉換爲更可用的格式。Oracle空間對象到頂點列表

我就是以這種格式的數據:

PolygonID | Polygon 
1   | SDO Geometry 
2   | SDO Geometry 
3   | SDO Geometry 

等等......

什麼,我想是這樣的:

PolygonID | Vertex.X | Vertex.Y | Vertex.Order 
1   | 1  | 1  | 1 
1   | 3  | 5  | 2 
1   | 2  | 3  | 3 
2   | 1  | 2  | 1 

等。所以我只需要將多邊形轉換爲有序的頂點列表。我可以使用下面的代碼成功地將單個SDO幾何轉換爲有序列表,但無法將其鏈接到其多邊形ID。

select x,y 
from table (
    select sdo_util.getvertices( 
       SDO 
     ) 
    from POLYGONS 
    where ID = 1 
) 
order by id; 

我對如何將數據鏈接回其原始多邊形ID有點遺憾。任何幫助將不勝感激!

回答

0

所以我最終找到了解決方案。見下文。

SELECT 
    c.POLYGONID, 
    t.X, 
    t.Y, 
    t.ID as ORDER 
FROM POLYGONS c, 
TABLE(SDO_UTIL.GETVERTICES(c.POLYGON)) t 

表函數創建鏈接到每個多邊形ID的子查詢。