Сервіс тайлінгу веб мап
Сервіс призначений для иконання побудови
Налаштування configServer
Додати:
{
"mapServerAddress": "localhost:4003" // замість localhost можна підставити IP де піднято сервіс
}
Опис реалізованого функціоналу (функцій)
1. LoadXML
Завантажує xml файл з описом шару
Params
path
- шлях до файлу на серверіxml
- xml файл у вигляді рядкаreload
- прапорець, який задає чи перезаписувати або ні
Result
err
- рядок з описом помилки, якщо вона мала місце (пустий рядок, якщо завантаження було вдалим)is_ok
- завантаження було вдалим чи ні (boolean)
Приклад виклику:
const mapnik = funcs.grpc('mapnik');
const {err, is_ok} = await mapnik.loadXML({path: <xml file path on server>, xml: <xml file as string>, reload: true});
2. RenderXML
Створює зображення мапи на основі зовнішнього xml файлу
Params
path
- шлях до файлів на серверіbbox
- bbox у вигляді масиву координатtile
- не використовуєтьсяxml
- xml файл у вигляді рядкаwidth
- ширина створеної мапиheight
- висота створеної мапи
Result
err
- рядок з описом помилки, якщо вона мала місце (пустий рядок, якщо створення було вдалим)base64
- рядок із зображення закодоване у base64tile
- не використовується
Приклад виклику:
const mapnik = funcs.grpc('mapnik');
const { err, base64 } = await mapnik.renderXML({path: <files server path>, bbox: <array(1) of bbox coordinates>, xml: <xml string>, width: <width in int32>, height: <height in int32>});
3. Render
Створює зображення мапи на основі xml, який присутній на сервері
Params
path
- шлях до xml на серверіbbox
- bbox у вигляді масиву координатtile
- nullxml
- не використовуєтьсяwidth
- не використовуєтьсяheight
- не використовується
Result
err
- рядок з описом помилки, якщо вона мала місце (пустий рядок, якщо створення було вдалим)base64
- рядок із зображення закодоване у base64tile
- номер тайлу
Приклад виклику:
const mapnik = funcs.grpc('mapnik');
const {err, base64} = await convert.mapnik({ path: <xml file server path>, tile: null, bbox: <array(1) of bbox coordinates> });
4. gdal
Обгортка для виклику gdal команд
Params
name
- назва командиpath
- шлях до вхідного файлуout
- шлях до вихідного файлуparams
- gdal параметри
Result
result
- відповідь від командиerr
- помилка, якщо вона мала місце
Приклад виклику:
const mapnik = funcs.grpc('mapnik');
const {err, base64} = await convert.mapnik({ name: <gdal command name>, path: <path to in file>, out: <path to output file>, params: <gdal command parameters> });
5. clearTile
Очистка згенерованих тайлів за певною директорією
Params
path
- шлях до директорії, яку треба почистити
Result
ok
- повертаєtrue
якщо очистка пройшла успішно, інакше повертаєтьсяerr
err
- повертає помилку, якщо вона мала місце, інакше повертаєok
Приклад виклику:
const mapnik = funcs.grpc('mapnik');
const {err, base64} = await convert.mapnik({ path: <path to directory>});
6. renderStatus
Отримання інформації про mapnikRenderer об'єкти, що знаходяться в пам'яті
Params
Приймає пустий об'єкт
Result
Масив з об'єктів з такими властивостями
name
- назваisActive
- активний чи ніworkTime
- час роботи у вигляді рядка%H:%M:%S
performed
- скільки файлів вже згенерував
Приклад виклику:
const mapnik = funcs.grpc('mapnik');
const {err, base64} = await convert.mapnik({});
7. PrintMap
Генерує статичну мапу з заданих параметрів
Params
baseurl
- посилання на мапу з зовнішнього ресурсу (у розробці)baseImg
- зображення підкладку уbase64
кодуванніxml
- масив.xml
файлів для накладання від найнижчого (перший елемент) до навищого (останній елемент) у вигляді масиву рядківoverlayXml
-.xml
файл, який буде накладатись, у вигляді рядкаoverlay
-.geojson
файл, який буде накладатись, у вигляді рядкаwidth
- ширина вихідного зображення у пікселях. Задається цілим беззнаковим числом (uint32
)height
- висота вихідного зображення у пікселях. Задається цілим беззнаковим числом (uint32
)bbox
- BBOX у вигляді масиву дробових чиселpos
- XYZ параметри. Передається у вигляді об'єкта з параметрамиx
,y
таz
у вигляді дробових чисел (у розробці)geojsonSettings
- налаштування стилів для геометрії з параметруoverlay
. Передається у виглядіjson
-рядка. Приклад наведено нижче
Result
map
- вихідна статична мапа у вигляді зображення формату.png
, яке закодовано уbase64
err
- помилка, якщо мала місце, у вигляді рядка
Приклад виклику з клієнта:
const { printMap } = require('../grpc/map');
const { map, err } = await printMap({
baseImg, xml, overlayXml, overlay, width, height, bbox, geojsonSettings,
});
Приклад geojsonSettings:
const styleSettings = {
polygon: {
alpha: 0...255,
red: 0...255,
blue: 0...255,
green: 0...255,
color: <color hex or text>,
},
line: {
opacity: 0...1,
alpha: 0...255,
red: 0...255,
blue: 0...255,
green: 0...255,
width: <number in pixels>,
color: <color hex or text>,
},
point: {
alpha: 0...255,
red: 0...255,
blue: 0...255,
green: 0...255,
color: <color hex or text>,
},
};