Документация Engee

Simple Features

Simple Features (SF) — это стандарты OGC, описывающие двухмерные географические объекты, такие как точки и многоугольники, а также связи между ними. В стандартах описываются иерархия типов (часть 1), функциональный интерфейс с SQL (часть 2) и расширение SQL/MM с поддержкой круговых типов геометрических объектов, таких как Circularstring.

Иерархия типов

Все используемые здесь типы взяты из SF. Мы добавили Trait ко всем типам геометрических объектов, чтобы их можно было отличить от фактических геометрических структур.

Иерархия типов SF. Из стандарта Simple Feature The SF Type hierarchy. From OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture at http://www.opengis.net/doc/is/sfa/1.2.1.

Изменения в сравнении с SF

Хотя мы стараемся придерживаться стандартов SF, есть ряд изменений и расширений, соответствующих стилю Julia.

Имена функций

Имена всех функций не имеют префикса ST_ и пишутся в нижнем регистре. Некоторые имена были изменены в соответствии с именами стандартных функций Julia. NumX стало nx, а geomN — getgeom:

GeometryType -> geomtrait
NumGeometries -> ngeom
GeometryN -> getgeom
NumPatches -> npatch
# и т. д.

Мы сделали функции ngeom и getgeom более универсальными, так что они стали применимы ко всем геометрическим объектам, а не только к AbstractGeometryCollectionTrait.

Мы также упростили функции для работы с измерениями. Их трех исходных (dimension, coordinateDimension, spatialDimension) осталось только измерение координат (ncoords), которое представляет такие измерения, как X, Y, Z и M. Топологические измерения (точка является 0-мерной) и связанные с ними функции в данном интерфейсе не применяются во избежание путаницы. Аналогичным образом, мы не стали перегружать функцию ndims в Julia во избежание путаницы и возможных конфликтов с пользовательскими геометрическими объектами на основе векторов.

coordinateDimension -> ncoords  # x, y, z, m
dimension -> unused
spatialDimension -> unused

Мы стандартизировали имена некоторых функций:

SRID -> crs
envelope -> extent  # еще один псевдоним — bbox

Мы также добавили вспомогательный метод, проясняющий именование координат.

coordnames = (:X, :Y, :Z, :M)

Охват

Реализованы не все функции SF: некоторые доступны как, возможно, более медленный резервный вариант, другие — как пустой дескриптор, а некоторые вообще отсутствуют. Перечисленные ниже функции SF (пока) недоступны.

dimension  # топологические измерения
spatialDimension

locateAlong
locateBetween