Общеизвестное текстовое представление геометрии

Язык компьютерной разметки

Известный текст ( WKT ) — это язык разметки текста для представления объектов векторной геометрии . Двоичный эквивалент, известный как известный двоичный код ( WKB ), используется для передачи и хранения той же информации в более компактной форме, удобной для компьютерной обработки, но не читаемой человеком. Форматы были первоначально определены Open Geospatial Consortium (OGC) и описаны в их Simple Feature Access . [1] Текущее стандартное определение содержится в стандарте ISO/IEC 13249-3:2016. [2]

Геометрические объекты

WKT может представлять следующие отдельные геометрические объекты:

Координаты для геометрий могут быть 2D ( x , y ), 3D ( x , y , z ), 4D ( x , y , z , m ) со значением m , которое является частью линейной системы отсчета или 2D со значением m ( x , y , m ). Трехмерные геометрии обозначаются буквой "Z" после типа геометрии, а геометрии с линейной системой отсчета обозначаются буквой "M" после типа геометрии. Пустые геометрии, не содержащие координат, можно указать с помощью символа EMPTYпосле имени типа.

Геометрии WKT используются во всех спецификациях OGC и присутствуют в приложениях, которые реализуют эти спецификации. Например, PostGIS содержит функции, которые могут преобразовывать геометрии в представление WKT и обратно, делая их читаемыми человеком.

Стандартное определение OGC требует, чтобы многоугольник был топологически замкнутым. В нем также говорится, что если внешнее линейное кольцо многоугольника определено в направлении против часовой стрелки, то оно будет видно «сверху». Любые внутренние линейные кольца должны быть определены противоположным образом по сравнению с внешним кольцом, в данном случае по часовой стрелке. [3]

Геометрические примитивы (2D)
ТипПримеры
ТочкаPOINT (30 10)
ЛинияСтрокаLINESTRING (30 10, 10 30, 40 40)
ПолигонPOLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),
(20 30, 35 35, 30 20, 20 30))
Многокомпонентные геометрии (2D)
ТипПримеры
МультипоинтMULTIPOINT ((10 40), (40 30), (20 20), (30 10))
MULTIPOINT (10 40, 40 30, 20 20, 30 10)
МногострочныйСтрокаMULTILINESTRING ((10 10, 20 20, 10 40),
(40 40, 30 30, 40 20, 30 10))
МультиполигонMULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),
((15 5, 40 10, 10 20, 5 10, 15 5)))
MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),
(30 20, 20 15, 20 25, 30 20)))
GeometryCollectionGEOMETRYCOLLECTION (POINT (40 10),
LINESTRING (10 10, 20 20, 10 40),
POLYGON ((40 40, 20 45, 45 30, 40 40)))

Ниже приведены некоторые другие примеры геометрических строк WKT: (Примечание: каждый элемент ниже представляет собой отдельную геометрию.)

GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))ТОЧКА ЗМ (1 1 5 60)ТОЧКА М (1 1 80)ТОЧКА ПУСТОМУЛЬТИПОЛИГОН ПУСТОЙТРЕУГОЛЬНИК((0 0 0,0 1 0,1 1 0,0 0 0))ИНН(((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)))МНОГОГРАННАЯ ПОВЕРХНОСТЬ Z (ЗАПЛАНКИ ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 0 1 0, 0 1 1, 0 0 1, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 1, 1 0 1, 0 0 1, 0 1 1, 1 1 1)), ((1 1 1, 1 0 1, 1 0 0, 1 1 0, 1 1 1)), ((1 1 1, 1 1 0, 0 1 0, 0 1 1, 1 1 1)) )

Известный двоичный файл

Известные двоичные (WKB) представления обычно отображаются в шестнадцатеричных строках.

Первый байт указывает порядок байтов данных:

  • 0x00 : обратный порядок байтов
  • 0x01 : прямой порядок байтов

Следующие 4 байта представляют собой 32-битное беззнаковое целое число для типа геометрии, как описано ниже:

Типы геометрии и целочисленные коды WKB (указаны ниже в десятичном виде)
Тип2DЗМЗМ
Геометрия0100020003000
Точка1100120013001
ЛинияСтрока2100220023002
Полигон3100320033003
Мультипоинт4100420043004
МногострочныйСтрока5100520053005
Мультиполигон6100620063006
GeometryCollection7100720073007
КруговаяСтрока8100820083008
CompoundCurve9100920093009
КривойМногоугольник10101020103010
МультиКурв11101120113011
MultiSurface12101220123012
Изгиб13101320133013
Поверхность14101420143014
МногогранныйПоверхность15101520153015
ИНН16101620163016
Треугольник17101720173017
Круг18101820183018
ГеодезическаяСтруна19101920193019
ЭллиптическаяКривая20102020203020
NurbsCurve21102120213021
клотоидный22102220223022
СпиральКривая23102320233023
CompoundSurface24102420243024
BrepSolid1025
АффинноеРасположение1021102

Каждый тип данных имеет уникальную структуру данных, например, количество точек или линейных колец, за которыми следуют координаты в 64-битных двойных числах.

Например, геометрия POINT(2.0 4.0)представлена ​​как: , где:000000000140000000000000004010000000000000

  • 1-байтовое целое 00или 0: big endian
  • 4-байтовое целое число 00000001или 1: ТОЧКА (2D)
  • 8-байтовое число с плавающей точкой 4000000000000000или 2.0: x -координата
  • 8-байтовое число с плавающей точкой 4010000000000000или 4.0: координата y

Варианты формата

EWKT и EWKBрасширенный общеизвестный текст/двоичный код
Специфичный для PostGIS формат , включающий идентификатор пространственной системы отсчета (SRID) и до 4 значений ординат (XYZM). [4] [5] Например: SRID=4326;POINT(-44.3 60.1)для определения координат долготы/широты с использованием системы отсчета WGS 84. Он также поддерживает круговые кривые, следующие элементы, названные (но не полностью определенные) в исходном WKT: CircularString, CompoundCurve, CurvePolygon и CompoundSurface. [6]
Текст AGF – Формат геометрии Autodesk
Расширение стандарта OGC (на тот момент) для включения изогнутых элементов; наиболее заметно использовалось в MapGuide . [7]

Смотрите также

Ссылки

  1. ^ Херринг, Джон Р., ред. (2011-05-28), Стандарт внедрения OpenGIS® для географической информации – Простой доступ к объектам – Часть 1: Общая архитектура, Открытый геопространственный консорциум , получено 2019-01-28
  2. ^ Информационные технологии — Языки баз данных — Мультимедиа и пакеты приложений SQL — Часть 3: Пространственные (5-е изд.), ISO , 2016-01-15 , получено 2019-01-28
  3. ^ См. спецификацию реализации OGC для географической информации – простой доступ к объектам, раздел 6.1.11.1. http://www.opengeospatial.org/standards/sfa
  4. ^ "Postgis/Postgis". GitHub . 6 октября 2021 г.
  5. ^ "ST_GeomFromEWKT" . Получено 2022-11-25 .
  6. ^ "Глава 4: Использование PostGIS: Управление данными и запросы". postgis.net . Получено 2021-07-30 .
  7. ^ "Справочник API MapGuide: Текст AGF" . Получено 14.09.2023 .
  • Простая спецификация доступа к функциям
  • Пространственный стандарт ISO (за это взимается плата)
  • Нотация BNF для WKT. Архивировано 03.01.2023 на Wayback Machine.
  • Обозначение EBNF для WKT
  • Онлайн-преобразование между представлениями геометрических объектов
Взято с "https://en.wikipedia.org/w/index.php?title=Известное_текстовое_представление_геометрии&oldid=1265010730#Известный_двоичный_файл"