powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пересечение полигонов
6 сообщений из 6, страница 1 из 1
Пересечение полигонов
    #39184400
visajack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Имею таблицу `mar`:
id int(11) NOT NULL
coordinates geometry NOT NULL
Добавляю в таблицу Linestring:
INSERT INTO `mar` (`id`, `coordinates`) VALUES ('1', GeomFromText('LineString(0 0,1 1,2 2,3 3,4 4,5 5,6 6)'));
Затем пытаюсь проверить на пересечение этой геометрии с полигоном:
Polygon((0 3,0 5,2 5,2 3,0 3))
Делаю это следующим образом:
SELECT `id` FROM `mar` WHERE Intersects(`coordinates` , GEOMFROMTEXT('Polygon((0 3,0 5,2 5,2 3,0 3))')) = 1
Запрос возвращает ID = 1
Но в реальности эти полигоны не пересекаются. Что я делаю не так?
...
Рейтинг: 0 / 0
Пересечение полигонов
    #39184413
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visajackЧто я делаю не так?не читаете справку
https://dev.mysql.com/doc/refman/5.7/en/spatial-function-reference.html Intersects() (deprecated 5.7.6) Whether MBRs of two geometries intersect
...
Рейтинг: 0 / 0
Пересечение полигонов
    #39184416
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Пересечение полигонов
    #39184981
visajack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В моём случае код получился такой:
SELECT `id` FROM `mar` where st_AsText(st_Intersection(`coordinates`, GEOMFROMTEXT('Polygon((0 3,0 5,2 5,2 3,0 3))'))) is NOT NULL
И в указанном Вами SQL Fiddle он работает без проблем.
Но на моём рабочем хосте выдает ошибку:
#1548 - Cannot load from mysql.proc. The table is probably corrupted
Я так понимаю, что не поддерживаются Spatial Function.
Как их включить? Обращаться к хостеру? Или в чём может быть проблема?
Заранее спасибо.
...
Рейтинг: 0 / 0
Пересечение полигонов
    #39184992
visajack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На другом хосте тоже ошибка, но #1305 - FUNCTION st_AsText does not exist
...
Рейтинг: 0 / 0
Пересечение полигонов
    #39185028
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visajackНа другом хосте тоже ошибка, но #1305 - FUNCTION st_AsText does not existверсия MySQL слишком старая. ST_AsText() появилась только с версии 5.6. Используйте AsText(), это синоним (хотя уже deprecated).
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пересечение полигонов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]