Конференция "Media" » Работа с картой 19800x13600
 
  • brother © (01.07.10 11:14) [0]
    Есть карта 19800x13600 4bit (насколько мне обещают это еще не предел), стоит задача:
    Быстрая отрисовка, масштабирование итд(
    Погуглил, надумал варианты:
    1. Резать на куски и подгружать
    2. ScanLine
    3. FastLib
    С какой стороны лучше начать работу?
  • brother © (01.07.10 11:15) [1]
    Стоит, ли заморочится на векторной реализации?
  • brother © (01.07.10 11:29) [2]
    выяснил, что bmp получается конвертацией из rsw файла...
  • DVM © (01.07.10 12:51) [3]

    > Стоит, ли заморочится на векторной реализации?

    стоит


    > Погуглил, надумал варианты:
    > 1. Резать на куски и подгружать
    > 2. ScanLine
    > 3. FastLib
    > С какой стороны лучше начать работу?

    Резать конечно
  • DVM © (01.07.10 12:52) [4]
    А  RSW - это почти TIFF
  • Jeer © (01.07.10 15:00) [5]

    > 1. Резать на куски и подгружать


    Именно так работает большинство ГИС-сервисов с растром - используют заранее нарезанные тайлы 256*256. Тут тебе и гугл ( DGlobe ) и yandex и пр.
    А также "сборщик" и визуализатор таких сервисов - SAS-planet
  • brother © (02.07.10 05:07) [6]
    а как быть с масштабированием?
    stetchblit (или как там его?)) даже для такого разрешения уже тормозит, как оптимизировать?
  • Jeer © (02.07.10 09:53) [7]

    > brother ©   (02.07.10 05:07) [6]
    >
    > а как быть с масштабированием?


    Библиотеки ресайзинга на "лету" давно известны.
    Тот же FastLib или G32.
  • QAZ (02.07.10 12:04) [8]

    > а как быть с масштабированием?
    > stetchblit (или как там его?)) даже для такого разрешения
    > уже тормозит, как оптимизировать?

    в техже гуглах нет ресайза
    там фиксированое число шагов зума и для каждого шага свой слой матрици загружаемых кусков
  • Sapersky (02.07.10 17:00) [9]
    Всё уже обсуждалось:
    http://pda.delphimaster.net/?id=1231067653&n=7

    Дополнения:
    1) Несжатый bmp можно не резать, но подгружать фрагментами. Благо спозиционироваться на нужное место несложно - на диске он точно в том же виде, как и в памяти.
    2) Если порезать, то можно использовать RLE-сжатие фрагментов (фотошоп умеет, например). Но это сжатие даст более-менее заметный эффект только если карты - сканы бумажных с большим кол-вом одноцветных областей.
    3) Возможно, придётся повозиться со стыками фрагментов - при масштабировании со сглаживанием они могут быть заметны.
    4) Если нет жёстких ограничений по сист. требованиям - то размер 19800x13600 можно грузить и целиком. С учётом конверсии при загрузке в 8 бит (так удобнее) + уменьшенные копии -> 340 мб. Вроде бы вполне приемлемо. Хотя "на вырост" лучше, конечно, уметь грузить по частям.
    5) Ещё к той ветке: пофрагментная загрузка jpeg через IJL в общем случае не даёт ускорения пропорционально объёму данных, например, загрузка 1/4 картинки из середины быстрее полной загрузки в 2.6 раза (а не в 4). Пропорциональное получается только при загрузке гор. полосками на всю ширину картинки.
  • DVM © (02.07.10 21:53) [10]

    > Именно так работает большинство ГИС-сервисов с растром -
    >  используют заранее нарезанные тайлы 256*256. Тут тебе и
    > гугл ( DGlobe ) и yandex и пр.

    Да. Но карты изначально у них векторные. Кусочки создаются из этого вектора и потом кешируются хитрым образом вероятно.
  • Jeer © (03.07.10 17:48) [11]

    > Да. Но карты изначально у них векторные


    Изначально - да, естественно векторные.
    Мне казалось, что их внутренний софт генерит тайлы под гамму зумов и размещает на сервере, хотя может и ошибался.
  • brother © (05.07.10 07:04) [12]
    Спасибо, будем копать)
  • TheEd (07.04.11 00:46) [13]
    Что-то подобное делал (карта правда существенно меньше но и работать с ней предполагалось чуть ли не на селероне первых лет выпуска :).
    Проект до ума не доведён но в целом работает. Если нужен, пиши на мыло (ed.serdyuk@mail.ru) - скину!
  • brother © (07.04.11 05:35) [14]
    > Если нужен, пиши на мыло (ed.serdyuk@mail.ru) - скину!

    Спасибо, но не надо уже)
 
Конференция "Media" » Работа с картой 19800x13600
Есть новые Нет новых   [134430   +2][b:0][p:0.001]