用Arcade表达式添加标签
Arcade表达式是轻量级的脚本语言,我们可以通过全局变量$feature获取要素属性。比如说,要为城市添加标签,利用CITY_NAME列,我们可以编写语句:$feature.CITY_NAME。Arcade语句可以利用表达式来执行数学运算,逻辑运算。
首先来看下,这次需要展现的要素图层是:
我们用到的属性表的两列信息:风向和风速
最终展示效果是:
包含两个部分:用不同的样式展示要素点,添加标记。
1、创建地图底图并且显示:
"esri/Map","esri/views/SceneView"
var map = new Map({
basemap:"topo"
});
var view = new SceneView({
map:map,
container:"viewDiv",
camera:{ //在三维图层中需要设置视角
position:{
x:-10930027,
y:5458284,
z:126663,
spatialReference:{wkid:102100}
},
heading:63,
tilt:63
},
constraints:{ //constraints要和camera一起设置
altitude:{min:100000}
}
});
2、获取要素图层,并且显示
"esri/layers/FeatureLayer"
var layer = new FeatureLayer({
url:"https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/weather_stations_010417/FeatureServer/0",
elevationInfo:{ //标记贴在地上显示
mode:"relative-to-ground",
offset:1000
},
renderer:{
type:"simple",
symbol:{
type:"point-3d",
symbolLayers:[{ //用于3D显示的设置
type:"object",
material:{color:"red"}, //标记的颜色
resource:{primitive:"tetrahedron"}, //标记的样式
width:10000,
depth:20000,
height:1000
}]
}
},
visualVariables:[{
type:"rotation",
valueExpression:"$feature.WIND_DIRECT-180",
axis:"heading"
}],
opacity:1,
labelingInfo:[ ]
});
map.add(layer);
3、添加标签
var windArcade = document.getElementById("wind-direction").text;
var windclasses = [{min:0,max:67.5,color:"#4c82c4"},{min:...}];
var labelClass = windclasses.map(function(windclass){
return {
symbol:{
type:"label-3d",
symbolLayers:[{ //3d显示效果
type:"text",
material:{color:"white"},
halo:{color:windClass.color,size:1},
size:12
}]
},
labelPlacement:"above-center",
labelExpressionInfo:{
expression:windArcade
}
}
})
<script type="text/plain" id="wind-direction">
var DEG = $feature.WIND_DIRECT;
var SPEED = $feature.WIND_SPEED;
var DIR = When( SPEED == 0, "",
(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", "" );
return SPEED + " mph " + DIR;
</script>
用Arcade表达式添加标签的更多相关文章
- 初步认识thymeleaf:简单表达式和标签(一)
初步认识Thymeleaf:简单表达式和标签.(一) 本文只适用于不会Java对HTML语言有基础的程序员们,是浏览了各大博客后收集整理,重新编辑的一篇文章,希望能对大家有所帮助.最后本文如果有哪 ...
- javascript的document中的动态添加标签
document的高级篇中提供了节点操作的函数,具体包括:获取节点,改变节点,删除节点,替换节点,创建节点,添加节点,克隆节点等函数.我们可以利用这些函数动态改变html的节点. 1.JavaScri ...
- EasyUI创建异步树形菜单和动态添加标签页tab
创建异步树形菜单 创建树形菜单的ul标签 <ul class="easyui-tree" id="treeMenu"> </ul> 写j ...
- Nemo Documents – 给文件添加标签 以日历的形式将文件呈现出来,很像 Outlook,你可以根据年、月、日来查看不同类型的文档
Nemo Documents – 给文件添加标签 scavin(Google+) on 2012.03.28. Nemo Documents 是款文件组织管理工具(文档管理器),不是街道大妈胜似大 ...
- 添加标签2 jquery 和JS
TAG添加标签 做了个方法方便调用 一.JS版本 <!DOCTYPE html> <html lang="en"> <head> <met ...
- ThinkPHP框架下,jq实现在div中添加标签并且div的大小会随之变化
php初学者,有什么不对的还请指正. 首先是在html页面中用jq实现添加标签:divAchivePersonnal是select所在的div的外层div,divselectAchivePersonn ...
- 【节点-添加标签】【节点-删除标签】【显示年-月-日-星期】【math算数】【正则表达式】
1.节点-添加标签 <body><div id="div1"><p id="p1">这是一个段落.</p>< ...
- jQuery输入框回车添加标签特效
效果如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- JS添加标签效果
JS添加标签效果 在豆瓣网上添加自己的标签是一种常见的效果,今天也就做了一个简单的demo.由于时间的问题 我不多原理,大家可以试着操作几遍就能明白其中的原理了. JSFiddle的效果如下: 点击我 ...
随机推荐
- [SDOI2016]数字配对(费用流+贪心+trick)
重点是如何找到可以配对的\(a[i]\)和\(a[j]\). 把\(a[i]\)分解质因数.设\(a[i]\)分解出的质因数的数量为\(cnt[i]\). 设\(a[i]\geq a[j]\) 那么\ ...
- EasyUI闪屏,EasyUI页面加载提示:原理+代码+效果图
使用EasyUI时,有个经常遇到的问题,页面还没有渲染完成的时候,就展现了. 刚刚开始很混乱,等加载完成后,就好了. 参考这篇文章http://blog.csdn.net/zheng0518/arti ...
- android Build系统
http://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/ android Build系统 超链接
- 把Dev的excel表格用clientdataset保存到数据库中。
网上很多,如何把图片.word.excel等保存到数据库中.可是自己就是死活出现异常,百思不得其解.原因找到了,为什么没有去弄明白: 在sql server字段类型中,我把存储字段设成binary,结 ...
- Hadoop(2)_机器信息分布表
1.分布式环境搭建 采用4台安装Linux环境的机器来构建一个小规模的分布式集群. 图1 集群的架构 其中有一台机器是Master节点,即名称节点,另外三台是Slaver节点,即数据节点.这四台机器彼 ...
- 【iOS开发-78】用代码实现UITabBarController+UINavigationController
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2Vpc3ViYW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- BAT常问问题总结以及回答(java基础回答一)
java 基础 八种基本数据类型的大小,以及他们的封装类 答:八种数据类型分别是byte(1字节)-128~127.short(2字节)-32768~32767.char(2字节).int(4字节) ...
- man pthread_mutex_init 或 man pthread_mutex_lock 没有结果的解决的方法
问题: 在刚装好的 Mint/Ubuntu 可能会出现 man pthread_mutex 相关的函数没结果, 报No manual entry for pthread_mutex_init 的错误. ...
- 数据库SQL Server2012笔记(三)——表的复杂查询
1.数据分组--max/min/avg/sum/count select avg(字段名),sum(字段名) from 表名 select count(*) from 表名 select ...
- java 基本数据类型及自己主动类型提升
基本数据类型:8种 1.整型: byte 1个字节 8位 -128到127 short 2个字节 16位 -2^15到(2^15)-1 int 4个字节 32 ...