3

在新版本 v 5.3.0(ol 地图库)中更改了行为属性。在我有图标“i”之前,所有显示图层的归属。

在此处输入图像描述

在此处输入图像描述

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

开发人员给出了使用先前行为的说明:

属性不可折叠ol/source/OSM

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

要获得以前的行为,请ol/control/Attribution 使用 collapsible: true.

但是如何实现呢?

4

2 回答 2

7

与以前版本中指定的方式相同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
  })
});
于 2018-11-21T14:34:42.633 回答
1

迈克我试过

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

一切都很好。非常感谢!

于 2018-11-22T10:46:56.637 回答