我有一个名为“路障”的点图层,它具有三个字段: 事件 ID,用户可以在其中指定任何类型事件的事件 ID; “开始时间”,用户选择日期和时间;和“结束时间”,用户可以在其中选择暂定日期和时间。该图层已发布到 ArcGIS Online。我想根据开始时间和结束时间创建符号系统。当路障开始时,它会变成红色,当路障结束时,它会变成绿色。
在可视化配置文件中创建一个 Arcade 表达式,根据当前时间和开始/结束时间返回两个或三个不同的值(取决于您是否要表示活动/非活动或之前/期间/之后)。
下面的示例返回之前/期间/之后的三个不同值,使用 Arcade 的
Now()
函数 获取当前时间:
var currentTime = Now();
var status;
if (currentTime < $feature.StartTime) {
status = "Planned";
} else if (currentTime <= $feature.EndTime) {
status = "Active";
} else {
status = "Complete";
}
return status;
注意:根据查看数据的方式/地点,这可能不会创建“实时”符号系统。例如,如果您在 ArcGIS Online 中共享 Web 地图或应用程序,则符号系统不会每秒重新评估,因此
Now()
/currentTime
将仅表示 Web 地图或应用程序最初加载的时间,并且符号系统可以直到刷新页面才会过时。