【一起学习Arcade】(1):Text函数和逻辑函数

2024-03-01 20:20

本文主要是介绍【一起学习Arcade】(1):Text函数和逻辑函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Arcade语言是专为在ArcGIS中使用而设计的。是一种可移植、轻量级且安全的表达语言,用于在ArcGIS应用程序中创建自定义内容。

与其他表达式语言一样,它可以执行数学计算、设置文本格式和计算逻辑语句,还支持多语句表达式、变量和流控制语句。

在ArcGIS中,和其它语言,如VB、python相比,Arcade的优势是包含了数据特征和几何数据类型等内容。

Arcade在ArcGIS中的使用场景包括【标注、字段计算器、属性规则、工具中的计算表达式】等。

我也是刚开始学习Arcade,记录一下以后可能会用到的东西。

东西比较多,要分几个篇章慢慢来。

第一篇记录下Text函数和逻辑函数。


一、Text函数

1、Concatenate【连接字符串】

最简单的连接:

Concatenate([$feature.DLBM,$feature.DLMC,$feature.QSDWMC])
Concatenate($feature.DLBM,$feature.DLMC,$feature.QSDWMC)
return "0307其他林地小村村"

连接的字符串间可以添加符号:

Concatenate([$feature.DLBM,$feature.DLMC,$feature.QSDWMC],"/")
return "0307/其他林地/小村村"

2、Count【字符个数】

返回文本值中的字符数。

Count('规划GIS会')
return 6

3、Find【找到字符串所在的位置】

需要注意,第一个参数是查找的字符串,第二个参数才是文本。

Find("划", "规划GIS会")
return 1

4、FromCharCode【UTF-16字符代码转文本】

返回根据一系列UTF-16字符代码创建的文本值。一些符号还挺有意思的

FromCharCode(88,89,90)
return 'XYZ'
FromCharCode(55356, 57097)
return '🌉'

5、FromCodePoint【UTF-32字符代码转文本】

返回从一系列UTF-32代码点创建的文本值。

FromCodePoint(88,89,90)
return 'XYZ'
FromCodePoint(127753)
return '🌉'

6、Left【从左边取值

从左边起取2位。

Left("规划GIS会",2)
return "规划"

7、Lower【小写

全部小写。

Lower('HELLO')
return 'hello'

8、Mid【从中间位置获取多个字符

从第3位起,取3个字符。

Mid("规划GIS会", 2, 3)
return "GIS"

9、Proper【大小写

参数everyword,每个单词第一个字母大写,参数firstword,只有第一个字母大写。

Proper('the quick brown fox', 'everyword')
return 'The Quick Brown Fox'
Proper('the quick brown fox', 'firstword')
return 'The quick brown fox'

10、Replace【替换文本

将参数2替换为参数3。

Replace("规划GIS会","会","不会")
return "规划GIS不会"

11、Right【从右边取值

从右边起取2位。

Right("规划GIS会",2)
return "S会"

12、Split【分割文本

参数2是分割符,参数3决定从结果的list取几个要素。

Split("林地;园地;耕地",";")
return ["林地","园地","耕地"]
Split("林地;园地;耕地",";",2)
return ["林地","园地"]

13、Text【任意值转为文本

将任意值转换为文本值。提供了一个可选的格式参数,用于格式化日期和数字数据输入。如果无法确定等效的文本转换,则返回null。

Text($feature)     // "{"geometry":{"rings":[[[39606160.8011,2993152.7727],......."
Text(123, '0000') // '0123'
Text(123, '00') // '23'
Text(1234, '#,###') // '1,234'
Text(12345678.123, '#,###.00') // '12,345,678.12'
Text(1234.55, '$#,###.00') // '$1,234.55'
Text(1.236, '#.00') // '1.24'
Text(1234.5678, '#,##0.00#') // '1,234.568'
Text(-2, 'Floor #;Basement #') // 'Basement 2'
Text(2, 'Floor #;Basement #') // 'Floor 2'
Text(0.3, '#%') // '30%'
Text(Now(), 'dddd, MMMM D, Y @ h:m:s')  // ÐÇÆÚËÄ, ¶þÔÂ 29, 2024 @ 4:13:50(字符格式原因不明)

14、ToHex【整数转十六进制

ToHex(100)  // 64
// RGB颜色生成
var r = ToHex(65); // returns "41"
var g = ToHex(105); // returns "69"
var b = ToHex(225); // returns "E1"
Concatenate("#",r,g,b)
// Returns "#4169E1"

15、Trim【去除空格

删除输入文本值开头或结尾的空格,中间的空格不会被删除。

Trim("    规划  GIS   会    ")
return "规划  GIS   会"

16、Upper【全部大写

Upper('Hello')
return 'HELLO'

二、逻辑函数

1、Boolean【转布尔】

尝试将给定的非布尔值转换为布尔值,如0是false,1是true:

Boolean("true")
// returns true
Boolean(0)
// returns false
Boolean(1)
// returns true
Boolean('hello')
// returns false

2、Decode【属性映射】

将表达式求值为一个值,并将结果值与后续参数的值进行比较。如果表达式的计算结果为匹配值,则返回后续的参数值。如果没有找到匹配项,则可以提供默认值。有点像属性映射。

var code = $feature.DLBM;
var decodedValue = Decode(code, '1104', '坑塘水面', '0201K', '可调整果园', 'Other');
return decodedValue

3、DefaultValue【设置默认值,消空值】

如果检测到空值,则返回指定的默认值。

DefaultValue($feature.小类名称, 'no data')

4、Equals【判断相等

指示两个值是否相等。对象类型(即阵列、特征、字典、几何体)只有在它们是同一对象时才会返回true。

Equals(1, "1") // returns falsevar testVal = "test";
Equals(testVal, "test") // returns truevar array1 = Array(5);
var array2 = Array(5);
Equals(array1, array2); // returns false
Equals(array1, array1); // returns true

5、IIf【简单版的三目运算表达式

如果条件表达式的计算结果为true,则返回给定值;如果条件表达式计算结果为false,则返回备用值。

var name = $feature.中类名称;
IIf(name == "果园", '有吃的', '饿死了');

6、IsEmpty【判断为空

如果提供的值为null或为空文本(例如""),则返回true。对于所有其他情况,包括空数组和字典,都返回false。

IsEmpty(null)    // Returns true
IsEmpty('hello world')   // Returns false

7、IsNan【判断是否为非数字

是数字则返回false,如果是其它能转为数字的输入,也返回false。

// Returns true
IsNan(Infinity / Infinity)
// Returns false
IsNan('4')

8、TypeOf【返回数据类型

返回输入值的类型。类型包括:Array, Date, Text, Boolean, Number, Dictionary, Feature, FeatureSet, Point, Polygon, Polyline, Multipoint, Extent, Function, Unrecognized Type。

TypeOf(true)   // return 'Boolean'
TypeOf(Now())  // return 'Date'

9、When【条件表达式

跟c#里的While是一样的,但写法略有不同。

var density = $feature.densityField;
var ranking = When(density < 50, 'low', density >=50 && density < 100, 'medium', density >= 100, 'high', 'n/a');

10、if【条件表达式

if其实不是函数,暂且先记在这里。

var name = $feature.中类名称;
if(name == "果园")return "有吃的"
elsereturn "饿死了"

这篇关于【一起学习Arcade】(1):Text函数和逻辑函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763695

相关文章

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不