Использование QGIS для подготовки межевого плана
Использование QGIS для подготовки межевого плана
В данной статье рассматривается возможность использования открытого программного обеспечения в качестве инструмента кадастрового инженера при подготовке документов для учёта земельных участков.
Цель создания
Для разработки системы openLand были две основные предпосылки:
- технологическая, выраженная в стремление использовать открытую Quantum GIS, как перспективную и динамически развивающуюся ГИС;
- экономическая, выраженная в желании использования свободного программного обеспечения, с нулевой стоимостью приобретения и выгодной ценой владения ПО.
Указанными предпосылками был определён выбор программного обеспечения для работы и составляющие компоненты системы:
- СУБД PostgreSQL с пространственным расширением PostGIS;
- ГИС Quantum GIS;
- Библиотека libxslt;
- Текстовый редактор LibreOffice Writer.
Составляющие элементы системы:
- База данных PostgreSQL;
- Модуль на Python;
- Набор локальных файлов формата SHP;
- Утилита командной строки библиотеки libxslt;
- Файл проекта QGIS.
Состав системы
Серверная часть системы
База данных (БД) традиционно состоит из таблиц, условно разделенных на три группы, на три схемы в терминологии используемой СУБД.
- class — набор классификаторов, структура и состав которых определены нормативными документами. Были использованы классификаторы XML - схемы, используемой для формирования XML - документа – межевого плана земельного участка, предоставляемого в орган кадастрового учета в форме электронного документа.
Кроме классификаторов, обусловленных нормативными документами, схема содержит некоторые служебные таблицы, например:- database_version — таблица с номером версии данной БД, для задач контроля и обновления структуры;
- sistema_koordinat — таблица содержащая параметры местных систем координат, необходимых для работы, в формате выражения proj.Таблицы данной схемы недоступны обычным пользователям для редактирования. Права на редактирование этих классификаторов имеют только пользователи с правами администратора.
- msk — схема содержит пространственные таблицы, необходимые для проведения кадастровых работ: «Район», «Квартал», «Участок», «Граница», «Точка». В поле geom хранится пространственная составляющая каждого объекта. Значения координат хранятся в метрах, а система координат для каждого объекта (строки таблицы) определятся полем id_msk. Данное поле имеет формат GUID и для каждой таблицы схемы msk, является внешним ключом на таблицу sistema_koordinat, которая, в свою очередь, содержит параметры используемых в системе МСК.
Таким образом, например в таблице «Квартал», хранятся полигоны совершенно разных районов работ и МСК. Для работы пользователя с определенной МСК, в ГИС необходимо только сделать выборку объектов с нужным id_msk по всем пространственным таблицам.
Для начала работы с новой территорией (новой МСК) не нужно изменять структуру данных БД, достаточно только лишь добавить новую запись в таблицу sistema_koordinat с необходимыми параметрами, обновить выборку в ГИС и в результате получить «чистый лист» на котором можно создавать объекты уже сразу в новой МСК.
Для таблицы «Квартал» имеется исключение — для нулевых кварталов каждого кадастрового района поле geom пустое, то есть нулевой квартал не имеет пространственной составляющей. Принадлежность земельных участков (ЗУ) нулевому кварталу определяется только атрибутивной информацией.
- public — данная схема содержит таблицы с атрибутивной информацией. Основная часть этих таблиц определяет атрибуты административно-территориального деления (АТД) для ЗУ, то есть являются справочниками всевозможных названий элементов АТД. Непосредственно сам адрес, как сущность, представлен в виде комбинации идентификаторов строк данных справочников.
Кроме таблиц АТД имеются таблицы «Многоконтурный» и «Части». Эти таблицы содержат информацию о взаимосвязи отдельных контуров или частей с многоконтурными ЗУ и участков с частями. Часть функционала системы также находится на серверной части и реализована в виде триггерных функций и значений полей по умолчанию.
Например, фиксируется имя пользователя и время создания ЗУ через значения полей по умолчанию.
CREATE TABLE msk.uchastok (
id SERIAL,
…
create_user VARCHAR(20) DEFAULT "current_user"(),
create_date TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT now(),
…
Другой пример — триггер на создание ЗУ, проверяющий входимость центроида создаваемого участка в существующий полигон кадастрового квартала (КК). Если такой полигон КК существует, создаваемый ЗУ автоматически относится к данному кварталу.
…
IF (NEW.geom IS NOT NULL) AND (NEW.id_kvartal IS NULL) AND (NEW.id_msk IS NOT NULL) THEN
ngeom = public.st_centroid(NEW.geom);
idmsk = NEW.id_msk;
SELECT id, kn FROM "msk".kvartal
WHERE public.st_within(ngeom, geom)
AND kvartal.id_msk=idmsk INTO idkn;
NEW.id_kvartal = idkn;
…
Клиентская часть системы
Основными элементами клиентской части системы является модуль openLand на языке программирования Python и файл проекта QGIS.
Проект openLand.qgs:
- является связывающим звеном между кодом модуля и базой данных;
- определяет стили отображения пространственных элементов в соответствии с принятыми условными обозначениями;
- определяет ряд действий над пространственными объектами используя встроенные возможности ГИС (инструмент «Выполнить действия объекта»);
- содержит описание макетов документов для печати: «Схема геодезических построений», «Схема расположения ЗУ», «Чертёж ЗУ и ЧЗУ».
Код модуля непосредственно реализует большую часть функционала системы для выполнения кадастровых работ, например:
- импорт данных кадастрового плана территории и выписки о ЗУ в формате XML;
- автоматизация действий с объектами;
- редактирование геометрии и атрибутов объектов;
- формирования межевого плана в формате XML.
Система подготовки печатной формы межевого плана основана на формировании документа в формате ODF (OpenDocument Format). Документы, содержащие графическую часть (чертежи и схемы) формируются непосредственно в ГИС, через макеты. Остальные документы (исходные данные, сведения о выполненных измерениях и расчетах, сведения об образуемых земельных участках и их частях) формируются на основании подготовленного XML файла межевого плана. То есть, XML форма межевого плана первична, а печатный вариант вторичен.
Межевой план в формате файла ODF из формата XML формируется с использованием утилиты XSLT трансформации. Утилита командной строки из библиотеки LIBXSLT.