在GoogleMaps
中,当用户使用鼠标滚轮放大/缩小时,光标下的点保持不变(其坐标),但OpenLayers
地图有不同的方法 - 当地图的缩放中心不变时。可以在GoogleMaps
地图中使用OpenLayers
缩放样式吗?
编辑:
实际上我的OpenLayers
中的当前行为是当我放大光标下的某个位置时,它会移动该位置到下一个缩放级别的地图中心。可能这是与我的地图特定设置(如投影)相关的一些问题。
答案 0 :(得分:2)
我猜您正在使用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使用它,您可以看到它的工作方式与here
相同答案 1 :(得分:1)
实际上,在OpenLayers上查看Basic Example时,似乎地图会缩放鼠标指针,就像谷歌地图一样。或者我在你的问题中遗漏了一些细节?