zoukankan      html  css  js  c++  java
  • 利用Arcade表达式显示多行标签

    要素图层依然是全球气象站点分布数据,属性表如下:

    展示效果如下,显示的四行数据分别是属性表中的WIND_NAME,TEMP,WIND(运算之后的),R_HUMIDITY

    本次尝试一次性写全所有的信息:

    1、定义涉及到的变量:

    var minScale = 250000000;

    var featureUrl = "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/weather_stations_010417/FeatureServer/0";

     2、直接进入地图展示环节:

    "esri/WebMap","esri/views/MapView","esri/layers/FeatureLayer"

    var view = new MapView({

      container:"viewDiv",

      map:new WebMap({

        portalItem:{id:"372b7caa8fe340b0a6300df93ef18a7e"},  

        layers:[new FeatureLayer({

          url:featureUrl,

          renderer:{

            type:"simple",

            symbol:{

              type:"simple-marker",

              color:[75,75,75,0.7],

              size:4,

              outline:{

                color:[0,0,0,0.7],

                0.1

              }

            }

          },

          labelingInfo:[{

            labelExpressionInfo:{

              expression:document.getElementById("label-expression").text;

            },

            labelPlacement:"center-right",

            minScale = minScale,

            symbol:{

              type:"text",

              font:{

                size:9,

                family:"Noto Sans"

              }

            },

            horizontalAlignment:"left",

            color:"#2b2b2b"

          }]

        })]

        }),

      center:[-117.842, 33.799],

      zoom:10

    })

     <script type="text/plain" id="label-expression">

      var NAME = $feature.STATION_NAME;

      var TEMP = round($feature.TEMP)+'° F';

      var SPEED = $feature.WIND_SPEED;

      var DEG = $feature.WIND_DIRECT;

      var RH = $feature.R_HUMIDITY+'% RH';

      var WIND = when( SPEED == 0, null,
        (DEG < 22.5 && DEG >= 0) || DEG > 337.5, 'N',
        DEG >= 22.5 && DEG < 67.5, 'NE',
        DEG >= 67.5 && DEG < 112.5, 'E',
        DEG >= 112.5 && DEG < 157.5, 'SE',
        DEG >= 157.5 && DEG < 202.5, 'S',
        DEG >= 202.5 && DEG < 247.5, 'SW',
        DEG >= 247.5 && DEG < 292.5, 'W',
        DEG >= 292.5 && DEG < 337.5, 'NW', null)

      var label = [NAME,TEMP,WIND,RH]

      return Concatenate(labels,TextFormatting.NewLine)

    </script>

  • 相关阅读:
    当程序员的那些狗日日子
    程序员常犯的几个错误
    我没有帮你的义务,却有拒绝你的权力
    并发 并行 同步 异步 多线程的区别
    cookie的存取
    sqlserver 处理百万级以上的数据处理与优化
    为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname
    详细解析 nginx uri 如何匹配 location 规则
    mysql innodb 从 ibd 文件恢复表数据
    mysql 从 frm 文件恢复 table 表结构的3种方法
  • 原文地址:https://www.cnblogs.com/GIS-Yangol/p/10410583.html
Copyright © 2011-2022 走看看