我正在开发Google map 和openlayers 4之间的集成。我的工作基于this example from documentation for openlayers 3。
我的问题是olt 3和ol 4.4.2之间的change:resolution
事件的行为已更改。以前的这段代码
view.on('change:resolution', () => {
console.log(view.getZoom())
})
每次鼠标滚轮旋转仅被调用一次并记录(例如):
5
现在它会生成如下内容:
4.017277252772164
4.08563754449778
4.152661471658049
4.522609511830051
4.691606503462093
4.793368457643155
4.891103916717288
4.980192777999678
4.999621855713164
5
因此,当我尝试同步google map和openlayers之间的缩放(如示例中)时,它将导致google map在每次缩放时都闪烁。看来Google map 不支持缩放的分数值。
我可以将openlayer缩放值限制为整数还是可以解决一些问题?
我在调用
googleMap.setZoom
时尝试使用openlayers缩放的ceil / floor值,但是因为缩放还涉及到中心位置的更改,所以会导致抖动,令人不快的行为。 最佳答案
默认行为是在缩放时更好地支持平板电脑和触控板。
interactions: ol.interaction.defaults({mouseWheelZoom: false}).extend([
new ol.interaction.MouseWheelZoom({
constrainResolution: true // force zooming to a integer zoom
})
])
每
http://openlayers.org/en/latest/examples/mousewheel-zoom.html
关于openlayers - 如何将缩放级别限制为openlayers中的整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46844802/