楼层过滤器微件允许用户浏览楼层感知型地图和场景。 楼层感知型地图和场景包含表示楼层平面图要素的室内 GIS 数据,包括楼层、设施点以及灭火器、除颤器和急救包等场所和资产。 用户可以通过导航到站点、站点中的设施点和设施点中的楼层来可视化楼层平面图数据并与之交互。 用户还可以根据所选楼层平面图过滤数据。
示例
使用此微件可支持以下应用程序设计要求:
- 为探索室内空间的渲染提供交互式应用程序。
- 可视化大型办公楼中的空间,以帮助做出有关楼层空间最佳使用方法的明智决策。
- 定位轮椅、移动除颤器和医疗设施点中的其他重要资产,以帮助工作人员确定最近的可用资源。
用法说明
此微件需要连接到“地图”微件。 要使用楼层过滤器,地图微件必须连接到楼层感知型地图。
当您在应用程序中包含此微件时,工具栏会为用户提供以下用于过滤的工具:
- 浏览 - 使用浏览面板缩放和查看站点、站点内的设施点和设施内的楼层。 浏览面板包括搜索函数、站点列表和设施点列表。
- 楼层列表 - 查看所选设施点中所有楼层的列表。 如果设施点具有多个楼层,则可以从列表中选择一个楼层以在地图上查看。
- 缩放至 - 缩放至所选设施点。
- 展开或折叠 - 展开或折叠微件的工具栏。
设置
楼层过滤器微件包含以下设置:
- 选择楼层感知型地图 - 选择连接到楼层感知型地图的地图微件。
- 启动时展开 - 选择应用程序打开时微件工具栏是否处于展开状态。
- 按所选楼层过滤数据 - 如果启用此设置,则当用户在设施点中选择楼层时,微件会过滤连接的数据源,以便仅显示该楼层上的要素。 其他设施点显示底层数据。 您可以使用此设置来过滤“表”微件、“图表”微件、“要素信息”微件和其他以数据为中心的微件中的数据,这些数据连接到与“楼层过滤器”微件相同的数据源。
- 仅显示所选楼层 - 仅显示当前设施点所选楼层中的数据。 不显示来自其他设施点的任何数据。
- 根据要素选择切换楼层 - 如果打开此设置,当用户通过其他微件(如“搜索”微件或“表”微件)选择楼层感知型要素时,“楼层过滤器”微件将显示包含该要素的楼层。
- 缩放到所选楼层 - 将地图缩放到包含所选要素的楼层的范围。
提示:
如果要缩放到所选要素,而不是整个楼层,请保留此设置的未选中状态,并添加缩放到消息操作。 在微件(如“表”微件)设置的操作选项卡上,添加记录选择更改触发器,选择“地图”微件作为目标,并选择缩放到操作。 (可选)可以设置自定义缩放比例。
注:
如果您希望“楼层过滤器”微件和地图成为页面的焦点,以便其他微件根据您通过“楼层过滤器”微件所做的选择进行更新,则可以使用按所选楼层过滤数据和仅显示所选楼层设置。 如果您希望另一个微件成为与页面上的数据交互的主要方式,则可以选择根据要素选择切换楼层和缩放至所选楼层设置,以便“楼层过滤器”微件和地图会根据使用该微件所做的选择进行更新。 根据 Experience Builder 应用程序的预期用途选择设置组合。
- 缩放到所选楼层 - 将地图缩放到包含所选要素的楼层的范围。
- 排列样式 - 为微件选择排列样式。 排列样式会影响控件的顺序,以及浏览面板显示或滑动的方向。 例如,选择自下而上,向右滑动排列时,浏览按钮将位于微件的底部,当用户单击浏览时,设施点列表和搜索栏会出现在微件的右侧。
提示:
建议您将楼层过滤器微件放置在连接的地图微件的一角,并根据微件的放置位置选择排列样式。 例如,将微件放置在地图的右上角时,选择自上而下,向左滑动。 将微件放置在左下角时,选择自下而上,向右滑动。 这样可以确保微件展开和滑动并远离角落,同时工具栏保持位置不变。
Arcade
您可以使用按所选楼层过滤数据设置、仅显示所选楼层设置和 Arcade 表达式来自动填充通过“编辑”微件创建的新楼层感知型要素的字段。 如果将以下表达式添加到表单,则在楼层感知型图层中新建要素时将自动填充字段。
if ($editcontext.editType == "INSERT") {
var levelsLayer = FeatureSetByName($map, "Levels", ["*"], true);
var features = Intersects(levelsLayer,$feature);
if (Count(features) > 0) {
var levelId = First(features)["LEVEL_ID"];
return levelId;
}
}
return $feature["LEVEL_ID"];
注:
字段名 LEVEL_ID 是楼层感知型图层中楼层的默认字段名。 如果您的图层为楼层使用自定义字段名,请改为使用该字段名。
上述代码示例仅适用于创建新要素。