如何在JavaScript中订阅OpenLayers 5.3.0事件?

时间:2019-05-21 21:39:12

标签: javascript events openlayers openlayers-5

我看到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。我可以使用脚本示例来帮助入门。

1 个答案:

答案 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);});