Читаем MySQL: руководство профессионала полностью

| NumGeometries(GeomFromText(@gc)) |

+----------------------------------+

| 2 |

+----------------------------------+

<p id="aRan_4936865084">4.5.3. Функции, которые создают новые конфигурации из существующих</p><empty-line></empty-line><p id="aRan_0134812071">4.5.3.1. Функции геометрии, которые производят новые конфигурации</p>

Раздел "4.5.2. Функции Geometry" обсуждает несколько функций, которые создают новые конфигурации из существующих.

Envelope(g)

StartPoint(ls)

EndPoint(ls)

PointN(ls,N)

ExteriorRing(poly)

InteriorRingN(poly,N )

GeometryN(gc,N)

<p id="aRan_0971295152">4.5.3.2. Пространственные операторы</p>

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.

<p id="aRan_7517961826">4.5.4. Функции для тестирования пространственных отношений между геометрическими объектами</p>

Функции, описанные в этих разделах, берут две конфигурации как входные параметры и возвращают качественное или количественное отношение между ними.

<p id="aRan_1093905152">4.5.5. Отношения на геометрии: минимальные ограничительные прямоугольники (MBR)</p>

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.

MBRTouches(g1,g2)

Возвращает 1 или 0, чтобы указать, касаются ли минимальные ограничительные прямоугольники g1 и g2.

MBRWithin(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('Polygon((0 0, 0 5, 5 5, 5 0, 0 0))');

mysql> SELECT MBRWithin(@g1, @g2), MBRWithin(@g2, @g1);

+--------------------+--------------------+

| MBRWithin(@g1, @g2)| MBRWithin(@g2, @g1)|

+--------------------+--------------------+

| 1 | 0 |

+--------------------+--------------------+

<p id="aRan_0281478261">4.5.6. Функции, которые проверяют пространственные связи между конфигурациями</p>

Спецификация OpenGIS определяет следующие функции. Они проверяют связь между двумя значениями геометрии g1 и g2.

В настоящее время MySQL не выполняет эти функции согласно спецификации. Которые выполнены, возвратят тот же самый результат, что и соответствующие MBR-функции. Это включает функции в следующем списке. Эти функции могут быть выполнены в будущих выпусках с полной поддержкой для пространственного анализа, а не только MBR-поддержки.

Contains(g1,g2)

Возвращает 1 или 0, чтобы указать, содержит ли g1 полностью g2.

Crosses(g1,g2)

Возвращает 1, если g1 пространственно пересекает g2. Возвращает NULL, если g1 Polygon или MultiPolygon, либо если g2 Point или MultiPoint. Иначе возвращает 0.

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT