ГлавнаяПрограммирование

logo

WMS

WMS расшифровывается как Web Map Service (веб-сервис карт). В упрощённой интерпретации это просто строка кода, которую нужно ввести в адресную строку вашего интернет-браузера. Результатом является изображение с картографической, геологической, градостроительной или другой информацией, предоставляемой веб-приложениями. Правильный формат строки и интерпретацию её кода можно понять с помощью обратного проектирования. В некоторых случаях веб-страницы сервера предоставляют явные данные о коде. В других случаях можно попытаться найти код, инспектируя код веб-страницы.

Короче говоря, WMS можно рассматривать как минималистичную ГИС-систему в одной строке кода. Давайте рассмотрим несколько примеров и как использовать это на практике.

Код WMS:

ПРИМЕР 1: ортофото высокого разрешения

https://geoserveis.icgc.cat/servei/catalunya/orto-territorial/wms?REQUEST=GetMap&VERSION=1.3.0&SERVICE=WMS&CRS=EPSG:25831&BBOX=445636.00,4685404.00,446136.00,4685904.00&WIDTH=4000&HEIGHT=4000&LAYERS=ortofoto_color_vigent&STYLES=&FORMAT=JPEG&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTION=INIMAGE

Пояснение:
Эта ссылка открывает ортофото высокого разрешения с сервера Картографического института Каталонии (icc.cat) с параметром "orto_color_vigent". В данном случае это городская зона Льянарс (Эль-Рипольес), Каталония. Внимательно посмотрите на код, он всегда похож (расшифровка кода):

https://geoserveis.icgc.cat/servei/catalunya/orto-territorial/ < Главный сервер Картографического и Геологического института Каталонии
CRS=EPSG:25831& < Указывает систему координат UTM для Каталонии (EPSG 25831)
LAYERS=orto_color_vigent& < Указывает, что загружаемый слой — актуальное цветное ортофото
FORMAT=JPG < Указывает формат jpg
SERVICE=WMS&VERSION=1.3
SRS=EPSG:25831 < Указывает географическую систему координат, используемую в Каталонии (ETRS89 UTM зона 31N)
BBOX=445636.00,4685404.00,446136.00,4685904.00 < Это самая важная часть: указывает координаты UTM x1,y1,x2,y2 прямоугольника для загрузки. Точка (x1,y1) — нижний левый угол, точка (x2,y2) — верхний правый.
WIDTH=4000 < Указывает ширину в пикселях
HEIGHT=4000 < Указывает высоту в пикселях

Все WMS-серверы имеют очень похожий код. Просто изменяя координаты после "BBOX" и значения "WIDTH" и "HEIGHT", мы можем получать ортофото любого другого места в нашей зоне UTM при условии, что сервер предоставляет данные в указанной точке. Ширина и высота должны быть пропорциональны размерам прямоугольника, определённого точками (x1,y1) и (x2,y2). Существуют также ограничения на разрешение в пикселях относительно размеров прямоугольника. Нужно провести несколько тестов, чтобы добиться успешных результатов. В данном случае при прямоугольнике территории 500×500 м и фото 4000×4000 пикселей мы находимся почти на предельном разрешении системы. Кнопкой мыши, правой кнопкой, выберите "Сохранить изображение как...".

ПРИМЕР 2: Изменение LAYER для получения разных результатов

Мы можем изменить параметр LAYER на другие опции, которые предоставляет сервер ICGC, например "orto_gris_vigent", "orto_color_2020" и т.д.:

https://geoserveis.icgc.cat/servei/catalunya/orto-territorial/wms?REQUEST=GetMap&VERSION=1.3.0&SERVICE=WMS&CRS=EPSG:25831&BBOX=445636.00,4685404.00,446136.00,4685904.00&WIDTH=4000&HEIGHT=4000&LAYERS=ortofoto_infraroig_vigent&STYLES=&FORMAT=JPEG&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTION=INIMAGE

Здесь основной LAYER называется "ortofoto_infraroig_vigent". Использование координат "BBOX" и размеров в пикселях "WIDTH" и "HEIGHT" аналогично.

Информация о слоях территориального ортофото на сайте ICGC:
https://www.icgc.cat/ca/Geoinformacio-i-mapes/Geoinformacio-en-linia-Geoserveis/WMS-Ortoimatges/WMS-dOrtofoto-Territorial

Территориальная топография:
https://www.icgc.cat/ca/Geoinformacio-i-mapes/Geoinformacio-en-linia-Geoserveis/WMS-Topografics/WMS-Referencial-Topografic-Territorial

Чтобы узнать названия доступных LAYERS, нужно искать информацию на сайте учреждения, предоставляющего данные, или использовать обратное проектирование, изучая общий код при загрузке разных слоёв. Существуют серверы по множеству тем, интересных для гражданского строительства, геологии, делимитации природных территорий, градостроительного планирования, археологического наследия и т.д. В следующем примере мы увидим, как получить коды WMS, скрытые в вебе...

ПРИМЕР 3: Как найти код доступных WMS‑серверов


Опять же, нужно искать информацию на сайте учреждения, предоставляющего карты, что не всегда публикуется, или использовать обратное проектирование: искать и изучать сгенерированные коды. Обычно нужно открыть картографический сервер и с помощью

1) Открыть онлайн‑картографический сервер, предоставленный каким‑либо государственным или частным учреждением. Например, откроем геологическую карту Геологического института Каталонии по следующему веб‑адресу:
https://www.icgc.cat/en/Public-Administration-and-Enterprises/Downloads/Geological-and-geothematic-cartography/Geological-cartography/Geological-map-1-50-000
2) Теперь нужно найти код внутреннего WMS‑сервера...
3) Используя браузер Firefox (или другой), нажмите правой кнопкой мыши "Инспектировать" — внизу появится окно с кодом.
4) Ищите на вкладке "Сеть" (Network Monitor). Здесь мы должны найти строки кода, содержащие "WMSServer" или "service=WMS" или подобное. Это то, что мы ищем!
5) Скопируйте одну из строк кода, содержащую слово WMS и имеющую необходимую структуру, и проверьте результат.
6) Например, с первой попытки я нашёл код:
Наиболее интересны те строки WMS, в которых координаты, указанные в "BBOX", являются UTM, поскольку единицы измерения — метры и их очень легко интерпретировать. Некоторые WMS‑серверы используют другие системы отсчёта (код, связанный с параметром "EPSG").
https://siurana.icgc.cat/arcgis/services/geologic/icgc_mg250m/MapServer/WMSServer?=&service=WMS&request=GetMap&layers=UGEO_PA&styles=&format=image/png&transparent=true&version=1.1.1&nom=Unitats%20geol%C3%B2giques&tipus=wms&businessId=a8c42945fbd6de690b1d8080f2fbdf44&width=512&height=512&srs=EPSG:3857&bbox=0,5087648.602661333,78271.51696402048,5165920.119625352

https://geoserveis.icgc.cat/arcgis/services/geologic/icgc_mg250m/MapServer/WMSServer?&service=WMS&request=GetMap&layers=UGEO_PA&styles=&format=image%2Fpng&transparent=true&version=1.1.1&nom=Unitats%20geol%C3%B2giques&tipus=wms&businessId=a8c42945fbd6de690b1d8080f2fbdf44&width=512&height=512&srs=EPSG%3A3857&bbox=156543.03392804097,5165920.119625352,234814.5508920615,5244191.636589374

Она имеет подходящую структуру и даёт хорошие результаты. Помните, что при необходимости нужно скорректировать координаты после "bbox" и пиксели "width" и "height". В данном случае слой — "layers=UGEO_PA". Картографическая система — EPSG:3857 (WGS84 Псевдо-Меркатор).

Резюмируя: сбор информации о WMS‑серверах и знание кодов для загрузки наших геопривязанных изображений — это очень интересно и полезно. Следует быть осторожным, так как часто WMS-серверы меняют имена серверов и их управляющие параметры.

Здесь мы говорили только о том, как загружать изображения вручную, редактируя код. Однако эту задачу я также автоматизировал для множества изображений с помощью bash‑скрипта (ссылка). И, используя философию UNIX создания простых программ, которые делают одно дело, делают его хорошо и работают вместе, это также решается другим bash‑скриптом: загрузка нескольких прямоугольников и вставка их в качестве внешних ссылок в файл DXF с помощью приложения FortranCAD.

Узнать больше о стандарте WMS можно здесь:
https://portal.ogc.org/files/?artifact_id=14416 https://portal.ogc.org/files/?artifact_id=14416