leaflet获取超图wms服务图层的要素信息

贴个群号

WebGIS学习交流群461555818,欢迎大家。

点击事件获取经纬度

  const self = this
  testLayer.on('click', function(e){
    if(self.map.hasLayer(testLayer)){
      self.getClickFeatrue(e.latlng,"你的图层名,一般是rest/maps后面的","你的服务地址")
    }
  })

获取要素信息

    /**
     * @desc 超图wms服务,获取点击要素信息
     * @param {object} latlng 鼠标点经纬度
     * @param {String} name - 图层名称
     * @param {String} serverUrl - 超图服务地址
     * @returns 返回数据 geoJson 格式结果数据
     */
    async getClickFeatrue(latlng,name,serverUrl){
      const _this = this
      var polygon = L.polygon([[latlng.lat-0.0001, latlng.lng-0.0001], [latlng.lat-0.0001, latlng.lng+0.0001], [latlng.lat+0.0001, latlng.lng+0.0001], [latlng.lat+0.0001, latlng.lng-0.0001]], {color: 'red'});
      //服务端数据坐标系为 3857,因此将查询数据转为与服务端对应坐标系:
      var geometry = L.supermap.Util.transform(polygon, L.CRS.EPSG4326, L.CRS.EPSG4326);
      var param = await new L.supermap.QueryByGeometryParameters({
        queryParams: {name: name},//zlc
        geometry: geometry
      });
      new L.supermap
        .QueryService(serverUrl)
        .queryByGeometry(param,async function (serviceResult) {
          if(serviceResult.result){
            //leaflet 绘制数据默认为 4326,服务器返回数据为 3857,因此在加载到地图前,先进行坐标系转换:
            var result =await L.supermap.Util.transform(serviceResult.result.recordsets[0].features, L.CRS.EPSG4326, L.CRS.EPSG4326);
            if(result.features.length>0){
              return result
            }
          }
        });
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值