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