Страница 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" на сайте
Википедии.