Перейти к содержанию

Подключение карт для Workspace

Начиная с версии 9.200, в Workspace появилась возможность использовать локальные карты для работы с диаграммами: Карта маршрутов и Объекты на интерактивной карте.

Есть два способа использования карт.

  1. Вы используете карты которые предоставляет Оптимакрос. Для этого варианта потребуется доступ в интернет.
  2. Локальная установка карт на свой отдельный сервер. Для этого варианта доступ в интернет не обязателен. Но нужен доступ до сервера у пользователя.

Настройки для подключения к серверу Оптимакрос

Для начала нам потребуется внести изменения в Manifest.json добавив в блок console следующие изменения:

"tileserver": {
    "host": "https://maptiler.example.com",
    "token": "ваш uuid4 токен"
    "style": "rus"
},
В конечном итоге у вас должен быть похожий вид

        "console": {
            "commands": {
                "frontend-build": {
                    "appConfig": {
                        "tileserver": {
                            "host": "https://maptiler.example.com",
                            "token": "ваш uuid4 токен",
                            "style": "rus"
                        },

host и token вы можете запросить у своего менеджера.

Локальная установка и настройки

Info

Мы рекомендуем для сервиса отдельный сервер с 200 гигабайт свободного пространства, 2Gb ОЗУ и 2 ядрами. Для работы сервиса нужно уникальное доменное имя и сертификат который будет доверенным для конечного пользователя.

Загрузить на сервер:

  1. data.tar.xz- архив с картами, объемом 53 Gb в запакованном виде. (запрашивается на support)
  2. addon.tar.xz - архив с дополнительными стилями. (запрашивается на support)

Использоваться будет Docker, образы: tileserver-gl и nginx.

1. Подготовка сервера для сервиса maptiler

1.1 установка докера

Установку лучше всего взять из этой инструкции, она не отличается.

1.2 подготовка сервиса

Создаем папки в которой будет compose и файлы maptiler

mkdir -p /opt/maptiler/{data,nginx/conf.d,certs,log}

Разархивируем архив data.tar.xz в папку /opt/maptiler командой

tar -xf data.tar.xz -C /opt/maptiler/

2. Конфигурация

2.1 Сертификаты

Сертификаты необходимо положить в папку /opt/maptiler/certs/ Сертификаты лучше использовать в формате x509

  • Название файла сертификата: bundle.crt
  • Название файла ключа: crt.key

2.2 конфигурация nginx

Создаем файл.

nano /opt/maptiler/nginx/conf.d/default.conf
Добавляем в него

/opt/maptiler/nginx/conf.d/default.conf
server {
    listen      80;
    server_name "";
    return      444;

Далее создаем еще файл.

nano /opt/maptiler/nginx/conf.d/maptiler.conf

Добавляем в него следующую конфигурацию.

/opt/maptiler/nginx/conf.d/maptiler.conf
proxy_cache_path /var/cache/nginx/tileserver
                 keys_zone=TileserverCache:50m
                 levels=1:2
                 inactive=2w
                 max_size=1g;

map_hash_bucket_size 128;

server {
    listen 443 ssl;
    ssl_certificate         /etc/certs/bundle.crt;
    ssl_certificate_key     /etc/certs/cert.key;

    server_name maptiler.optimacros.com;

    location / {
         if ($request_method = OPTIONS ) {
             add_header 'Access-Control-Allow-Origin'  '*';
             add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, HEAD';
             add_header 'Access-Control-Allow-Headers' 'Authorization, Origin, X-Requested-With, Content-Type, Accept';

            return 204;
        }

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass http://maptiler:8080/;

    }
}

server {
    listen 80;
    server_name maptiler.optimacros.com;
    return 301 https://$host$request_uri;
}

2.3 конфигурация maptiler

Редактируем в файле /opt/maptiler/data/config.json блок domains и вписываем туда своё доменное имя выданное для сервиса.

        "domains": [
            "maptiler.example.com"
        ],

2.4 конфигурация docker-compose.yml

По пути /opt/maptiler создаем compose файл для автозапуска сервиса.

nano /opt/maptiler/docker-compose.yml

И добавляем в него конфигурацию ниже.

services:
  nginx:
    # The official Nginx docker image
    image: nginx:stable
    container_name: nginx
    restart: unless-stopped
    ports:
     # The HTTP port
      - "80:80"
     # The HTTPS port
      - "443:443"
    volumes:
     # Config files
      - ./nginx/conf.d/maptiler.conf:/etc/nginx/conf.d/maptiler.conf
     # Certificates
      - ./certs:/etc/certs
     # Logs
      - ./var/log/nginx:/var/log/nginx
    networks:
      - maptiler-network

  maptiler:
    image: maptiler/tileserver-gl:latest
    container_name: maptiler
    restart: unless-stopped
    volumes:
      - ./data:/data
    networks:
      - maptiler-network

networks:
  maptiler-network:
    driver: bridge

2.5 Запуск сервиса

Переходим в папку с docker-compose.

cd /opt/maptiler/

И запускаем docker compose

docker compose up -d

3 Настройка Workspace

3.1 Изменения в манифест файле

Для использования потребуется внести изменения в Manifest.json добавив в блок console следующие изменения:

"tileserver": {
    "host": "https://maptiler.example.com",
    "token": "ваш uuid4 токен"
    "style": "rus"
},

В конечном итоге у вас должен быть похожий вид.

        "console": {
            "commands": {
                "frontend-build": {
                    "appConfig": {
                        "tileserver": {
                            "host": "https://maptiler.example.com",
                            "token": "ваш uuid4 токен",
                            "style": "rus"
                        },

4 Проверка работоспособности

После того как провели все работы мы можем увидеть результат открыв графики и выбрать Карта маршрутов или Объекты на интерактивной карте. Карта должна прогрузится.