Подключение карт для Workspace¶
Начиная с версии 9.200, в Workspace появилась возможность использовать
локальные карты для работы с диаграммами: Карта маршрутов и
Объекты на интерактивной карте.
Есть два способа использования карт.
- Вы используете карты которые предоставляет Оптимакрос. Для этого варианта потребуется доступ в интернет.
- Локальная установка карт на свой отдельный сервер. Для этого варианта доступ в интернет не обязателен. Но нужен доступ до сервера у пользователя.
Настройки для подключения к серверу Оптимакрос¶
Для начала нам потребуется внести изменения в 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 ядрами. Для работы
сервиса нужно уникальное доменное имя и сертификат который будет
доверенным для конечного пользователя.
Загрузить на сервер:
data.tar.xz- архив с картами, объемом53 Gbв запакованном виде. (запрашивается на support)addon.tar.xz- архив с дополнительными стилями. (запрашивается на support)
Использоваться будет Docker, образы: tileserver-gl и nginx.
1. Подготовка сервера для сервиса maptiler¶
1.1 установка докера¶
Установку лучше всего взять из этой инструкции, она не отличается.
1.2 подготовка сервиса¶
Создаем папки в которой будет compose и файлы maptiler
Разархивируем архив data.tar.xz в папку /opt/maptiler командой
2. Конфигурация¶
2.1 Сертификаты¶
Сертификаты необходимо положить в папку /opt/maptiler/certs/ Сертификаты
лучше использовать в формате x509
- Название файла сертификата:
bundle.crt - Название файла ключа:
crt.key
2.2 конфигурация nginx¶
Создаем файл.
Добавляем в негоДалее создаем еще файл.
Добавляем в него следующую конфигурацию.
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 и вписываем
туда своё доменное имя выданное для сервиса.
2.4 конфигурация docker-compose.yml¶
По пути /opt/maptiler создаем compose файл для автозапуска сервиса.
И добавляем в него конфигурацию ниже.
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.
И запускаем docker compose
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 Проверка работоспособности¶
После того как провели все работы мы можем увидеть результат открыв графики и
выбрать Карта маршрутов или Объекты на интерактивной карте. Карта должна
прогрузится.