javascript – 如何使用Vuelayers与GeoServer服务的WMS切片层进行交互?

原创 287865  2019-06-05 18:02 

我正在使用

 

库开发一个网络地图应用程序,这是网页地图vue组件,具有openlayers的功能

我的模板中有以下代码:

 

而在数据对象中,我有以下财产:

 

那么当我点击它时如何获得图层属性?知道

 

没有提及

 

最佳答案:


只需将点击处理程序放在顶级地图组件上,如下所示:

&lt; vl-map @ click =“mapclick”@ singleclick =“hideoverlay”@ postcompose =“onmappostcompose”:load-tiles-while-animating =“true”ref =“map”:load-tiles-while-interacting =“true”data-projection =“epsg:4326”style =“height:900px”@ mounted =“onmapmounted”&gt;&lt; / vl-map&gt; &lt;-<br />  - &gt; <br />

然后在点击事件中使用

foreachlayeratpixel 函数,该函数对显示在该屏幕像素的每一层进行操作,并为您提供 ol.layer.layer 对象。你可以调用getproperties():

方法:{mapclick:function(evt){evt.map.foreachlayeratpixel(evt.pixel,function(layer){layer.getproperties() },函数(图层){/ *过滤层要获取* /}上的属性数据)}} &lt;-<br />  - &gt; <br />

由于各种原因,上述方法在此方案中不起作用。使用更通用的函数,如

 evt.map.getlayers()。item(0)或evt.map.getlayers.foreach(function(layer){layerprops = layer.getproperties()if(layerprops.id ===“你想要的那个”){//你必须在这里实现你自己的交集逻辑//查看点击点是否与图层相交。}}} &lt;-<br />  - &gt; <br />
本文地址:https://www.xileso.top/307.shtml
版权声明:本文为原创文章,版权归 287865 所有,欢迎分享本文,转载请保留出处!

发表评论


表情