Arcade初探[0] 目录与导航
2017年6月,ESRI开发者页面出现了一个新玩意儿:Arcade。
连接:点我
这是什么东西呢?有什么用呢?
1. 是什么
Arcade一种表达语言,可以在ArcGIS平台上使用。不管是编写简单的脚本来控制呈现的功能,还是控制标签文本的表达式,Arcade都提供了一个简单的脚本语法来提供这些功能。Arcade是可移植的,就意味着它的代码不受平台约束,不管你是ArcGIS WebAPI还是ArcGIS桌面软件。
这是官网的翻译。
我的理解就是类似于格式化字符串一样的东西,或者是ECMAScript里的字符串模板。
但是它的功能又不仅限于数据的等价替换,甚至能有更复杂的空间字段、空间属性查询检索等功能。
所以,下定义:Arcade是一种专注于ArcGIS平台数据的检索、分析、逻辑交互的一种语言。
它更像IDL语言、erdas的处理模块用的语言。
2. 有什么用
像其他表达式语言(如SQL)一样,它可以执行数学计算,操作文本和评估逻辑语句。
它还支持多语句表达式,变量和流控制语句。
Arcade专门用于在ArcGIS平台中创建自定义可视化和标注表达式,允许用户在ArcGIS Pro,ArcGIS Online和ArcGIS API for JavaScript中编写、共享和执行自定义表达式。
那它和其他数据检索语言有什么区别呢?它包含了空间数据与几何数据类型,即:地理信息。
在Arcade的初始版本中,可以创建和引用Geometry。在将来的版本中,可以添加其他函数,这样就可以计算面积和长度等简单的空间属性了,并在更复杂的表达式中执行简单的空间叠置分析操作。
需要注意的是,Arcade仅仅是数据语言,并不是编程语言,它不能开发应用程序。它仅仅是以字符串或类似的形式,作为嵌入的表达式,是能在ArcGIS平台的应用程序(ArcGIS Pro、ArcGIS WebAPI程序)中可视化、标记和别名中使用的表达式。
3. 怎么写它
风格上,与JavaScript是类似的。
3.1 字符串
- 'Hello World'
就是这么简单。
3.2 操作要素的属性值
使用类似jQuery的$符号:
- $feature.属性名
feature是全局变量,代表被操作的要素图层中被操作的那个要素。
例如,某个要素类有一个ShapeLength属性,我现在要对其乘以100,可以这么操作:
- $feature.ShapeLength * 100
3.3 返回值
Arcade支持显式返回和隐式返回,显式返回就是我们通常见到的用“return”关键字,而隐式返回则会把最后一行代码作为返回值返回。
- // 显式返回
- return ($feature.POP_2010 / $feature.POP_2000) * 100
- // 隐式返回
- ($feature.POP_2010 / $feature.POP_2000) * 100
3.4 庞大的函数库
与Matlab、SQL相似,Arcade拥有大批量的函数库去帮助用户完成复杂的数据读写,而不需要用户关心用什么编程思想去完成一件事情的操作。
在官方网站中,就有一个Function Reference参考页面。
4. 目录
对它的解读,重在函数库的解读。
Arcade初探[1] 函数库目录及概述
Arcade初探[2] 数据操作函数
Arcade初探[3] 日期操作函数
Arcade初探[4] 几何体操作函数
Arcade初探[5] 逻辑操作函数
Arcade初探[6] 数学函数
Arcade初探[7] 文本函数
Arcade初探[0] 目录与导航的更多相关文章
- Hadoop-2.0 目录简介
Hadoop-2.0 目录简介 一.目录结构 将下载的压缩包解压: 解压后文件夹如下: 二.各文件夹目录结构 1.bin:Hadoop2.0的最基本管理脚本和使用脚本所在目录.这些脚本是sbin目录下 ...
- 解决 ios7.0 以后自定义导航栏左边按钮靠右的问题
解决 ios7.0 以后自定义导航栏左边按钮靠右的问题 www.111cn.net 编辑:edit02_lz 来源:转载 最近开发了一个ios的app,在ios7.0+出现自定义导航栏左边按钮出现靠右 ...
- ABP入门教程0 - 目录
ABP入门教程 本教程主要讲解如何基于ABP实现CURD(增删改查)示例. 源码已分享: GitHub Gitee ABP入门教程0 - 目录 ABP入门教程1 - 开篇 ABP入门教程2 - ...
- ABP进阶教程0 - 目录
ABP进阶教程 本教程主要讲解如何基于ABP实现条件查询/分页/排序/导出/打印等功能. 源码已分享: GitHub Gitee ABP进阶教程0 - 目录 ABP进阶教程1 - 条件查询 A ...
- tinkphp5.0目录结构说明
tinkphp5.0目录结构说明 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ ...
- Android 5.0状态栏和导航栏
Material Design推出之后,app中也開始沿用这样的风格 今天来说一下状态栏颜色设置,在4.4的时候推出了透明状态栏和导航栏.在不使用第三方库的情况下,4.4还是没有全然解决存在actio ...
- JavaScript初探系列目录
一 系列导航 结合各方面的参考资料,整理出来以下主要目录,供方便浏览查看 (一)初探系列 JavaScript初探系列(1)——基本概念 JavaScript初探系列(2)——数 ...
- 琐碎-hadoop2.2.0目录结构
之前了解了一下0.20.2和1.1.0.以后现在主流肯定是2.x吧,包含了之前没有的yarn bin Hadoop最基本的管理脚本和使用脚本,这些脚本是sbin目录下管理脚本的基础实现,用户可以用这些 ...
- THINKPHP 5.0目录结构
目录结构 下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下: project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更 ...
随机推荐
- LuaJavaBridge - Lua 与 Java 互操作的简单解决方案
http://dualface.github.io/blog/2013/01/01/call-java-from-lua/ 最近在游戏里要集成中国移动的 SDK,而这些 SDK 都是用 Java 编写 ...
- lua API函数大全
Lua5.1中的API函数 lua_State* luaL_newstate()Lua脚本的编译执行是相互独立的,在不同的线程上执行.通过luaL_newstate()函数可以申请一个虚拟机,返回指针 ...
- 再学习之Spring(依赖注入)
一.概述 Spring框架是以 简化Java EE应用程序的开发 为目标而创建的.Spring可以实现很多功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入和面向切面编程.几乎Sprin ...
- 腾讯 AI Lab 计算机视觉中心人脸 & OCR团队近期成果介绍(3)
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:周景超 在上一期中介绍了我们团队部分已公开的国际领先的研究成果,近期我们有些新的成果和大家进一步分享. 1 人脸进展 人脸是最重要的视觉 ...
- bundles.Add( )下无法绑定后缀为min.css的文件
1.问题描述: 在绑定css的时候,除了后缀名为.min.css的文件,在render.style()不显示外,其他的css都正常加载, 2.解决办法: 这个是我在调试了几遍之后发现的规律,然后解决办 ...
- Android Weekly Notes Issue #286
December 3rd, 2017 Android Weekly Issue #286 本期文章包含如何通过踩坑来学习Kotlin,以及利用Kotlin的data class做MVVM状态保存,还包 ...
- mysql 打开慢查询日志
打开mysql的配置文件 my.ini或是my.cnf找到节点[mysqld]下添加下面这两行(默认可能不带这两行,直接手敲即可) [AppleScript] 纯文本查看 复制代码 ? 1 2 3 ...
- Jarvis OJ - [XMAN]level0 - Writeup
差不多最简单的pwn了吧,不过本菜鸟还是要发出来镇楼 分析一下,checksec 查看程序的各种保护机制 没有金丝雀,没有pie 执行时输出Hello,World,在进行输入,溢出嘛 开工 丢到id ...
- 【Java入门提高篇】Day9 Java内部类——静态内部类
今天来说说Java中的最后一种内部类--静态内部类 所谓的静态内部类,自然就是用static修饰的内部类,那用static修饰过后的内部类,跟一般的内部类相比有什么特别的地方呢? 首先,它是静态的,这 ...
- MFC控件实现视频“暂停” “播放”循环
问static有什么作用,朗朗上口,可是用起来呢 MFC"按钮"控件实现开始显示"播放",按一下之后就开始播放相关视频,并且按钮显示为"暂停" ...