openlayers-3 - select 多层
openlayers-3 - select with multiple layers
我正在使用 GeoServer 后端开发基于 ol3 的地图工具。我将不得不在其中发布许多 GeoJSON 基础矢量图层和 WMS 光栅图块,但对从中获取 selecting 有点困惑。在示例中,对于一个矢量或 WMS 层(ol.interaction.Select 和 map.on('singleclick'...))确实有很好的解决方案,但找不到更复杂情况的解决方案。我的问题:
如果您有 多个矢量图层 ,使用 ol.interaction.Select,有没有办法确定每个 selected 特征它们来自哪里(他们属于哪一层)?我必须根据它们的类型设置它们的样式并显示有关它们的信息(这不是我的情况,但是例如,如果您 select 一条道路或一座城市,则做其他事情)。现在,我在将它们加载到 ServerVector 源之前将 属性 附加到每个功能,因此当它们 selected 时,我可以确定如何处理它们。无需详细说明:我有一个可行的解决方案,但想知道是否有其他(官方首选)方法可以做到这一点?
另一个:如果地图也有矢量层和栅格层,我该怎么办?我希望它对用户是透明的:他们单击并获取信息,而由代码决定如何执行此操作。有什么解决办法吗?也许 ol.interaction.Select 和地图的 'singleclick' 事件一起? (向量的交互和 WMS 层的交互?)
提前致谢,
Balazs Eigner
您可以在地图上添加点击事件
所以我们得到像素然后
我们在回调中调用 forEachLayerAtPixel on map 我们得到图层
我正在使用 GeoServer 后端开发基于 ol3 的地图工具。我将不得不在其中发布许多 GeoJSON 基础矢量图层和 WMS 光栅图块,但对从中获取 selecting 有点困惑。在示例中,对于一个矢量或 WMS 层(ol.interaction.Select 和 map.on('singleclick'...))确实有很好的解决方案,但找不到更复杂情况的解决方案。我的问题:
如果您有 多个矢量图层 ,使用 ol.interaction.Select,有没有办法确定每个 selected 特征它们来自哪里(他们属于哪一层)?我必须根据它们的类型设置它们的样式并显示有关它们的信息(这不是我的情况,但是例如,如果您 select 一条道路或一座城市,则做其他事情)。现在,我在将它们加载到 ServerVector 源之前将 属性 附加到每个功能,因此当它们 selected 时,我可以确定如何处理它们。无需详细说明:我有一个可行的解决方案,但想知道是否有其他(官方首选)方法可以做到这一点?
另一个:如果地图也有矢量层和栅格层,我该怎么办?我希望它对用户是透明的:他们单击并获取信息,而由代码决定如何执行此操作。有什么解决办法吗?也许 ol.interaction.Select 和地图的 'singleclick' 事件一起? (向量的交互和 WMS 层的交互?)
提前致谢, Balazs Eigner
您可以在地图上添加点击事件
所以我们得到像素然后
我们在回调中调用 forEachLayerAtPixel on map 我们得到图层