Russian Qt Forum

Qt => Мультимедиа => Тема начата: Cat386 от Март 13, 2006, 21:31



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


Название: Qt картография
Отправлено: Asaphus_Expansus от Март 13, 2006, 22:14
Хранить карту в формате, допускающем считывание и декодирование произвольного прямоугольного фрагмента, например bmp, и соответственно подгружать on demand нужный фрагмент карты и показывать только его.


Название: Qt картография
Отправлено: Cat386 от Март 14, 2006, 18:40
Да конечно я об этом думал но вот проблема шоп на этом обьеме просто мрет как муха а софта для обрезки из простор инета опробовал столько что ужет нет сил искать что то хоть бери и сам пиши вот только проблема люди ждать не умеют и поэтому Великий All может есть кой какие думки


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

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

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

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


Название: Qt картография
Отправлено: Asaphus_Expansus от Март 14, 2006, 19:46
Цитировать

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


Именно это я и предлагал. Дешево и сердито, что есть правильно если надо быстро.


Название: Qt картография
Отправлено: Cat386 от Март 15, 2006, 09:47
Я примерно так и делаю но вот держать в открытом формате это не желательно по этому я хочю примерно какой нибуть ресурсный файлик сделать с нарезкой и туда же закинуть и векторную информацию, типа дама дороги и т.д.


Название: Qt картография
Отправлено: Dendy от Март 15, 2006, 12:25
Тогда наверное лучший способ: куски картьІ в TGA без компрессии, засунутьІе в ZIP-архив. КаждьІй кусок при етом жмётся zlib и паролится.


Название: Qt картография
Отправлено: Hordi от Март 15, 2006, 12:58
To Dendy:
А разве функции zlib имеют возможность паролить?


Название: Qt картография
Отправлено: Dendy от Март 15, 2006, 13:55
Возможность криптовать файльІ по паролю есть в ZIP'е.


Название: Qt картография
Отправлено: Cat386 от Март 17, 2006, 08:11
Народ а вообще ктонибуть творил такую прогу что бы с картами работать может есть кой какие Widget'ы или ActiveX'ы что бы все было просто и красиво а то вот написал векторный редактор все хорошо а вот как правильно найти путь из точки в точку по векторам дорог что то не подается причем не повсем дорогам ездить можно    так как все зависит от транспорта тоесть грузовой ну или обычный


Название: Qt картография
Отправлено: joktar от Март 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 приложения у него есть).


Название: Qt картография
Отправлено: MaxWin от Март 20, 2006, 10:56
По работе с большими растровыми слоями, есть проект OSSIM - http://www.ossim.org предназначен именно для твоих целей. Связка с QT есть. Расчитан на 3QT.
С вектором - посмотри в сторону QGIS. Написан на QT.


Название: Qt картография
Отправлено: burunduk от Март 20, 2006, 11:39
Кстати я делаю похожий проект, только у меня карты векторные. И поиск пути тоже стоит как задача :) Если интересно стучитесь в приват.


Название: Re: Qt картография
Отправлено: stump от Ноябрь 05, 2010, 00:45
Товарищи, помогите разобраться с QGIS...
Куча проблем и непонятностей:

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

и сохраняются ли в .exe зависимости от QGIS dll ??