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初探[0] 目录与导航

Arcade初探[1] 函数库目录及概述

Arcade初探[2] 数据操作函数

Arcade初探[3] 日期操作函数

Arcade初探[4] 几何体操作函数

Arcade初探[5] 逻辑操作函数

Arcade初探[6] 数学函数

Arcade初探[7] 文本函数

Arcade初探[0] 目录与导航的更多相关文章

  1. Hadoop-2.0 目录简介

    Hadoop-2.0 目录简介 一.目录结构 将下载的压缩包解压: 解压后文件夹如下: 二.各文件夹目录结构 1.bin:Hadoop2.0的最基本管理脚本和使用脚本所在目录.这些脚本是sbin目录下 ...

  2. 解决 ios7.0 以后自定义导航栏左边按钮靠右的问题

    解决 ios7.0 以后自定义导航栏左边按钮靠右的问题 www.111cn.net 编辑:edit02_lz 来源:转载 最近开发了一个ios的app,在ios7.0+出现自定义导航栏左边按钮出现靠右 ...

  3. ABP入门教程0 - 目录

    ABP入门教程 本教程主要讲解如何基于ABP实现CURD(增删改查)示例. 源码已分享:   GitHub   Gitee ABP入门教程0 - 目录 ABP入门教程1 - 开篇 ABP入门教程2 - ...

  4. ABP进阶教程0 - 目录

    ABP进阶教程 本教程主要讲解如何基于ABP实现条件查询/分页/排序/导出/打印等功能. 源码已分享:   GitHub   Gitee ABP进阶教程0 - 目录 ABP进阶教程1 - 条件查询 A ...

  5. tinkphp5.0目录结构说明

    tinkphp5.0目录结构说明 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ ...

  6. Android 5.0状态栏和导航栏

    Material Design推出之后,app中也開始沿用这样的风格 今天来说一下状态栏颜色设置,在4.4的时候推出了透明状态栏和导航栏.在不使用第三方库的情况下,4.4还是没有全然解决存在actio ...

  7. JavaScript初探系列目录

    一  系列导航 结合各方面的参考资料,整理出来以下主要目录,供方便浏览查看 (一)初探系列           JavaScript初探系列(1)——基本概念 JavaScript初探系列(2)——数 ...

  8. 琐碎-hadoop2.2.0目录结构

    之前了解了一下0.20.2和1.1.0.以后现在主流肯定是2.x吧,包含了之前没有的yarn bin Hadoop最基本的管理脚本和使用脚本,这些脚本是sbin目录下管理脚本的基础实现,用户可以用这些 ...

  9. THINKPHP 5.0目录结构

    目录结构 下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下: project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更 ...

随机推荐

  1. 运行java web项目时报错:Several ports (8005, 8080, 8009) required

    运行java web项目时报错:Several ports (8005, 8080, 8009) required 如下图 之所以报上面的错误是因为安装Tomcat的时候,已经把端口8005,8080 ...

  2. apache通过AD验证

    ## apache通过AD验证 #yum install httpd mod_authz_ldap#安装apahce的ldap模块yum install mod_authz_ldap -y #配置ap ...

  3. 实践作业1:测试管理工具实践 Day2

    1.尝试配置TestLink所需环境 安装配置php+apache+mysql时遇到一系列稀奇古怪的错误. 2.百度之后发现有可行的替代工具:Vertrigoserv(VertrigoServ是一个W ...

  4. HDU 1014 Uniform Generator 欧几里得

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 解题思路: 1. 把题目意思读懂后,明白会输入两个数,然后根据题中的公式产生一系列伪随机数,看这 ...

  5. cookie大小

    一.浏览器允许每个域名所包含的cookie数: Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie. Firef ...

  6. 地图开发GIS的应用有哪些?

    GIS的应用领域有哪些? 地理信息系统在最近的30多年内取得了惊人的发展,广泛应用于资源调查.环境评估.灾害预测.国土管理.城市规划.邮电通讯.交通运输.军事公安.水利电力.公共设施管理.农林牧业.统 ...

  7. C# 修改DataTable列 类型 并从新赋值

    DataTable dt = ds.Tables[]; DataTable dtResult = new DataTable(); //克隆表结构 dtResult = dt.Clone(); for ...

  8. 使用Python提取中文字符

    #功能:国际化测试,用于提取应用设计包中的中文字符,并输出report#解压---筛选---整理路径---提取中文---输出报告 ################################### ...

  9. mvc 中Range中max和min值晚绑定

    对于Attribute : Range(min,max)的min和max必须在用的时候给,但是需求有时须要把这两个值存db.动态取出的.这时就须要razor帮忙了: @Html.TextBoxFor( ...

  10. cocos2dx中关于Action动作的相关API的具体介绍

     //CCMoveBy  创建一个移动的动作 //參数1:移动到目标坐标所需的时间 //參数2:目标坐标 //支持reverse 能够获取其反向动作 //CCMoveTo  一样的 //CCAct ...