Mysql: ST_Contains с границами, чтобы определить, содержит ли мультиполигон точку - PullRequest
0 голосов
/ 24 ноября 2018

Я использую пространственные функции mysql.

Я должен понять, лежат ли точки с мультиполигоном.
Изначально я использовал MBRContains, но он работает странным образом, поэтому я столкнулся со следующей ошибкой: Mysql функция MBRContains не является точной

enter image description here

Следующим моим шагом было переключение на функции ST_Contains.Но я обнаружил, что если я использую вершину многоугольника (из многоугольника) в качестве аргумента - функция возвращает ложь, но я хочу отключить все границы многоугольника.

PS

Я обнаружил, что где функция:

ST_Touches (g1, g2)

Две геометрии пространственно соприкасаются, если их внутренности не пересекаются, но граница одной из геометрий пересекает либо границу, либо внутреннюю часть другой

Похоже, это работает так, как я хочу (в условиях OR с ST_contains), но документация мне не понятна.Можете ли вы объяснить, как два условия могут быть правдой вместе
1. Интерьеры не пересекаются
2. Граница пересекает внутреннюю часть.

?

Вопрос:

Как мне добиться желаемого поведения?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

выглядит как рабочий раствор:

ST_Contains(g1,g2) || ST_Touches(g1, g2)
0 голосов
/ 30 ноября 2018

Похоже, ST_Distance(AREA, @point)) = 0 включает в себя границу

...