打开图层3缩放地图事件处理程序

Sin*_*ity 17 javascript openlayers-3

我需要在Open Layers 3中处理缩放事件.

以下是我的代码:

map_object = new ol.Map({
target: 'map',
controls: controls_list,
interactions: interactions_list,
overlays: [overlay],
layers: [OSM_raster, WFS_layer],
    view: view
});


map_object.on("Zoom", function() {
  console.log('Zooming...');
});
Run Code Online (Sandbox Code Playgroud)

此代码运行时没有错误并显示一个映射,但没有输出到控制台,表明此功能未触发.

我也尝试过:

map_object.on("drag", function() {
  console.log('Dragging...');
});
Run Code Online (Sandbox Code Playgroud)

这也没有做任何事情.

任何有关如何处理OL3中的地图控制事件的帮助将非常受欢迎(特别是缩放!).注意我已尝试'zoom'以及'zoom'作为on方法的type字段.

ako*_*977 15

只是为了补充一点,你可以检查'propertychange'可用的事件的变化,从我看到的,没有明确的,.on ('zoom', ...)但你可以访问'解决方案'和以前的评论中提到的其他属性:

map.getView().on('propertychange', function(e) {
   switch (e.key) {
      case 'resolution':
        console.log(e.oldValue);
        break;
   }
});
Run Code Online (Sandbox Code Playgroud)


ton*_*nio 7

试试moveend活动.(参见https://openlayers.org/en/latest/apidoc/module-ol_MapEvent-MapEvent.html#event:moveend).

  • 将`map.getView().on('change:resolution')符合您的需求? (17认同)
  • 不幸的是,这并不能解决处理缩放事件的问题。我需要知道何时且仅何时发生缩放(也不是平移或旋转)以及缩放的方向。然而,我找到了一个解决方案,我将很快发布,它不涉及“不稳定”事件并且工作完美。不管怎样还是谢谢你。 (2认同)
  • 它可以工作,但是“change:resolution”事件是最小的方式吗?谁能证实这一点吗? (2认同)