Открыть сервисСервис

Well-Known Text

Well-Known Text (WKT, «хорошо известный текст») — это текстовый формат представления пространственных объектов и систем координат, разработанный для обмена геопространственными данными между различными информационными системами. WKT описывает геометрические фигуры (точки, линии, многоугольники) и их наборы, а также системы отсчёта (проекции, датумы, эллипсоиды) в виде удобочитаемых строк. Формат стандартизирован Международной организацией по стандартизации (ISO) и Консорциумом Open Geospatial Consortium (OGC) в рамках стандарта ISO 19125-1:2004 «Simple feature access — Part 1: Common architecture».

История и стандартизация

Формат WKT был впервые предложен в 1990-х годах компанией Oracle Corporation для использования в своей системе управления базами данных (СУБД) Oracle Spatial. В 1999 году OGC включил WKT в спецификацию «Simple Features Specification for SQL» (SFS), которая описывает способы хранения и запросов к геометрическим данным в реляционных базах данных. В 2004 году эта спецификация стала международным стандартом ISO 19125-1.

Развитие формата продолжилось в рамках стандарта ISO 19162:2015 «Geographic information — Well-known text representation of coordinate reference systems», который уточнил и расширил описание систем координат (CRS) в WKT. В 2019 году вышла вторая редакция этого стандарта (ISO 19162:2019), добавившая поддержку новых типов систем координат и улучшенную обработку параметров проекций.

Синтаксис и структура

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

  • Point (Точка) — POINT (x y) — одна координатная пара.
  • LineString (Ломаная линия) — LINESTRING (x1 y1, x2 y2, ..., xn yn)последовательность точек, соединённых отрезками.
  • Polygon (Многоугольник) — POLYGON ((x1 y1, x2 y2, ..., xn yn, x1 y1)) — замкнутая фигура, заданная внешним кольцом и, опционально, внутренними кольцами (отверстиями).
  • MultiPoint (Набор точек) — MULTIPOINT ((x1 y1), (x2 y2))коллекция точек.
  • MultiLineString (Набор линий) — MULTILINESTRING ((x1 y1, x2 y2), (x3 y3, x4 y4)) — коллекция линий.
  • MultiPolygon (Набор многоугольников) — MULTIPOLYGON (((x1 y1, ..., x1 y1)), ((x2 y2, ..., x2 y2))) — коллекция многоугольников.
  • GeometryCollection (Коллекция геометрий) — GEOMETRYCOLLECTION (POINT (x y), LINESTRING (x1 y1, x2 y2), ...) — произвольный набор геометрических объектов разных типов.

Координаты обычно задаются в порядке (X, Y) для двумерных объектов, (X, Y, Z) для трёхмерных и (X, Y, M) для объектов с мерой (например, временем или высотой). Для систем координат (CRS) используется синтаксис, начинающийся с ключевого слова GEOGCS (географическая система координат) или PROJCS (проекционная система координат), с вложенными описаниями датума, эллипсоида, проекции и параметров.

Применение

WKT широко используется в геоинформационных системах (ГИС), базах данных и веб-сервисах для:

  • Обмена даннымиэкспорт и импорт геометрии между различными программами (например, QGIS, ArcGIS, PostGIS, Oracle Spatial, Microsoft SQL Server).
  • Хранения — в текстовых файлах (CSV, GeoJSON, XML) или в полях таблиц баз данных.
  • Описания систем координат — в метаданных карт, слоёв и сервисов (например, в файлах .prj, сопровождающих шейп-файлы).
  • Веб-картографирования — в API (например, OpenLayers, Leaflet) для задания геометрии пользовательских объектов.

В России WKT применяется в государственных информационных системах, таких как Единая электронная картографическая основа (ЕЭКО), а также в коммерческих ГИС-продуктах (например, «Панорама», «ИнГео»). При описании местных систем координат (например, СК-42, СК-95, МСК-XX) WKT позволяет точно задать параметры проекции и датума.

Примеры

Примеры строк WKT для различных геометрических объектов:

  • Точка: POINT (37.6173 55.7558) — координаты центра Москвы (долгота, широта).
  • Линия: LINESTRING (30.0 10.0, 10.0 30.0, 40.0 40.0) — ломаная из трёх точек.
  • Многоугольник с отверстием: POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (2 2, 8 2, 8 8, 2 8, 2 2)) — квадрат с внутренним квадратным отверстием.
  • Набор точек: MULTIPOINT ((10 40), (40 30), (20 20), (30 10)) — четыре точки.
  • Система координат (WGS 84):

`` GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.01745329251994328, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]] ``

Критика и ограничения

Несмотря на широкое распространение, WKT имеет ряд недостатков:

  • Избыточность — текстовое представление занимает больше места, чем бинарные форматы (например, Well-Known Binary, WKB).
  • Отсутствие строгой типизации — в ранних версиях не было чёткого разделения между двумерными и трёхмерными объектами, что приводило к ошибкам при интерпретации.
  • Сложность синтаксиса для CRS — описание систем координат громоздко и трудночитаемо, особенно для проекций с большим числом параметров.
  • Проблемы с точностью — при преобразовании между WKT и внутренними форматами (например, с плавающей запятой) возможна потеря точности для очень больших или очень малых чисел.

В ответ на эти ограничения были разработаны альтернативные форматы, такие как GeoJSON (более компактный, но менее гибкий для CRS) и WKB (бинарный, более эффективный для хранения и передачи). Тем не менее WKT остаётся стандартом де-факто для описания систем координат и простых геометрий в ГИС-сообществе.

Интересные факты

  • WKT поддерживается в большинстве современных СУБД, включая PostgreSQL (расширение PostGIS), MySQL (начиная с версии 5.7), Oracle Spatial и Microsoft SQL Server.
  • Формат WKT используется в стандарте GeoPackage (OGC) для хранения геометрии в бинарном виде (WKB), но текстовое представление (WKT) применяется в метаданных.
  • В 2018 году OGC выпустил спецификацию «Well-Known Text Representation of Coordinate Reference Systems (WKT-CRS)», которая стала основой для нового стандарта ISO 19162:2019.
  • В России WKT активно применяется при создании цифровых топографических карт и планов, а также в системах автоматизированного проектирования (САПР) для задач землеустройства и кадастра.

Источники

  • ISO 19125-1:2004 «Geographic information — Simple feature access — Part 1: Common architecture»
  • ISO 19162:2019 «Geographic information — Well-known text representation of coordinate reference systems»
  • Open Geospatial Consortium (OGC) — «Simple Features Specification for SQL» (1999)
  • Oracle Corporation — «Oracle Spatial and Graph Developer's Guide» (2019)
  • PostGIS Documentation — «Geometry Input/Output» (2023)
  • «Well-Known Text» — статья в Википедии (англ.)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru