MySQL: руководство профессионала
Шрифт:
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.
MBRTouches(g1,g2)
Возвращает 1 или 0, чтобы указать, касаются ли минимальные ограничительные прямоугольники g1 и g2.
MBRWithin(g1,g2)
Возвращает 1 или 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 |
+--------------------+--------------------+
4.5.6. Функции, которые проверяют пространственные связи между конфигурациями
Спецификация 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.
Термин "пространственно пересекается", обозначает пространственное отношение между двумя данными конфигурациями, которые имеют следующие реквизиты:
Две конфигурации пересекаются.
Их пересечение приводит к геометрии, которая имеет размерность, которая на единицу меньше, чем максимальная размерность двух данных конфигураций.
Их пересечение не равно любой из двух данных конфигураций.
Disjoint(g1,g2)
Возвращается 1 или 0, чтобы указать, является ли g1 пространственно непересекающейся с g2.
Distance(g1,g2)
Возвращает как число двойной точности самое короткое расстояние между любыми двумя точками в двух конфигурациях.
Equals(g1,g2)
Возвращает 1 или 0, чтобы указать, является ли g1 пространственно равной g2.
Intersects(g1,g2)
Возвращает 1 или 0, чтобы указать, пересекает ли g1 пространственно g2.