Страница 1 из 1
					
				Можно ли из Grassа 6.4 загрузить карту?
				Добавлено: 19 ноя 2010, 09:03
				 oleg5551
				Подскажите, пожалуйста: 
       В программе на Qt 3.0 KDevelop:C/C++ надо загрузить карту, например, в QPixMap.
      
       Функция GisInit работает и пути к Gisdbase, Location, Mapset  заданы в программе правильно.
   
       Проблема в том, как загрузить векторные слои в QPixMap, например, из тестового проекта Spearfish? и можно ли вообще это сделать? 
       Или, если есть файл карты (как из проекта Spearfish его создать?), то как загрузить его?
			 
			
					
				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 для векторов).
			 
			
					
				Re: Можно ли из Grassа 6.4 загрузить карту?
				Добавлено: 20 ноя 2010, 10:34
				 oleg5551
				Пожалуйста, поясните несколько подробнее для чайников.
v.out.ogr это модуль для GRASS. Можно ли его вызвать из программы на Qt (у меня нет графического интерфейса, но есть доступ к функциям библиотек )? Можете, пожалуйста, написать функции библиотек ( и сами заголовочные файлы, которые надо прописать в программе ), чтобы получить карту, которую можно заслать в QPixmap.
И еще один вопрос. Файл формата .dxf, и .dwg содержит карту со слоями, или это только один слой? 
В GRASS есть опция конвертировать файл .dxf в векторный слой. Что она делает?
			 
			
					
				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.
 
			 
			
					
				Re: Можно ли из Grassа 6.4 загрузить карту?
				Добавлено: 20 ноя 2010, 14:02
				 Александр Мурый
				Далее. С файлами .dwg GRASS напрямую не работает. В .dxf может быть как один слой, так и несколько. Не думаю, что для вашей задачи будет полезны DXF / DWG, выше я привёл DXF просто как пример векторного формата. 
В GRASS есть опция конвертировать файл .dxf в векторный слой. 
Это не опция, это отдельный модуль 
v.out.dxf, который экспортирует векторную карту GRASS в файл DXF.
 
			 
			
					
				Re: Можно ли из Grassа 6.4 загрузить карту?
				Добавлено: 20 ноя 2010, 20:13
				 Voltron
				Давайте начнем с начала. Что нужно получить, для чего вообще загружать mapset в QPixmap? Нужно просто отобразить картинку или предполагается редактирование данных?
			 
			
					
				Re: Можно ли из Grassа 6.4 загрузить карту?
				Добавлено: 21 ноя 2010, 11:44
				 oleg5551
				Задание таково:
Есть 2 файла формата .dxf и .dfg. Что находится в этих файлах, никто не знает. Из них надо получить карту, используя функции GRASS, и затем отобразить на каком-нибудь виджете ( желательно QPixmap, но для этого надо будет еще конвертировать карту с векторными слоями в растровый формат - как это сделать тоже никто не знает ). В дальнейшем пользователю надо будет сделать функции: просмотр слоев, масштабирование.
Программа пишется на Qt 3. Пока есть скрипт, который устанавливает переменные окружения, и в программе вызывается gisinit.
Использовать для этих целей GRASS не обязательно, важно чтобы система была бесплатной.
			 
			
					
				Re: Можно ли из Grassа 6.4 загрузить карту?
				Добавлено: 21 ноя 2010, 11:47
				 Voltron
				Если использование GRASS не принципиально, то лучше посмотреть в сторону QGIS.
			 
			
					
				Re: Можно ли из Grassа 6.4 загрузить карту?
				Добавлено: 21 ноя 2010, 12:31
				 KolesovDmitry
				И еще вопрос: будет ли на машине, для которой вы пишите программу, установлена GRASS? Если да -- то задача решается одной строчкой, без всяких библиотек и заголовочных файлов (неоднократно проделывал). Если нет, тоже решается, но уже сложнее, нужно будет ковырять библиотеки (и сам я этого ни разу не делал).