Openlayers 3:缩放级别更改时更改矢量图层
Openlayers 3: Change the vectors layers when the zoom level change
我是 Open-layers 3 的新用户。我的网页包含由 OL3 添加的 OSM 层,并且我通过 ol.layer.Vector 添加了任何矢量层(标记)。当缩放级别发生变化时,我需要更改矢量图层。请
图层有 setVisible()/getVisible() 方法,因此您可以在特定缩放级别触发图层上的那些方法。可以根据 'moveend' 事件派生缩放,然后您可以触发特定图层是否可见。
Zoom可以从map.getView().getZoom()获取(将return数字表示为zoom),然后告诉layer您需要相应地显示或隐藏。
图层保存在一个 Collection(array) 对象中,可以通过 map.getLayers() 调用获取,然后您可以选择要 show/hide.当我添加图层时,我会记录它们的顺序,这样我就可以直接得到一个。
map.getLayers().item(0) 会 return 我添加到图层的第一层,(1) 第二层等等
您甚至可以通过创建矢量图层直接定义最大和最小分辨率。
class ol.layer.Vector 有选项:
- minResolution:该图层可见的最小分辨率(含)。
- maxResolution:最大分辨率(不包括),低于此层将可见。
如果您不知道地图视图的分辨率,您可以使用方法 map.getView().getResolution() 来找出它
我是 Open-layers 3 的新用户。我的网页包含由 OL3 添加的 OSM 层,并且我通过 ol.layer.Vector 添加了任何矢量层(标记)。当缩放级别发生变化时,我需要更改矢量图层。请
图层有 setVisible()/getVisible() 方法,因此您可以在特定缩放级别触发图层上的那些方法。可以根据 'moveend' 事件派生缩放,然后您可以触发特定图层是否可见。
Zoom可以从map.getView().getZoom()获取(将return数字表示为zoom),然后告诉layer您需要相应地显示或隐藏。
图层保存在一个 Collection(array) 对象中,可以通过 map.getLayers() 调用获取,然后您可以选择要 show/hide.当我添加图层时,我会记录它们的顺序,这样我就可以直接得到一个。
map.getLayers().item(0) 会 return 我添加到图层的第一层,(1) 第二层等等
您甚至可以通过创建矢量图层直接定义最大和最小分辨率。
class ol.layer.Vector 有选项:
- minResolution:该图层可见的最小分辨率(含)。
- maxResolution:最大分辨率(不包括),低于此层将可见。
如果您不知道地图视图的分辨率,您可以使用方法 map.getView().getResolution() 来找出它