Читаем 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
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT