选择数据

数据是您使用 Experience Builder 创建的大多数应用程序的核心。 许多微件都是数据驱动的,且构建器提供统一的数据管理。 可以在应用程序中连接使用相同数据的微件。 例如,您可以在多个微件之间同步记录选择,并在连接到相同数据的微件上应用相同的过滤器。

将数据添加到 Experience Builder 中的应用程序,就是数据源连接的特定实例。 此功能的优势如下所述:

  • 可在您构建的应用程序中同步更新原始数据源。
  • 您可以多次添加同一数据源。 连接成为 Experience Builder 中的独立数据。 除了对原始数据源进行的更新(例如编辑要素和更新属性)外,大多数的数据处理过程之间都不会相互影响(例如筛选和排序)。

管理数据

您添加到应用程序中的所有数据都列在构建器工作空间的数据面板中。 您可以在此处管理应用程序的数据,并查看相关信息,例如与数据相连的微件数量和名称以及连接到的字段名称,如果适用。 使用搜索框来过滤列表,以帮助您查找特定数据源。 搜索结果包括您已添加到应用程序的 web 地图和 web 场景的子图层。

向应用程序添加数据

将数据添加到应用程序时,可以选择作为内容项存储在 ArcGIS 中的 web 地图、web 场景和图层,其中包括:

  • 要素图层 - 要素图层是相似地理要素的分组,例如建筑物、宗地、城市、道路或地震震中。 要素可以是点、线或面(区域)。 要素图层最适合在底图上可视化数据。
  • 场景图层与关联要素图层 - 场景图层是由 3D 要素对象和 z 值(高程值)组成的集合。
    • 点场景图层 - 用于显示大量点数据的场景图层,可达数百万个点。
    • 3D 对象场景图层 - 主要用于显示 3D 要素(如建筑物、树木和城市中的其他元素)的场景图层。
    • 建筑场景图层 - 基于建筑物信息模型 (BIM) 数据生成的建筑物 3D 渲染图层。 建筑场景图层包含以下子图层:
      • 完整模型 - 按工作学科分组的建筑物所有要素。 工作学科包括建筑、电气、基础设施、机械、管道和结构。 每个学科是一个建筑物组子图层,其中包含建筑物要素的建筑物组件子图层,如屋顶、墙壁、门、空调单元、照明装置、柱子、地基等。
      • 概览 - 显示建筑外表面的建筑物组件子图层。
  • 要素、场景和地图服务 - 服务使得要素、场景和地图可以在服务器上供他人使用。
  • 要素集合(不包括地图注释和路径图层)- 具有专注和有限功能的要素图层子集。
  • 影像图层 - 基于栅格数据的地图制图集合。 栅格数据由像素(或像元)矩阵组成,通常用于存储影像和其他由遥感设备(如卫星和无人机系统)捕获的信息。
    • 切片影像图层 - 由一个或多个影像文件生成的影像图层。 如果使用多个图像创建切片影像图层,则图像将镶嵌在一起成为单个图像。
    • 高程图层 - 采用有限错误栅格压缩 (LERC) 格式的预渲染缓存图像切片的集合。 LERC 是单波段或高程数据的压缩格式。 高程图层适合以全局和景观尺度显示场景中的地形。
    • 动态影像图层 - 由单张影像或影像集合组成的影像图层。 它们类似于切片影像图层。 动态影像图层可以具有相关联的处理模板,可以使用这些模板动态执行栅格分析。 同样支持不含字段信息的动态影像图层。
  • 定向影像图层 - 从任意角度拍摄的影像集合,包括倾斜、气泡、街道侧位置、检查和 360 度影像。 定向影像可以是来自不同光学相机的影像,包括移动相机、无人机系统和地面传感器。
  • 子类型图层组 - 包含多个子图层的复合要素图层,其中的子图层被称为子类型图层。 子类型是共享相同属性和行为的要素类子集。 子类型图层组由每个子类型对应的子图层组成。 子类型图层组的子图层来自于单一的要素源,这意味着对该要素源的单次查询会返回每个子图层的结果。 子类型图层组的一个优势是性能更佳。 加载具有 10 个子图层的子类型图层组的数据的速度,比单独加载 10 个单独要素图层的数据更快。

您可以在您的内容、群组、组织和公开共享的内容中浏览和搜索这些数据源,其中包括 ArcGIS Living Atlas of the World如果您的组织管理员在安全设置中启用此功能,则可以浏览组织外部用户拥有的内容。 同时支持要素、图像、场景或地图服务 URL 中的图层。 另外,在将 web 地图和 web 场景添加至应用程序时,可以将其支持的图层用作微件的数据源。

注:

  • 将 Web 地图或 Web 场景添加为数据源时,微件可以连接到其支持的图层,例如表、地图图像图层、切片图层和图层组。 不支持的图层类型在微件设置中不可用,并且不会显示在数据面板的详细信息选项卡中。
  • 使用 ArcGIS Maps SDK for JavaScript 版本 3.x 创建的 Web 地图和 Web 场景无法在 Map Viewer 经典版 中打开或者 Scene Viewer 不能用作数据源。 (如果您添加了其中一个项目,则该项目将不可选且作为错误卡片显示在数据面板中。)

可以通过以下方式向应用程序添加数据:

  • 添加任何微件之前,请单击数据面板中的添加数据按钮以添加用于应用程序的数据。Experience Builder 中支持的所有数据类型都列在添加数据窗口中。
  • 如果在添加微件之前不添加数据,则可以在配置微件时通过单击选择数据窗格底部的添加数据按钮来添加数据。 仅可添加微件支持的数据类型。 您在配置微件时添加的数据也会显示在数据面板中,并可在配置其他微件时选择这些数据。
注:

当添加数据时,可以隐藏服务、图层组、web 地图或或 web 场景中的一些子图层。 您还可以将其隐藏在服务、组、web 地图或 web 场景的详细信息面板下。 配置微件时,隐藏图层在选择数据列表中将不可用。 您仅可以隐藏尚未使用的图层。

使用 Arcade 添加数据

可以使用 Arcade 以生成要素图层作为应用程序中的数据源,这意味着您可以使用自定义逻辑来增强现有数据。 当使用 Arcade 添加数据时,返回类型必须为 FeatureSet

要使用 Arcade 添加数据,请单击数据面板中的添加数据以打开添加数据窗口,然后单击 ArcadeArcade 编辑器随即出现,您可以输入并运行脚本。

使用 Arcade 创建的要素图层的行为类似于通过其他方法添加的要素图层。 可以配置数据视图、启用自动刷新以及配置导出选项。 当您希望在不改变原始数据源的情况下丰富或者扩展现有数据,或者当您不希望发布单独的图层时,使用 Arcade 添加数据将非常有用。

即使在使用 Arcade 脚本添加要素图层之后,您也可以对用于添加数据的该脚本进行编辑。

如果通过添加门户项目来添加数据,则已添加的数据源为图层项目本身。 它将继承为该图层配置的任何原始服务功能,例如查询、编辑或导出。

以下是用于直接从门户项目添加数据的示例 Arcade 脚本:

var features = FeatureSetByPortalItem(Portal("https://arcgis.com"), <itemID>, 0)

如果您添加作为图层子集的数据(例如过滤原始图层的结果),或者您从头开始创建数据,则 Experience Builder 会将数据视为要素集合。 要素集合不会从其原始图层继承服务功能。 最多可在用于构造要素集合的 FeatureSet 中返回 50,000 个要素。

以下是用于从门户项目添加已过滤数据的示例 Arcade 脚本:

var features = FeatureSetByPortalItem(Portal("https://arcgis.com"), <itemID>, 0)

var now = Now();
var thirtyDaysAgo = DateAdd(now, -30, 'days');

// Return only inspections from the last 30 days
return Filter(features, "InspectionDate >= @thirtyDaysAgo");

以下是用于从头开始添加数据的示例 Arcade 脚本:

var cities = [
  { name: "Tokyo", pop: 14254039, coords: [139.6917, 35.6895] },
  { name: "New York", pop: 8478072, coords: [-74.0060, 40.7128] }
];
 
var features = [];
for (var i in cities) {
  Push(features, {
    geometry: { x: cities[i].coords[0], y: cities[i].coords[1], spatialReference: { wkid: 4326 } },
    attributes: {
      City: cities[i].name,
      Population: cities[i].pop
    }
  });
}
 
var jsonDictionary = {
  fields: [{
    name: "City",
    alias: "City Name",
    type: "esriFieldTypeString"
  }, {
    name: "Population",
    alias: "Population",
    type: "esriFieldTypeInteger"
  }],
  geometryType: "esriGeometryPoint",
  features: features
};
 
return FeatureSet(Text(jsonDictionary));

移除数据

您可以使用数据面板中选项卡的移除选项来移除数据源。 数据源中包含的数据也将被移除。 当您在此处移除数据时,该数据将不可再用于微件配置。 如果您移除的数据已被某一微件所使用,则该应用程序将不再显示此数据中的信息,并且与此数据连接的所有微件都将受到影响。 您可以在删除数据的同时删除受影响的微件,也可以稍后再连接其他数据来重新配置微件设置。

导出设置

数据面板中,可以单击导出设置按钮 导出设置 以打开导出设置面板。 可以在此处查看应用程序中支持的所有图层,并选择允许用户在运行时使用导出 数据操作导出的图层。

  • 可以单击图层旁的导出设置按钮 导出设置 以打开一个面板,可以在该面板中允许导出并同时为所有受支持的图层选择受支持的导出格式。
  • 应用程序中的所有地图和场景及其受支持的图层将显示在图层列表中。 可以启用每个图层旁的切换开关,以允许用户从该图层中导出数据。
  • 当针对某个图层允许导出时,导出设置按钮 导出设置 随即出现在该图层旁边。 可以单击该按钮以打开格式选项面板。 可以允许用户将数据导出为 CSV、JSON、GeoJSON、ArcGIS 项目、Shapefile、FGDB 和 KML。
    注:

    如果数据支持 createReplica,则 Shapefile、FGDB 和 KML 选项仅在运行时显示在所有数据下的导出数据操作下拉菜单中。 此外,要将单条记录导出至 Shapefile、FGDB 或 KML,您必须使用 ArcGIS 账户进行登录。

  • 可以按名称、服务名称、Web 地图名称或 Web 场景名称搜索图层。
  • 如果启用选择图层,则可以使用批处理选项下拉菜单来选择、取消选择或者打开或关闭所有受支持的图层的选择。

数据详细信息和数据视图

数据面板会显示带有项目名称的项目卡片,这些项目名称包含您添加到应用程序中的数据。带有图标的标签可帮助您区分数据类型。 您可以通过单击链接打开原始数据源的项目页面来查看其他详细信息。 每个数据源均具有其自己的数据源 ID,可以通过单击复制数据 ID 按钮 复制数据 ID 来复制该 ID。 可以将项目卡片上显示的名称更改为与应用程序更相关的名称(源数据保持不变)。 每张卡片都指示地图或场景中相关的微件和图层的数量。 单击数据卡片,包含更多数据详细信息的窗格随即打开。

  • 对于 web 地图、web 场景、服务和图层组,您可以查看以下详细信息:
    • 图层选项卡 - 将列出数据源包含的图层。 图层将被分为两组:使用中显示在微件设置已选中的图层,其他显示尚未连接到微件的图层。 您可以隐藏未使用的图层,以使其在配置微件时不会显示在选择数据列表中。 单击图层卡片以打开详细信息窗格。
    • 微件选项卡 - 将列出直接使用整个地图、场景、服务或图层组的微件。 仅适用数据下指定图层的微件不在此处列出;它们会列在相应的图层下。
  • 对于单个图层(包括不具有子图层的图层),以下设置选项和详细信息适用:
    • 数据设置 - 设置过滤器、排序字段并记录数据限制。 此处的过滤器设置会影响其所有数据视图。
    • 刷新设置 - 如果关闭了自动刷新选项,则仅当刷新应用程序或构建器时,才会刷新数据。 打开自动刷新以刷新数据,并根据指定时间间隔获取最新要素。 可以设置自定义时间间隔,或者如果数据来自 web 地图,则可以使用该图层的设置。
    • 允许导出 - 让用户可以在运行时选择从已启用数据操作的连接微件导出数据。 可以单击导出设置按钮 导出设置 以打开格式选项面板。 可以允许用户将数据导出为 CSV、JSON、GeoJSON、ArcGIS 项目、Shapefile、FGDB 和 KML。
      注:

      对于托管要素图层,应用程序将验证用户角色和项目设置是否允许导出数据

    • 关联 - 如果要素图层有任何相关数据,这里将列出这些关系以及关系类型。
    • 数据视图选项卡 - 通过添加过滤器、排序字段和记录限值来控制已连接微件中的显示内容,创建支持的要素图层和场景图层的数据视图。 这些设置仅在视图中生效,而不会影响其他数据视图或源数据。 要复制数据视图的数据源 ID,请将指针悬停在视图上,然后单击复制数据 ID 按钮 复制数据 ID
      注:

      每个图层还具有内置视图,以在为微件配置数据源时进行选择。 默认视图包含所有要素。 选定要素视图包含在运行时选择的要素。 自动填充视图适用于“列表”微件的动态内容设置。

      • 空白选择视图 - 选中此框并单击其设置按钮可配置未在选定要素视图中选择要素时显示的视图。 (将不会自动选择此配置视图中的要素。)
    • 字段选项卡 - 将在此处列出微件所使用的字段。
      注:

      如果将诸如“表”微件或“选择”微件等微件连接到具有与“地图”微件进行交互模式的“地图”微件,并且未自定义图层,则弹出窗口中使用的任何地图图层字段将视为已使用字段,并将显示在这些微件的导出中。

    • 微件选项卡 - 将在此处列出在其设置中使用图层的微件。

使用数据

无论您如何将数据添加至应用程序,该应用程序中所有受支持的微件都可以使用这些数据。 一个微件使用的数据源可以被其他微件使用。 记录选择可在整个应用程序内同步。 此外,默认数据视图上的过滤器 将影响使用数据或其视图的所有微件。 特定数据视图上的过滤器仅影响使用同一数据视图的微件。

注:

在“地图”微件中显示 web 地图或 web 场景时,会自动创建一个新的 web 地图或 web 场景视图,并且该视图仅用于当前微件。 “地图”微件中的数据处理不会影响使用相同数据源或其包含的图层的微件;但是,“地图”微件会受到默认视图上数据处理的影响。

每个微件的配置面板均包含用于连接数据的标准设置。 单击选择数据时,将显示一个窗格,其中列出了微件支持的应用程序中的添加数据输出数据(未列出隐藏数据)。 您可以从列表中选择数据,也可以向应用程序添加更多数据。使用搜索框过滤选项列表。 搜索结果包括您已添加到应用程序的 web 地图和 web 场景的子图层。一些微件支持多个数据源,因此您可以在列表中选择多个项目。 如果微件只能连接到一个数据源,请单击现有数据卡片以打开选择数据窗格,您可以在其中清除已选项并选择新项。

下表列出了可以连接到数据的微件以及每种微件支持的数据类型。

微件支持的数据类型*支持的数据个数

分支版本管理

要素服务、地图服务(必须注册为版本

1 个或多个

按钮**

要素图层、场景图层、动态影像图层、定向影像图层

0 或 1

图表

要素图层,场景图层

1

编辑

要素图层、场景图层(图层必须是可编辑

1 个或多个

嵌入**

要素图层、场景图层、动态影像图层、定向影像图层

0 或 1

要素信息

要素图层、场景图层、动态影像图层、定向影像图层

1 个或多个

过滤器

要素图层、场景图层、动态影像图层、定向影像图层

每个过滤器 1 个

图像**

要素图层、场景图层、动态影像图层、定向影像图层

0 或 1

列表

要素图层、场景图层、动态影像图层、定向影像图层

1

地图

Web 地图和场景

1 或 2

地图图层

Web 地图和场景

0 或 1

打印

要素图层

如果未包含任何报表或动态元素,则为 0;如果包含其中任何一项,则为 1 或更大值

查询

要素图层、场景图层、动态影像图层、定向影像图层

每个查询 1 个

搜索

要素图层、场景图层、动态影像图层、定向影像图层

每个图层源 1 个

选择

要素图层、场景图层、动态影像图层、定向影像图层

1 个或多个

要素图层、场景图层、动态影像图层、定向影像图层

每个工作表 1 个

文本**

要素图层、场景图层、动态影像图层、定向影像图层

0 或多个

时间线***

Web 地图、要素图层、地图服务图层、动态影像图层、定向影像图层

1 个或多个

*有关受支持项目类型的特定列表,请参阅向应用程序添加数据

**默认情况下,图像、文本、按钮和嵌入微件是静态的。 要显示数据信息,请打开连接数据设置并使用属性、统计信息或表达式来指定参数。 有关详细信息,请参阅动态内容

***“时间线”微件支持多个要素图层或地图服务图层,但一次只能支持一个 web 地图。

输出数据

除了手动添加到应用程序的数据之外,以下微件还可以处理原始数据并使用显示的结果生成新输出数据集。

源微件输出数据类型输出数据集

图表

要素图层

图表统计分析

方向

要素图层

1 停靠点、方向点、方向线和路径各对应一个

高程剖面

要素图层

每个剖面 1 个

周边

要素图层

每个配置图层 1 个用于最近邻近分析,每个配置图层 2 个用于汇总分析(1 个用于汇总统计,1 个用于分析中的所有要素)

查询

要素图层

每个查询 1 个

搜索

要素图层

每个定位器源 1 个

我的位置

要素图层

每个位置和路径 1 个

在应用程序中配置这些源微件后,配置其他微件时,其输出数据将在选择数据窗格中列出。 输出将创建为新数据源,以防输出数据上的过滤器和选择影响原始数据源。

注:

如果您在移除一个微件时,其输出数据正被另一个微件使用,则将显示一条警告消息,其中包含相关微件的列表。 可以删除相关微件,或将其保留以便稍后使用其他数据源对其进行重新配置。

输出数据的方案由其源微件定义:

  • 图表 - 具有类别字段属性(如果已配置)和数值字段的计算结果的统计数据(不含几何)
  • 查询 - 满足查询条件的记录子集,字段配置与其结果设置相同
  • 搜索 - 来自相应定位器源的搜索结果的地址

输出数据中的实际记录将在运行时由源微件动态生成。

数据源视图

在微件设置中选择数据后,根据微件支持的数据源数,可以从下拉列表中选择一个或多个视图。 数据源具有以下视图选项:

  • 默认 - 包含数据中的所有要素的内置视图。
  • 选定要素 - 包含用户在运行时选择的要素的内置视图。 要素的选定状态会在所有视图间同步。 可使用此视图显示交互结果。 例如,如果针对“列表”微件配置,则列表仅显示选定记录,列表中的项目会随着选择变化动态变化。 如果未选择,列表仅显示无数据消息,直到选择了记录为止。 您也可以在数据面板上为空白选择创建视图
  • 自动填充 - 在将微件添加到“列表”微件中并将其连接到同一数据视图时,在动态内容设置中提供的内置视图。 该视图仅包含列表为其中的每个项目生成的一个要素。
  • 数据视图 - 可使用不同过滤器、排序字段和记录限制创建的要素子集。 可使用多个数据视图预处理数据源,以控制在微件中显示的数据,而不会影响其他数据视图或源数据。
    注:

    输出数据不支持添加自定义数据视图。

    注:

    记录选项卡上的页面大小设置将用于提高查询性能和效率。 该设置不会影响支持分页的微件中结果要素的总数。 如果页面大小小于该结果,则系统会发送多个请求,直到所有结果都加载完毕为止。

默认情况下,默认视图处于选中状态。 您还可以编辑现有视图或者为微件创建另一个视图。 也可以在其他微件设置中选择通过微件配置面板创建的视图。

在微件设置中,如果您在来自同一数据源的数据视图之间切换,则微件将保留其所有设置。 您无需重新配置任何内容。

动态内容

多个微件具有多种设置,您可以使用这些设置以显示来自已连接数据源的动态信息。 示例包括指定要素的属性值、满足特定条件的要素的统计结果、包含静态字符串、动态值和计算的表达式;或者 Arcade 脚本。

属性

使用以下视图之一获取指定数据视图中要素的属性值:

  • 您在微件的数据源设置中设置的视图。
  • 原始数据图层的选定要素视图。 您可以通过该视图显示交互结果,例如显示所选要素的属性。
  • 如果微件位于“列表”微件中(例如文本、图像或按钮)并且具有与“列表”微件相同的数据视图,则为自动填充的视图。 此视图仅包含列表项表示的一个要素。

如果视图包含多个要素,则将返回第一个要素的属性值(基于数据视图中的排序设置)。

统计数据

获取指定数据视图定义的要素及的统计结果。

结果可以是数值字段的最大值、最小值、平均值、总和、标准差、离散百分比数或连续百分比数;日期字段的最大值或最小值;要素集的要素计数(使用唯一 ID 字段);或者如果服务支持不同计数,则为字段的唯一值数量。

可以使用统计数据编辑器为统计数据提供自定义标注。 要设置标注,请替换占位符文本,该文本将作为默认标注,并根据所指定的运算符和字段而变化。

对于离散百分比数和连续百分比数,必须设置百分比数值并选择以升序 (ASC) 或降序 (DESC) 显示值。 百分比数值是 0-100 范围内的值。 升序意味着数据集中第 n 百分位数的值大于数据集中 n% 的值。 降序意味着数据集中第 n 百分位数的值小于数据集中 n% 的值。

表达式

可以使用表达式编辑器以输入文本(格式:“text”);数字;字段变量(格式:{field})和函数,包括 AVERAGE({fieldname})COUNT({fieldname})SUM({fieldname})MAX({fieldname})MIN({fieldname})STANDARD_DEVIATION({field})PERCENTILE_DISCRETE({field},percentile value, order)PERCENTILE_CONTINUOUS({field},percentile value, order)。 每个部分都用加号串联。 该表达式返回字符串串联和和数字计算的结果。 例如,如果输入 1+1,则返回 2(数字),但是如果输入 1 +“1”,则返回 “11”(字符串)。

输入时,将显示建议,您可以单击以进行插入。 另外,您可以通过单击输入框下方列出的字段名称或函数名称来插入字段变量或函数。

字段选项卡上的数据用于设置字段变量表示的数据视图。 如果将字段变量作为独立部分添加到表达式中,则会从指定数据视图中的第一个要素返回该字段的属性值。

如果在函数中使用了数值字段变量或日期字段变量(例如 AVERAGE({field})),则函数将返回该字段的数据视图的统计结果。 对于日期字段,表达式构建器仅支持 COUNT、MAX 和 MIN 函数。

可通过单击数字格式化按钮 数字格式化 打开数字格式化,格式化表达式中的数字。 可以选择要显示的小数位数,包括千位分隔符,以及从数据中添加单位。

Arcade

可以使用 Arcade 计算并返回动态值以显示为微件内容。

Arcade 是一种轻量级脚本语言,专为高级数据操作和格式化而设计。

虽然上述表达式构建器支持诸如数字运算和字符串连接等简单操作,但 Arcade 支持更加复杂的操作,其中包括数学函数、文本格式化和条件逻辑。

借助 Arcade,您可以更加灵活地控制在标注、图像源和其他元素中显示动态内容的方式。