繁体   English   中英

OpenLayers缩放样式,例如GoogleMaps

[英]OpenLayers zoom style like GoogleMaps

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

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

我猜您正在使用OpenLayers.Control.MouseDefaults控件进行导航。 好吧,您不应该这样做,因为此控件已被OpenLayers.Control.Navigation替换,并且将在OpenLayers 3.0中弃用。

快速浏览一下MouseDefaults的源代码,就可以确定它确实将地图居中于光标位置:

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

当光标停留在同一位置时,每次您放大/缩小地图时,地图都会居中到新位置,这很令人困惑。

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

实际上,当您在OpenLayers上查看“ 基本示例”时,就像Google Maps一样,地图似乎围绕鼠标指针缩放。 还是我在您的问题中遗漏了一些细节?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM