我看到OpenLayers 5.3.0正在使用可观察的东西。这些文档也是cover events。
对于一般的事件,我如何将这个起始示例更改为.subscribe()?我正在努力缩小文档和使用之间的差距。
import Map from 'ol/Map';
import View from 'ol/View';
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';
new Map({
target: 'map',
layers: [
new TileLayer({
source: new XYZ({
url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png'
})
})
],
view: new View({
center: [0, 0],
zoom: 2
})
});
我已经seen examples使用的OpenLayers较旧版本可能不适用于此处。至少在上面的链接示例中,“ eventListeners”未在5.3.0上列为属性,并且看起来很旧且与回调相关(不可观察)。
我确实看到了一个最近的类似问题here with helpful resources listed。我可以使用脚本示例来帮助入门。
答案 0 :(得分:1)
您可以注册事件,例如在地图上。 latest examples中有一个moveend event的示例。
var map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new View({
center: [0, 0],
zoom: 2
})
});
map.on('moveend', function(evt){console.log(evt);});