如何订阅 JavaScript 中的 OpenLayers 5.3.0 事件?
How do I subscribe to OpenLayers 5.3.0 events in JavaScript?
我看到 OpenLayers 5.3.0 正在使用 observables。文档还 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。我可以使用脚本示例来帮助入门。
您可以注册事件,例如在地图上。在latest examples there is an example for the 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);});
我看到 OpenLayers 5.3.0 正在使用 observables。文档还 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。我可以使用脚本示例来帮助入门。
您可以注册事件,例如在地图上。在latest examples there is an example for the 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);});