图标必须在不同的视图级别可见

时间:2017-03-14 14:57:00

标签: icons size openstreetmap openlayers

我使用openlayers3来构建应用程序

我想更改缩放级别图标在

处可见

https://bestofosm.org/?lon=4.0798&lat=50.9136&zoom=15#interesting-het-loo-garden

例如

如果你去伦敦,你会看到机场在zoomlevel 10上可见

假设我想在zoomlevel 10上看到所有旅游图标 和zoomlevel 15的机场图标 这有可能吗?

1 个答案:

答案 0 :(得分:0)

最简单的解决方案是将标记放在不同的图层中,并为每个图层指定minResolution和maxResolution。当地图在这些分辨率之外缩放时,图层将自动隐藏。类似的东西:

var touristicIcons = new ol.layer.Vector({
    source: touristicIconsSource,
    minResolution: xx
    maxResolution: xx
});

// Repeat for airports layer, with different resolutions

将缩放级别写为分辨率将不起作用。您需要找出所需缩放级别的分辨率。最简单的方法是使用这个小小的黑客,每次滚动地图时记录缩放级别和分辨率:

map.getView().on('change:resolution', function (event) {
    var view = event.currentTarget;
    console.log('Zoom: ' + view.getZoom() + 
                ', resolution: ' + view.getResolution());
});