Для добавления локальной подложки необходимо сделать несколько шагов
Создание информации о координатах подложки - файла WordImage
...
| Info |
|---|
Инструкция позволяет заменить участок глобальной карты кастомным изображением. В качестве источника могут использоваться растровые изображения с GEO данными в формате World file (описание формата |
https://en.wikipedia.org/wiki/World_file). Потребуется растровое изображение и файл с описанием GEO данных, название которого будет совпадать с названием изображения, расширение зависит от расширения изображения. Поддерживаемые форматы изображений и файлов с GEO данными: |
...
Заводить подложку можно в разных системах координат.
В данном примере рекомендуется использовать wgs84 (широта/долгота).
Системы координат имеют разные единицы измерения (например для wgs84 - это градусы широты/долготы).
Эти единицы измерения в дальнейшем будут именоваться "юниты".
Worldfile состоит из шести строк, содержащих по одной величине в следующем порядке: A, D, B, E, C, F:
| Code Block | ||
|---|---|---|
| ||
A: Размеры по оси x в юнитах на пиксель
D: Поворот по оси y
B: Поворот по оси x
E: Размеры по оси y в юнитах на пиксель
C: Координата x центра левого верхнего пикселя
F: Координата y центра левого верхнего пикселя |
Значения D и B отвечают за поворот.
Рекомендуется загружать карту у которой нет поворота (предварительно повернуть ее самим в редакторе изображений).
Иначе будет сложно посчитать парметры A и E.
Если нам известны координаты углов карты которую мы хотим загрузить и размеры изображения в пикселях:
| Code Block | ||
|---|---|---|
| ||
maxx, minx, maxy и miny - минимальные и максимальные координаты по X и Y
xpix ширина в пикселях
ypix высота в пикселях |
То файл выглядит:
| Code Block | ||
|---|---|---|
| ||
A = (maxx-minx)/xpix
D = 0
B = 0
E = -(maxy-miny)/ypix
C = minx
F = maxy |
Например, для загрузки следующего изображения кремля:
| Code Block | ||
|---|---|---|
| ||
minx = 37.610154
maxx = 37.621650
miny = 55.749170
maxy = 55.755155
xpix = 736
ypix = 685 |
Файл будет выглядеть следующим образом:
...
| language | text |
|---|
...
|
...
Название файла должно совпадать с названием изображения. Расширения файла зависит от расширения изображения. Для .png надо использовать .pgw, для .jpg надо использовать .jgw.
Загрузка файлов на сервер
...
...
...
2. Скопировать файлы custom_map.png и custom_map.pgw в эту папку.
...
...
...
...
4. Залогинится (по умолчанию admin/geoserver).
5. Открыть Stores и выбрать Add new store.
6. В открывшемся окне выбрать WorldImage.
7. В качестве Data source name указать custom_map, в Connection Parameters нажать на Browse и выбрать загруженный файл png/jpg, затем нажать Save.
8. В открывшемся окне нажать Publish.
9. В открывшемся окне в блоке Coordinate Reference System нажать кнопку Find и найти там 4326.
10. В этом же блоке поменять SRS handling на Force declared.
11. Нажать Save.
Создание API ключа
1. Открыть CToolUI, открыть Системная конфигурация, внутри API ключи, и нажать зеленую кнопку "+".
2. В качестве названия можно ввести любое, оно используется только для того, чтобы идентифицировать ключ в таблице (чтобы ее можно было бы удалить).
3. Скопировать ключ в буфер обмена. После закрытия попапа содержимое ключа будет нельзя посомтреть.
Настройки MapProxy
1. Открыть rts/mapproxy/mapproxy.yaml.
2. В блок sources добавить следующее:
...
| language | yaml |
|---|
...
...
...
...
...
...
...
...
...
В Authorization надо заменить APIKEY на ключ полученный на предыдущем шаге.
Например строчка будет выглядеть так:
| Code Block | ||
|---|---|---|
| ||
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI4aUNkOVp6VGc0TWlYR3BPa19uM182WFJTTUcyUUhaUGpybnJ1QjY0a3gwIn0.eyJleHAiOjIwNzA0NTI1NjQsImlhdCI6MTc1NTA5MjU2NCwianRpIjoiYzQ2ZjBmZDYtMDkyMS00ZDkyLTg1N2EtOTJiNjNjNDZjNGE5IiwiaXNzIjoiaHR0cDovL2tleWNsb2FrLnJ0bHM6ODA4MC9yZWFsbXMvcnRscy1hcGkiLCJzdWIiOiIzNjdmMGYzYi03ZDA4LTQ4ZjQtOWE4Ni01ZTNkMGNkYWZiNzMiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJydGxzL01hcHByb3h5IiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJkZWZhdWx0LXJvbGVzLXJ0bHMtYXBpIiwiYXBpIiwicnRsc19lbmdpbmVlciIsInJ0bHNfYmFfYWRtaW4iXX0sInNjb3BlIjoiZW1haWwgcnRsc19yb2xlcyBwcm9maWxlIiwiY2xpZW50SG9zdCI6IjE3Mi4yMy4wLjYiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImNsaWVudElkIjoicnRscy9NYXBwcm94eSIsInJvbGVzIjpbImRlZmF1bHQtcm9sZXMtcnRscy1hcGkiLCJhcGkiLCJydGxzX2VuZ2luZWVyIiwicnRsc19iYV9hZG1pbiJdLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJzZXJ2aWNlLWFjY291bnQtcnRscy9tYXBwcm94eSIsImNsaWVudEFkZHJlc3MiOiIxNzIuMjMuMC42In0.WNF8W2f_Q-uuoLLD7k29m_YfJYf1XAlWUTHEVHGMgSshMuRbw8MZHfzr5F4owTzwpzq0-tl2evoSpxNuRfVdGkW_sfKFSy9w6uY613exHEKelC0V8N-0T1b-yI3l0A-Bb8bfPoRfltORLGjxXQ8J0nSAgsEO5M7eQLyscRDaJ3hdhW1esYCGqhgd6MSkLvqaf2M1rCHBzUA1tWL6kKQZYDEeAMtrgR5pzgCuxRO7VJyYKjZmkS9mPA1iBmJc99YkuFJaB4sJnOvFz76bwyRL5G6KIxKwtbtMrZ7AVqPzU04oRwFeBbO4lGS7wSXpr29GgZeQFGHyy3_fxHrpVXkZLw |
3. Поменять satellite_cache, добавив в sources новый custom_map.
Также нужно добавить meta_size: [1, 1] и meta_buffer: 0, без этого MapProxy не сможет совмещать данные из двух разных источников.
Результат должен выглядеть вот так
...
4. Сохранить файл.
5. Старый кэш придется удалить и сгенерировать заново. Для удаления кэша можно использовать:
| Code Block | ||
|---|---|---|
| ||
rm -rf rtls/mapproxy/cache_data/ |
6. Перезапустить контейнер, после чего локальная карта должна отображаться поверх спутниковых данных.
...




