Организация представления координат объекта на карте |
СУБД имеют возможность хранения пространственных данных в соответствии со стандартом 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): Двоичное представление геометрического объекта (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) мерной метрики для следующих локализаций объектов, приведенных ниже.
Типы геометрии БД, поддерживаемые программой:
Простые типы геометрии БД соотносятся с локализациями объектов векторных карт формата ГИС Панорама следующим образом:
Соответствие характера локализации объекта карты и типов геометрии БД:
Поддержка мульти-геометрии типа мультиточка не имеет прямого аналога на стороне векторной карты и достигается за счет наборов объектов. Каждому простому типу геометрии, входящему в состав мульти-геометрии, на карте создается объект, соответствующей локализации. Таким образом, объекту базы данных, имеющему тип мульти-геометрии, на карте будет соответствовать не один, а сразу несколько объектов. Такие объекты на карте объединяются в наборы, что позволяет впоследствии по одному отдельно взятому объекту выбрать на карте весь набор, то есть все составляющие мульти-геометрии. Поддержка наборов объектов реализована на уровне ГИС-ядра «Панорама». В виду вышесказанного не рекомендуется использование геометрии типа мультиточка, так как для работы с ней будут создаваться наборы точечных объектов, что снижает быстродействие и нарушает целостность соответствия «1 запись в БД = 1 объект».
Соответствие характера локализации объектов в наборах и типов мульти-геометрии БД:
|