Можно ли из Grassа 6.4 загрузить карту?

Ответить
oleg5551
Новоприбывший
Сообщения: 7
Зарегистрирован: 14 сен 2010, 18:30
Репутация: 0

Можно ли из Grassа 6.4 загрузить карту?

Сообщение oleg5551 » 19 ноя 2010, 09:03

Подскажите, пожалуйста:
В программе на Qt 3.0 KDevelop:C/C++ надо загрузить карту, например, в QPixMap.

Функция GisInit работает и пути к Gisdbase, Location, Mapset заданы в программе правильно.

Проблема в том, как загрузить векторные слои в QPixMap, например, из тестового проекта Spearfish? и можно ли вообще это сделать?
Или, если есть файл карты (как из проекта Spearfish его создать?), то как загрузить его?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение Александр Мурый » 19 ноя 2010, 10:28

Из GRASS можно экспортировать растр и вектор в разные форматы (геопривязанные и просто графические). Вам нужно вытащить векторную карту в графику, так? Тогда можно исп-ть модуль v.out.svg (SVG точно работает с Qt). Ну или v.out.dxf (..?)

Другое дело, если надо сохранить привязку, атрибуты и т.п.. Тогда надо идти через GDAL/OGR (r.out.gdal для растров, v.out.ogr для векторов).
Редактор материалов, модератор форума

oleg5551
Новоприбывший
Сообщения: 7
Зарегистрирован: 14 сен 2010, 18:30
Репутация: 0

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение oleg5551 » 20 ноя 2010, 10:34

Пожалуйста, поясните несколько подробнее для чайников.

v.out.ogr это модуль для GRASS. Можно ли его вызвать из программы на Qt (у меня нет графического интерфейса, но есть доступ к функциям библиотек )? Можете, пожалуйста, написать функции библиотек ( и сами заголовочные файлы, которые надо прописать в программе ), чтобы получить карту, которую можно заслать в QPixmap.

И еще один вопрос. Файл формата .dxf, и .dwg содержит карту со слоями, или это только один слой?

В GRASS есть опция конвертировать файл .dxf в векторный слой. Что она делает?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение Александр Мурый » 20 ноя 2010, 12:54

oleg5551, вы уже смотрели в сторону QGIS? Там что-то похожее действует (из Qt вызываются модули GRASS). Можно посмотреть исходный код.

Лично я написать ничего не могу, т.к. не программист.

Какие типы/форматы/.. файлов понимает QPixmap?
Из документации Qt 4.7:
Qt provides four classes for handling image data: QImage, QPixmap, QBitmap and QPicture.
. Вы уверены, что надо исп-ть именно QPixmap для вывода векторного слоя? Или в этом и была идея, что в начале делаем общую карту (растр), а потом перегоняем в Qt.
Редактор материалов, модератор форума

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение Александр Мурый » 20 ноя 2010, 14:02

Далее. С файлами .dwg GRASS напрямую не работает. В .dxf может быть как один слой, так и несколько. Не думаю, что для вашей задачи будет полезны DXF / DWG, выше я привёл DXF просто как пример векторного формата.
В GRASS есть опция конвертировать файл .dxf в векторный слой.
Это не опция, это отдельный модуль v.out.dxf, который экспортирует векторную карту GRASS в файл DXF.
Редактор материалов, модератор форума

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение Voltron » 20 ноя 2010, 20:13

Давайте начнем с начала. Что нужно получить, для чего вообще загружать mapset в QPixmap? Нужно просто отобразить картинку или предполагается редактирование данных?

oleg5551
Новоприбывший
Сообщения: 7
Зарегистрирован: 14 сен 2010, 18:30
Репутация: 0

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение oleg5551 » 21 ноя 2010, 11:44

Задание таково:

Есть 2 файла формата .dxf и .dfg. Что находится в этих файлах, никто не знает. Из них надо получить карту, используя функции GRASS, и затем отобразить на каком-нибудь виджете ( желательно QPixmap, но для этого надо будет еще конвертировать карту с векторными слоями в растровый формат - как это сделать тоже никто не знает ). В дальнейшем пользователю надо будет сделать функции: просмотр слоев, масштабирование.
Программа пишется на Qt 3. Пока есть скрипт, который устанавливает переменные окружения, и в программе вызывается gisinit.

Использовать для этих целей GRASS не обязательно, важно чтобы система была бесплатной.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение Voltron » 21 ноя 2010, 11:47

Если использование GRASS не принципиально, то лучше посмотреть в сторону QGIS.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Можно ли из Grassа 6.4 загрузить карту?

Сообщение KolesovDmitry » 21 ноя 2010, 12:31

И еще вопрос: будет ли на машине, для которой вы пишите программу, установлена GRASS? Если да -- то задача решается одной строчкой, без всяких библиотек и заголовочных файлов (неоднократно проделывал). Если нет, тоже решается, но уже сложнее, нужно будет ковырять библиотеки (и сам я этого ни разу не делал).

Ответить

Вернуться в «GRASS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 30 гостей