我正在尝试根据 OpenLayers 中的缩放级别隐藏/显示我自己的 kml 文件(多边形) - 当达到某个缩放级别时,应该隐藏一层并显示另一层。到目前为止,我找到了这个解决方案(如何根据缩放级别加载图层?),但它似乎不适用于我的情况。我对 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);
感谢您对此的任何回应和建议。