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

Re: С чего начать программирование

Добавлено: 14 мар 2010, 20:28
Denis Rykov
При использовании указанной проекции слой не отображается, что кажется логичным - ведь данная проекция не предназначена для отображения всех континентов.

Re: С чего начать программирование

Добавлено: 14 мар 2010, 20:54
Дмитрий Барышников
Здесь несколько аспектов.
1. Необходимо отрисовывать не весь экран а только измененные части (это особенно влияет при перемещении окна карты)
2. При зуммировании должна быть осуществлена плавная отрисовка изменяемого окна карты, с последующей полной прорисовкой (это скорее психологический эффект ускорения)
3. При подготовке данных перед прорисовкой должны использоваться все процессоры системы, т.е. многопоточсный режим.
4. Максимально уменьшить операции по преобразованию данных при прорисовке. Например, при преобразовании "на лету" это должно происходить при выставлении проекции, а не в процессе прорисовки.
5. Использовать географическое индексирование (quadtree) при выборке векторных данных для изменнных частей экрана.
6. Максимально кэшировать результаты расчетов при прорисовке.
7. Задействовать ресурс 3D карт для прорисовки или хотя бы операционной системы (ведь QT сама рисует кажется).
Это перечвислены общие моменты. Кроме того, есть еще частности.
Во всяком случае часть из вышеперечисленного позволила добится скорости прорисовки на уровне ArcGIS 9.0. Однако по моей оценке ESRI оптимизировала скорость в 9.1 - 9.3.1. А в 10-ке заявлено, что вообще графический движок переписали. Интересно будет посмотреть.
Тем не менее, в моих "экспериментах" достичь базового функционала и скорости ArcGIS 9.0 моя цель.

Re: С чего начать программирование

Добавлено: 14 мар 2010, 22:05
Дмитрий Барышников
_DR_ писал(а):При использовании указанной проекции слой не отображается, что кажется логичным - ведь данная проекция не предназначена для отображения всех континентов.
Надо зуммировать (уменьшить) карту и получится картинка на скриншоте (а как Вы думаете я его сделал?).
По поводу логики - логично предупредить пользователя о невозможности проецировать слой. И вообще пользователя не должно волновать для чего преднозначена та или иная проекция и какой охват данных - это задача ГИС. Для меня идеальное исполнение проецирования "на лету" - это ArcGIS.