基于样本,我可以看到您可以通过以下内容来设置OpenLayers中的默认视图:
var bounds = new OpenLayers.Bounds(-125, 25, -65, 50);
var map = new OpenLayers.Map('map', {restrictedExtent: bounds });
然而,这也(顾名思义)限制我只能在这些范围内导航。我可以缩小并查看这些边界之外的东西,但我不能缩放回它们,或滚动到它们。
我尝试过没有任何restrictedExtent(或者让它成为整个地图),但是我无法专注于我想要的区域。我尝试使用:
map.setCenter(new OpenLayers.LonLat(0,0), 3);
console.log(map.getCenter());
设置缩放和中心...但它似乎没有做任何事情,除了设置变量“center”然后我可以从map.getCenter()中读取(如果我没有设置它,它是空的,如果我设置它,我可以看到它...但地图本身保持完全扩展,它的中心似乎根本没有变化......)
我正在使用的地图图层是:
OpenLayers.Layer.OSM.Mapnik
将displayOutsideMaxExtent设置为true ...我真的很茫然。
我的目标是让世界的默认区域放大到视图中(例如美国),并且可以选择查看者可以超出默认值来查看内容。
答案 0 :(得分:3)
我想我已经明白了。无论出于何种原因,变焦从未改变,但中心显然是移动(它只是如此缩小,我无法分辨)。再加上我需要将中心转换为使用谷歌投影的事实,它似乎工作正常。
我最终做的是:
var lonlat = new OpenLayers.LonLat(20,37).transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));
map.setCenter(lonlat);
map.zoomTo(4);