通过 geotrace 和 geoshape 问题,可以在地图上捕获折线或面。 您可以在要素图层中使用此几何作为结果几何,而非点。
与没有位置问题的地理点问题或位置捕获不同,geotrace 和 geoshape 问题不会使用设备位置来填充响应,尽管其确实使用设备位置将地图居中。
如果没有回答 geotrace 或 geoshape 问题,并且没有通过默认值或表达式创建其几何,调查记录将以空几何形式提交到要素图层。
注:
您可以向调查添加多个 geopoint、geotrace 或 geoshape 问题,但是仅可以使用其中一个作为调查记录的几何。 如果除一个问题以外的所有问题都将 bind::esri:fieldType 设置为 null,则可以使用多个地图问题。
调查中的每个重复项也可以有多个 geopoint、geotrace 或 geoshape 问题,但是仅可使用其中一个问题作为重复记录的几何。 可以使用上述相同的方法使用多个地图问题。
使用地图捕获 geotrace 或 geoshape 问题时,Web 地图中并不支持所有 Survey123 外业应用程序的要素。 以下要素在 Survey123 外业应用程序中受支持,但在 Web 应用程序中不受支持:
- 离线底图
- 为 geotrace 和 geoshape 问题提供的样式选项
- 针对 geotrace 和 geoshape 问题的计算,包括 sum() 函数
- 位置精度阈值和位置质量表达式
捕获方法
Geotrace 和 geoshape 数据有两种捕获方法:草图和折点。 默认情况下,草图方法用于从头开始创建的调查,而折点方法默认用于根据现有要素图层创建的调查。 通过在问题的 body::esri:style 列中输入 method=sketch 或 method=vertex,可以在调查中设置不同的捕获方法。
草图
草图方法将使用单个动作捕获几何,当用户已停止绘制此单线后,捕获随即完成。
有关如何使用此方法的详细信息,请参阅草图。
折点
折点方法允许通过放置连接在一起的折点来更加精确地几何捕获线或形状。
有关如何使用此方法的详细信息,请参阅折点。
以下是在捕获折点时控制行为的参数:
- beep 或 nobeep - 设置 beep 时,每次捕获折点时都会发出声音反馈。 不包含此参数时,默认值为 nobeep。
- haptic 或 nohaptic - 设置 haptic 时,每次捕获折点时都会发出触觉反馈。 此参数仅在支持触觉反馈的硬件上受支持。 不包含此参数时,默认值为 nohaptic。
- edit 或 noedit - 设置 noedit 时,用户将仅可在其当前位置捕获折点,撤消每个折点放置,以及替换整条线或面。 用户不能编辑单个折点。 不包含此参数时,默认值为 edit。
- streaming 或 nostreaming - 当您四处移动时,可以流式传输线或面折点。 不包含此参数时,默认值为 nostreaming。
在以下示例中,捕获方法被设置为使用声音反馈流式传输的折点:
method=vertex,streaming,beep
调查作者可以配置相邻的流式折点之间的距离。 默认情况下,每 10 米捕获一次折点,但可以使用 distanceThreshold 参数对其进行修改。 此参数在 body::esri:style 列中使用空格分隔。 也可以包括用于定义线或形状颜色的其他参数。
在以下示例中,将每 25 米捕获一次折点并创建一条红线:
method=vertex,streaming,beep distanceThreshold=25 lineColor=red
如果位置精度对捕获的折点非常重要,则在 geotrace 或 geoshape 问题的 body::accuracyThreshold 列中输入精度阈值将阻止捕获不满足阈值条件的折点。
默认值和表达式
可以为 geotrace 或 geoshape 问题设置默认几何,或者使用其他问题的结果通过表达式来创建几何。 构成 geotrace 或 geoshape 问题答案的单个折点是以分号分隔的纬度和经度值(以十进制度表示)的空格分隔集合。 要填充 geotrace 或 geoshape 问题的答案,必须遵照此结构来生成有效答案。 要获得精确位置,这些值可能需要较大。 例如,geoshape 问题的默认列中提供的以下值将在澳大利亚墨尔本公园周围绘制形状:
-37.842156723211474 144.95942945338243; -37.83554486071995 144.9726235713864; -37.85681405373047 144.98240735651922; -37.85954045531896 144.97715349053766
提示:
位于南半球的位置默认值将导致 Microsoft Excel 中出现错误,由于值以减号 (-) 开头,因此会被视为公式。 在上述情况下,请在第一个值之前输入单引号,在 Excel 中即可按预期读取该值。 添加单引号在 Survey123 中不会导致行为发生变化。
由于从 select_one 问题填充时无法直接插入这些值,建议您使用计算列中的 substr() 函数来帮助构建有效答案。 例如,select_one 问题中答案的名称可如下所示:
+059.38330_+018.66300
由于名称列中不允许空格,对于纬度和经度,此答案将使用固定数量的字符,其中包含通常应进行截断的零以及两个值之间放置的下划线。 由此可创建一个可使用 substr() 函数解构的值,以填充以下具有两个折点的 geotrace 问题的示例:
substr(${previous_question1}, 0, 10) + " " + substr(${previous_question1}, -10) + "; " + substr(${previous_question2}, 0, 10) + " " + substr(${previous_question2}, -10)
此示例将获取两个不同值的前 10 个字符(纬度)和最后 10 个字符(经度),并为其提供一个空格(用于分隔纬度和经度)以及一个分号(用于分隔有效位置),以生成有效的 geotrace 结果。
您也可以使用 sum() 聚合函数以核对重复中的多个地理点值,以使用其作为生成的 geotrace 或 geoshape 的折点。 由此允许用户捕获几何的每个折点的位置元数据。 有关详细信息,请参阅聚合函数。
虽然 geotrace 或 geoshape 问题不会立即捕获位置,但设备位置将用于在加载调查时使地图居中。 为防止出现这种情况,请将默认值设置为 null。 它将显示用于启用位置捕获的选项、加载用于手动设置位置的地图页面,或者如果存在应用于问题的计算,则刷新计算。
地理搜索
Geotrace 和 geoshape 问题包括地理搜索功能,用户可以搜索地址或感兴趣点,将地图缩放到该位置并在该处放置一个折点。
默认情况下,地理搜索功能使用 ArcGIS Geocoding service 搜索地址,可返回来自全世界的结果。
要设置要从中返回结果的特定定位器,请在 bind::esri:parameters 列中提供定位器的项目 ID,例如 geocode=36ff9e8c13e042a58cfce4ad87f55d19。 ArcGIS Online 调查中使用的定位器必须是 ArcGIS Online 中的项目。 ArcGIS Enterprise 调查中使用的定位器项目必须与调查同属一个门户。
几何属性
您也可以将 geotrace 和 geoshape 问题用于计算以显示和记录几何属性,例如长度(适用于 geotrace)、周长和面积(适用于 geoshape)。 distance() 和 area() 函数用于构建具有 geotrace 或 geoshape 问题的表达式。 distance() 函数将以米为单位返回结果,area() 函数将以平方米为单位返回结果。 有关将这些结果转换为其他单位的计算示例,请参阅 Survey123 Connect 中的 geotrace 和 geoshape 示例。
几何符号系统
可以为将在调查中显示的 geotrace 和 geoshape 问题添加样式。 可以在 geotrace 和 geoshape 问题的 body::esri:style 列中使用以下参数设置此样式:
- lineColor
- lineWidth
- fillColor
可以通过标准 HTML 颜色名称或十六进制代码指定颜色。 您可以使用八个字符的十六进制代码设置不透明度。 多个参数由空格分隔,例如,lineColor=Black fillColor=#800000FF lineWidth=3。
注:
Geotrace 及 geoshape 问题均支持 lineColor 和 lineWidth 参数。 仅 geoshape 问题支持 fillColor 参数。
这些样式选项将仅显示在 Survey123 Connect 和 Survey123 外业应用程序中。
可以在调查的任意地图上显示重复中第一个地理点问题中的点位置。 有关详细信息,请参阅地图上的点叠加。
问题类型
可以为地图问题配置底图、地图工具和问题高度。
可以使用 body::esri:style 列中的 map 参数为各个地图问题设置默认底图。 例如,map="World Topography" 将地图问题设置为使用世界地形图底图。 您也可以使用地图的项目 ID 来设置 map 参数,例如 map=de26a3cf4cc9451298ea173c4b324736。 此参数支持在线和离线地图,包括您自己的 Web 地图。 有关详细信息,请参阅在调查中包含地图。
body::esri:style 列接受 mapTools 参数,以控制适用于地图问题的地图工具。 如果未设置任何地图工具参数,则将显示所有工具。 接受以下值:
- mapTools=search
- mapTools=mapSwitcher
- mapTools=zoom
- mapTools=home
- mapTools=locate
可通过以逗号分隔每个值来设置多个工具,例如 mapTools=search,locate。
对于地图问题,body::esri:style 列接受 height 参数。
可以通过提供包含数值和单位(可选)的 height 参数来设置问题的高度。 默认单位为 lines,即当前输入文本字体的高度。 例如,height=5 将导致任何这些问题将显示为五行高。
或者,您也可以将单位设置为屏幕高度的百分比,或者通过将其作为后缀添加到值(没有空格)以按像素数来进行设置。 例如,将接受以下所有值:
- height=5
- height=5lines
- height=25%
- height=250pixels
高度和地图工具可使用空格分隔二者进行设置,例如 height=25% mapTools=search,zoom。