Добрый день! Бьюсь над задачей, но самостоятельно не могу найти решение. Решил обратиться к мировому сообществу .
Есть некие сложные не выпуклые полигоны из географических точек. Полигоны предполагается хранить раздельно в БД MySQL в виде массивов вида:
[ [ [ 58.0272, 50.4625 ], [ 58.2538, 49.5616 ], [ 58.8908, 50.3306 ], [ 58.9078, 51.9346 ], [ 58.5479, 50.7701 ], [ 58.2190, 51.0667 ], [ 58.0272, 50.4625 ] ] ]
Или в любом другом формате, это не особо важно.
На сервер будут посылаться координаты прямоугольника видимой части карты. Мне нужно каким-то образом сравнивать прямоугольный полигон и сложные полигоны из БД и посылать обратно ответ.
Собираюсь писать PHP-скрипт, который и должен сравнивать полигоны. Нужна функция или идея, как лучше это сделать.
Для ускорения процесса рассматриваю вариант для каждого сложного полигона хранить выпуклый полигон и сравнивать сначала с ним. Если выпуклый полигон отсутствует в видимой части карты, то и не пытаться сравнивать сложный полигон. Но даже это решение мне не доступно. В школе по геометрии и математике была тройка.
В MySQL 5.6.1 добавилась функция ST_Intersects(), которая, вероятно, позволила бы решить эту проблему, но у меня версия 5.5.35-33.0. Придётся искать серверное решение на PHP.
Сравнение сложных полигонов
-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 22 сен 2015, 11:45
- Репутация: 0
- Откуда: Киров
-
- Гуру
- Сообщения: 5298
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Сравнение сложных полигонов
Е. А. Никулин - Компьютерная геометрия и алгоритмы машинной графики
-
- Активный участник
- Сообщения: 145
- Зарегистрирован: 14 апр 2010, 14:11
- Репутация: 44
- Откуда: Екатеринбург
Re: Сравнение сложных полигонов
GeoPHP Вам в помощь.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей