获取arcgis server 发布的WMS服务的图例,然后将图例在echart中显示

本文介绍如何从WMS服务获取图例并将其整合到ECharts中进行可视化展示,通过修改图例数据的图标为图片路径实现,具体步骤包括获取WMS服务的图例图片、将图片路径应用到ECharts的legend配置中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现思路:

WMS中legend是img格式,并且echart支持将图片作为图例样式可视化展示,所以获取WMS图例的img再加载到echart。

1、如下是WMS服务地址:http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer

2、如下是legend展示:

3、在WMS服务json文件中,layerId和url确定图例img的路径,可以获取图片如下

4、将图例img加载到echart中,将legend中data的icon改为图片路径即可,格式:“image://图片路径”

let name1 = ["大牛", "二牛", "三牛"];
      let value = [500, 200, 100];
      let chartData = [];
      for (var land in name1) {
        chartData.push({
          value: value[land],
          name: name1[land],
        });
      }
      var myChart = echarts.init(document.getElementById("main"));
      myChart.setOption({
        tooltip: {
          trigger: "item",
          formatter: "{a} <br/>{b}: {c} ({d}%)",
        },
        color: ["#4472C5", "#ED7C30", "#fff"],

        legend: {
          orient: "horizontal", //horizontal vertical
          icon: "rect",
          x: "right",
          y: "bottom",
          textStyle: {
            //图例文字的样式
            color: "#0b2b5e",
            fontSize: 16,
          },
          // data: name1,
          borderColor: "#000",
          borderWidth: 2,
          data: [
            {
              name: "大牛",
            },
            {
              name: "二牛",
            },
            {
              name: "三牛",
              icon:
                "image://http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/2/images/3D84D80",
            },
          ],
        },
        series: [
          {
            name: "访问来源",
            type: "pie",
            radius: ["30%", "70%"],
            // radius: '70%',
            center: ["50%", "40%"],
            avoidLabelOverlap: false,
            label: {
              normal: {
                show: false,
                position: "center",
              },
              emphasis: {
                show: true,
                textStyle: {
                  fontSize: "30",
                  fontWeight: "bold",
                },
              },
            },
            labelLine: {
              normal: {
                show: true,
              },
            },
            data: chartData,
          },
        ],
      });

5、效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值