Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Хорошо известный текст ( WKT ) - это язык разметки текста для представления объектов векторной геометрии . Двоичное эквивалент, известный как хорошо известный двоичный ( ВКБ ), используется для передачи и хранения и ту же информацию в более компактной форме , удобной для компьютерной обработки , но это не читаемый человеком. Форматы были изначально определены 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 ( х , у , м ). Трехмерные геометрии обозначаются буквой Z после типа геометрии, а геометрии с линейной системой отсчета.после типа геометрии стоит буква "M". Пустые геометрические фигуры, не содержащие координат, можно указать с помощью символа EMPTYпосле имени типа.

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

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

Ниже приведены некоторые другие примеры геометрических строк 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))ИНН (((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-битное целое число без знака для типа геометрии, как описано ниже:

Каждый тип данных имеет уникальную структуру данных, такую ​​как количество точек или линейных колец, за которыми следуют координаты в виде 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 опорной системой координат.
Текст AGF - формат геометрии Autodesk
Расширение стандарта OGC (в то время) для включения изогнутых элементов; наиболее часто используется в MapGuide . [6]

Поддержка программного обеспечения [ править ]

Ядра базы данных [ править ]

  • Amazon Redshift с 21 ноября 2019 г. [7]
  • Apache Drill поддерживает полный спектр геопространственных запросов, начиная с версии 1.12, а также чтение файлов ESRI Shape (SHP).
  • Сервер поиска предприятия Apache Solr с версии 4.0 [8] через JTS
  • Elasticsearch распределенного, RESTful поиска и аналитика двигателя начиная с 6.2 [9]
  • Google BigQuery поддерживает географические информационные системы BigQuery с апреля 2019 года.
  • GigaSpaces InsightEdge [10]
  • PostgreSQL с модулем PostGIS 2.0
  • Kinetica GPU-ускорение геопространственной базы данных
  • Oracle Spatial 9i, 10g, 11g
  • OmniSci с 4.0
  • MarkLogic Server с версии 4.2 [11]
  • MemSQL с 4 [12]
  • MySQL начиная с версии 4.1 [13]
  • MariaDB , все версии
  • Neo4j [14]
  • OrientDB [15]
  • IBM DB2 LUW 9, 10, 11.1 с пространственным расширителем; 11.5 с помощью Spatial Analytics или Spatial Extender [16]
  • IBM DB2 для z / OS 9, 10 с пространственной поддержкой
  • IBM Netezza с Netezza Spatial
  • IBM Informix 9,10,11 с модулем Spatial datablade
  • Microsoft SQL Server с 2008 R2 [17]
  • Snowflake Inc.
  • SpatiaLite
  • Teradata 6.1, 6.2, 12, 13 (встроенная в 13 через надстройку в предыдущих версиях)
  • Ingres GeoSpatial
  • Altibase 5.x
  • SQL Anywhere 12
  • SAP HANA SP07, SP08
  • H2 с 1.3.173 (2013-07-28) [18]
  • Vertica с версии 7.1.0 [19]
  • VoltDB, начиная с V6.0 [20]

API [ править ]

  • Библиотеки Boost C ++ (C ++): см. Заголовки Geometry io / wkt
  • Esri geometry-api-java
  • GEOS (C / C ++)
  • Shapely (Python): см. Документацию по Shapely и Shapely в PyPI.
  • GeoPHP (PHP)
  • GDAL (C / C ++ с привязкой к Java, Python и др.)
  • GeoRust: rust-wkt (привязки Rust)
  • Пакет топологии JTS (Java)
  • Spatial4j (Java)
  • NetTopologySuite (.NET)
  • OpenLayers (JavaScript)
  • OpenScales (ActionScript)
  • parsewkt (Python) - синтаксический анализатор привязок от WKT к словарям Python
  • pygeoif (Python) анализирует wkt с помощью регулярных выражений
  • rgeo (Рубин)
  • SF (R)
  • Терраформер (JavaScript)
  • WellKnownLib (C # .Net) Известный текстовый и двоичный синтаксический анализатор

Протоколы [ править ]

  • GeoSPARQL
  • SensorThings API

См. Также [ править ]

  • Простые функции
  • Язык разметки географии
  • Общеизвестное текстовое представление систем координат

Ссылки [ править ]

  1. ^ Херринг, Джон Р., изд. (2011-05-28), Стандарт реализации OpenGIS® для географической информации - Простой доступ к функциям - Часть 1: Общая архитектура , Open Geospatial Consortium , получено 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. ^ Тип ввода общеизвестного текста (WKT) в документации Elasticsearch
  10. ^ «Геопространственные запросы» . docs.gigaspaces.com . Проверено 2 июня 2020 .
  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 . Проверено 21 марта 2018 .
  20. ^ https://www.voltdb.com/company/press-releases/voltdb-adds-geospatial-query-support-industrys-innovative-fast-data-platform/

Внешние ссылки [ править ]

  • Спецификация простого доступа к функциям
  • Пространственный стандарт ISO (за это взимается плата)
  • BNF-обозначение WKT
  • EBNF Нотация WKT
  • Онлайн-преобразование между представлениями геометрических объектов