Russian Qt Forum
Ноябрь 23, 2024, 06:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt картография  (Прочитано 12642 раз)
Cat386
Гость
« : Март 13, 2006, 21:31 »

Народ помогите пожайлуста есть проблема которая меня привела в тупик,  а как отобразить ну очень большую картинку то есть имею карту города размерами 19600х24000 ну глубину цвета я изменил на 256 цветов но размер файла просто огромный гдето прорядка 140Mb Qt 333 просто не может его открыть тоесть QPixmap *map = new QPixmap("map.png");
 а map то пустой если есть предложения помогите Грустный
Записан
Asaphus_Expansus
Гость
« Ответ #1 : Март 13, 2006, 22:14 »

Хранить карту в формате, допускающем считывание и декодирование произвольного прямоугольного фрагмента, например bmp, и соответственно подгружать on demand нужный фрагмент карты и показывать только его.
Записан
Cat386
Гость
« Ответ #2 : Март 14, 2006, 18:40 »

Да конечно я об этом думал но вот проблема шоп на этом обьеме просто мрет как муха а софта для обрезки из простор инета опробовал столько что ужет нет сил искать что то хоть бери и сам пиши вот только проблема люди ждать не умеют и поэтому Великий All может есть кой какие думки
Записан
Dendy
Гость
« Ответ #3 : Март 14, 2006, 19:41 »

Для хранения нужно вьІбрать какой-нить формат с сжатием и без потери качества, например PNG. Сохранить результирующую карту квадратньІми кусками, то-есть разбить исходник на M x N частей. При получении собьІтия отрисовки смотришь какие файльІ с фрагментами должньІ бьІть подгруженьІ и если они ещё не в памяти - подгружаешь из файла. Здесь легко можно добавить хеширование - вьІгружать последние неиспользованньІе куски карт, если их общая сумма достигла критического значения. Можно также загрузить все куски, только желательно формат им вьІставить QImage::Format_Index8. 256 цветов должно хватать с головой (вспомним Старкрафт).

добавлено спустя 7 минут:

 Разбить можно каким-нить фотошопом.

Ещё можно вообще не грузить данньІе в память, а хранить картинку в формате без сжатия: BMP или TGA. Разгребстись с форматом (он не сложньІй) и подгружать пиксели из нужньІх кусков файла с помощью QFile::seek() / QFile::read().
Записан
Asaphus_Expansus
Гость
« Ответ #4 : Март 14, 2006, 19:46 »

Цитировать

Ещё можно вообще не грузить данньІе в память, а хранить картинку в формате без сжатия: BMP или TGA. Разгребстись с форматом (он не сложньІй) и подгружать пиксели из нужньІх кусков файла с помощью QFile::seek() / QFile::read().


Именно это я и предлагал. Дешево и сердито, что есть правильно если надо быстро.
Записан
Cat386
Гость
« Ответ #5 : Март 15, 2006, 09:47 »

Я примерно так и делаю но вот держать в открытом формате это не желательно по этому я хочю примерно какой нибуть ресурсный файлик сделать с нарезкой и туда же закинуть и векторную информацию, типа дама дороги и т.д.
Записан
Dendy
Гость
« Ответ #6 : Март 15, 2006, 12:25 »

Тогда наверное лучший способ: куски картьІ в TGA без компрессии, засунутьІе в ZIP-архив. КаждьІй кусок при етом жмётся zlib и паролится.
Записан
Hordi
Гость
« Ответ #7 : Март 15, 2006, 12:58 »

To Dendy:
А разве функции zlib имеют возможность паролить?
Записан
Dendy
Гость
« Ответ #8 : Март 15, 2006, 13:55 »

Возможность криптовать файльІ по паролю есть в ZIP'е.
Записан
Cat386
Гость
« Ответ #9 : Март 17, 2006, 08:11 »

Народ а вообще ктонибуть творил такую прогу что бы с картами работать может есть кой какие Widget'ы или ActiveX'ы что бы все было просто и красиво а то вот написал векторный редактор все хорошо а вот как правильно найти путь из точки в точку по векторам дорог что то не подается причем не повсем дорогам ездить можно    так как все зависит от транспорта тоесть грузовой ну или обычный
Записан
joktar
Гость
« Ответ #10 : Март 17, 2006, 17:36 »

Если просто искать путь - смотри например в сторону алгоритма A*(искать на сайтах по разработке игра-gamedev.ru/gamasutra.com)

Если нужны именно карты то возможно имеет смысл посмотреть в направлении ArcGIS(www.esri.com), это среда разработки карт в широком смысле, для встраивания в приложения есть ArcGIS Engine
Если нужно просто показывать карту - есть ActiveX Control

Недостатки ArcGIS
- интеграции с Qt - никакой(хоть садись и сам делай)
- штука ОЧЕНЬ дорогая(в разы дороже commercial Qt).
- для нормальной работы система требует обучения

Есть и Open-source GIS(например GRASS, поддержка встройки в Qt3 приложения у него есть).
Записан
MaxWin
Гость
« Ответ #11 : Март 20, 2006, 10:56 »

По работе с большими растровыми слоями, есть проект OSSIM - http://www.ossim.org предназначен именно для твоих целей. Связка с QT есть. Расчитан на 3QT.
С вектором - посмотри в сторону QGIS. Написан на QT.
Записан
burunduk
Гость
« Ответ #12 : Март 20, 2006, 11:39 »

Кстати я делаю похожий проект, только у меня карты векторные. И поиск пути тоже стоит как задача Улыбающийся Если интересно стучитесь в приват.
Записан
stump
Гость
« Ответ #13 : Ноябрь 05, 2010, 00:45 »

Товарищи, помогите разобраться с QGIS...
Куча проблем и непонятностей:

- в QgsApplication... при выполнении QgsApplication::exec() зацикливания не происходит...
- делаю все по туториалу http://blog.qgis.org/node/10 но не могу создать валидный слой...

и сохраняются ли в .exe зависимости от QGIS dll ??
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 21.