【问题标题】:show/hide kml on defined zoom levels在定义的缩放级别上显示/隐藏 kml
【发布时间】:2013-04-01 13:06:42
【问题描述】:

我正在尝试根据 OpenLayers 中的缩放级别隐藏/显示我自己的 kml 文件(多边形) - 当达到某个缩放级别时,应该隐藏一个图层并显示另一个图层。到目前为止,我找到了这个解决方案 (How to load layers depending on zoom level?),但它似乎不适用于我的情况。我对javascript比较陌生,我不知道我是否正确使用了这个,我还对示例进行了一些更改:

map.events.register("zoomend", map, zoomChanged);   //inserted in function init()

function zoomChanged()
    {
      if (map.getZoom() == 18)
      {
      kml1.setVisibility (true);
      kml2.setVisibility (false);
      }
      else if (map.getZoom() == 19)
      {
      kml1.setVisibility (false);
      kml2.setVisibility (true);
      }
    }

我还尝试了另一种隐藏 kml1 的解决方案,但在这种情况下,我的图层未绘制。 LayerSwitcher 工作 - 图层在定义的缩放级别中是不可选择的,但在缩小时什么都不可见(当图层已经可选择时):

var kml1 = new OpenLayers.Layer.Vector("prehled", 
                {minScale: 1000,},                                //1:1000
                {
                projection: map.displayProjection,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "kml/zahrada.kml",
                    format: new OpenLayers.Format.KML({
                        extractStyles: true,
                        extractAttributes: true,
                    })
                })
            });
    map.addLayer(kml1);

感谢您对此的任何回复和建议。

【问题讨论】:

    标签: zooming openlayers kml


    【解决方案1】:

    试试:

    var kml1 = new OpenLayers.Layer.Vector("prehled", {
                minResolution: map.getResolutionForZoom(18), // or the desired maximum zoom
                projection: map.displayProjection,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "kml/zahrada.kml",
                    format: new OpenLayers.Format.KML({
                        extractStyles: true,
                        extractAttributes: true
                    })
                })
            });
    map.addLayer(kml1);
    

    ```

    【讨论】:

    • 非常感谢,我花了好几天的时间,即使只有一行代码是魅力 :-) 它的工作原理!
    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 2013-12-01
    • 2011-07-27
    • 2012-02-29
    • 1970-01-01
    • 2010-11-10
    • 2015-06-21
    相关资源
    最近更新 更多