Страница 1 из 1

Отсеивание невидимых объектов

Добавлено: 13 окт 2009, 09:17
overt
Всем добырй день!

Пишу вьювер карты. Ищу алгоритм позволяющий отсеивать полностью невидимые объекты (не попадающие полностью или частично в окно визуализации карты). Нужно это для ускорения операции масштабирования, чтобы не затрагивать объекты вне зоны видимости. Пока все поиски и самостоятельные изыскания ни к чему дельному не привели. Помогите пожалуйста.

Re: Отсеивание невидимых объектов

Добавлено: 13 окт 2009, 10:09
KolesovDmitry
overt писал(а): Пишу вьювер карты. Ищу алгоритм позволяющий отсеивать полностью невидимые объекты (не попадающие полностью или частично в окно визуализации карты). Нужно это для ускорения операции масштабирования, чтобы не затрагивать объекты вне зоны видимости.
Для этого вам нужно создать прямоугольник, соответствующий границам окна и выбрать все объекты, пересекающие этот многоугольник.

С первым требованием все очевидно. Как я понимаю, загвоздка во второй задаче. Предлагаю не пытаться решать ее "с нуля", а воспользоваться готовыми наработками, благо среди opensource продуктов есть "киты", в которых уже все решено и отлажено. Возьмите какую-либо библиотеку, предназначенную для работы с топологическими свойствами геообъектов и используйте ее целиком или же ее составные части.

Для языка java, например, это будет JTS Topology Suite, для C++ - geos. Подберите под свой язык и на ваш вкус на http://freegis.org/ и пользуйтесь на здоровье :)

Re: Отсеивание невидимых объектов

Добавлено: 15 окт 2009, 13:55
JEY
Привет! Посоветую ознакомиться с алгоритмом R-Tree, который отлично описан в статье "R-Tree" на сайте Википедии.