传入一个mapserver的图层,该图层在发布时已经定义了图例!!!!!

前端代码👇👇👇👇👇

<!-- 图例列表-->
<div id="legend-wrapper">
      <div id="legend-box"></div>
</div>

此处需要注意的时每次渲染不同mapserver生成图例需要清除上一次的图例,提前先removeChild再appendChild很实用!!!!

async createLegend(layer) {
      let that = this;
      if (layer) {
          let Legend = await arcgisPackage.Legend;
          let legendBox = document.getElementById("legend-box");
          let legendWrapper = document.getElementById("legend-wrapper");

          legendWrapper.removeChild(legendBox)

          var elem=document.createElement('div');
          elem.setAttribute('id','legend-box');
          legendWrapper.appendChild(elem)

          legendBox = document.getElementById("legend-box");

          let legend = new Legend({
          view: this.view,
          layerInfos: [
              {
              layer: layer,
              title: "图例",
              },
          ],
          container: legendBox,
          });
          
          that.view.ui.add(legend, "top-left");
          legendWrapper.appendChild(legendBox);
          console.log(legend,legendBox);
      }
    },

友人A
81 声望11 粉丝