Skip to main content

АПІ для роботи з растрами

rtile - АПІ для отримання тайлу

АПІ віддає тайл за переданими параметрами

Параметри

ПараметрОпис
BBOXПараметр меж для тайлінгу
bboxАльтернативний спосіб вказання попереднього параметру
heightВисота вихідного зображення у пікселях
widthШирина вихідного зображення у пікселях
nocacheПрапорець "чи кешувати отриманий тайл?"
debugВмикає дебаг режим роботи АПІ
isS3Прапорець "чи відбувається тайлінг на s3?"

Приклад

    GET <domainName>/api-user/rtile/:stylr/:z/:x/:y.png?nocache=1

Результат виконання АПІ:

tile_nocache.png

У результаті отримаємо зображення тайлу у форматі png розміром 256p X 256p

gis-layer-pretile

АПІ для виконання операції претайлу (попередньої генерації тайлів) для шару

Параметри

ПараметрОпис
minzoomПочаткове значення зуму для тайлінгу
maxzoomКінцеве значення зуму для тайлінгу
💡 Tip

Параметри minzoom та maxzoom є необов'язковими. За замовчуванням підставляються значення minzoom=6 та maxzoom=16

⚠️ Warning

Максимальна кількість тайлів, які АПІ може згенерувати, обмежено значенням в 100000 тайлів, але один зум буде протайлений у будь-якому випадку, навіть якщо вийти за ліміт

❗️ Warning

АПІ тайлить растр починаючи зі значення зума minzoom і до maxzoom не включно

Приклад

Виклик АПІ:

    GET <domainName>/api-user/gis-layer-pretile/:id?minzoom=<minzoom value>&maxzoom=<maxzoom value>

Приклад відповіді:

pretile.png

❗️ Warning

Для правильного виводу потрібно користуватись браузером Google Chrome

gis-layer-compress

АПІ для компресування растрів

👀 Корисна інформація

Для виконання операції компресії використовується gdal-cli команда gdal_translate з наступними параметрами виклику -ot "Byte" -co COMPRESS=lzw -co num_threads=all_cpus -co predictor=2 -co bigtiff=yes -of GTiff -co TILED=YES -b 1 -b 2 -b 3 -colorinterp red,green,blue

Cхема запиту

/api-user/gis-layer-compress/:id

Параметри

ПараметрОпис
idУнікальний ідентифікатор шару у системі

Результат

У результаті отримаємо зкомпресовані файли у директорії <rasterPath>/commpress. Також метаданні операції виводяться у eventStream

Приклади

GET <domainName>/api-user/gis-layer-compress/3266407151156856206

gis-raster

АПІ створення конфігурації для веб мапи. Воно виконує послідовно наступні дії:

  1. Перевірка наявності растру за вказаним шляхом
  2. Створення файлів для прев'ю (оригінальні файли, які були стиснуті у 10 раз)
  3. Створення віртуальних растрів, якщо файлів більше ніж 1
  4. Отримання інформації про місцеположення та систему координат
  5. Формування конфігураційного файлу
💡 Альтернативне використання

АПІ також можна використовувати для отримання загальної інформації про растри, які є у системі.

Cхема запиту

// Отримання даних про растри у системі
/api-user/gis-raster?folder=<folder path>&nocache=<1|0>

// Створення конфігураційного файлу
/api-user/gis-raster/:path?nocache=<1|0>

Параметри

Далі наведено параметри запиту для двох різхних юзерсторі використання АПІ.

ПараметрОпис
folderШлях до теки з растрами відносно <workDir>/map/raster
nocacheБеремо інформацію з кеша чи отримаємо їх заново

Результат

У результаті ми можемо отримати два різні сценарії:

  1. Отримання загальної інформації про растр/растри у вигляді об'єкта;
  2. Отримання сформованого конфігураційного файлу для веб мапи за шляхом <workDir>/map/mapnik/<raster id>.xml.

Приклади

{
"time":104, // час на формування відповіді
"folder":"z:\\work\\geo\\cardinal\\map\\raster", // директорія знаходження растру
"rows": [
{
"id":"Y29sb3JfcmVsaWVm", // ідентифікатор растру
"name":"color_relief", // назва растру. Якщо це лиректорія - то пишеться назва директорії
"islayer":false, // чи є даний растр шаром у системі
"filename":"color_relief", // ?
"path":"color_relief", // шлях до растру відносно директорії <workDir>/map/rsater
"type":"dir" // тип растру. Якщо ракстри зберігаються у директорії - то виведе 'dir', інакше - `file`
}
]
}

gis-raster-stat

АПІ для отримання метаданих растру за його ідентифікатором.

💡 Де взяти ідентифікатор?

Ідентифікатор растру можна отримати за допомогою АПІ gis-raster

Cхема запиту

GET /api-user/gis-raster-stat/:id

Параметри

ПараметрОпис
idІдентифікатор растру закодований у base64

Результат

У результаті отримуємо об'єкт з описом растру. Якщо растр віртуальний - то буде вказано з яких файлів він складається.

Приклад

{
"time":22, // час на формування відповіді
"type":"file", // тип
"stat": {
"cdate":"2023-12-18T12:54:58", // час створення файлу
"edate":"2023-12-18T12:54:58", // час внесення останніх змін
"size":4469470, // розмір у байтах
"count":1 // кількість
},
"files": [
{
"name":"KyivTerrainRgb.tif", // назва файлу
"size":4469470, // розмір у байтах
"extent": [29.9998611,49.9998611,31.0001389,51.0001389], // екстент растру
"geom": { // Опис BBOX у вигляду geojson
"type":"Polygon",
"coordinates":[[[29.9998611,51.0001389],[29.9998611,49.9998611],[31.0001389,49.9998611],[31.0001389,51.0001389],[29.9998611,51.0001389]]]
},
"bands":"Red,Green,Blue", // послідовність кольорів у бендах
"crs":"+proj=longlat +datum=WGS84 +no_defs", // система координат растру у вигляді proj4text
"rasterSize":[3601,3601], // розмір растру у пікселях
"err":"", // помилки отримання інформації про растр, якщо такі мали місце
"time":2752 // Час витрачений на отримання даних про растр у мілісекундах
}
]
}

gis-raster-info

АПІ для отримання метаданих растру/віртуального растру.

Cхема запиту

GET /api-user/gis-raster-info/:id?file=<file_path>&nocache=<1|0>

Параметри

ПараметрОпис
fileШлях до файлу растру відносно директорії <workDir>/map/raster
nocacheМетадані беруться з кешу чи напряму отримаються з файлу

Результат

У результаті отримаємо об'єкт, який містить у собі метадані файлу, які були отримані за допомогою gdal-cli команди gdalinfo.

Приклад

GET <domainName>/api-user/gis-raster-info/3266407151156856206

gis-speed-test

АПІ для перевірки швидкодії тайлінгу.

Схема запиту

/api-user/gis-speed-test?layer=<layer_id>

Параметри

ПараметрОпис
layerУнікальний ідентифікатор шару у системі

Результат

У результаті отримаємо звіт з перевірки швидкодії тайлінгу через eventStream.

Приклад

GET <domainName>/api-user/gis-speed-test?layer=3266407151156856206