javascript - Openlayers 初始范围

标签 javascript openlayers

根据 OpenLayers 文档,构造函数 OpenLayers.Map() 允许使用附加属性 extent,即“ map 的初始范围” ( see here )。

但是,我无法让它产生任何效果。我知道我可以通过在构建 map 之后调用.zoomToExtent()来设置初始范围。但我想使用这个 extent 属性,因为我在 eventListeners 属性中设置了 zoomend 事件,但不希望它通过初始调用 .zoomToExtent()。有人知道如何使用这个extent属性吗?

这是无效的代码

map = new OpenLayers.Map('map',{
        extent: bounds,
        layers: [osmLayer,vectorLayer],
        projection: "EPSG:900913",
        eventListeners: {
            zoomend: function() {
                //..zoomend event listener code
            }
        }
    });

在上面的例子中:

  • bounds 是一个有效的 OpenLayers.Bounds 对象
  • osmLayervectorLayer是有效的OpenLayers.Layer对象,其中osmLayer是基础层。

上述代码发生的情况是 map 完全缩小(事实上您实际上看不到任何东西),并且任何平移尝试都会导致抛出错误。为了使 map 进入正确的状态,用户必须放大,然后再次平移,您就可以看到 map 。

最佳答案

恐怕我不确定如何使您列出的代码正常工作,但是以下替代方案对我有用:

map = new OpenLayers.Map('map',{projection: new OpenLayers.Projection("EPSG:4326")});

//ADD A BUNCH OF LAYERS AND SUCH HERE

//Set map center to this location at this zoom level
map.setCenter(new OpenLayers.LonLat(-93.9196,45.7326),5);

作为最后的手段,您可以在缩放函数的开头添加一行:

if(!map_ready) return;

然后在适当的时候将变量map_ready设置为true。

关于javascript - Openlayers 初始范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767067/

相关文章:

javascript - 如何在jsp页面中获取表达式标签的值到javascript进行验证?

javascript - 在javascript中检索javascript注释,或者,如何在js中解析js?

javascript - 绑定(bind)多个点击事件的更短语法 - javascript

javascript - 显示带有 openlayers 和外部 geojson 文件的简单图标

iphone - 如何在 iphone sdk 中使用 openlayers

javascript - 使用ip地址和localhost在机器上打开网站的区别?

javascript - WordPress 中的 "Uncaught TypeError: $ is not a function"

openlayers - 如何使用 OpenLayers 和 Geoserver 通过 TileWMS 进行统计

android - Android 和 Chrome 浏览器上的 Openlayers - 使用视口(viewport)元标记时出现白线

javascript - 如何通过 OpenLayers 绘制一条动画线来说明两点之间的流动?