OpenLayers v 5.3.0-重新获得归因行为

时间:2018-11-21 14:00:47

标签: openlayers openlayers-5

在新版本v 5.3.0中(ol映射库) 行为归因已更改。在出现图标“ i”之前,在其下均显示图层的所有属性。

enter image description here

enter image description here

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

开发人员提供了使用先前行为的说明:

  

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

     

当地图包含来自ol/source/OSM的图层时,   ol/control/Attribution控件将显示为“可折叠:   错误的行为。

     

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

但是如何实现呢?

2 个答案:

答案 0 :(得分:3)

在以前的版本中指定了与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
  })
});

答案 1 :(得分:0)

我尝试过的麦克

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

一切正常。 非常感谢!