Загрузка web-карты в QGIS по координатам выдачи

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
pbacherikov
Новоприбывший
Сообщения: 3
Зарегистрирован: 01 июн 2022, 21:10
Репутация: 0
Откуда: Berkeley, CA, USA

Загрузка web-карты в QGIS по координатам выдачи

Сообщение pbacherikov » 01 июн 2022, 21:42

Здравствуйте! Подскажите, пожалуйста, как можно добавить вот эту карту http://ethnomap.karelia.ru/ в QGIS.

Генерация изображения происходит на сервере, ссылка на выдачу выглядит следующим образом:

http://195.209.249.220/mapportal/litkarta_1905v2-610x843.map.png?cx={x}&cy={y}&zoom={z} , где

610x843 -- пользовательское разрешение. Можно выставить, скажем, 256x256

{x} -- x координата центроида в проекции EPSG:28406 Pulkovo 1942 / Gauss-Kruger Zone 6

{y} -- y координата центроида в проекции EPSG:28406 Pulkovo 1942 / Gauss-Kruger Zone 6

{z} -- параметр zoom, принимает значения от 0 до какого-то большого значения

Вот пример выдачи: http://195.209.249.220/mapportal/litkar ... oom=517360

AlexRomantsov
Завсегдатай
Сообщения: 289
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 134
Откуда: Томск

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение AlexRomantsov » 02 июн 2022, 07:35

У разработчиков портала возможно свой альтернативный аналог WMS, не стандартные запросы на сервер. Штатными средствами QGIS в лоб не получилось подключить.

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2227
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1500
Откуда: Казань

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение Игорь Белов » 02 июн 2022, 08:12

Понятно, что интерактивную карту не получить. Собственно, выдачи — картинки в формате PNG. По крайней мере можно сохранять их на диск и открывать как растровые слои. Для этого нужно создавать файлы привязки. URL примера выдачи:

http:// 195.209.249.220/mapportal/litkarta_1905v2-610x843.map.png?cx=6566470&cy=7129240&zoom=517360

Выделяем параметры карты:

ширина w: 610 пикселей
высота h: 843 пикселей
X центра cx: 6566470 м
Y центра cy: 7129240 м
ширина zoom: 517360 м

Вычисляем необходимые величины:

разрешение res = zoom / w = 517360 м / 610 пикселей = 848.131147540984 м/пиксель
X левого края = cx - zoom / 2 = 6566470 м - 517360 / 2 м = 6307790 м
Y верхнего края = cy + res * h / 2 = 7129240 м + 848.131147540984 м/пиксель * 843 / 2 пикселей = 7486727.27868853 м

В той же папке, где лежит растр litkarta_1905v2-610x843.map.png, конструируем файл привязки litkarta_1905v2-610x843.map.pgw:

848.131147540984
0
0
-848.131147540984
6307790
7486727.27868853

Открываем растровый слой litkarta_1905v2-610x843.map.png, указываем для него систему координат EPSG:28406.
Вложения
litkarta_1905v2-610x843.map_8bit.png
litkarta_1905v2-610x843.map_8bit.png (170.01 КБ) 2313 просмотров
The purpose of computing is insight, not numbers

AlexRomantsov
Завсегдатай
Сообщения: 289
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 134
Откуда: Томск

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение AlexRomantsov » 02 июн 2022, 14:16

Вот такой дурацкий, но рабочий вариант:
Создаем в QGIS слой, в котором рисуем полигон (прямоугольник) с охватом Карелии. Далее Свойства слоя - Оформление, заливка как Генератор геометрии, тип - точка, координаты - центр охвата карты ( @map_extent_center). Полигон начинает выглядеть как точка, всегда в центре текущего охвата карты. Далее настроил эту точку как растровый маркер, путь к которому вычисляется выражением
'http:// 195.209.249.220/mapportal/litkarta_1905v2-1000x843.map.png?cx=' || $x || '&cy=' || $y || '&zoom=' || @map_extent_width
а настройка ширины - выражением @map_extent_width , для настройки размера Единицы карты (не мм!)
Все работает, при обязательном условии - карта в QGIS настроена для системы координат источника картинки, EPSG:28406 Pulkovo 1942 / Gauss-Kruger Zone 6.
Пример проекта QGIS с этой интернет картой -
karelia.zip
(11.94 КБ) 98 скачиваний
Последний раз редактировалось AlexRomantsov 03 июн 2022, 05:19, всего редактировалось 1 раз.

gamm
Гуру
Сообщения: 4044
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1049
Ваше звание: программист
Откуда: Казань

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение gamm » 02 июн 2022, 14:47

AlexRomantsov писал(а):
02 июн 2022, 14:16
Вот такой дурацкий, но рабочий вариант:
красиво, в любимом народном стиле per rectum ad astra :mrgreen:

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2227
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1500
Откуда: Казань

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение Игорь Белов » 02 июн 2022, 15:19

AlexRomantsov писал(а):
02 июн 2022, 14:16
Вот такой дурацкий, но рабочий вариант
Весьма изящно! Снимаю шляпу!
Поистине QGIS шайтан-машина в умелых руках.
The purpose of computing is insight, not numbers

pbacherikov
Новоприбывший
Сообщения: 3
Зарегистрирован: 01 июн 2022, 21:10
Репутация: 0
Откуда: Berkeley, CA, USA

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение pbacherikov » 02 июн 2022, 23:56

AlexRomantsov писал(а):
02 июн 2022, 14:16
Вот такой дурацкий, но рабочий вариант:
Замечательно! Спасибо огромное Alex и Игорь!

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение Ivor » 03 июн 2022, 02:35

Игорь Белов писал(а):
02 июн 2022, 15:19
Весьма изящно! Снимаю шляпу!
Поистине QGIS шайтан-машина в умелых руках.
А нет нигде на сайте места для таких неординарных решений? А то ведь утонет ответ, и наткнутся на него только случайно

AlexRomantsov
Завсегдатай
Сообщения: 289
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 134
Откуда: Томск

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение AlexRomantsov » 03 июн 2022, 05:17

Спасибо за отзыв настоящих гурманов ГИС, рад был помочь, и спасибо pbacherikov за интересную тему, может пригодится для подобных случаев.
Для больших мониторов может не хватить (по высоте) пиксельного размера получаемой картинки. Это можно исправить, увеличив в запросе ../mapportal/litkarta_1905v2-1000x843.map.png?.
Не нашел в QGIS переменной или функции для динамического вычисления этих значений, помощь зала!
Возможно, имеет смысл перепилить генератор геометрии, вычислять не одну точку в центре, а четыре (на отступе в 1/4 от охвата карты), а параметр размера запрашиваемой картинки (1000x843) и zoom наоборот уменьшить. В примере проекта QGIS это спрятано в Оформление - Растровый маркер - Переопределение свойств пути (Url картинки).
Clipboard01.jpg
Clipboard01.jpg (39.39 КБ) 2168 просмотров
.
Если уменьшить первое значение ширины запрашиваемой карты в пикселях (1000), например сделать 800x843 - источник создаст тайл в более крупном масштабе (более крупные подписи и жирные стили), а вес тайла уменьшится (быстрее вернется). Экспериментируйте, подберите для себя нужные значения.
Последний раз редактировалось AlexRomantsov 06 июн 2022, 04:54, всего редактировалось 1 раз.

pbacherikov
Новоприбывший
Сообщения: 3
Зарегистрирован: 01 июн 2022, 21:10
Репутация: 0
Откуда: Berkeley, CA, USA

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение pbacherikov » 03 июн 2022, 06:18

AlexRomantsov писал(а):
03 июн 2022, 05:17
В примере проекта QGIS это спрятано в Оформление - Растровый маркер - Переопределение свойств пути (Url картинки).
Вот что я в итоге сделал отталкиваясь исключительно от своих нужд:

1) Сгенерировал точечную сетку (grid) в проекции EPSG:28406 размером 5км на 5км

2) Сохранил id и координаты всех точек-центроидов в csv

3) Используя координаты, полученные в step 2, запарсил тайлы размером 5км на 5км и разрешением 512x512 с сервера и сохранил их на жёстком диске используя id точек в качестве имён файлов

4) К каждой точке сетки через тот же raster image marker прикрутил полученный в step 3 тайл (в размерах маркера как раз выставил фиксированные 5000 метров, что соответствует размеру тайлов)

5) Конвертировал полученный результат в geotiff

AlexRomantsov
Завсегдатай
Сообщения: 289
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 134
Откуда: Томск

Re: Загрузка web-карты в QGIS по координатам выдачи

Сообщение AlexRomantsov » 03 июн 2022, 06:27

да, это нормальный способ. Но только для узкого диапазона масштабов (читаемость и размер подписей "зафиксины"). Для удобства пользования надо повторить расчет сетки и загрузку тайлов для мелких масштабов, видимость слоев отсечь по масштабу.

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей