要素图层依然是全球气象站点分布数据,属性表如下:
展示效果如下,显示的四行数据分别是属性表中的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>