根据示例,我可以看到您可以通过以下方式在OpenLayers中设置默认视图:

    var bounds = new OpenLayers.Bounds(-125, 25, -65, 50);
var map = new OpenLayers.Map('map', {restrictedExtent: bounds  });


但是,这(顾名思义)也限制了我只能在这些范围内导航。我可以缩小并查看这些边界之外的内容,但是然后无法放大或滚动到它们。

我试过没有任何strictedExtent(或将其制作成整个地图),但后来我无法将其聚焦在我想要的区域上。我尝试使用:

     map.setCenter(new OpenLayers.LonLat(0,0), 3);
     console.log(map.getCenter());


设置缩放和中心...但是它似乎没有任何作用,除了设置变量“ center”之外,我可以从map.getCenter()中读取该变量(如果未设置,则为null ,如果我设置了它,就可以看到它...但是地图本身保持完全展开,并且它的中心似乎根本没有改变...)

我正在使用的地图图层是:

OpenLayers.Layer.OSM.Mapnik


在displayOutsideMaxExtent设置为true的情况下,我真的很茫然。

我的目标是将世界的默认区域放大并显示(例如美国),并让观看者可以选择不使用默认区域来观看事物。

最佳答案

我想我已经知道了。无论出于什么原因,变焦都没有改变,但是中心显然在移动(只是缩小了,我无法分辨)。再加上我需要转换中心以使用Google投影这一事实,而且看起来工作还不错。

我最终要做的是:

var lonlat = new OpenLayers.LonLat(20,37).transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));
map.setCenter(lonlat);
map.zoomTo(4);

10-07 19:58
查看更多