都是网上搜的,亲自试过,记录一下
方法一:
webInstance.map.getView().on('propertychange',function(e){
switch(e.key){
case 'resolution':
console.log(e.oldValue);
break;
}
});
此方法,会触发多次事件,所以不合适。

方法二:
webInstance.zoomend = function(evt){
console.log('zoomend on resolution: ' + evt.map.getView().getResolution());
evt.map.once('moveend', function(evt) {
webInstance.zoomend(evt);
});
}
webInstance.map.getView().once('change:resolution',function(evt){
webInstance.map.once('moveend',function(evt){
webInstance.zoomend(evt);
})
});

这个比较靠谱,比例尺发生改变,只有一次事件过来。
https://stackoverflow.com/questions/33700255/how-can-i-detect-a-zoom-end
https://stackoverflow.com/questions/26734512/open-layers-3-zoom-map-event-handler
本文介绍两种在OpenLayers中监听地图缩放结束事件的方法。方法一使用'propertychange'事件,但会触发多次,不够精准。方法二利用'change:resolution'和'moveend'事件组合,能更准确地捕捉到缩放结束时刻。
635

被折叠的 条评论
为什么被折叠?



