传入一个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); } },