Сервіс тайлінгу веб мап
Сервіс призначений для иконання побудови
Налаштування 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якщо очистка пройшла успішно, інакше повертаєтьсяerrerr- повертає помилку, якщо вона мала місце, інакше повертає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:%Sperformed- скільки файлів вже згенерував
Приклад виклику:
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, яке закодовано уbase64err- помилка, якщо мала місце, у вигляді рядка
Приклад виклику з клієнта:
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>,
},
};