为什么OpenLayers中的zoomToExtent在页面加载时不起作用?

时间:2013-07-02 18:33:10

标签: javascript openlayers

this地图中的

我添加了一行代码,使其缩放到矢量图层:

map.zoomToExtent(vector_Layer.getDataExtent());

这缩放到赤道与格林威治子午线相交的几内亚湾点的最大变焦。它不应该放大这里,它应该显示苏格兰。

我在Chrome控制台中传递了相同的代码,效果很好。也许,它直到页面加载后才能工作。有没有人知道为什么它在页面加载时不能正常工作,并且有人知道我能做些什么来修复它吗?

由于

1 个答案:

答案 0 :(得分:2)

你是对的;偶尔脚本需要加载页面元素(并在DOM中出现),然后才能对它们进行操作。我首先尝试这两种方法之一:

  1. 将您的JS <script>标记移至页面底部,并移出head。将它们放在结束body标记之前,看看是否有效。这样,您的页面就有时间加载(这是一种非常常见的做法)。

  2. 或者,您可以在onLoad事件中调用此函数。您可以阅读有关如何使用它的信息here

  3. 更新:

    如果上述解决方案不起作用,请查看以下资源。看起来有一些其他方法可以找到OpenLayers地图的“已加载”事件:

    http://lists.osgeo.org/pipermail/openlayers-users/2012-April/024858.html https://gis.stackexchange.com/questions/10671/register-event-loadend-on-layer

    祝你好运!