可使用测距仪采集有关目标对象的位置、偏移和高度信息。 测距仪通常用于以下情况:
- 对难到达的对象位置进行制图,因为 难以到达或无法安全到达该位置。 例如, 岛上的树木或繁忙的道路中间的检查井。
- 对无法获取 GPS 信号或精度足够高的 GPS 位置的对象位置进行制图。 例如,在大 树下或在狭窄街道或“城市峡谷”中。
将调查准备好记录测量值
首先,您必须确定要记录的测量值。
至少必须创建外观为 rangefinder 的文本问题,以存储测距仪返回的值。 如果您在记录多个测距仪测量值,则此问题可以为文本问题;如果您仅在记录一个测量值(存储单一数值),则该问题可以为整数或小数问题。
测量类型在 bind::esri:parameters 列中使用 measurement= 后跟逗号分隔参数列表进行指定,例如 measurement=height,azimuth,horizontalDistance,slopeDistance,inclination。
还可以使用 multipleHeight 参数后跟逗号分隔的高度标注列表对垂直结构执行多高度测量例程。 如果任何高度标注包含空格,则将参数列表置于引号内,例如 measurement="multipleHeight,Height 1,Height 2,Height 3"。 多个高度测量例程无法与其他测量值相结合;它们只能在隔离中使用。
调查中的其他文本问题可以存储各个测量值。 使用 pulldata 函数可从测距仪返回的 JSON 对象中提取属性。 例如,下面的表达式将仅返回方向值(方位):pulldata("@json",${tree},"azimuth")。
下面是测距仪返回的 JSON 对象的示例。 可以使用与上文类似的 pulldata 表达式检索和存储其中的任意属性:
{
"referenceCoordinates": {
"latitude":-37.8479578,
"longitude":144.9792849
},
"targetCoordinates": {
"latitude":-37.847956857525,
"longitude":144.979303248161
},
"height":0.6,
"heightUnits":"m"
"horizontalDistance":2.1,
"horizontalDistanceUnits":"m",
"slopeDistance":2.1,
"slopeDistanceUnits":"m",
"azimuth":50.1,
"azimuthUnits":deg",
"inclination":-4.4,
"inclinationUnits":"deg",
"heightArray":[0.6,0.9,1.1,1.4,2]
}
当启动包含具有测距仪外观的问题的调查时,用户将在问题旁看到测距仪图标。 要采集测量值,用户需要点击该图标,启动测距仪,然后返回调查完成剩余问题。
将调查准备好在工作流中使用
可以对调查进行备选配置,以在 Survey123 库的测距仪切片中进行选择。
测距仪切片适合重复采集工程,其中测距仪测量值构成了调查的主要数据输入。 可以将多个调查配置为接受测距仪测量值,并且可在采集时进行选择。
要将调查配置为在测距仪切片的调查列表中显示,向 bind::esri:workflow 列添加以下值之一:
- rangefinderMode=height
- rangefinderMode=offset
- rangefinderMode=height,offset
- rangefinderHeight
此参数将告知应用程序您正在运行的测距仪测量工作流并在相关的文本问题中存储返回的 JSON 对象。 可以在调查中隐藏这些问题(使用隐藏外观),并且可以将各个测量值存储在其他问题中。
还可以通过包含 rangefinderMode=height 的文本问题以及存储每个高度值的附加小数问题,对多高度测量工作流进行配置。 在 XLSForm 的 bind::esri:workflow 列中将每个小数问题的值设为 rangefinderHeight。
调查中的其他问题可以存储其他相应的测量值。 使用 pulldata 函数可从测距仪返回的 JSON 对象中提取属性,如将调查准备好记录测量值所述。