УДК 004.422.8
Разработка плагина на языке Python для построения точек в геоинформационной системе QGIS
Скрыль Д.С., магистрант, Яковлев В.Н., доцент
Северный (Арктический) федеральный университет имени М.В. Ломоносова, Россия
Рассмотрены основные процедуры разработки программы для построения точек по координатам в геоинформационной системе QGIS
С ростом популярности картографических веб-сайтов и пространственно ориентированных устройств и приложений методы разработки геопространственного программного обеспечения образовали быстро развивающуюся область информатики – геоинформатику. Рассмотрим написание плагина (программы) на языке Python для геоинформационной системы QGIS.
Python – это современный, высокоуровневый язык программи рования, подходящий для широкого спектра задач программирования. Он часто используется в качестве языка сценариев для автоматизации и упрощения задач на уровне операционной системы и одинаково подходит для создания больших и сложных программ. Python использовался при написании веб-систем, настольных приложений, игр, научных программ, утилит и других высокоуровневых элементов различных операционных систем.
Python поддерживает широкий спектр идиом программирования от прямого процедурного программирования до объектно-ориентированного и функционального программирования.
QGIS – это свободная кроссплатформенная геоинформационная система предназначенная для создания, редактирования, визуализации, анализа и публикации геопространственной информации. Написана на двух языках программирования – C++ и Python.
В качестве интерфейса в QGIS используется Qt. Qt – это фреймворк для разработки кроссплатформенного программного обеспечения на C++. Библиотеки Qt для Python – PyQt и PySide. Qt позволяет запускать написанное с его помощью программное обеспечение в большинстве современных операционных систем путём простой компиляции программы для каждой системы без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML. Является полностью объектно-ориентированным, расширяемым и поддерживающим технику компонентного программирования.
Для создания плагина использовался модуль Plugin Builder. С его помощью создавались все необходимые базовые файлы и шаблонный код для работы. Его можно найти во вкладке «Модули» в QGIS. В нем нужно указать стандартную информацию: имя класса, название плагина, краткое описание функции плагина, имя модуля, версию плагина, версию QGIS для которой предназначен плагин, автора и адрес электронной почты. Далее настраивается тип плагина и конфигурируются дополнительные компоненты, которые рекомендуются, но не являются строго обязательными. Далее остается заполнить информацию о публикации: ссылку на трекер ошибок, репозиторий и домашнюю страницу. На последнем этапе выбрать местоположение плагина и сгенерировать плагин.
Следующим этапом будет компиляция файла resources.qrc с помощью pyrcc5. Выполняется это следующей командой в консоли:
Теперь после успешной компиляции плагин можно запустить найти во вкладке «Модули» и запустить в QGIS.
Чтобы написать плагин для построения точек по координатам понадобится в QT Creator создать интерфейс с нужными полями и кнопками. Предположим, что нам понадобится два поля для ввода координат, кнопка для построения (Создать точку) и кнопка очистки полей. Для этого создаем два поля Plain Text и две кнопки типа Button. Нужно дать имена каждому объекту, чтобы обращаться к ним в коде плагина. Например, для поля координаты X – spValueX, для координаты Y – spValueY.
Теперь в коде плагина напишем функцию для извлечения значений из полей:
Далее проверяем, что введено валидное число и если это так, то вызывать функцию createpoint(). В противном случае выводим окно с ошибкой:
С помощью функции createpoint() будет создаваться точка. Ее реализация следующая:
Очистка полей реализована с помощью функции сlear():
Проверка работоспособности плагина выполняется с помощью построения точек с известными координатами в новом слое и совмещения этого слоя с уже имеющейся векторной картой или растровой подложкой.
На рис. 1 приведено окно разработанного плагина для построения точек в QGIS.
Рисунок 1 - Окно плагина «Point creator»
Разработка плагина для построения точек по координатам и других подобных программ повышает удобство и эффективность работы в геоинформационной системе QGIS при обработке кадастровой и другой информации.
|