⚡ Быстро Стандарт 🎯 1 в 1
Площадь пятна (в тайлах), которое Potrace отбросит. 0 = оставить всё, 2 = убрать шум ≤2 тайла
Порог скругления углов Potrace. 0 = только прямые углы, 1.0 = мягкие кривые, 1.334 = максимальное скругление
Допуск оптимизации кривых Безье. 0 = точно по пикселям, 0.2 = баланс, >1 = агрессивное упрощение
Гауссово размытие покрытия тайлов перед трассировкой. 0 = без размытия, >0 = сглаживание границ
Порог: пиксель ≥ threshold → контур. Актуально после blur. При blur_sigma=0 не влияет (bitmap уже бинарный)
Допуск упрощения контура (в единицах CRS, метрах). 0 = без упрощения, >0 = уменьшение вершин
Buffer(+d).Buffer(-d) в метрах. Расширяет и сужает контур для сглаживания зубцов. 0 = выкл

🗑️ Автоочистка


⏱️ Зависшие задачи


🔔 Вебхуки

Нет вебхуков

Справка

СценарийTurdsizeAlphaOptTolBlurBuffer
Точный контур00.50.100
Стандарт (по умолч.)21.00.200
Плавные границы21.3340.51.050
Сильное сглаживание51.3341.02.0100

Параметры запроса

ПараметрТипПо умолч.Описание
gpkg_namestringИмя папки GPKG (обязательный)
turdsizeint2Подавление пятен ≤ N тайлов
alphamaxfloat1.0Скругление углов (0…1.334)
opttolerancefloat0.2Оптимизация кривых Безье
blur_sigmafloat0Гауссово размытие bitmap
thresholdint128Порог бинаризации (1-255)
simplify_tolerancefloat0Упрощение контура (метры)
buffer_smoothfloat0Buffer-сглаживание (метры)

Примеры запросов и ответов

# ── Создать задачу ──
curl -X POST http://localhost:8080/api/v1/tasks \
  -H "Content-Type: application/json" \
  -d '{"gpkg_name": "GTMSK_F_2023.01.21_1.6-1.9_1_2_SA6000_20mm"}'

# ── Ответ (202) ──
# {
#   "task_id": "a1b2c3d4e5f6",
#   "status": "queued",
#   "gpkg_name": "GTMSK_F_2023...",
#   "queue_depth": 0
# }

# ── Получить результат ──
curl http://localhost:8080/api/v1/tasks/a1b2c3d4e5f6

# ── Ответ (200) ──
# {
#   "status": "success",
#   "duration_ms": 14320,
#   "result": "2 shapes, 5440 vertices",
#   "geojson": {"type":"FeatureCollection", ...}
# }

# ── Обновить настройки ──
curl -X PUT http://localhost:8080/api/v1/settings \
  -H "Content-Type: application/json" \
  -d '{"contour":{"turdsize":2,"alphamax":1.0,"opttolerance":0.2}}'
import requests

# ── Создать задачу ──
resp = requests.post(
    "http://localhost:8080/api/v1/tasks",
    json={"gpkg_name": "GTMSK_F_2023..."},
)
task = resp.json()

# ── Получить результат ──
result = requests.get(
    f"http://localhost:8080/api/v1/tasks/{task['task_id']}"
).json()

# result["geojson"] содержит GeoJSON FeatureCollection
# с полигонами контуров в EPSG:4326

Алгоритм (Potrace)

1. Чтение индекса тайловых позиций из GPKG

2. Построение бинарной bitmap-карты покрытия (1 пиксель = 1 тайл)

3. Опциональное Гауссово размытие (blur_sigma) + бинаризация (threshold)

4. Трассировка контуров через Potrace CLI (turdsize, alphamax, opttolerance)

5. Преобразование SVG-путей из пиксельных координат в геокоординаты

6. Опциональное упрощение (simplify_tolerance)

7. Опциональное Buffer(+d).Buffer(-d) сглаживание (buffer_smooth)

8. Репроекция в EPSG:4326 (WGS84)