Поиск

Геометрическая модель OpenGIS

Набор геометрических типов, предложенный OGC для среды SQL with Geometry Types основывается на геометрической модели OpenGIS (OpenGIS Geometry Model). В этой модели каждый геометрический объект имеет следующие общие свойства:

  • Объект ассоциируется с пространственной системой координат, описывающей координаты пространства, в котором находится объект.
  • Объект принадлежит к некоторому геометрическому классу.

Иерархия геометрических классов
Иерархия геометрических классов выглядит следующим образом:

  • Geometry (без возможности создания экземпляров)
  1. Point (с возможностью создания экземпляров)
  2. Curve (без возможности создания экземпляров)
  • LineString (с возможностью создания экземпляров)
  1. Line
  2. LinearRing
  • Surface (без возможности создания экземпляров)
• Polygon (с возможностью создания экземпляров)
  • GeometryCollection (с возможностью создания экземпляров)
  1. Multipoint (с возможностью создания экземпляров)
  2. MultiCurve (без возможности создания экземпляров)
  3. MultiLineString (с возможностью создания экземпляров)
  • MultiSurfасе (без возможности создания экземпляров)
• MultiPolygon (с возможностью создания экземпляров)

Создавать объекты в классах без возможности создания экземпляр в но создавать только в классах с возможностью создания экземпляров дают свойствами, и классы с возможностью создания экземпляров i утверждения (правила, определяющие допустимые экземпляры класса
Geometry является базовым классом. Это абстрактный класс. Под к тссы стью создания экземпляров класса Geometry ограничиваются нуль- о,но ми геометрическими объектами, существующими в двухмерном странстве. Все геометрические классы с возможностью создания экзе ны так, что допустимые экземпляры геометрического класса являю замкнутыми (то есть все определенные геометрии имеют границы).
Базовый класс Geometry включает подклассы для Point, Geometry Curve, Surface и Collection:

  • Point представляет нульмерные объекты.
  • Curve представляет одномерные объекты и включает подкласс LineString, который, в свою очередь, содержит подклассы Line и LinearRing.
  • Surface предназначен для двухмерных объектов и включает по,
  • GeometryCollection содержит специализированные классы мерных коллекций - Multipoint, MultiLineString и MultiPolj для моделирования геометрических форм, соответствующих LineStrings и Polygons (в указанном порядке). MultiCurve и Mi ны как абстрактные суперклассы, обобщающие интерфейсы tiSurface введе-коллекций для обработки Curves и Surfaces.

Geometry, Curve, Surface, MultiCurve и MultiSurface обозначенны возможности создания экземпляров. Они определяют общий набор мегодов ствующих им подклассов и служат для расширяемости.

Класс Geometry является корневым в иерархии. Это класс без возм экземпляров, имеющий, однако, ряд свойств, общих для всех геометрических которые созданы любым из подклассов класса Geometry. Эти свойсваописывают представленном ниже списке. (Некоторые подклассы обладают собст$енными ческими свойствами, которые будут рассмотрены позже.)

Геометрические свойства
Геометрические значения имеют следующие свойства:

  • Тип. Каждая геометрическая форма принадлежит одному из создания экземпляров в иерархии.
  • Идентификатор пространственной системы координат (Spa ial tifier - SRID). Это значение идентифицирует пространственну (Spatial Reference System), описывающую координатное пространство в кото ром задан геометрический объект.
  • Координаты в пространственной системе координат, представленные в виде чи сел с двойной (8 байт) точностью. Все непустые геометрии включают, по крайней мере, одну пару координат (X,Y). Пустые геометрии координат не содержат. Координаты зависят от идентификатора пространственной системы координат SRID. Например, в различных системах координат расстояние между двумя объ ектами может отличаться, даже если объекты имеют одинаковые координаты, по скольку расстояние в плоской системе координат и расстояние в геоцентрической системе координат (рассматривающей координаты на поверхности Земли) - это разные понятия.
  • Внутреннее пространство, границы и внешнее пространство.

Каждая геометрическая форма занимает определенное место в пространстве. Внешнее пространство - это все пространство, не занимаемое геометрической формой. Внутреннее пространство - это пространство, занимаемое геометриче­ской формой. Границы - это область стыка внешнего и внутреннего пространства.

  • Минимальный ограничивающий прямоугольник (Minimum Bounding Rectan gle - MBR), или огибающая. Это ограничивающая геометрическая форма, обу словленная минимальными и максимальными координатами (X,Y): ((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))
  1. Качество объекта: простой (simple) или непростой (non-simple). Геометрические значения типов (LineString, Multipoint, MultiString) являются либо простыми, либо непростыми. Каждый тип определяет свои собственные утверждения по присвоению качества "простой/непростой".
  2. Качество объекта: замкнутый (closed) или незамкнутый (not closed). Геометри ческие значения типов (LineString, MultiString) являются либо замкнутыми, либо незамкнутыми. Каждый тип определяет свои собственные утверждения по присвоению качества "замкнутый/незамкнутый".
  3. Качество объекта: пустой (empty) или непустой (not empty). Геометрический объ ект считается пустым, если у него нет ни одной точки. Границы, внешнее и внут реннее пространство пустой геометрии не определены, то есть, представлены зна чениями NULL. Пустая геометрическая форма всегда простая и значение ее области всегда равно нулю.
  4. Измерение. Измерение геометрического объекта может принимать следующие значения: -1, 0, 1, or 2:
  • -1 для пустой геометрии.
  • 0 для геометрии, не имеющей длины и не имеющей области.
  • 1 для геометрии с отличной от нуля длиной и равной нулю областью.
  • 2 для геометрии с ненулевой областью.

Объекты Point имеют нулевое измерение. Объекты LineString имеют измерение, равное 1. Объекты Polygon имеют измерение, равное 2. Измерение объектов Multipoint, MultiString и MultiPolygon такое же, как и измерение элементов, из которых они состоят.

Класс Point

Point (точка) - это геометрия, представляющая собой единичное ] в пространстве координат.
Примеры Point

  • Представьте себе крупномасштабную карту мира с множествем городов: объект Point может обозначать каждый город.
  • На карте города объект Point может обозначать автобусную остановку.

Свойства Point

  • Значение координаты X.
  • Значение координаты Y.
  • Объект Point определен как геометрический объект с нулевым Измерением.
Класс Surface
Surface (поверхность) - это двухмерная геометрическая форма. Класс Surface является классом без возможности создания экземпляров с единственным подклассом с возможностью создания экземпляров - Polygon (многоугольник).
Свойства объекта Surface
  • Surface определен как двухмерный геометрический объект.
  • В спецификации OpenGIS простая поверхность определяется как геометрический объект, который состоит из одного "участка", имеющего единственную внешнюю границу и ноль или более внутренних границ.
  • Границы простого объекта Surface представляют собой множество замкнутых кривых, соответствующих его внешним и внутренним границам.
Класс Polygon
Polygon (многоугольник) — это плоская поверхность (Surface), представляющая со-бой многостороннюю геометрию. Объект Polygon определяется единственной внешней границей и нуль или большим количеством внутренних границ, где каждая внутренняя граница обозначает отверстие в Polygon.
Примеры объекта Polygon
  • На карте области объекты Polygon могли бы обозначать лесные участки, районы так далее.

  • Утверждения для Polygon
  • Границы Polygon состоят из множества объектов LinearRing (линейное кольцо)(объектов LineString, которые являются одновременно простыми и замкнутыми), образующих его внешние и внутренние границы.
  • Объект Polygon не имеет пересекающихся колец. Кольца в пределах объекта Polygon могут пересекаться в некоторой точке Point, но только по касательной.
  • Объект Polygon не содержит линий, острых выступов или отверстий.
  • Внутреннее пространство объекта Polygon представляет собой совокупность связанных точек.
  • Объект Polygon может содержать отверстия. Внешние границы объекта Polygon с отверстиями не соприкасаются. Каждое отверстие определяет связанный компонент внешнего пространства.

Изложенные выше утверждения делают объект Polygon простым геометрическим объектом.

Класс Geometry Col lection
GeometryCollection (коллекция геометрических форм) — это геометрия, представляющая собой коллекцию из одного или больше геометрических объектов любого класса.
Все элементы в GeometryCol lection должны находиться в одной и той же прост­ранственной системе координат. Других ограничений для элементов класса GeometryCollection нет, хотя в некоторых подклассах GeometryCollection, описываемых в следующих разделах, принадлежность может быть ограничена по следующим признакам:

  1. Тип элемента (например, объект Multipoint может состоять только из элементов Point).
  2. Измерение.
  3. Ограничения по степени перекрытия пространств между элементами.
Класс Multipoint
Multipoint (множество точек) представляет собой коллекцию геометрических объектов, состоящую из элементов Point (точка). Точки не упорядочены и не связаны между собой.

Примеры объекта Multipoint

  1. На карте мира объект Multipoint мог бы обозначать цепочку неболыших островов
  2. На карте города с помощью объекта Multipoint можно было бы представить входы в билетную кассу.

Свойства объекта Multipoint

  1. Объект Multipoint - это геометрия с нулевым измерением.
  2. Объект Multipoint является простым, если никакие два из его значений Point не равны (не имеют идентичных значений координат).
  3. Значения границ объекта Multipoint пустые.
  4. Класс MultiCurve

    MultiCurve (множество кривых) представляет собой коллекцию объектов, состоящую из элементов Curve (кривая). Класс MultiCurve возможности создания экземпляров.
    Свойства объекта MultiCurve

    1. Объект MultiCurve - это одномерная геометрия.
    2. Объект MultiCurve является простым, если и только если все
      простые; два любых элемента могут пересекаться исключительно в точках, располо женных на границах обоих элементов.
    3. Значения границ объекта MultiCurve получаются путем применения
      объединения по модулю 2", (также известного как "правило 'четный/нечетный')

    точка находится в пределах объекта MultiCurve, если она находится в пределах нечетного числа элементов MultiCurve.

    1. Объект MultiCurve считается замкнутым, если все составляющего его элементы являются замкнутыми.
    2. Значения границ замкнутого объекта MultiCurve всегда пустые
    Класс MultiLineString
    MultiLineString (множество ломаных линий) - это коллекция геометрий MultiCurve состоящая из элементов LineString.


    Примеры объекта MultiLineString
    • На карте области с помощью объекта MultiLineString можно было бы представ лять систему рек или систему скоростных шоссе.

    Класс MultiSurface
    MultiSurface (множество поверхностей) представляет собой коллекцию геометрий, состоящую из элементов Surface (поверхность). Класс MultiSurface является классом без возможности создания экземпляров и включает единственный подкласс с возможно­стью создания экземпляров - MultiPolygon.
    Утверждения для MultiSurface