Использование QGIS для подготовки межевого плана: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
мНет описания правки
 
(не показано 7 промежуточных версий 2 участников)
Строка 1: Строка 1:
= Использование QGIS для подготовки межевого плана =
{{Статья|Опубликована|qgis-openland}}
В данной статье рассматривается возможность использования открытого программного обеспечения в качестве инструмента кадастрового инженера при подготовке документов межевого плана.
 
{{Аннотация|В данной статье рассматривается возможность использования открытого программного обеспечения в качестве инструмента кадастрового инженера при подготовке документов межевого плана.}}


== Цель создания ==
== Цель создания ==
Строка 6: Строка 7:


* технологическая, выраженная в стремление использовать открытую Quantum GIS, как перспективную и динамически развивающуюся ГИС;
* технологическая, выраженная в стремление использовать открытую Quantum GIS, как перспективную и динамически развивающуюся ГИС;
* экономическая, выраженная в желании использования свободного программного обеспечения, с нулевой стоимостью приобретения и выгодной ценой владения ПО.
* экономическая, выраженная в желании использовать свободное программное обеспечение, с нулевой стоимостью приобретения и выгодной ценой владения ПО.


Указанными предпосылками был определён выбор программного обеспечения для работы и составляющие компоненты системы:
Указанными предпосылками был определён выбор программного обеспечения для работы и составляющие компоненты системы:
Строка 13: Строка 14:
# СУБД PostgreSQL с пространственным расширением PostGIS;
# СУБД PostgreSQL с пространственным расширением PostGIS;
# Библиотека libxslt;
# Библиотека libxslt;
# Текстовый редактор LibreOffice Writer.
# Офисный пакет LibreOffice (текстовый процессор Writer).


Составляющие элементы системы:
Составляющие элементы системы:
Строка 22: Строка 23:
# Утилита командной строки библиотеки libxslt;
# Утилита командной строки библиотеки libxslt;
# Файл проекта QGIS.
# Файл проекта QGIS.
Все перечисленные компоненты системы являются кроссплатформенными, соответственно в целом, система также является кроссплатформенной.


== Состав системы ==
== Состав системы ==
Строка 29: Строка 32:
1. ''class'' — набор классификаторов, структура и состав которых определены нормативными документами. Были использованы классификаторы XML - схемы, используемой для формирования XML - документа – межевого плана земельного участка, предоставляемого в орган кадастрового учета в форме электронного документа. <br/> Кроме классификаторов, обусловленных нормативными документами, схема содержит некоторые служебные таблицы, например:
1. ''class'' — набор классификаторов, структура и состав которых определены нормативными документами. Были использованы классификаторы XML - схемы, используемой для формирования XML - документа – межевого плана земельного участка, предоставляемого в орган кадастрового учета в форме электронного документа. <br/> Кроме классификаторов, обусловленных нормативными документами, схема содержит некоторые служебные таблицы, например:
* ''database_version'' — таблица с номером версии данной БД, для задач контроля и обновления структуры<nowiki>;</nowiki>
* ''database_version'' — таблица с номером версии данной БД, для задач контроля и обновления структуры<nowiki>;</nowiki>
* ''sistema_koordinat'' — таблица содержащая параметры местных систем координат, необходимых для работы, в формате выражения ''proj''.  
* ''sistema_koordinat'' — таблица, содержащая параметры местных систем координат, необходимых для работы, в формате выражения ''proj''.  
Таблицы схемы ''class'' недоступны обычным пользователям для редактирования. Права на редактирование этих классификаторов имеют только пользователи с правами администратора.
Таблицы схемы ''class'' недоступны обычным пользователям для редактирования. Права на редактирование этих классификаторов имеют только пользователи СУБД с правами администратора.


2. ''msk ''— схема содержит пространственные таблицы, необходимые для проведения кадастровых работ: «Район», «Квартал», «Участок», «Граница», «Точка». В поле ''geom'' хранится пространственная составляющая каждого объекта. Значения координат хранятся в метрах, а система координат для каждого объекта (строки таблицы) определятся полем ''id_msk''. Данное поле имеет формат GUID и для каждой таблицы схемы ''msk'', является внешним ключом на таблицу ''sistema_koordinat'', которая, в свою очередь, содержит параметры используемых в системе МСК.  
2. ''msk ''— схема содержит пространственные таблицы, необходимые для проведения кадастровых работ: «Район», «Квартал», «Участок», «Граница», «Точка». В поле ''geom'' хранится пространственная составляющая каждого объекта. Значения координат хранятся в метрах, а система координат для каждого объекта (строки таблицы) определятся полем ''id_msk''. Данное поле имеет формат GUID и для каждой таблицы схемы ''msk'', является внешним ключом на таблицу ''sistema_koordinat'', которая, в свою очередь, содержит параметры используемых в системе МСК.  
Строка 36: Строка 39:
<center>[[Файл:Id-msk.png]]</center>
<center>[[Файл:Id-msk.png]]</center>


Таким образом, например в таблице «Квартал», хранятся полигоны совершенно разных районов работ и МСК. Для работы пользователя с определенной МСК, в ГИС необходимо только сделать выборку объектов с нужным ''id_msk'' по всем пространственным таблицам.  
Таким образом, например в таблице «Квартал», хранятся полигоны совершенно разных районов работ и МСК. Для работы пользователя с определенной МСК, в ГИС необходимо только сделать выборку объектов с нужным ''id_msk'' по всем пространственным таблицам и интерактивно указать МКС для векторных слоёв.  


Для начала работы с новой территорией (новой МСК) не нужно изменять структуру данных БД, достаточно только лишь добавить новую запись в таблицу ''sistema_koordinat'' с необходимыми параметрами, обновить выборку в ГИС и в результате получить «чистый лист» на котором можно создавать объекты уже сразу в новой МСК.
Для начала работы с новой территорией (новой МСК) не нужно изменять структуру данных БД, достаточно только лишь добавить новую запись в таблицу ''sistema_koordinat'' с необходимыми параметрами, обновить выборку в ГИС и в результате получить «чистый лист» на котором можно создавать объекты уже сразу в новой МСК.
Строка 46: Строка 49:
<center>[[Файл:Address.png]]</center>
<center>[[Файл:Address.png]]</center>


Кроме таблиц АТД имеются таблицы «Многоконтурный» и «Части». Эти таблицы содержат информацию о взаимосвязи отдельных контуров или частей с многоконтурными ЗУ и участков с частями. Часть функционала системы также находится на серверной части и реализована в виде триггерных функций и значений полей по умолчанию.
Кроме таблиц АТД имеются таблицы «Многоконтурный» и «Части». Эти таблицы содержат информацию о взаимосвязи отдельных контуров или частей с многоконтурными ЗУ и участков с частями.  


Например, фиксируется имя текущего пользователя БД и время создания ЗУ через значения полей по умолчанию.
Часть функционала системы также находится на серверной части и реализована в виде триггерных функций и значений полей по умолчанию. Например, фиксируется имя текущего пользователя БД и время создания ЗУ через значения полей по умолчанию.
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
CREATE TABLE msk.uchastok (
CREATE TABLE msk.uchastok (
Строка 58: Строка 61:
</syntaxhighlight>
</syntaxhighlight>


Другой пример — триггер на создание ЗУ, проверяющий входимость центроида создаваемого участка в существующий полигон кадастрового квартала (КК). Если такой полигон КК существует, создаваемый ЗУ автоматически относится к данному кварталу.
Другой пример — триггер на создание ЗУ, проверяющий входимость центроида создаваемого участка в существующий полигон кадастрового квартала (КК). Если такой полигон КК существует, создаваемый ЗУ автоматически получает атрибут внешнего ключа к данному кварталу.


<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
Строка 85: Строка 88:


* импорт данных кадастрового плана территории и выписки о ЗУ в формате XML;
* импорт данных кадастрового плана территории и выписки о ЗУ в формате XML;
* автоматизация действий с объектами;
* автоматизация действий с объектами (объединение или раздел ЗУ);
* редактирование геометрии и атрибутов объектов;
* редактирование геометрии и атрибутов объектов;
* формирования межевого плана в формате XML.
* формирования межевого плана в формате XML.
Строка 93: Строка 96:
<center>[[Файл:Export-xml-rezult.png]]</center>
<center>[[Файл:Export-xml-rezult.png]]</center>


Система подготовки печатной формы межевого плана основана на формировании документа в формате ODF (OpenDocument Format). Документы, содержащие графическую часть (чертежи и схемы) формируются непосредственно в ГИС, через макеты. Остальные документы (исходные данные, сведения о выполненных измерениях и расчетах, сведения об образуемых земельных участках и их частях) формируются на основании подготовленного XML файла межевого плана. То есть, XML форма межевого плана первична, а печатный вариант вторичен.  
Процедура подготовки печатной формы межевого плана основана на формировании документа в формате ODF (OpenDocument Format). Документы, содержащие графическую часть (чертежи и схемы) формируются непосредственно в ГИС, через макеты, и могут быть экспортированы в PDF, SVG или растровые документы. Остальные документы (исходные данные, сведения о выполненных измерениях и расчетах, сведения об образуемых земельных участках и их частях) формируются на основании подготовленного XML файла межевого плана. То есть, XML форма межевого плана первична, а печатный вариант формируется на данных XML файла.
 
Межевой план в формате ODF формируется из файла формата XML с использованием утилиты XSLT трансформации xsltproc библиотеки LIBXSLT.
Шаблон документа изначально представлен в виде файла V03_STD_MP.zip - это именно шаблон будущего ODF, то есть стили, таблицы, оформление, но без данных. Промежуточный файл с данными content.xml формируется из файла XML межевого плана, после чего шаблон и данные компонуются в документ формата ODF. Компоновка осуществляется с использованием стандартного алгоритма zip.


Межевой план в формате файла ODF из формата XML формируется с использованием утилиты XSLT трансформации. Утилита командной строки из библиотеки LIBXSLT.
<syntaxhighlight lang="python">
self.fileXmlName = QFileDialog.getOpenFileName(self, u'Укажите XML файл для создания документа', self.pathIn, u'XML файлы(*.xml *.XML)')
self.fileOdtName = QFileDialog.getSaveFileName(self, u'Сохранить документ как ', tmp, u'ODT файлы(*.odt *.ODT)')
shutil.copyfile(self.pathTpl + '\\V03_STD_MP.zip', 'openlandtempdoc.zip')
 
if 'Windows' in platform.system():
    os.system('xslt01.cmd ' + self.fileXmlName)
else:
    self.highlightLine(u'Ошибка! Для текущей операционной системы не установлен сценарий обработки XSLT трансформации.')
               
z = ZipFile('openlandtempdoc.zip', 'a')
z.write('content.xml')
z.close()
 
os.remove('content.xml')
shutil.move('openlandtempdoc.zip', self.fileOdtName)
self.listWidgetEvents.addItem(u'Создан документ для печати ' + self.fileOdtName)               
</syntaxhighlight>
 
Сценарий обработки XLST трансформации xslt01.cmd в версии операционной системы Windows.
 
<syntaxhighlight lang="dos">
bin\xsltproc -o content.xml xslt\STD_MP.xslt %1
</syntaxhighlight>


= Ссылки =
== Ссылки ==
Проект на стадии тестирования. Подробное описание публикуется по адресам:
* [http://openlandgis.ru Модуль openLand для QGIS]
* [http://openlandgis.ru/for-admin Установка, настройка, администрирование openLand]
* [http://openlandgis.ru/for-admin Установка, настройка, администрирование openLand]
* [http://openlandgis.ru/documentation Руководство пользователя]
* [http://openlandgis.ru/documentation Руководство пользователя openLand]
* [http://ru.wikipedia.org/wiki/OpenDocument OpenDocument Format]

Текущая версия от 11:21, 24 апреля 2013

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/qgis-openland.html


В данной статье рассматривается возможность использования открытого программного обеспечения в качестве инструмента кадастрового инженера при подготовке документов межевого плана.

Цель создания

Для разработки системы openLand были две основные предпосылки:

  • технологическая, выраженная в стремление использовать открытую Quantum GIS, как перспективную и динамически развивающуюся ГИС;
  • экономическая, выраженная в желании использовать свободное программное обеспечение, с нулевой стоимостью приобретения и выгодной ценой владения ПО.

Указанными предпосылками был определён выбор программного обеспечения для работы и составляющие компоненты системы:

  1. ГИС Quantum GIS;
  2. СУБД PostgreSQL с пространственным расширением PostGIS;
  3. Библиотека libxslt;
  4. Офисный пакет LibreOffice (текстовый процессор Writer).

Составляющие элементы системы:

  1. База данных PostgreSQL;
  2. Модуль на Python;
  3. Набор локальных файлов формата SHP;
  4. Утилита командной строки библиотеки libxslt;
  5. Файл проекта QGIS.

Все перечисленные компоненты системы являются кроссплатформенными, соответственно в целом, система также является кроссплатформенной.

Состав системы

Серверная часть системы

База данных (БД) традиционно состоит из взаимосвязанных таблиц, условно разделенных на три группы, на три схемы в терминологии используемой СУБД.

1. class — набор классификаторов, структура и состав которых определены нормативными документами. Были использованы классификаторы XML - схемы, используемой для формирования XML - документа – межевого плана земельного участка, предоставляемого в орган кадастрового учета в форме электронного документа.
Кроме классификаторов, обусловленных нормативными документами, схема содержит некоторые служебные таблицы, например:

  • database_version — таблица с номером версии данной БД, для задач контроля и обновления структуры;
  • sistema_koordinat — таблица, содержащая параметры местных систем координат, необходимых для работы, в формате выражения proj.

Таблицы схемы class недоступны обычным пользователям для редактирования. Права на редактирование этих классификаторов имеют только пользователи СУБД с правами администратора.

2. msk — схема содержит пространственные таблицы, необходимые для проведения кадастровых работ: «Район», «Квартал», «Участок», «Граница», «Точка». В поле geom хранится пространственная составляющая каждого объекта. Значения координат хранятся в метрах, а система координат для каждого объекта (строки таблицы) определятся полем id_msk. Данное поле имеет формат GUID и для каждой таблицы схемы msk, является внешним ключом на таблицу sistema_koordinat, которая, в свою очередь, содержит параметры используемых в системе МСК.

Id-msk.png

Таким образом, например в таблице «Квартал», хранятся полигоны совершенно разных районов работ и МСК. Для работы пользователя с определенной МСК, в ГИС необходимо только сделать выборку объектов с нужным id_msk по всем пространственным таблицам и интерактивно указать МКС для векторных слоёв.

Для начала работы с новой территорией (новой МСК) не нужно изменять структуру данных БД, достаточно только лишь добавить новую запись в таблицу sistema_koordinat с необходимыми параметрами, обновить выборку в ГИС и в результате получить «чистый лист» на котором можно создавать объекты уже сразу в новой МСК.

Для таблицы «Квартал» имеется исключение — у нулевых кварталов каждого кадастрового района поле geom пустое, то есть нулевой квартал не имеет пространственной составляющей. Принадлежность земельных участков (ЗУ) нулевому кварталу определяется только атрибутивной информацией.

3. public — данная схема содержит таблицы с атрибутивной информацией. Основная часть этих таблиц определяет атрибуты административно-территориального деления (АТД) для ЗУ, то есть являются справочниками всевозможных названий элементов АТД. Непосредственно сам адрес, как сущность, представлен в виде комбинации идентификаторов строк данных справочников.

Address.png

Кроме таблиц АТД имеются таблицы «Многоконтурный» и «Части». Эти таблицы содержат информацию о взаимосвязи отдельных контуров или частей с многоконтурными ЗУ и участков с частями.

Часть функционала системы также находится на серверной части и реализована в виде триггерных функций и значений полей по умолчанию. Например, фиксируется имя текущего пользователя БД и время создания ЗУ через значения полей по умолчанию.

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.
Import-xml-kpt-dialog.png


Export-xml-rezult.png

Процедура подготовки печатной формы межевого плана основана на формировании документа в формате ODF (OpenDocument Format). Документы, содержащие графическую часть (чертежи и схемы) формируются непосредственно в ГИС, через макеты, и могут быть экспортированы в PDF, SVG или растровые документы. Остальные документы (исходные данные, сведения о выполненных измерениях и расчетах, сведения об образуемых земельных участках и их частях) формируются на основании подготовленного XML файла межевого плана. То есть, XML форма межевого плана первична, а печатный вариант формируется на данных XML файла.

Межевой план в формате ODF формируется из файла формата XML с использованием утилиты XSLT трансформации xsltproc библиотеки LIBXSLT. Шаблон документа изначально представлен в виде файла V03_STD_MP.zip - это именно шаблон будущего ODF, то есть стили, таблицы, оформление, но без данных. Промежуточный файл с данными content.xml формируется из файла XML межевого плана, после чего шаблон и данные компонуются в документ формата ODF. Компоновка осуществляется с использованием стандартного алгоритма zip.


self.fileXmlName = QFileDialog.getOpenFileName(self, u'Укажите XML файл для создания документа', self.pathIn, u'XML файлы(*.xml *.XML)')

self.fileOdtName = QFileDialog.getSaveFileName(self, u'Сохранить документ как ', tmp, u'ODT файлы(*.odt *.ODT)')

shutil.copyfile(self.pathTpl + '\\V03_STD_MP.zip', 'openlandtempdoc.zip')

if 'Windows' in platform.system():
    os.system('xslt01.cmd ' + self.fileXmlName)
else:
    self.highlightLine(u'Ошибка! Для текущей операционной системы не установлен сценарий обработки XSLT трансформации.')
                
z = ZipFile('openlandtempdoc.zip', 'a')
z.write('content.xml')
z.close()

os.remove('content.xml')
shutil.move('openlandtempdoc.zip', self.fileOdtName)
self.listWidgetEvents.addItem(u'Создан документ для печати ' + self.fileOdtName)                 

Сценарий обработки XLST трансформации xslt01.cmd в версии операционной системы Windows.

bin\xsltproc -o content.xml xslt\STD_MP.xslt %1

Ссылки