Общеизвестное текстовое представление геометрии - Well-known text representation of geometry

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

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

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

Координаты геометрии могут быть двухмерными (Икс, у), 3D (Икс, у, z), 4D (Икс, у, z, м) с м ценность, которая является частью линейная система привязки или 2D с м ценить (Икс, у, м). Трехмерные геометрии обозначаются буквой Z после типа геометрии, а геометрии - линейная система привязки иметь букву "M" после типа геометрии. Пустые геометрии, не содержащие координат, можно указать с помощью символа ПУСТОЙ после названия типа.

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

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

Примитивы геометрии (2D)
ТипПримеры
ТочкаSFA Point.svgТОЧКА (30 10)
LineStringSFA LineString.svgЛАЙНЕСТРИНГ (30 10, 10 30, 40 40)
МногоугольникSFA Polygon.svgПОЛИГОН ((30 10, 40 40, 20 40, 10 20, 30 10))
Многоугольник SFA с hole.svgПОЛИГОН ((35 10, 45 45, 15 40, 10 20, 35 10),
(20 30, 35 35, 30 20, 20 30))
Составные геометрии (2D)
ТипПримеры
MultiPointSFA MultiPoint.svgМНОГОТОЧКА ((10 40), (40 30), (20 20), (30 10))
МНОГОТОЧКА (10 40, 40 30, 20 20, 30 10)
MultiLineStringSFA MultiLineString.svgМУЛЬТИЛИНЭСТРИНГ ((10 10, 20 20, 10 40),
(40 40, 30 30, 40 20, 30 10))
МультиполигонSFA MultiPolygon.svgМУЛЬТИПОЛИГОН (((30 20, 45 40, 10 40, 30 20)),
((15 5, 40 10, 10 20, 5 10, 15 5)))
SFA MultiPolygon с hole.svgМУЛЬТИПОЛИГОН (((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)))
GeometryCollectionSFA GeometryCollection.svgГЕОМЕТРИКОЛЛЕКЦИЯ (ТОЧКА (40 10),
ЛАЙНЕСТРИНГ (10 10, 20 20, 10 40),
ПОЛИГОН ((40 40, 20 45, 45 30, 40 40)))

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

ГЕОМЕТРИКОЛЛЕКЦИЯ (ТОЧКА (4 6), ЛИНИЯ (4 6,7 10)) ТОЧКА ZM (1 1 5 60) ТОЧКА M (1 1 80) ТОЧКА ПУСТОЙ МУЛЬТИПОЛИГОН ПУСТОЙ ТРЕУГОЛЬНИК ((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))) ПОЛИГЕДРАЛЬНАЯ ПОВЕРХНОСТЬ 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) представления обычно показаны в шестнадцатеричный струны.

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

  • 00 : big endian
  • 01 : little endian

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

Типы геометрии и целочисленные коды WKB
Тип2DZMZM
Геометрия0000100020003000
Точка0001100120013001
LineString0002100220023002
Многоугольник0003100320033003
MultiPoint0004100420043004
MultiLineString0005100520053005
Мультиполигон0006100620063006
GeometryCollection0007100720073007
CircularString0008100820083008
CompoundCurve0009100920093009
КриваяПолигон0010101020103010
MultiCurve0011101120113011
MultiSurface0012101220123012
Изгиб0013101320133013
Поверхность0014101420143014
МногогранникПоверхность0015101520153015
БАНКА0016101620163016
Треугольник0017101720173017
Круг0018101820183018
GeodesicString0019101920193019
Эллиптическая кривая0020102020203020
NurbsCurve0021102120213021
Клотоид0022102220223022
SpiralCurve0023102320233023
СоставПоверхность0024102420243024
BrepSolid1025
AffinePlacement1021102

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

Например, геометрия ТОЧКА (2,0 4,0) представлен как: 000000000140000000000000004010000000000000, куда:

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

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

EWKT и EWKBРасширенный общеизвестный текст / двоичный файл
А PostGIS -специфический формат, который включает идентификатор системы пространственной привязки (SRID) и до 4 значений ординат (XYZM).[4][5] Например: SRID = 4326; ТОЧКА (-44,3 60,1) найти координату долготы / широты с помощью WGS 84 справочная система координат.
Текст AGFAutodesk Формат геометрии
Расширение к OGC Стандарт (в то время), чтобы включать изогнутые элементы; наиболее заметно используется в MapGuide.[6]

Поддержка программного обеспечения

СУБД

API

Протоколы

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

Рекомендации

  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. ^ https://github.com/postgis/postgis/blob/2.1.0/doc/ZMSgeoms.txt
  5. ^ http://postgis.org/docs/ST_GeomFromEWKT.html
  6. ^ http://e-logistic-plans.gdfsuez.com/mapguide/help/webapi/da/dc0/group___agf_text.htm
  7. ^ Amazon Redshift объявляет о поддержке пространственных данных
  8. ^ Поддержка Solr GEO
  9. ^ Тип ввода Well-Known Text (WKT) в документации Elasticsearch
  10. ^ «Геопространственные запросы». docs.gigaspaces.com. Получено 2020-06-02.
  11. ^ https://docs.marklogic.com/guide/search-dev/geospatial
  12. ^ http://docs.memsql.com/docs/geospatial-guide
  13. ^ Формат общеизвестного текста (WKT), Документация MySQL
  14. ^ https://neo4j-contrib.github.io/spatial/
  15. ^ https://orientdb.com/docs/3.1.x/indexing/Spatial-Index.html
  16. ^ https://www.ibm.com/support/knowledgecenter/SSEPGG_11.5.0/com.ibm.db2.luw.spatial.topics.doc/doc/db2sb03.html
  17. ^ https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/bb933970(v=sql.105)
  18. ^ H2 создать документацию по пространственному индексу
  19. ^ «Примечания к выпуску HP Vertica 7.1.x». my.vertica.com. Получено 2018-03-21.
  20. ^ https://www.voltdb.com/company/press-releases/voltdb-adds-geospatial-query-support-industrys-innovative-fast-data-platform/

внешняя ссылка