Общеизвестное текстовое представление геометрии
Хорошо известный текст ( WKT ) — это язык текстовой разметки для представления объектов векторной геометрии . Двоичный ( эквивалент, известный как хорошо известный двоичный код WKB ) , используется для передачи и хранения той же информации в более компактной форме, удобной для компьютерной обработки, но нечитаемой человеком. Форматы были первоначально определены Открытым геопространственным консорциумом (OGC) и описаны в их документе Simple Feature Access . [1] Текущее стандартное определение содержится в стандарте ISO/IEC 13249-3:2016. [2]
Геометрические объекты
[ редактировать ]WKT может представлять следующие отдельные геометрические объекты:
- Точка , Многоточка
- ЛинейнаяСтрока , МультиЛинейнаяСтрока
- Многоугольник , Мультиполигон, Треугольник
- МногогранныйПоверхность
- TIN ( Триангулированная нерегулярная сеть )
- ГеометрияКоллекция
Координаты для геометрии могут быть 2D ( x , y ), 3D ( x , y , z ), 4D ( x , y , z , m ) со значением m , которое является частью линейной системы координат , или 2D со значением m ( х , у , м ). Трехмерные геометрии обозначаются буквой «Z» после типа геометрии, а геометрии с линейной системой координат имеют букву «M» после типа геометрии. Пустые геометрии, не содержащие координат, можно указать с помощью символа EMPTY
после имени типа.
Геометрия WKT используется во всех спецификациях OGC и присутствует в приложениях, реализующих эти спецификации. Например, PostGIS содержит функции, которые могут преобразовывать геометрию в представление WKT и обратно, делая их удобочитаемыми для человека.
Стандартное определение OGC требует, чтобы полигон был топологически замкнутым. В нем также говорится, что если внешнее линейное кольцо многоугольника определено в направлении против часовой стрелки, то оно будет видно «сверху». Любые внутренние линейные кольца должны определяться противоположным образом по сравнению с внешним кольцом, в данном случае по часовой стрелке. [3]
Тип | Примеры | |
---|---|---|
Точка | ![]() |
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),
|
Тип | Примеры | |
---|---|---|
Многоточечный | ![]() |
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),
|
Мультиполигон | ![]() |
MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),
|
![]() |
MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
| |
ГеометрияКоллекция | ![]() |
GEOMETRYCOLLECTION (POINT (40 10),
|
Ниже приведены некоторые другие примеры геометрических строк WKT: (Примечание: каждый элемент ниже представляет собой отдельную геометрию.)
GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
POINT ZM (1 1 5 60)
POINT M (1 1 80)
POINT EMPTY
MULTIPOLYGON EMPTY
TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0))
TIN (((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 0 0 0)))
POLYHEDRALSURFACE Z ( PATCHES
((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) обычно отображаются в шестнадцатеричных строках.
Первый байт указывает порядок байтов данных:
00
: с прямым порядком байтов01
: с прямым порядком байтов
Следующие 4 байта представляют собой 32-битное целое число без знака для типа геометрии, как описано ниже:
Тип | 2D | С | М | ЗМ |
---|---|---|---|---|
Геометрия | 0000 |
1000 |
2000 |
3000
|
Точка | 0001 |
1001 |
2001 |
3001
|
ЛинияСтрока | 0002 |
1002 |
2002 |
3002
|
Полигон | 0003 |
1003 |
2003 |
3003
|
Многоточечный | 0004 |
1004 |
2004 |
3004
|
Мультилинейная строка | 0005 |
1005 |
2005 |
3005
|
Мультиполигон | 0006 |
1006 |
2006 |
3006
|
ГеометрияКоллекция | 0007 |
1007 |
2007 |
3007
|
Циркулярная строка | 0008 |
1008 |
2008 |
3008
|
СложнаяКривая | 0009 |
1009 |
2009 |
3009
|
КриваяМногоугольник | 0010 |
1010 |
2010 |
3010
|
Мультикривая | 0011 |
1011 |
2011 |
3011
|
Мультиповерхность | 0012 |
1012 |
2012 |
3012
|
Изгиб | 0013 |
1013 |
2013 |
3013
|
Поверхность | 0014 |
1014 |
2014 |
3014
|
МногогранныйПоверхность | 0015 |
1015 |
2015 |
3015
|
ПОЛАГАТЬ | 0016 |
1016 |
2016 |
3016
|
Треугольник | 0017 |
1017 |
2017 |
3017
|
Круг | 0018 |
1018 |
2018 |
3018
|
ГеодезическаяСтрока | 0019 |
1019 |
2019 |
3019
|
ЭллиптическаяКривая | 0020 |
1020 |
2020 |
3020
|
НурбсКривая | 0021 |
1021 |
2021 |
3021
|
Клотоидный | 0022 |
1022 |
2022 |
3022
|
СпиральКривая | 0023 |
1023 |
2023 |
3023
|
СоединениеПоверхность | 0024 |
1024 |
2024 |
3024
|
БрепТвердый |
|
1025 |
|
|
Аффинное размещение | 102 |
1102 |
|
|
Каждый тип данных имеет уникальную структуру данных, например количество точек или линейных колец, за которыми следуют координаты в 64-битных двойных числах.
Например, геометрия POINT(2.0 4.0)
представлен как: 000000000140000000000000004010000000000000
, где:
- 1-байтовое целое число
00
или 0: обратный порядок байтов - 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]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Херринг, Джон Р., изд. (28 мая 2011 г.), Стандарт реализации OpenGIS® для географической информации – Простой доступ к функциям – Часть 1: Общая архитектура , Открытый геопространственный консорциум , получено 28 января 2019 г.
- ^ Информационные технологии. Языки баз данных. Пакеты мультимедиа и приложений SQL. Часть 3. Пространственные (5-е изд.), ISO , 15 января 2016 г. , получено 28 января 2019 г.
- ^ Географическую информацию см. в Спецификации реализации OGC — Простой доступ к функциям, раздел 6.1.11.1. http://www.opengeospatial.org/standards/sfa
- ^ «Постгис/Постгис» . Гитхаб . 6 октября 2021 г.
- ^ "ST_GeomFromEWKT" . Проверено 25 ноября 2022 г.
- ^ «Глава 4: Использование PostGIS: управление данными и запросы» . postgis.net . Проверено 30 июля 2021 г.
- ^ «Справочник по API MapGuide: текст AGF» . Проверено 14 сентября 2023 г.
Внешние ссылки
[ редактировать ]- Простая спецификация доступа к функциям
- Пространственный стандарт ISO (за это взимается плата)
- Обозначение BNF WKT. Архивировано 3 января 2023 г. на Wayback Machine.
- EBNF Обозначение WKT
- Онлайн-преобразование между представлениями геометрических объектов