首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将WMS添加到OpenLayers 5.3.0?

如何将WMS添加到OpenLayers 5.3.0?
EN

Stack Overflow用户
提问于 2019-01-24 01:06:49
回答 1查看 1.5K关注 0票数 0

我正在尝试集成一个WMS覆盖到我的默认OpenLayers地图。只使用WMS层可以很好地渲染地图,但是当我将ol.source.OSM({})层添加到layers: []数组中时,它只会给出一个空白的地图。我正在使用以下代码,但它不工作,我需要更改什么?

代码语言:javascript
运行
复制
<!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: 100%;
        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>WMS 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.ImageWMS(
                {
                    source: new ol.source.ImageWMS(
                    {
                        url: 'http://www.igeo.pt/WMS/Geologia/CGP1M'
                    })
                })
        ],
        view: new ol.View(
            {
                center: ol.proj.fromLonLat([37.41, 8.82]),
                zoom: 4
            })
      });
    </script>
  </body>
</html>
EN

回答 1

Stack Overflow用户

发布于 2019-01-24 05:42:16

您可以查看该url http://www.igeo.pt/WMS/Geologia/CGP1M?SERVICE=WMS&REQUEST=GetCapabilities的GetCapabilities,其中有17层名称为1到20 (缺少3层、13层和18层),并带有葡萄牙语描述。在不太可能的情况下,所有的设置将如下所示(请注意,层构造函数是简单的ol.layer.Image,经纬度顺序,我已经将其设置为半不透明的,以便背景仍然可见)

代码语言:javascript
运行
复制
        new ol.layer.Tile(
            {
                source: new ol.source.OSM({})
            }),
        new ol.layer.Image(
            {
                source: new ol.source.ImageWMS(
                {
                    url: 'http://www.igeo.pt/WMS/Geologia/CGP1M',
                    params: { LAYERS: '1,2,4,5,6,7,8,9,10,11,12,14,15,16,17,19,20'}
                }),
                opacity: 0.5
            })
    ],
    view: new ol.View(
        {
            center: ol.proj.fromLonLat([-8.82, 37.41]),
            zoom: 4
        })

在全屏地图上,请求平铺区域中的WMS通常更有效,以避免在平移时不断请求整个区域

代码语言:javascript
运行
复制
        new ol.layer.Tile(
            {
                source: new ol.source.TileWMS(
                {
                    url: 'http://www.igeo.pt/WMS/Geologia/CGP1M',
                    params: { LAYERS: '1,2,4,5,6,7,8,9,10,11,12,14,15,16,17,19,20'}
                }),
                opacity: 0.5
            })
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54332303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档