Обработчик Circle
Преобразует определения кругов форм в правильные многоугольники, которые приблизительно их моделируют.
Таблица 5. Параметры обработчика Circle
| Имя | Обязательно | Значение по умолчанию | Описание |
|---|---|---|---|
| да | - | Строковое поле, из которого нужно удалить пробелы |
| нет |
| Поле, в которое будет помещена форма многоугольника, по умолчанию |
| нет |
| Если |
| да | - | Разница между результатом вписанной дистанции от центра до стороны и радиусом круга (измеряется в метрах для |
| да | - | Тип используемого сопоставления поля при обработке круга: |
| нет | - | Описание обработчика. Полезно для описания цели обработчика или его конфигурации. |
| нет | - | Условное выполнение обработчика. См. Условное выполнение обработчика. |
| нет |
| Игнорировать ошибки для обработчика. См. Обработка сбоев в конвейере. |
| нет | - | Обработка ошибок для обработчика. См. Обработка сбоев в конвейере. |
| нет | - | Идентификатор обработчика. Полезно для отладки и метрик. |
PUT circles
{
"mappings": {
"properties": {
"circle": {
"type": "geo_shape"
}
}
}
}
PUT _ingest/pipeline/polygonize_circles
{
"description": "translate circle to polygon",
"processors": [
{
"circle": {
"field": "circle",
"error_distance": 28.0,
"shape_type": "geo_shape"
}
}
]
} Используя вышеуказанный конвейер, мы можем попытаться индексировать документ в индекс circles. Круг может быть представлен как круг WKT или круг GeoJSON. Результирующий многоугольник будет представлен и индексирован в том же формате, что и входной круг. WKT будет переведен в многоугольник WKT, а круги GeoJSON будут переведены в многоугольники GeoJSON.
Круги, содержащие полюс, не поддерживаются.
Пример: Круг, определенный в формате Well Known Text
В этом примере индексируется круг, определенный в формате WKT.
PUT circles/_doc/1?pipeline=polygonize_circles
{
"circle": "CIRCLE (30 10 40)"
}
GET circles/_doc/1 Ответ на запрос индексации:
{
"found": true,
"_index": "circles",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_seq_no": 22,
"_primary_term": 1,
"_source": {
"circle": "POLYGON ((30.000365257263184 10.0, 30.000111397193788 10.00034284530941, 29.999706043744222 10.000213571721195, 29.999706043744222 9.999786428278805, 30.000111397193788 9.99965715469059, 30.000365257263184 10.0))"
}
} Пример: Круг, определенный в формате GeoJSON
В этом примере индексируется круг, определенный в формате GeoJSON.
PUT circles/_doc/2?pipeline=polygonize_circles
{
"circle": {
"type": "circle",
"radius": "40m",
"coordinates": [30, 10]
}
}
GET circles/_doc/2 Ответ на запрос индексации:
{
"found": true,
"_index": "circles",
"_type": "_doc",
"_id": "2",
"_version": 1,
"_seq_no": 22,
"_primary_term": 1,
"_source": {
"circle": {
"coordinates": [
[
[30.000365257263184, 10.0],
[30.000111397193788, 10.00034284530941],
[29.999706043744222, 10.000213571721195],
[29.999706043744222, 9.999786428278805],
[30.000111397193788, 9.99965715469059],
[30.000365257263184, 10.0]
]
],
"type": "Polygon"
}
}
} Примечания по точности
Точность многоугольника, представляющего круг, определяется как error_distance. Чем меньше эта разница, тем ближе многоугольник к идеальному кругу.
Ниже представлена таблица, которая поможет понять, как радиус круга влияет на количество сторон многоугольника при различных входных данных.
Минимальное количество сторон — 4, максимальное — 1000.
Таблица 6. Точность обработчика Circle
| error_distance | радиус в метрах | количество сторон многоугольника |
|---|---|---|
1.00 | 1.0 | 4 |
1.00 | 10.0 | 14 |
1.00 | 100.0 | 45 |
1.00 | 1000.0 | 141 |
1.00 | 10000.0 | 445 |
1.00 | 100000.0 | 1000 |
© 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/7.17/ingest-circle-processor.html
|
|