设置子图层的渲染器

MapImageLayer 的 sublayers 的属性允许您为地图服务中的图层动态地设置渲染器。

程序完整源代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
  <title>MapImageLayer - set renderers on sublayers - 4.6</title>

  <link rel="stylesheet" href="https://js.arcgis.com/4.6/esri/css/main.css">
  <script src="https://js.arcgis.com/4.6/"></script>

  <style>
    html,
    body,
    #viewDiv {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }
  </style>

  <script>
    require([
        "esri/Map",
        "esri/views/MapView",
        "esri/layers/MapImageLayer",
        "dojo/domReady!"
      ],
      function(
        Map, MapView, MapImageLayer
      ) {

        /*****************************************************************
         * 为每个子图层设置渲染器
         *****************************************************************/

        // 城市样式
        var citiesRenderer = {
          type: "simple",
          symbol: {
            type: "simple-marker",
            size: 3,
            color: "blue",
            style: "circle",
            outline: {
              width: 0.5,
              color: "gray"
            }
          },
          label: "Cities"
        };
        // 州样式
        var statesRenderer = {
          type: "simple",
          symbol: {
            type: "simple-fill",
            style: "none",
            outline: {
              width: 0.5,
              color: "gray"
            }
          },
          label: "State boundaries"
        };
        // 高速路样式
        var highwaysRenderer = {
          type: "simple",
          symbol: {
            type: "simple-line",
            style: "none",
            width: 0.7,
            color: "white"
          },
          label: "Interstate highway"
        };

        /*****************************************************************
         * 应用渲染器
         *****************************************************************/

        var layer = new MapImageLayer({
          url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer",
          sublayers: [
          {
            id: 2,
            renderer: statesRenderer,
            opacity: 0.4
          },
          {
            id: 1,
            renderer: highwaysRenderer,
            opacity: 0.8
          },
          {
            id: 0,
            renderer: citiesRenderer,
            opacity: 0.6
          }]
        });

        var map = new Map({
          basemap: "dark-gray",
          layers: [layer]
        });

        var view = new MapView({
          container: "viewDiv",
          map: map,
          zoom: 6,
          center: [-83.114, 36.921]
        });

      });
  </script>

</head>

<body>
  <div id="viewDiv"></div>
</body>

</html>

程序运行效果:沙箱地址:https://developers.arcgis.com/javascript/latest/sample-code/sandbox/index.html?sample=layers-mapimagelayer-renderers

(完)

results matching ""

    No results matching ""