Категория: Руководства
Вторник, 05 Апреля 2016 г. 16:43 (ссылка )
По работе пришлось столкнутся с тем, что нужно было узнать, какие действия происходят в ядре QGIS. QGIS (Quantum GIS) — свободная кроссплатформенная геоинформационная система. Сама система разработана с помощью инструментария Qt. Через него я и решил собрать проект. Для этого я скачал исходники qgis с официального сайта и начал сборку. На самом сайте есть руководство по сборке с помощью Qt Creator. Было прочитано множество статей про сборку и отладку QGIS (некоторые даже толковые). Но ни в руководстве, ни на каких-либо ресурсах не нашел решения тех проблем, с которыми я столкнулся. Так родилась идея написать собственное руководство по сборке QuantumGIS для Windows систем использую Qt Creator.
Прежде чем собиратьПервоначально мы скачиваем и устанавливаем Qt Creator. Качаем с официального сайта. Я использовал скомпилированные библиотеки Qt. (Внимание! Qgis официально не поддерживает Qt 5. Лучше используйте Qt 4): берем отсюда. Ставим Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO) (нужен для setupapi)
Кроме того, для отладки в Qt Creator необходим CDB (из пакета MS Debugging Tools). находится тут .
Так же скачиваем и устанавливаем:Cmake ,Flex и Bison. С официального сайта скачиваем OSGeo4W для своей версии: тут. Запускам его и выбираем: расширенная установка -> установить из интернета и жмем все далее.
Выберите следующие библиотеки: expat, fcgi, gdal, gdal-dev, iconv, PyQt4, Qt4-Devel, qwt-devel-Qt4, sip, curl, gsl, hdf5, proj, qScintilla2, Sqlite3, libspatialIndex-devel, geos, zlib. Ждем, когда установится.
Подготовка для сборкиЯ предполагаю, что у вас все получилось. Установили все что требуется и скачали исходный код. Запустите Qt Creator. Затем сделайте: Файл -> Открыть файл или проект. Используйте этот диалог, чтобы открыть файл CMakeLists.txt. Он находится в исходниках, у меня путь такой: D:\qgis2.8.7\ CMakeLists.txt. Далее вам будет предложено создать место сборки. Я создаю определенный каталог: D:/Quantum-Gis.
Далее вам предложат запустить Cmake параметры сборки. Мы запустим его со следующими параметрами: -DCMAKE_BUILD_TYPE=Debug.
После запуска Cmake мы укажем путь к папке где лежат исходники QGIS и путь в папку, в которую запишется конфигурация.
После этого нажмем «Configure» и выберем компилятор «NMake Makefiles» и оставляем отметку «Use default native compilers». Cmake будет проверять конфигурацию и наличие нужных компонентов (отмечено красным). Покажу свою конфигурацию.
CMAKE_INSTAL_PREFIX C:/Program Files/qgis2.8.7
Конфигурация должна проходить без ошибок. (Внимание! На папки рекомендую установить переменные среды, иначе придется все пути прописывать вручную). После успешной конфигурации нажимаем «Generate» и генерируем файлы конфигурации. Далее закрываем Cmake и возвращаемся в Qt Creator. Нажимаем кнопку «Завершить».
Сборка проектаТеперь что касается самого проекта. Заходим на вкладку «Проект». Вверху расположена кнопка «Управление». В открывшемся окне на вкладке «Сборка и запуск» -> «Основное» указываем каталог проектов, например, D:\Quantum-GIS. На вкладке Текстовый редактор -> Поведение Кодировкам файлов -> По умолчанию значение windows-1251 / CP1251. Далее переходим снова на вкладку «Сборка и запуск» -> «Компиляторы» и убеждаемся, что среди обнаруженных имеются хотя бы некоторые компиляторы из ниже представленных.
На вкладке «Отладчики» (здесь же) должны быть вот эти отладчики (версии могут различаться).
Далее выбираем вкладку «Qt Versions», нажимаем кнопку «Добавить» и указываем путь к установленной ранее библиотеке Qt C:\Qt\4.8.6\bin\qmake.exe. В название профиля прописываем к примеру, Qt 4.8.6 MSVC2010 64bit.
Теперь можно сделать связку инструментов. Переходим на «Компоненты», нажимаем кнопку «Добавить» и в свойствах новой связки указываем компоненты. У меня они такие:
(компилятор и отладчик у Вас могут быть свои)
Закрываем «Параметры», предварительно нажав кнопку «Применить». Проект готов к сборке. Чтобы собрать его нужно нажать внизу на значок молотка. Компиляция должна проходить без ошибок.Если ошибок нет необходимо сбросить в созданную папку, куда скомпилировались файлы QGIS, связанные библиотеки:
expat.dll, freexl.dll, gdal200.dll, geos_c.dll, hdf5.dll, iconv.dll, jpeg.dll, jpeg12.dll, libcurl.dll, libpq.dll, libtiff.dll, libxml2.dll, ogdi.dll, proj.dll,qscintilla2.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll, QtSql4.dll, QtSvg4.dll, qwt5.dll, QtXml4.dll, spatialindex-64.dll, spatialite.dll, sqlite3.dll, szip.dll, xerces-c_3_1.dll zlib.dll.
Все библиотеки находятся в папке C:\OSGeo4W64\bin, библиотеки Qt я подключал из скомпилированных библиотек. Далее копируем папку C:\OSGeo4W64\etc в папку с скомпилированными файлами QGIS, в моем случае: D:\ Quantum-GIS\output. Также копируем из C:\OSGeo4W64\bin два батника qgis.bat и o4w_env.bat в директорию D:\ Quantum-GIS\output\bin. Вернемся к настройкам запуска Qgis в Qt cCreator. На вкладке «Проект» открываем вкладку «Запуск». Указываем директории, где лежит exe-файл QGIS и рабочую директорию.
Если QGIS запустился, то теперь вы можете отлаживать, нажатием кнопки с божьей коровкой. Наслаждайтесь.
Возможные ошибки1. Библиотека Python. В официальном руководстве по сборке qgis рекомендуют выбирать установленную в osge4w библиотеку python27. У меня не получилось собрать с ней. Скачал отдельную библиотеку python27 с официального сайта Python. Заработало.
2. После установки Qt создайте переменную среду QTDIR. Если этого не сделать будут проблемы с библиотеками Qt, проект так и не сможет их найти. (тоже самое нужно сделать и с Qt_MOC, QT_RCC, QT_UIC но у меня заработало без этого).
3. Проблемы с библиотеками. Если вы собираете приложение в режиме выпуска, а библиотека в режиме отладки, то возникнут ошибки. Убедитесь, что и проект, и библиотека одной версии. (У меня такое было с библиотекой qwt. Компилятор выдавал QWidget: Must construct a QApplication before a QPaintDevice. Заменил версию библиотеки – заработало).
Надеюсь, что моя статья будет полезна. Собирал Qgis версии 2.8.7 на Windows 7 x64-битной системе.
Среда, 08 Апреля 2015 г. 19:02 (ссылка )
Вопросы жизни на Марсе, всегда волновали человечество. А вот что такое геоинформационные системы волновали не всегда. Раньше сфера ГИС была узкой и специфичной областью в IT-индустрии, где все участники знали друг друга. Однако с появлением популярных интернет картографических сервисов, а также мобильных приложений, каждая домохозяйка смогла освоить технологии, которые раньше были доступны гуру в области ГИС и ДДЗ.
Яндекс и Гугл сделали все, чтобы жизнь пользователей при использовании картографических приложений была комфортной. Однако когда обыватель начинает позволять себе большее, его жизнь резко усложняется. Данный обзор призван сократить круги ада в освоении новой специальности. Здесь нет ничего сложного, однако, как в любой специализации, есть масса нюансов.
В зоопарке ПО, которое работает с пространственной информацией, легко потеряться. Поэтому рекомендую освоение этой незатейливой отрасли с настольных ГИС-приложений. Наиболее популярные приложения ArcGIS, MapInfo и QGIS. Объективно линейка гис-продуктов компании ESRI самая лучшая. Если у вас есть лишний «лям» за пазухой, можете начать с ArcGIS. Однако мы за коммунизм во всем мире open source, поэтому начнем с QGIS, благо он хорошеет с каждым днем и объективных причин использовать проприетарные продукты становится все меньше.
QGIS работает на всех популярных OS, даже под Android. Все информацию об установке можно почитать на страничке проекта. Для любителей полного импортозамещения QGIS собирает отечественная контора NextGIS .
После установки QGIS необходимо в первую очередь запустить QGIS Desktop. QGIS Browser понадобится в дальнейшей работе, но не сейчас.
В настоящий момент написано много пособий по QGIS. В рунете, в основном, они концентрируются на gis-lab.info. В первую очередь я бы рекомендовал начать с «Краткого введение в ГИС». Затем уже читать статьи по интересам, благо в разделе статьи можно ранжировать публикации по ключевым словам.
Кроме того, можно обратиться к официальной документации на сайте проекта. Те, кто не хочет переваривать много букв, могут посмотреть видеоролики. например, этот. А затем скачать учебный проект и потренироваться на кошечках. Владеющие Python и С++ могут дополнить функционал QGIS в виде плагина .
Если вдруг вы не нашли ответа на свой вопрос, можно обратиться на форум gis-lab.info или воспользоваться другими каналами неформального общения, например, задать вопрос в Фейсбуке, группа «Бытовая картография». либо пофлудить на gis.stackexchange.com .
Итак, с инструментом познакомились, однако для работы нужны данные, которые могут стоить немало денег. В случае с высокодетальной космической съемкой действительно придется раскошелиться. Однако для большинства задач вполне достаточно открытых данных. Это прежде всего OpenStreetMap. а также данные дистанционного зондирования, выкладываемые за счет американских налогоплательщиков. Например, Landsat, MODIS, SRTM, ASTER DEM и др. Наиболее полный обзор открытых данных представлен здесь .
В заключение хотел бы отметить, что, несмотря на рост интереса к геоинформационным системам, полезная информация о ГИС сильно фрагметировна. Надеюсь, этот обзор частично закроет этот пробел.
Полезные ссылкиКраткое описание:
QGIS - современная, активно развиваемая пользовательская ГИС. В числе других функций этой программы - возможность географической привязки растровых данных.
Описание:
Quantum GIS — свободная кроссплатформенная геоинформационная система.
Работа над QGIS была начата в мае 2002 года, а в июне того же года — создан проект на площадке SourceForge. Целью создания QGIS было сделать использование геоинформационных систем легким и понятным для пользователя, чего создатели QGIS отчасти добились: интерфейс Quantum GIS намного понятнее для неискушенного пользователя чем интерфейс того же GRASS (на котором QGIS во многом основана), а в некоторых аспектах даже превосходит широко распространённые проприетарные ГИС.
Интерфейс Quantum GIS был создан с помощью инструментария Qt. Версия для андроид была скомпилирована благодаря проекту Necessitas
Анализ данных
Вы можете анализировать векторные пространственные данные в PostgreSQL/PostGIS и других форматах, поддерживаемых OGR, используя модуль fTools, написанный на языке программирования Python. В настоящее время QGIS предоставляет возможность использовать инструменты анализа, выборки, геопроцессинга, управления геометрией и базами данных. Также можно использовать интегрированные инструменты GRASS, которые включают в себя функциональность более чем 300 модулей GRASS.
Публикация карт в сети Интернет
QGIS может использоваться для экспорта данных в map-файл и публикации его в сети Интернет, используя установленный веб-сервер Mapserver. QGIS может использоваться как клиент WMS/WFS и как сервер WMS.
Расширение функциональности QGIS с помощью модулей расширения
QGIS может быть адаптирован к особым потребностям с помощью расширяемой архитектуры модулей. QGIS предоставляет библиотеки, которые могут использоваться для создания модулей. Можно создавать отдельные приложения, используя языки программирования C++ или Python.
1. Качаем *.apk, устанавливаем, запускаем.
2. Выбираем ‘download and install’. Программа скачивает 83 мб. Закачка может восстанавливаться после неудачи
3. При первом запуске программа сначала 10 секунд распаковывает текстуры, затем проверяет наличие всех нужных библиотек
4. Качаем с маркета Ministro II. https://play.google.com/store/apps/details. istro&hl=en. Это программа, необходимая для работы приложений, написаных на языке C++ с использованием библиотек Qt.
5. Запускаем программу еще раз. Она просит дать ей разрешение на скачивание библиотек Qt. ”Qgis needs extra libraries to run. Do you want to download them now?”. Разрешаем, докачиваем 31 мб библиотек.
6. Программа готова к запуску и использованию. На одном из скриншотов показано как сменить язык интерфейса программы. По умолчанию идёт английский.
Тестировалось на ASUS Transformer TF101 - работает стабильно.
Русский интерфейс: Да
© Copyright 2016, Ujaval Gandhi.
Обновлено: Dec 12, 2016.
Created using Sphinx 1.3.6.
QGIS(Quantum GIS) — динамично развивающаяся географическая информационная система (ГИС) .
Геоинформационная система(Географическая Информационная Система / ГИС) — система сбора, хранения, графической визуализации и анализа пространственных (географических) данных и связанных с ними информации.
Понятие "геоинформационной системы " также используется в более узком смысле, применительно к инструментам (приложениям) позволяющим пользователям искать, анализировать и редактировать графическую и цифровую карту местности, а так же дополнительную информацию об объектах.
Работа над QGIS начата в 2002 году, основной целью проекта было создание лёгкой и понятной для пользователя географической информационной системы, с более простым графическим интерфейсом чем у GRASS GIS(на котором QGIS во многом основывается) и поддерживающей весь спектр необходимых для ГИС возможностей.
QGIS имеет интуитивно понятный и частично настраиваемый C++ / QT графический интерфейс позволяющий проводить обычный просмотр геоданных, а так же создавать и исследовать пространственные данные. Большинство дополнительных возможностей приложения и поддержка форматов данных реализуется с помощью модулей (плагинов) .
Модульная архитектура даёт возможность адаптировать QGIS к любым потребностям, предоставляемые библиотеки могут использоваться для создания модулей и отдельных приложений (на C++ или Python). Просмотр и наложение для векторных и растровых данных (в различных форматах и проекциях) производится напрямую (на лету). без преобразования во внутренний и общий формат.
QGIS включает в себя множество инструментов исследования и компоновки карт, таких как панель обзора, компоновщик карт, изменение символики векторных и растровых слоёв, инструменты определения и выборки объектов, подписывание объектов, пространственные закладки, редактирование/просмотр/поиск атрибутов, добавление слоя координатной сетки, линейки масштаба и прочее.
С помощью QGIS можно создавать, редактировать и анализировать векторные пространственные данные, а так же экспортировать их в разные форматы, импорт и экспорт осуществляет через библиотеку GDAL(Geospatial Data Abstraction Library / Библиотека абстракций гео-пространственных данных). что обеспечивает поддержку практически всех форматов (Shapefile, MapInfo TAB, PostGIS, DXF, GeoTIFF, IMG и др) .
QGIS работает со всеми современными СУБД(Система управления базами данных). функциональные возможности приложения можно значительно увеличить используя интегрируемые инструменты GRASS. которые включают в себя более четырёхсот модулей различного назначения.
QGIS является проектом Open Source Geospatial Foundation(OSGeo). имеет активное сообщество создавшее множество документации (в том числе и на русском). которая может использоваться для изучения работы с приложением и методами работы с ГИС(GIS) .
Лицензия: GNU General Public License version 2.0 (GPLv2)
В предыдущем посте я хвалил gvSIG за слой аннотаций. Но основательно поковырявшись в QGIS увидел подобный инструмент в модуле mmqgis, он так же создаёт ещё один точечный слой.
А потом я обратил внимание на новый инструмент подписей слоя в QGIS. находится он в меню "Слой", в противовес старой технологии, которая в находится в свойствах слоя на соответствующей закладке.
Так вот, возможностей размещения надписей там больше и можно редактировать текст, но два инструмента: "Переместить" и "Вращать" не активны.
В русском руководстве по QGIS про это (переместить и вращать) ничего не написано.
И вот я нашёл страничку где сказано, что нужно для этого на слое завести необходимые поля для сохранения положения подписи!
Я на радостях взял тестовый проектик и принялся за дело: добавил 2 double (там было написано real, как когда-то в Delphi в 90-е) поля - LabelX, LabelY, добавил их в нужных местах настройки подписей и включил редактирование.
Каково же было моё удивление, когда переместив 1 подпись, я заметил что некоторые размножились (вернее удвоились), сразу несколько.
Замечу, что слой был с данными на тот момент, когда я добавил 2 поля. QGIS 1.7.4.
Странно, очень.
Я удалил дубли и завершил нужные перемещения подписей. Сохранилось всё хорошо.
БОЛЬШЕ ТАКОГО КОСЯКА НЕ ПОЛУЧИЛОСЬ СДЕЛАТЬ.