Skip to main content

Сервіс тайлінгу веб мап

Сервіс призначений для иконання побудови

Налаштування 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 - рядок із зображення закодоване у base64
  • tile - не використовується

Приклад виклику:

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 - null
  • xml - не використовується
  • width - не використовується
  • height - не використовується

Result

  • err - рядок з описом помилки, якщо вона мала місце (пустий рядок, якщо створення було вдалим)
  • base64 - рядок із зображення закодоване у base64
  • tile - номер тайлу

Приклад виклику:

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>,

},
};

Корисні посилання