根据 OpenLayers 文档,构造函数 OpenLayers.Map() 允许附加属性范围,即“地图的初始范围”(参见此处)。
但是,我无法让它产生任何效果。我知道我可以在构建地图后通过调用.zoomToExtent() 来设置初始范围。但我想使用这个范围属性,因为我在eventListeners属性中设置了一个zoomend事件,但不希望它通过对.zoomToExtent()的初始调用来触发。有谁知道如何使用这个范围属性?
这是不起作用的代码
map = new OpenLayers.Map('map',{
extent: bounds,
layers: [osmLayer,vectorLayer],
projection: "EPSG:900913",
eventListeners: {
zoomend: function() {
//..zoomend event listener code
}
}
});
在上面的例子中:
- bounds是一个有效的OpenLayers.Bounds对象
- osmLayer和vectorLayer是有效的OpenLayers.Layer对象,其中osmLayer是基础层。
上面的代码会发生什么,地图被完全缩小了(实际上你什么都看不到),任何平移的尝试都会导致错误被抛出。要使地图进入正确状态,用户必须放大,然后再次平移,您可以看到地图。