Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›SQL ›Функции и операторы

Функции геолокации

Эта функциональность находится в стадии бета-тестирования и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции бета-версии не подпадают под SLA поддержки официальных функций GA.

Функции геолокации работают с геометриями, хранящимися в полях geo_point, geo_shape и shape, или возвращаемых другими функциями геолокации.

Ограничения

geo_point, geo_shape и shape типы представлены в SQL как геометрия и могут использоваться взаимозаменяемо со следующими исключениями:

  • Поля geo_shape и shape не имеют значений документов, поэтому эти поля нельзя использовать для фильтрации, группирования или сортировки.
  • Поля geo_points индексируются и по умолчанию имеют значения документов, однако хранятся и индексируются только широта и долгота с некоторыми потерями точности по сравнению с исходными значениями (4.190951585769653E-8 для широты и 8.381903171539307E-8 для долготы). Компонент высоты принимается, но не сохраняется в значениях документов и не индексируется. Поэтому вызов функции ST_Z в фильтрации, группировании или сортировке вернёт null.

Преобразование геометрии

ST_AsWKT

Синопсис:

ST_AsWKT(
    geometry 
)

Входные данные:

геометрия. Если null, функция возвращает null.

Выходные данные: строка

Описание: Возвращает представление WKT геометрии geometry.

SELECT city, ST_AsWKT(location) location FROM "geo" WHERE city = 'Amsterdam';

     city:s    |     location:s
Amsterdam      |POINT (4.850312 52.347557)

ST_WKTToSQL

Синопсис:

ST_WKTToSQL(
    string 
)

Входные данные:

строковое представление WKT геометрии. Если null, функция возвращает null.

Выходные данные: геометрия

Описание: Возвращает геометрию из представления WKT.

SELECT CAST(ST_WKTToSQL('POINT (10 20)') AS STRING) location;

   location:s
POINT (10.0 20.0)

Свойства геометрии

ST_GeometryType

Синопсис:

ST_GeometryType(
    geometry 
)

Входные данные:

геометрия. Если null, функция возвращает null.

Выходные данные: строка

Описание: Возвращает тип geometry, такой как POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, GEOMETRYCOLLECTION, ENVELOPE или CIRCLE.

SELECT ST_GeometryType(ST_WKTToSQL('POINT (10 20)')) type;

      type:s
POINT

ST_X

Синопсис:

ST_X(
    geometry 
)

Входные данные:

геометрия. Если null, функция возвращает null.

Выходные данные: double

Описание: Возвращает долготу первой точки в геометрии.

SELECT ST_X(ST_WKTToSQL('POINT (10 20)')) x;

      x:d
10.0

ST_Y

Синопсис:

ST_Y(
    geometry 
)

Входные данные:

геометрия. Если null, функция возвращает null.

Выходные данные: double

Описание: Возвращает широту первой точки в геометрии.

SELECT ST_Y(ST_WKTToSQL('POINT (10 20)')) y;

      y:d
20.0

ST_Z

Синопсис:

ST_Z(
    geometry 
)

Входные данные:

геометрия. Если null, функция возвращает null.

Выходные данные: double

Описание: Возвращает высоту первой точки в геометрии.

SELECT ST_Z(ST_WKTToSQL('POINT (10 20 30)')) z;

      z:d
30.0

ST_Distance

Синопсис:

ST_Distance(
    geometry, 
    geometry  
)

Входные данные:

исходная геометрия. Если null, функция возвращает null.

целевая геометрия. Если null, функция возвращает null.

Выходные данные: Double

Описание: Возвращает расстояние между геометриями в метрах. Обе геометрии должны быть точками.

SELECT ST_Distance(ST_WKTToSQL('POINT (10 20)'), ST_WKTToSQL('POINT (20 30)')) distance;

   distance:d
1499101.2889383635

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/sql-functions-geo.html

Spec-Zone.ru

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