Spec-Zone.ru › DuckDB

Пространственное расширение

Расширение spatial предоставляет поддержку обработки геопространственных данных в DuckDB. Для обзора расширения см. нашу статью в блоге.

Установка и загрузка

Для установки и загрузки расширения spatial выполните:

INSTALL spatial;
LOAD spatial;

Тип GEOMETRY

Ядром пространственного расширения является тип GEOMETRY. Если вы не знакомы с геопространственными данными и инструментами ГИС, этот тип, вероятно, будет работать иначе, чем вы ожидаете.

На первый взгляд, тип GEOMETRY представляет собой двоичное представление данных «геометрии», состоящее из наборов вершин (пар значений X и Y double с плавающей точкой). Но то, что делает его несколько особенным, так это то, что он фактически используется для хранения одного из нескольких различных подтипов геометрии. К ним относятся POINT, LINESTRING, POLYGON, а также их эквиваленты «коллекций», MULTIPOINT, MULTILINESTRING и MULTIPOLYGON. Наконец, есть GEOMETRYCOLLECTION, который может содержать любой из других подтипов, а также другие GEOMETRYCOLLECTION рекурсивно.

Это может показаться странным, поскольку в DuckDB уже есть типы, такие как LIST, STRUCT и UNION, которые можно использовать аналогичным образом, но дизайн и поведение типа GEOMETRY фактически основаны на модели геометрии «Простые объекты» (Simple Features), которая является стандартом, используемым во многих других базах данных и программном обеспечении ГИС.

Расширение пространственных данных также включает несколько экспериментальных нестандартных явных типов геометрии, таких как POINT_2D, LINESTRING_2D, POLYGON_2D и BOX_2D, которые основаны на встроенных типах DuckDB, таких как STRUCT и LIST. Поскольку у них есть фиксированная и предсказуемая внутренняя структура памяти, теоретически возможно оптимизировать многие геопространственные алгоритмы для повышения скорости работы с этими типами по сравнению с типом GEOMETRY. Однако пока только несколько функций в пространственном расширении были явно специализированы для этих типов. Все эти новые типы неявно преобразуются в тип GEOMETRY, но с небольшой стоимостью преобразования, поэтому тип GEOMETRY по-прежнему является рекомендуемым типом для использования, если вы планируете работать со многими различными пространственными функциями.

GEOMETRY в настоящее время не может хранить дополнительные типы геометрии, такие как криволинейные геометрии или сетки треугольников. Кроме того, тип GEOMETRY не хранит информацию SRID на основе каждого значения. Эти ограничения могут быть устранены в будущем.

Страницы раздела

© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/extensions/spatial/overview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API