gpt4 book ai didi

javascript - 类似 GoogleMaps 的 OpenLayers 缩放样式

转载 作者:行者123 更新时间:2023-11-30 13:35:40 26 4
gpt4 key购买 nike

GoogleMaps 中,当用户使用鼠标滚轮放大/缩小时,光标下的点保持不变(其坐标),但 OpenLayers map 有不同的方法 - 当缩放中心的 map 是不变的。可以在 OpenLayers map 中使用 GoogleMaps 缩放样式吗?

编辑:实际上,我的 OpenLayers 中的当前行为是,当我放大光标下的某个位置时,它会将该位置移动到下一个缩放级别的 map 中心。可能是与我的 map 特定设置(如投影)相关的一些问题。

最佳答案

我猜您正在使用 OpenLayers.Control.MouseDefaults 控件进行导航。嗯,你不应该,因为这个控件被 OpenLayers.Control.Navigation 取代,并且将在 OpenLayers 3.0 中被弃用。

快速浏览一下 MouseDefaults 的源代码就会发现它确实将 map 置于光标位置的中心:

defaultWheelDown: function(evt) {
if (this.map.getZoom() > 0) {
this.map.setCenter(this.map.getLonLatFromPixel(evt.xy),
this.map.getZoom() - 1);
}
},

虽然光标停留在同一位置,但每次放大/缩小时 map 都会以新位置为中心,这很令人困惑。

OpenLayers.Control.Navigation 使用与 Google map 相同的方法。 OpenStreetMap 使用它,您可以看到它的工作方式相同 here

关于javascript - 类似 GoogleMaps 的 OpenLayers 缩放样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4993656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com