ArcGIS API For JavaScript(八)之Arcade

ArcGIS API For JS官方文档解析目录

Arcade——表达式语言

1、概览

   Arcade是一种轻量级且安全的表达语言,用于在ArcGIS平台上使用。与其他表达式语言一样,它可以执行数学计算和评估逻辑语句。它专门用于创建自定义可视化和在ArcGIS平台上标记表达式,允许用户在ArcGIS ProArcGIS OnlineArcGIS Runtime APIs和ArcGIS API for JavaScript中编写、共享和执行自定义表达式。

    使Arcade特别适合其他表达和脚本语言的东西是它包含几何函数。在Arcade中的初始版本中,可以创建和引用几何图形。在将来的版本中,可能添加其他几何函数,以允许您计算面积和长度,以及在更复杂的表达式中执行简单的叠置操作。

2、语法

    在许多方面,Arcade的语法与JavaScript类似,允许您声明变量、执行逻辑操作、利用内置函数以及编写自定义函数。然而,这两种语言之间存在着关键的区别。阅读完整的Arcade文档,包括guidesfunction reference,以便了解如何编写一个Arcade表达式的详细信息。您还可以访问playground,它提供了一个环境来测试基于您的数据的自定义脚本。

    Arcade的强大之处在于获得全局变量的访问权。全局变量包含外部值,该值在执行时传递给脚本——基于执行profile

     $feature全局变量允许您访问一个FeatureLayer中features的字段值。每个字段值也被视为全局变量。字段值使用下列语法引用:  

$feature.fieldName

    这使得在运行时使用字段值执行简单计算变得非常容易。

// calculates the % of voters who voted for a
// democratic candidate
($feature.DEM_VOTES / $feature.TURNOUT ) * 100

    Arcade只在上下文或profile中执行,而在其中,它可以理解。在javascript应用程序中,Arcade表达式总是被引用为字符串值。您可以使用Arcade来编写简单的单行表达式,或者更复杂的多行表达式。

    编写单行表达式时,您可以简单地将其用双引号或单引号封装。

renderer.valueExpression = "Round( ($feature.AGE_18UP / $feature.TOTAL_POP) * 100 )";

    在编写多行表达式时,建议将其放入应用程序的JavaScript部分之外的单独脚本标记中,并将该type设置为text/plain,使用唯一ID,您可以使用它在JavaScript中适当的位置引用脚本。

<script type="text/plain" id="adult-population">
  // place multi-line Arcade expression here
</script>

    然后,您可以通过调用document.getElementById()方法来引用作为字符串值的脚本。

renderer.valueExpression = document.getElementById("adult-population").text;

    请参阅下面的示例代码片段和Create a renderer using Arcade sample示例获取更多内容。

2、Profiles

转载自:https://blog.csdn.net/qq_35732147/article/details/80059661

You may also like...