【问题标题】:How to set default view in OpenLayers, WITHOUT restricting bounds?如何在 OpenLayers 中设置默认视图,而不限制边界?
【发布时间】:2010-08-24 13:33:26
【问题描述】:

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

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

但是,这也(顾名思义)限制了我只能在这些范围内导航。我可以缩小并查看这些范围之外的东西,但我不能再放大它们或滚动到它们。

我尝试过没有任何限制范围(或将其设置为整个地图),但我无法让它专注于我想要的区域。我尝试使用:

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

设置缩放和中心...但它似乎没有做任何事情,除了设置变量“中心”,然后我可以从 map.getCenter() 读取(如果我没有设置它,它是空的,如果我设置它,我可以看到它......但地图本身保持完全扩展,它的中心似乎根本没有改变......)

我使用的地图图层是:

OpenLayers.Layer.OSM.Mapnik

将 displayOutsideMaxExtent 设置为 true...我真的很茫然。

我的目标是让世界的一个默认区域放大并显示在视图中(例如美国),观众可以选择离开默认区域查看事物。

【问题讨论】:

    标签: javascript openlayers proj4js


    【解决方案1】:

    我想我已经明白了。无论出于何种原因,变焦从未改变,但中心显然在移动(它只是被缩小到我无法分辨)。再加上我需要转换中心以使用谷歌投影,它似乎工作得很好。

    我最终做的是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多