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

标签 javascript events openlayers openlayers-5

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

最佳答案

您可以注册事件,例如在 map 上。在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);});

关于javascript - 如何在 JavaScript 中订阅 OpenLayers 5.3.0 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56246707/

相关文章:

javascript - 使用 javascript 将无重定向附加到 Iframe src

javascript - 当 DOM 元素消失时,绑定(bind)事件会发生什么?

javascript - 按类(矢量)获取图层,然后使用 Openlayer 2.14 刷新不起作用

javascript - 如何在 ionic 3 和 Angular 4 中使用 Drupal 服务?

javascript - 悬停弹出窗口在我的主代码中不起作用

javascript - 如何根据页面更改 Bootstrap 类列表组项目的事件状态

c# - 有人知道为什么我无法在 C# 中以编程方式访问 winevt 文件夹吗?

javascript - 在没有窗口对象的情况下正确记录 JavaScript 中的按键事件

angular - 无法在 Angular 项目中导入 proj4

javascript - 使用 OpenLayers.Feature.Vector 在 openlayer map 中添加标记?