PointOnSurface( mpoly )
Возвращает значение Point, которое гарантированно будет в значении MultiPolygon mpoly .
4.5.2.7. Функции GeometryCollection
GeometryN( gc , N )
Возвращает N -ую геометрию в значении GeometryCollection gc . Конфигурации пронумерованы, начиная с 1.mysql> SET @gc = 'GeometryCollection(Point(1 1), LineString(2 2, 3 3))';
mysql> SELECT AsText(GeometryN(GeomFromText(@gc), 1));
+----------------------------------------+
| AsText(GeometryN(GeomFromText(@gc), 1))|
+----------------------------------------+
| POINT(1 1) |
+----------------------------------------+
NumGeometries( gc )
Возвращает число конфигураций в значении GeometryCollection gc .mysql> SET @gc = 'GeometryCollection(Point(1 1), LineString(2 2, 3 3))';
mysql> SELECT NumGeometries(GeomFromText(@gc));
+----------------------------------+
| NumGeometries(GeomFromText(@gc)) |
+----------------------------------+
| 2 |
+----------------------------------+
4.5.3. Функции, которые создают новые конфигурации из существующих
4.5.3.1. Функции геометрии, которые производят новые конфигурации
Раздел "4.5.2. Функции Geometry Алексей В. Паутов MySQL: руководство профессионала Введение Это не совсем книга. Просто по ходу работы и изучения пакета у меня накопилось немало заметок, которые я в конце концов собрал воедино и опубликовал с оглавлением и под единым названием. Данные заметки относятся к версиям 4 и 5 пакета MySQL. По ходу текста особо отмечены места, относящиеся к специфической версии пакета. Необходимо также отметить, что эти заметки логически продолжают книгу MySQL: Руководство администратора и ориентированы на ту же аудиторию. Данный материал подготовлен Паутовым Алексеем в рамках некоммерческого проекта RussianLDP:MySQL. При любом использовании ссылка на автора и проект обязательна!
" обсуждает несколько функций, которые создают новые конфигурации из существующих.
Envelope( g )
StartPoint( ls )
EndPoint( ls )
PointN( ls , N )
ExteriorRing( poly )
InteriorRingN( poly , N )
GeometryN( gc , N )
4.5.3.2. Пространственные операторы
OpenGIS предлагает ряд других функций, которые могут производить конфигурации. Они разработаны, чтобы выполнить пространственные операторы.
Эти функции не выполнены в MySQL. Они могут появляться в будущих выпусках.
Buffer( g , d )
Возвращает геометрию, которая представляет все пункты (точки), чьи расстояния от геометрии g меньше или равны расстоянию d .
ConvexHull( g )
Возвращает геометрию, которая представляет выпуклую оболочку геометрии g .
Difference( g1 , g2 )
Возвращает геометрию, которая представляет разность множеств точек значения геометрий g1 и g2 .
Intersection( g1 , g2 )
Возвращает геометрию, которая представляет пересечение набора точек геометрий g1 и g2 .
SymDifference( g1 , g2 )
Возвращает геометрию, которая представляет набор точек, симметричных разнице значений геометрий g1 и g2 .
Union( g1 , g2 )
Возвращает геометрию, которая представляет объединение набора точек значений геометрии g1 и g2 .
4.5.4. Функции для тестирования пространственных отношений между геометрическими объектами
Функции, описанные в этих разделах, берут две конфигурации как входные параметры и возвращают качественное или количественное отношение между ними.
4.5.5. Отношения на геометрии: минимальные ограничительные прямоугольники (MBR)
MySQL обеспечивает несколько функций, которые проверяют отношения между минимальными ограничительными прямоугольниками двух конфигураций g1 и g2. Возвращаемые значения 1 и 0 указывают истину и ложь соответственно.
MBRContains( g1 , g2 )
Возвращает 1 или 0, чтобы указать, содержит ли минимальный ограничительный прямоугольник g1 минимальный ограничительный прямоугольник g2 .mysql> SET @g1 = GeomFromText('Polygon((0 0, 0 3, 3 3, 3 0, 0 0))');
mysql> SET @g2 = GeomFromText('Point(1 1)');
mysql> SELECT MBRContains(@g1, @g2), MBRContains(@g2, @g1);
+----------------------+----------------------+
| MBRContains(@g1, @g2)| MBRContains(@g2, @g1)|
+----------------------+----------------------+
| 1 | 0 |
+----------------------+----------------------+
MBRDisjoint( g1 , g2 )
Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничительные прямоугольники двух конфигураций g1 и g2 непересекающимися.
MBREqual( g1 , g2 )
Возвращает 1 или 0, чтобы указать, являются ли минимальные ограничительные прямоугольники двух конфигураций g1 и g2 тем же самым.
MBRIntersects( g1 , g2 )
Возвращает 1 или 0, чтобы указать, пересекаются ли минимальные ограничительные прямоугольники двух конфигураций g1 и g2 .
MBROverlaps( g1 , g2 )
Возвращает 1 или 0, чтобы указать, накладываются ли минимальные ограничительные прямоугольники g1 и g2 .
Читать дальше