Средства обработки геометрических данных
Обработка геометрических типов данных выполняется с помощью стандартных SQL-запросов СУБД ЛИНТЕР с привлечением встроенных геометрических функций.
Набор функций позволяет выполнять следующие группы геометрических операций:
-
загрузку в таблицу геометрических объектов в текстовом и двоичном представлении, например:
-
загрузка в текстовом представлении:
INSERT INTO GEO_TEST(P) VALUES (POINTFROMTEXT('POINT (25, 67)', 45));
-
загрузка в двоичном представлении:
INSERT INTO POINT_TEST VALUES (GEOMFROMWKB(HEX('0101000000000000000000F03F000000000000F03F')));
-
-
выборку значений геометрических объектов, например:
-
подсчет количества точек с координатами (1,2):
SELECT COUNT(*) FROM GEO_TEST WHERE P='POINT(1,2)'; | 23| |
-
выборка всех графических объектов:
SELECT ASTEXT(P) FROM POINT_TEST; |POINT (1 1) | |POINT (0 1) | |POINT (1 2) | |POINT (1 1) |
-
-
получать общую информацию о геометрическом объекте (вид объекта, его размерность, систему координат), например, размерность ломаной линии:
SELECT DIMENSION(GEOMFROMTEXT('LINESTRING(1 1,2 2)'));
-
получать специфическую информацию о геометрическом объекте (например, координаты начала и конца ломаной линии, количество узлов линии, ее длину, замкнутость и т.п.):
-
координаты конечной точки ломаной линии:
SELECT ASTEXT(ENDPOINT(GEOMFROMTEXT('LINESTRING(1 1,2 2,3 3)'))); |POINT (3 3) |
-
-
проверку взаимного расположения геометрических объектов (пересечение, совпадение, вложенность и т.п.), например,
-
проверка пересечения двух многоугольников. Если пересечение имеет место, выдается результат пересечения:
SELECT ASTEXT(INTERSECTION( GEOMFROMTEXT('POLYGON ((0 0,0 5,5 5,5 0,0 0),(2 2,2 4,3 4,3 2,2 2))'), GEOMFROMTEXT('POLYGON ((1 1,1 6,6 6,6 1,1 1),(2 3,2 4,4 4,4 3,2 3))'))); |GEOMETRYCOLLECTION (POLYGON ((5 1,1 1,1 5,5 5,5 1),(2 3,2 4,3 4,4 4,4 3,3 3,3 2,2 2,2 3))) |
-