Существует несколько подходов к настройке сервиса MapProxy. Всё, что нужно iNav — это рабочий URL WMS MapProxy и название слоя, который вы хотите использовать для кэширования.
https://mapproxy.org/docs/latest/install.html Руководство по установке Unix
https://mapproxy.org/docs/latest/install_windows.html Руководство по установке Windows
https://hub.docker.com/r/yagajs/mapproxy/ Образ Docker (непроверенный)
Используя платформу виртуализации по вашему выбору, установите базовый сервер Ubuntu 14.04 LTS. http://releases.ubuntu.com/14.04/ubuntu-14.04.5-server-i386.iso
Используйте NAT-сеть, чтобы виртуальная машина могла загружать карты при подключении к интернету.
Создайте пользователя mapproxy (это можно сделать во время установки).
Все команды выполняются от имени пользователя mapproxy из домашнего каталога пользователя mapproxy.
Выберите значения по умолчанию для всего остального, если вы не хотите ничего менять.
После установки обновите все пакеты и перезагрузите компьютер.
sudo apt-get update && sudo apt-get upgrade && sudo reboot
Установите статический IP-адрес, чтобы URL-адрес прокси-сервера iNav не нужно было обновлять.
# получить IP-адрес dhcp и хост-шлюз
mapproxy@MapProxy:~$ ip route get 8.8.8.8 | awk '{print $NF; exit}'
192.168.145.133
mapproxy@MapProxy:~$ cat /etc/resolv.conf | tail -n 1
nameserver 192.168.145.2
mapproxy@MapProxy:~$ route
Таблица маршрутизации ядра IP
Назначение Шлюз Маска сети Флаги Метрика Ссылка Использовать интерфейс
по умолчанию 192.168.145.2 0.0.0.0 UG 0 0 0 eth0
192.168.145.0 * 255.255.255.0 U 0 0 0 eth0
mapproxy@MapProxy:~$ sudo vi /etc/network/interfaces
# замените существующий раздел eth0 на этот:
auto eth0
iface eth0 inet static
address 192.168.145.20
netmask 255.255.255.0
network 192.168.145.0
broadcast 192.168.145.255
gateway 192.168.145.2
dns-nameservers 192.168.145.2
# перезагрузите компьютер, чтобы применить изменения
mapproxy@MapProxy:~$ sudo reboot
Установите ssh-сервер, чтобы вы могли подключаться с хоста.
sudo apt-get -y install openssh-server
Подключитесь к виртуальной машине ssh с помощью mapproxy@192.168.145.20.
Установите python-virtualenv и зависимости.
sudo apt install python-virtualenv python-imaging python-yaml libproj0 \
build-essential python-dev libjpeg-dev \
zlib1g-dev libfreetype6-dev libapache2-mod-wsgi apache2
Обновите подушку и установите MapProxy.
sudo pip install pillow
sudo pip install MapProxy
Инициализируйте сервер MapProxy.
# проверьте, установлен ли mapproxy
mapproxy-util --version
# создайте конфигурацию inav
mapproxy-util create -t base-config inavmapproxy
virtualenv --system-site-packages mapproxy
source mapproxy/bin/activate
Обновите apache wsgi.conf.
sudo vi /etc/apache2/mods-available/wsgi.conf
чтобы он выглядел следующим образом:
WSGIScriptAlias /inavmapproxy /home/mapproxy/inavmapproxy/config.py
WSGIDaemonProcess mapproxy user=mapproxy group=mapproxy processes=8 threads=25
WSGIProcessGroup mapproxy
# WSGIPythonHome должен содержать bin и lib каталог вашего virtualenv
WSGIPythonHome /home/mapproxy/mapproxy
WSGIApplicationGroup %{GLOBAL}
<Directory /home/mapproxy/inavmapproxy/>
Order deny,allow
Require all granted
</Directory>
Создайте файл конфигурации wsgi.
vi inavmapproxy/config.py
со следующим содержимым:
from mapproxy.wsgiapp import make_wsgi_app
application = make_wsgi_app(r'/home/mapproxy/inavmapproxy/mapproxy.yaml')
Включите wsgi и перезапустите apache.
sudo a2enmod wsgi
sudo service apache2 restart
Протестируйте свой экземпляр MapProxy с помощью веб-браузера на хосте, вы должны увидеть демонстрационную ссылку. http://192.168.145.20/inavmapproxy/
Откройте iNav. Конфигуратор, подключитесь к контроллеру полёта
В правом верхнем углу нажмите «Параметры приложения» (значок шестерёнки).
Для URL MapProxy используйте: http://192.168.145.20/inavmapproxy/service?
Для слоя MapProxy используйте: osm
Если всё работает, вы должны увидеть карту на вкладках GPS и Mission Planner.
Вы можете изменить конфигурацию сервера, отредактировав:
mapproxy@MapProxy:~$ vi ~/inavmapproxy/mapproxy.yaml
После редактирования конфигурации перезапустите Apache:
mapproxy@MapProxy:~$ sudo /etc/init.d/apache2 restart
# mundialis openstreetmap wms example
services:
demo:
wms:
md:
title: MapProxy WMS Proxy
layers:
- name: osm
title: mundialis
sources: [osm_cache]
caches:
osm_cache:
grids: [webmercator]
sources: [osm_wms]
sources:
osm_wms:
type: wms
req:
url: http://ows.mundialis.de/services/service?
layers: osm
grids:
webmercator:
base: GLOBAL_WEBMERCATOR
# google maps hybrid example, use inav_layer in configurator as layer name
services:
demo:
wms:
md:
title: MapProxy WMS Proxy
layers:
- name: inav_layer
title: Google Maps Hybrid
sources: [inav_cache]
caches:
inav_cache:
grids: [inav_grid]
sources: [inav]
cache:
type: file
directory_layout: tms
sources:
inav:
type: tile
url: http://mt0.google.com/vt/lyrs=y&hl=en&x=%(x)s&y=%(y)s&z=%(z)s
grid: inav_grid
grids:
inav_grid:
base: GLOBAL_MERCATOR
origin: ul
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )