openlayers点击wms服务获取当前点击图层的图层名

本文介绍了如何在OpenLayers中加载Geoserver的WMS图层,并为每个图层添加注记弹框。重点在于解决如何在用户点击地图时获取到当前点击图层的名称。关键在于动态加载LAYERS属性,根据多选框选中的状态确定加载的图层数量和名称。只有在服务中包含图层名时,才能从返回的数据中获取到相关信息。
摘要由CSDN通过智能技术生成

需求:

openlayers加载geoserver发布的三个wms图层,然后分别给三个图层添加注记弹框。

       在网上搜了一天多一直没有找到openlayers怎么可以获取当前点击的图层名,今天终于在简书上看到一个评论里有人也在问同样的问题,惊于世界之小啊!于是我去人家主页一找,果然找到了解决方法。

     刚开始做完之后发现一个bug,就是有的图层即使没有显示在地图上,点击的时候仍然会获取到这个图层的信息,原来是因为我把LAYERS写死了,所以不管图层有没有加载出来,它的source都在。所以最好把LAYERS动态加载,通过获取当前选中的多选框的值来加载LAYERS,(比如有10个多选框,每1个多选框控制1个图层,有3个选中的时候说明地图上加了3个图层,拿到这3个图层名)然后循环LAYERS即可。

这种方法的前提是服务里加了图层名,否则输出data里没有任何关于图层名的信息

 

    var mapview = new ol.View({
        center: [116.046881,38.883558],
        projection: 'EPSG:4326',
        zoom: 11,
        maxZoom: 15,
        minZoom: 5
    })
    var geoServer = true
    if (geoServer) {
        // 如果是 GeoServer 发布的 wms 服务做点击事件
        // 多个图层的名称,
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值