Что такое функция MySQL, которая эквивалентна функции DB2 / PostGIS "ST_Intersection"? - PullRequest
0 голосов
/ 31 мая 2011

Я делаю некоторое сравнение производительности между пространственными функциями DB2 / MySQL. Однако после того, как я перевожу пространственные запросы DB2 на диалект MySQL, он жалуется на синтаксическую ошибку (ОШИБКА: пересечение функций НЕ существует). Запрос довольно прост, как показано ниже:

SELECT Area(Intersection(a.outline, b.outline) )/Area(Union( a.outline, b.outline)) AS area_ratio,  Distance(Centroid(b.outline), Centroid(a.outline) ) AS centroid_distance
FROM spatial_table1 A, spatial_table2 B  ............

Изучив документацию, я обнаружил, что точные пространственные функции (пересечение, объединение) НЕ реализованы в MySQL. Это так ? Есть ли обходной путь для этого?

Ответы [ 2 ]

1 голос
/ 31 мая 2011

MBRIntersects ()

Это не 100% то же самое, потому что он проверяет, пересекаются ли ограничивающие стороны, но близко.

Документы MySQL: http://dev.mysql.com/tech-resources/articles/4.1/gis-with-mysql.html
Функции геометриив MySQL: http://dev.mysql.com/doc/refman/5.0/en/geometry-property-functions.html

Обратите внимание, что только таблицы MyISAM поддерживают пространственные индексы.

UDF для ГИС, бесполезно для вашего вопроса извините:
MySQL UDF длярасстояние по сфере: http://www.lenzg.net/archives/220-New-UDF-for-MySQL-5.1-provides-GIS-functions-distance_sphere-and-distance_spheroid.html
MySQL UDF для функций UTM: http://www.mysqludf.org/lib_mysqludf_fPROJ4/index.php

0 голосов
/ 31 мая 2011

Существует снимок разработки, который поставляется с точными пространственными функциями, реализованными "Holyfoot".Это снимок 5.1.35.

...