【问题标题】: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/Attribution
用collapsible: 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
})
});
【解决方案2】:
迈克我试过
controls: ol.control.defaults({ attributionOptions: { collapsible: true }).extend([
new ol.control.FullScreen(),
new ol.control.ZoomSlider(),
new ol.control.Zoom(), ... ]),
一切都好。
非常感谢!