Организация представления координат объекта на карте

Печать Предыдущая страница Стартовая страница Следующая страница

СУБД имеют возможность хранения пространственных данных в соответствии со стандартом OGC (Open Geospatial Consortium) – OGC 06-103r4: «OpenGIS® Implementation Standard for Geographic information – Simple feature access – Part 1: Common architecture».

Хранение пространственного описания объекта в полях БД никак не регулируется стандартом OGC, который определяет лишь перечень типов пространственных объектов и набор основных функций для работы с ними. Стандартом предписывается общеобязательное представление в стандартизованном виде данных, хранящихся в таких полях, и определяет два вида представлений – WKB (Well-known Binary Representation for Geometry) и WKT (Well-known Text Representation for Geometry). Это означает, что все разработчики СУБД, поддерживающие данный стандарт, вправе хранить геоданные в своем собственном формате, но при этом обязаны обеспечить возможность доступа к этим данным в стандартизованном формате (WKB или WKT). Физическое размещение пространственной информации в блоке двоичных данных своего собственного формата отличается от WKB, отличается у различных СУБД и зачастую не документировано. Ввиду этого ГИС Панорама использует стандартизованный доступ к пространственным данным в БД посредством WKB стандарта.

Каждая запись таблицы БД представляется совокупностью полей. Выделяются следующие обобщенные типы полей:

­-   Первичный ключ – поле, уникально идентифицирующее запись в наборе данных (таблице);

-   ­Поле геоданных;

-   Поля атрибутивной информации об объекте;

-   Поле, определяющее внешний вид объекта на карте;

-   Поле, содержащее текст подписи, для объектов типа «подпись».

 

Для отражения информации из таблицы БД с пространственными данными проводится следующее соответствие:

­-   Поле геоданных – Метрика объекта карты;

-   Атрибутивные поля – Семантика объекта карты.

 

Первичный ключ заносится в служебную семантику 32798 («Идентификатор объекта»).

Внешний вид объектов карты может быть назначен единый для всей таблицы, отображаемой на карте, либо определен для каждой записи персонально с помощью специального поля, содержащего идентификатор условного знака карты. В качестве идентификатора условного знака карты указывается либо ключ (символьный код), либо целочисленный код условного знака в цифровом классификаторе карты.

Таким образом, обязательными полями в таблице БД, необходимыми для ее отражения на карте, являются:

­-   Первичный ключ;

-   Поле геоданных.

 

Объекту карты устанавливается уникальное соответствие одной конкретной записи в одной конкретной таблице БД. При этом одна запись может быть представлена иногда не одним, а целым набором объектов на карте, что обусловлено спецификой стандарта представления метрики объектов в БД -OGC 06-103r4: «OpenGIS® Implementation Standard for Geographic information – Simple feature access – Part 1: Common architecture». В данном случае соответствие «Запись таблицы БД ⇔ Картографический объект» следует рассматривать как «Запись таблицы БД  ⇔ Набор картографических объектов».

Спецификация OpenGIS определяет два стандартных способа определения пространственных объектов: в форме Well-Known Text (WKT) и в форме Well-Known Binary (WKB). WKT и WKB включают информацию о типе объекта и координаты, составляющие объект.

Кроме этого, спецификация OpenGIS требует, чтобы внутренний формат хранения пространственных объектов включал идентификатор системы координат (spatial referencing system identifier – SRID). SRID необходим для добавления объекта в базу данных.

Наиболее быстрым с точки зрения обработки программными средствами является определение пространственных объектов в формате WKB. Именно этот формат и применяется для организации взаимного обмена данными между БД и векторной картой.

 

Двоичное представление геометрического объекта (WKB):

png002

Двоичное представление геометрического объекта (WKB) в формате NDR (B = 1)

типа Polygon (T = 3) с 2 LinearRings (NR = 2) каждый LinearRings состоит из 3 точек (NP = 3)

 

 

WKB-представление является описанием геометрического объекта в виде набора байт определенного формата. Такой набор состоит заголовочной части и массивов байт, определяющих координаты контуров объекта.

Последовательность байт может быть представлена с использованием одной из двух стандартных бинарных кодировок. Разница между двумя кодировками геометрии заключается в том, что последовательность байтов кодируется обратным порядком байтов (Big Endian) в XDR и прямым порядком байтов (Little Endian) в NDR.

Для уменьшения вычислительных затрат в программе используется WKB с прямым порядком байтов – NDR.

Поддерживается работа с геометрией 2-х (2D), 3-х (Z и M) и 4-х (ZM) мерной метрики для следующих локализаций объектов, приведенных ниже.

 

Типы геометрии БД, поддерживаемые программой:

 

Тип геометрии

Коды размерности метрики в представлении WKB

Пример

2D

Z

M

ZM

Point

0001

1001

2001

3001

LineString

0002

1002

2002

3002

Polygon

0003

1003

2003

3003

Простой

С подобъектом

MultiPoint

0004

1004

2004

3004

MultiLineString

0005

1005

2005

3005

MultiPolygon

0006

1006

2006

3006

Простые

С подобъектами

 

Простые типы геометрии БД соотносятся с локализациями объектов векторных карт формата ГИС Панорама следующим образом:

 

Соответствие характера локализации объекта карты и типов геометрии БД:

 

Тип геометрии БД

Внешний вид

Локализация объекта карты

Point

Точечный объект

LineString

Линейный объект

Polygon

Простой

С подобъектом

Полигон

(в т.ч. с полигон с внутренними подобъектами)

 

 

Поддержка мульти-геометрии типа мультиточка не имеет прямого аналога на стороне векторной карты и достигается за счет наборов объектов. Каждому простому типу геометрии, входящему в состав мульти-геометрии, на карте создается объект, соответствующей локализации. Таким образом, объекту базы данных, имеющему тип мульти-геометрии, на карте будет соответствовать не один, а сразу несколько объектов. Такие объекты на карте объединяются в наборы, что позволяет впоследствии по одному отдельно взятому объекту выбрать на карте весь набор, то есть все составляющие мульти-геометрии. Поддержка наборов объектов реализована на уровне ГИС-ядра «Панорама». В виду вышесказанного не рекомендуется использование геометрии типа мультиточка, так как для работы с ней будут создаваться наборы точечных объектов, что снижает быстродействие и нарушает целостность соответствия «1 запись в БД = 1 объект».

 

Соответствие характера локализации объектов в наборах и типов мульти-геометрии БД:

 

 

Тип геометрии БД

Внешний вид

Локализация объекта карты

MultiPoint

Набор точечных объектов

MultiLineString

Линейный объект с подобъектами

MultiPolygon

Простые

С подобъектами

Мультиполигон – площадной объект с одним и более внешними контурами (и основной контур, и внешние контуры могут иметь внутренние подобъекты)