2015-09-08 3 views
0

Я изо всех сил пытаюсь преобразовать ряд SDO оракула (в частности, многоугольников) в более удобный формат.Oracle Spatial Objects to Vertex List

У меня есть данные, что в таком формате:

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 в упорядоченный список, используя приведенный ниже код, но не могу связать его с его идентификатором многоугольника.

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

Я немного потерял, как связать эти данные с исходным идентификатором многоугольника. Любая помощь будет принята с благодарностью!

ответ

0

Поэтому я в конце концов нашел решение. Смотри ниже.

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

Функция таблицы создает подзапрос, связанный с каждым идентификатором многоугольника.