SASGIS

Веб-картография и навигация

SAS.Wiki

Веб-картография и навигация

Инструменты пользователя

Инструменты сайта


sasdev:конвейер_подготовки_видимого_изображения

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
sasdev:конвейер_подготовки_видимого_изображения [14/01/2015 15:56] vdemidovsasdev:конвейер_подготовки_видимого_изображения [23/01/2015 10:50] (текущий) – [Конвейеры подготовки изображения] vdemidov
Строка 1: Строка 1:
 +====== Конвейеры подготовки изображения ======
 +
 Это пока только план, реализация планируется на ближайшее время, но кто его знает. Это пока только план, реализация планируется на ближайшее время, но кто его знает.
 +
 +Воркеры могут быть не обязательно отдельными потоками. Это могут быть элементы из пула потоков, которые будут заниматься задачами разных карт и разных этапов конвейера. Главным ограничением для них вероятно будет то, что задачи каждого элемента конвейера в один момент времени должен выполнять ровно один поток. Это позволит упростить код и меньше заботится о потокобезопасности.
 +
 +Более отдаленным шагом будет введение интерфейса IBitmapFilter, который будет получать IBitmap32Surface и что-то на нем рисовать. В самом простом случае это будет просто обертка вокруг IBitmap32Static, которая будет отрисовывать готовый тайл на полученной поверхности. Это позволит при рендеринге векторных объектов и сеток для простых элементов не тратить память на полноценный тайла, а просто запомнить нужные операции для его воспроизведения.
 +
 +Примеры:
 +
 +  - Для тайловой сетки текущего зума достаточно нарисовать вертикальную и горизонтальные линии плюс вывести подготовленный маркер с подписью в центр. Есть шанс, что это не только сэкономит память, но даже выполнится быстрее (нужно замерять время этих операций).
 +  - Для отображения полигона, который полностью покрывает тайл достаточно просто нарисовать прямоугольник заданного цвета на весь тайл. Скорость не меньше чем наложение битмапки, а памяти экономится очень много - 4 байта вместо 65536 байт необходимых для битмапки размером с тайл.
 +  - Для отображения метки-точки достаточно вывести заранее подготовленный маркер, который скорее всего меньше тайла и следовательно операция займет меньше времени и меньше памяти для хранения.
 +
 +То есть, в результате все операции рендеринга будут возвращать не IBitmapTileMatrix, а IBitmapFilterTileMatrix при помощи которых битмапки будут создаваться на самом последнем шаге конвейера, непосредственно перед выводом на экран.
 +
 +===== Подготовка изображения растровых карт и слоев =====
  
 {{ :sasdev:tileprocessing.png?nolink |}} {{ :sasdev:tileprocessing.png?nolink |}}
  
 +===== Подготовка изображения векторных слоев =====
 +
 +{{ :sasdev:tileprocessing_vector.png?nolink |}}
 +
 +===== Подготовка изображения базы меток =====
 +
 +{{ :sasdev:tileprocessing_marks.png?nolink |}}
/home/sasgisor/public_html/wikisasiya/data/attic/sasdev/конвейер_подготовки_видимого_изображения.1421250989.txt.gz · Последнее изменение: vdemidov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki