Всем добырй день!
Пишу вьювер карты. Ищу алгоритм позволяющий отсеивать полностью невидимые объекты (не попадающие полностью или частично в окно визуализации карты). Нужно это для ускорения операции масштабирования, чтобы не затрагивать объекты вне зоны видимости. Пока все поиски и самостоятельные изыскания ни к чему дельному не привели. Помогите пожалуйста.
Отсеивание невидимых объектов
-
- Новоприбывший
- Сообщения: 1
- Зарегистрирован: 13 окт 2009, 09:04
- Репутация: 0
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Отсеивание невидимых объектов
Для этого вам нужно создать прямоугольник, соответствующий границам окна и выбрать все объекты, пересекающие этот многоугольник.overt писал(а): Пишу вьювер карты. Ищу алгоритм позволяющий отсеивать полностью невидимые объекты (не попадающие полностью или частично в окно визуализации карты). Нужно это для ускорения операции масштабирования, чтобы не затрагивать объекты вне зоны видимости.
С первым требованием все очевидно. Как я понимаю, загвоздка во второй задаче. Предлагаю не пытаться решать ее "с нуля", а воспользоваться готовыми наработками, благо среди opensource продуктов есть "киты", в которых уже все решено и отлажено. Возьмите какую-либо библиотеку, предназначенную для работы с топологическими свойствами геообъектов и используйте ее целиком или же ее составные части.
Для языка java, например, это будет JTS Topology Suite, для C++ - geos. Подберите под свой язык и на ваш вкус на http://freegis.org/ и пользуйтесь на здоровье

- JEY
- Активный участник
- Сообщения: 228
- Зарегистрирован: 17 июл 2008, 13:42
- Репутация: 1
Re: Отсеивание невидимых объектов
Привет! Посоветую ознакомиться с алгоритмом R-Tree, который отлично описан в статье "R-Tree" на сайте Википедии.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость