Как загрузить Картографический веб-сервис (WMS) Глобальной топологии с множественным разрешением в openlayers? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь загрузить Глобальную топографию с несколькими разрешениями (GMRT) WMS в карту открытых слоев, используя OpenStreetMap (OSM) в качестве базового слоя. URL для веб-службы GMRT: https://www.gmrt.org/services/mapserver/wms_merc?

Код, который я пробую:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" type="text/css">
    <style>
        .map {
            height: 400px;
            width: 100%;
        }
    </style>

    <script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>

    <title>OpenLayers example</title>

</head>

<body>

<h2>My Map</h2>

<div id="map" class="map"></div>

<script type="text/javascript">
    var map = new ol.Map({
        target: 'map',
        layers: [
            new ol.layer.Tile({
                source: new ol.source.OSM()
            }),
            new ol.layer.Image({
                source: new ol.source.ImageWMS({
                    url: 'https://www.gmrt.org/services/mapserver/wms_merc?'
                })
            })
        ],
        view: new ol.View({
            center: ol.proj.fromLonLat([37.41, 8.82]),
            zoom: 4
        })
    });
</script>

</body>
</html>

Код не выводит уровень GMRT, а только базовый уровень с OSM.

При сканировании через соединения, установленные браузером, я нахожу успешный запрос к www.gmrt.org:

GEThttps://www.gmrt.org/services/mapserver/wms_merc?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&CRS=EPSG%3A3857&STYLES=&WIDTH=1235&HEIGHT=600&BBOX=-1873624.4373262404%2C-1947003.9844800094%2C10209540.993994422%2C3923359.7878215266
[HTTP/1.1 200 OK 343ms]

SERVICE WMS
VERSION 1.3.0
REQUEST GetMap
FORMAT  image/png
TRANSPARENT true
CRS EPSG:3857
STYLES  
WIDTH   1235
HEIGHT  600
BBOX    -1873624.4373262404,-1947003.9844800094,10209540.993994422,3923359.7878215266

Я проверил этот пост , который, кажется, похожая проблема, и также посмотрел на GetCapabilities , но возвращенный XML ничего не говорит мне.

Есть идеи, что я делаю не так? Я новичок в openlayers, поэтому буду признателен как можно подробнее.

1 Ответ

1 голос
/ 11 июля 2019

ImageWMS и TileWMS всегда требуется опция params для указания параметра WMS LAYERS

source: new ol.source.ImageWMS({
    url: 'https://www.gmrt.org/services/mapserver/wms_merc?',
    params: { 'LAYERS': 'GMRT' }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...