【问题标题】:OpenLayers v 5.3.0 - get back attribution behaviorOpenLayers v 5.3.0 - 找回归因行为
【发布时间】:2018-11-21 14:00:46
【问题描述】:

在新版本 v 5.3.0 (ol 地图库) 改变了行为归因。在我拥有图标“i”之前,所有显示图层的归属都在它之下。

现在我有一些扁平化的信息。

开发者给出了使用之前行为的说明:

ol/source/OSM 的属性不可折叠

当地图包含来自ol/source/OSM 源的图层时, ol/control/Attribution 控件将显示为 ``collapsible: false` 行为。

要获得以前的行为,请配置ol/control/Attributioncollapsible: true控制。

但是如何实现呢?

【问题讨论】:

    标签: openlayers openlayers-5


    【解决方案1】:

    在以前的版本中指定了与collapsible: false 相同的方式(请注意,它一直是 OSM 和其他一些来源的使用条款要求,当在面向公众的网站上使用其磁贴时,归属始终可见)

      import Map from 'ol/Map.js';
      import View from 'ol/View.js';
      import {defaults as defaultControls} from 'ol/control.js';
      import TileLayer from 'ol/layer/Tile.js';
      import OSM from 'ol/source/OSM.js';
    
      var map = new Map({
        layers: [
          new TileLayer({
            source: new OSM()
          })
        ],
        controls: defaultControls({ attributionOptions: { collapsible: true } }),
        target: 'map',
        view: new View({
          center: [0, 0],
          zoom: 2
        })
      });
    

    或者如果您使用的是完整版本:

    var map = new ol.Map({
      target: 'map',
      layers: [
        new ol.layer.Tile({
          source: new ol.source.OSM()
        })
      ],
      controls: ol.control.defaults({ attributionOptions: { collapsible: true } }),
      target: 'map',
      view: new ol.View({
        center: [0, 0],
        zoom: 2
      })
    });
    

    【讨论】:

    • 谢谢@Mike,这是救命之恩
    【解决方案2】:

    迈克我试过

    controls: ol.control.defaults({ attributionOptions: { collapsible: true }).extend([ 
    new ol.control.FullScreen(), 
    new ol.control.ZoomSlider(), 
    new ol.control.Zoom(), ... ]),
    

    一切都好。 非常感谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      • 2013-11-14
      • 1970-01-01
      • 2017-08-15
      • 2015-04-22
      相关资源
      最近更新 更多