您可以在调查中包含图像、音频和文件问题,以允许用户在调查响应中提交附件。
提示:
图像和音频也可以添加到调查中的其他问题中,以进行参考和设置样式。 有关详细信息,请参阅向调查中添加媒体。
默认情况下,图像、音频和文件问题允许一个附件。 在 appearance 列中将其外观设置为 multiline,其中即可包含多个附件。
图像
用户可以通过图像问题类型提交保存在其设备上的图像或使用其设备的相机拍摄的照片。
在 Survey123 中拍摄的照片将被保存为 .jpg 文件,质量级别取决于您的设备相机。 可以在 Survey123 Connect 中的选项选项卡中设置图像大小(以最长边的像素测得)。 该大小可应用至调查中的所有图像问题。 可用选项如下:
- 320 像素
- 640 像素
- 1280 像素
- 1920 像素
- 无限制(可以将任意大小的照片附加至调查。)
默认图像大小为 1280 像素。 对于保存在设备上的图像,在提交后会保留其原始文件类型、分辨率和质量。
这些图像尺寸不会影响 Survey123 外业应用程序提供的图像预览。可通过 previewHeight 参数控制此功能。 该参数支持 height 参数支持的所有单位类型,但预览图像高度最终受限于设备的屏幕宽度和图像的纵横比。 使用 previewHeight=0 将图像预览设置为最大尺寸,而不留出不必要的空白空间。
可以为调查中的每个单个图像问题设置图像的最大允许大小。 在 XLSForm 的参数列中为您想要限制的问题指定 max-pixels。 例如,max-pixels=100 将图像最长边按比例缩小到 100 像素。 如果未指定 max-pixels 参数,则将使用在 Survey123 Connect 中设置的图像大小。
通过指定 XLSForm 的 body::esri:style 列的 method=camera 或 method=browse,可以将图像问题限制为特定的捕获方法。 您还可以将外观设置为 new-front 或 new-rear,以将图像问题限制为仅使用来自设备相机的图像,分别使用前置或后置相机作为默认设置。 使用带注记的外观时,也可以指定 method=map。
单个图像的默认最大文件大小为 10 MB。 对于 Survey123 Web 应用程序中的图像问题,可以使用 bind::esri:parameters 列中的 max-size 指定最大文件大小(以 MB 为单位)。 例如,max-size=5 允许用户附加最大为 5 MB 的图像。
注:
从 Survey123 外业应用程序提交的单个附件的最大文件大小为 10 MB。
应用于图像问题时,max-size 参数仅在 Survey123 Web 应用程序中受支持。 ArcGIS Online 的最大大小不能超过 100 MB,ArcGIS Enterprise 的最大大小不能超过 20 MB。
图像问题支持其他外观,可供您标注照片、在画布上绘制或完成签名。 有关详细信息,请参阅外观。
默认情况下,Survey123 将自动为问题中提交的图像生成文件名。 文件名包括作为前缀的问题名称,后跟一个唯一编号。 对于某些问题,您可能需要自定义文件名以使其更有意义。 有关详细信息,请参阅自定义文件名。 如果导出调查数据并发布为要素图层以在 Survey123 中重用,建议不要自定义文件名。 有关详细信息,请参阅关键字。
提取图像元数据
您可以使用 pulldata("@exif") 函数从对图像问题的响应中提取标准的可交换图像文件 (EXIF) 元数据标签。 如果将以下示例输入为小数问题,则系统将从图像中提取设备纬度值:
pulldata("@exif", ${image}, "GpsLatitude")
下表将列出要与 pulldata("@exif") 功能配合使用的常用位置 EXIF 标签:
EXIF 标签 | 描述 |
---|---|
GpsLatitude | 设备位置的纬度为字符串 |
GpsLongitude | 设备位置的经度为字符串 |
GpsAltitude | 设备位置的高度为字符串 |
GpsLatitudeRef | 设备位置的纬度参考(即 N、E、S、W)为字符串 |
GpsLongitudeRef | 设备位置的经度参考(即 N、E、S、W)为字符串 |
GpsDestDistance | 设备与目标位置之间的距离(以公里为单位)为整数 |
GpsImgDirection | 从设备位置到目标位置的方向为字符串 |
GpsDestLatitude | 目标位置的纬度为字符串 |
GpsDestLongitude | 目标位置的经度为字符串 |
GpsDestLatitudeRef | 目标位置的纬度参考(即 N、E、S、W)为字符串 |
GpsDestLongitudeRef | 目标位置的经度参考(即 N、E、S、W)为字符串 |
可使用以下示例在单个字段中显示纬度和经度值,然后您可以将其用于填充地理点问题:
string(pulldata("@exif", ${image}, "GpsLatitude")) + " " + string(pulldata("@exif", ${image}, "GpsLongitude"))
以下列出了 Survey123 可以提取的其他图像 EXIF 标签: 并非所有这些标签都可用,具体取决于所使用的硬件。
GpsAltitudeRef | GpsTimeStamp | GpsSatellites |
GpsStatus | GpsMeasureMode | GpsDop |
GpsSpeedRef | GpsSpeed | GpsTrackRef |
GpsTrack | GpsImgDirectionRef | GpsMapDatum |
GpsDestBearingRef | GpsDestBearing | GpsDestDistanceRef |
GpsProcessingMethod | GpsAreaInformation | GpsDateStamp |
GpsVersionId | GpsDifferential | GpsHPositioningError |
ImageWidth | ImageLength | ImageBitsPerSample |
ImageCompression | ImagePhotometricInterpretation | ImageDescription |
ImageMake | ImageModel | ImageStripOffsets |
ImageOrientation | ImageSamplesPerPixel | ImageRowsPerStrip |
ImageStripByteCounts | ImageXResolution | ImageYResolution |
ImagePlanarConfiguration | ImageResolutionUnit | ImageTransferFunction |
ImageSoftware | ImageDateTime | ImageArtist |
ImageWhitePoint | ImagePrimaryChromaticities | ImageYCbCrCoefficients |
ImageYCbCrSubSampling | ImageYCbCrPosition | ImageReferenceBlackWhite |
ImageRating | ImageRatingPercent | ImageCopyright |
ImageXPTitle | ImageXPComment | ImageXPAuthor |
ImageXPKeywords | ImageXPSubject | ImageLensSpecification |
ImageLensModel | ImageLensMake | ImageLensSerialNumber |
ExtendedSubjectDistanceRange | ExtendedExposureTime | ExtendedFNumber |
ExtendedExposureProgram | ExtendedSpectralSensitivity | ExtendedISOSpeedRatings |
ExtendedOecf | ExtendedExifVersion | ExtendedDateTimeOriginal |
ExtendedDateTimeDigitized | ExtendedComponentsConfiguration | ExtendedCompressedBitsPerPixel |
ExtendedShutterSpeedValue | ExtendedApertureValue | ExtendedBrightnessValue |
ExtendedExposureBiasValue | ExtendedMaxApertureValue | ExtendedSubjectDistance |
ExtendedMeteringMode | ExtendedLightSource | ExtendedFlash |
ExtendedFocalLength | ExtendedSubjectArea | ExtendedMakerNote |
ExtendedUserComment | ExtendedSubSecTime | ExtendedSubSecTimeOriginal |
ExtendedSubSecTimeDigitized | ExtendedFlashPixVersion | ExtendedColorSpace |
ExtendedPixelXDimension | ExtendedPixelYDimension | ExtendedRelatedSoundFile |
ExtendedFlashEnergy | ExtendedSpatialFrequencyResponse | ExtendedFocalPlaneXResolution |
ExtendedFocalPlaneYResolution | ExtendedFocalPlaneResolutionUnit | ExtendedSubjectLocation |
ExtendedExposureIndex | ExtendedSensingMethod | ExtendedFileSource |
ExtendedSceneType | ExtendedCfaPattern | ExtendedCustomRendered |
ExtendedExposureMode | ExtendedWhiteBalance | ExtendedDigitalZoomRatio |
ExtendedFocalLengthIn35mmFilm | ExtendedSceneCaptureType | ExtendedGainControl |
ExtendedContrast | ExtendedSaturation | ExtendedSharpness |
ExtendedDeviceSettingDescription | ExtendedImageUniqueId |
有关这些标签的详细信息,请参阅 Survey123 Connect 中的 EXIF 示例。
警告:
如果一个图像问题包含多个图像,则无法使用 pulldata("@exif") 函数从图像中提取 EXIF 数据。 要从提交到同一问题的多个图像中提取 EXIF 数据,请考虑使用重复函数。
Spike 集成
图像问题还支持与 Spike 激光测量解决方案进行集成;该解决方案由 ikeGPS 开发,可供您从照片中捕捉对象的测量值和位置。 有关如何将 Spike 与 Survey123 配合使用的信息,请参阅外观。
Spike 可通过将 JSON 对象写入 ImageDescription EXIF 标签来记录一些额外的自定义标签,其中包含与 Spike 设备相关的非标准属性及其所采用的测量值。 标签将在下面的表格中进行介绍:
Spike 标签 | 描述 |
---|---|
device_id | Spike 设备的 ID 为字符串 |
local_accuracy | Spike 设备的精度为小数 |
destination_altitude | 目标位置的高度为有理数 |
declination | Spike 设备的偏角为有理数 |
pitch | Spike 设备的仰俯角为有理数 |
rotation | Spike 设备的旋转为字符串 |
objects | 被测对象(面积和长度)的 JSON 数组为字符串 |
P2P.capture_id | 点对点进程的两个图像的 ID 为字符串 |
P2P.horizontal_distance | 两点间的水平距离(以米为单位) |
P2P.distance | 两点间的距离(以米为单位) |
P2P.gradient | 两点间的坡度(以度为单位) |
P2P.vertical_distance | 两点间的垂直距离(以米为单位) |
P2P.azimuth | 两点的方位角(以度为单位) |
要访问这些 Spike 标签,首先请使用 objects 属性上的 pulldata("@exif") 提取存储在 EXIF 中的 JSON 对象,如下所示:
pulldata("@exif", ${image}, "objects")
如果此 JSON 对象位于其他字段中,则您可以在 pulldata("@json") 函数中使用 Spike. 对象名称路径从 JSON 数组中提取特定值。 有关 pulldata("@json") 函数的详细信息,请参阅从 JSON 中检索值。 以下示例将从内部具有数组的问题中提取 Spike 设备的仰俯角:
pulldata("@json", ${spikedata}, "Spike.pitch")
objects 数组还包含由 Spike 设备捕获的面积和长度。 此数组中包含图像中的被测对象,其中包括形状和线,以及用于图像转换的对齐形状。 数组中的对象可通过引用其在数组中的位置进行提取,提取顺序与它们被捕获的顺序相一致。 以下示例将返回数组中的第一个面或线:
pulldata("@json", ${spikedata}, "Spike.objects[1].type")
注:
数组中的位置 0 将始终包含对齐形状。
要返回存在于数组中的对象的数量,请使用 length 属性,如下所示:
pulldata("@json", ${spikedata}, "Spike.objects.length")
要查看当前使用的这些标签的示例,请参阅 Survey123 Connect 中的 Spike 示例调查。 有关 Spike 的详细信息,请访问 ikeGPS 产品页面。
音频
音频问题类型允许用户在 Survey123 中录制和上传音频。 录制将使用设备的默认音频采集格式采集音频文件。 进度条用于指示录制的剩余时间。 用户可以随时暂停或停止录制。 录制完成后,可以通过选择文件名来编辑文件名。
注:
Android 不支持在外业应用程序中录制音频时暂停音频。
外业应用程序不支持上传现有音频文件的功能。
默认情况下,音频录制的最大文件大小为 10 MB(对于外业应用程序)和 10 分钟(对于 Web 应用程序)。
您可以使用 bind::esri:parameters 列中的 max-size 参数设置大小下限(以 MB 为单位)。 达到最大文件大小时,录制将自动停止。 例如,max-size=5 允许用户录制的音频的最大大小为 5 MB。
或者,您可以使用 bind::esri:parameters 列中的 max-duration 参数指定时间限制(以秒为单位)。 达到最大持续时间时,录制将自动停止。 例如,max-duration=30 允许用户录制长达 30 秒的音频。
警告:
从 Survey123 外业应用程序提交的单个附件的最大文件大小为 10 MB。 确保您设置的 max-duration 或 max-size 不会导致音频文件超过最大文件大小。默认情况下,音频文件在 iOS 和 Android 设备上使用高级音频编码 (AAC) 编解码器进行编码(如果设备支持)。 您可以使用 bind::esri:parameters 列中的 codec 参数指定首选音频编解码器。 可以提供多个编解码器,以逗号分隔,例如 codec=amr-nb,aac。 将使用与设备兼容的第一个编解码器。
注:
设备支持的编解码器列在 Survey123 外业应用程序的关于页面上。按住关于页面顶部的关于 ArcGIS Survey123 标题可显示有关设备的其他信息,包括它支持的音频编解码器。 在 Windows 设备上,音频文件始终以未压缩的 WAV 格式录制。
您也可以使用文件问题提交存储在设备上的音频文件。 有关支持音频的文件类型的列表,请参阅文件。
默认情况下,Survey123 将自动为问题中提交的音频生成文件名。 文件名包括作为前缀的问题名称,后跟一个唯一编号。 对于某些问题,您可能需要自定义文件名以使其更有意义。 有关详细信息,请参阅自定义文件名。 如果导出调查数据并发布为要素图层以在 Survey123 中重用,建议不要自定义文件名。 有关详细信息,请参阅关键字。
文件
文件问题类型允许用户提交一系列文件类型。
单个文件的默认最大文件大小为 10 MB。 对于 Survey123 Web 应用程序中的文件问题,可以使用 bind::esri:parameters 列中的 max-size 指定最大文件大小(以 MB 为单位)。 例如,max-size=5 允许用户附加最大为 5 MB 的文件。
注:
从 Survey123 外业应用程序提交的单个附件的最大文件大小为 10 MB。
应用于文件问题时,max-size 参数仅在 Survey123 Web 应用程序中受支持。 对于 ArcGIS Online,最大大小不能超过 500 MB;对于 ArcGIS Enterprise,最大大小不能超过 20 MB。
默认情况下,文件问题允许一个文件。 对于 appearance 列,使用 multiline 以允许为文件问题附加多个文件。
文件问题类型接受由 ArcGIS Online 和 ArcGIS Enterprise 支持的所有文件附件类型。 支持的文件类型如下:
类别 | 文件类型 |
---|---|
归档 | 7Z、GTAR、GZ、TAR、TGZ、ZIP |
音频 | AIF、M4A、MID、MP2、MP3、MPA、RA、RAM、RMI、WAV、WMA |
数据 | CSV、GEODATABASE、GEOJSON、GML、GPKG*、JSON、MDB、PBF*、SD*、VRML、XML |
文档 | DOC、DOCX、DOT、PDF、PPT、PPTX、TXT、WPS、XLS、XLSX、XLT |
图像 | BMP、ECW、EMF、EPS、GIF、IMG、J2K、JP2、JPC、JPE、JPEG、JPF、JPG、PNG、PS、PSD、RAW、SID、TIF、TIFF、WMF |
视频 | AVI、MOV、MP4、MPE、MPEG、MPG、MPV2、QT、WMV |
*此附件类型在 ArcGIS Enterprise 中不受支持。
通过使用 body::accept 列,可以限制可提交给文件问题的文件类型。 此列允许文件扩展名(例如,.wav)和 MIME 类型(例如,audio/*)。 可以通过用逗号进行分隔来设置多个文件扩展名或 MIME 类型。
有关 MIME 类型可接受格式的信息,请参阅常见 MIME 类型的 Mozilla 列表。
默认情况下,Survey123 将自动为问题中提交的文件生成文件名。 文件名包括作为前缀的问题名称,后跟一个唯一编号。 您可以自定义文件名使其更加有意义。 有关详细信息,请参阅自定义文件名。 如果导出调查数据并发布为要素图层以在 Survey123 中重用,建议不要自定义文件名。 有关详细信息,请参阅关键字。
关键字
Survey123 使用附件关键字将附件与调查中的特定问题相关联。 当在调查中创建图像、音频或文件问题并发布调查时,问题名称将用作附件表中的关键字。 例如,如果调查包含名为 image_closeup 和 image_wideview 的图像问题,则对于每张照片,附件表的 KEYWORDS 列中存储的值将为 image_closeup 或 image_wideview。 Survey123 会自动匹配附件关键字与问题名称以将附件关联到问题。
关键字关联的作用在打印报告时作为明显,Survey123 确保在对调查中的正确问题作出响应时打印正确的照片。 关键字关联还用于支持在收件箱中编辑图像。
如果您更改了图像名称并重新发布调查,则还必须更改任何现有附件记录的关键字。
警告:
在导出 Survey123 数据后,不会保留附件表的 KEYWORDS 列。
如果随后将此数据重新发布为托管要素服务,则您具有一个图像问题,默认文件名以用于附件,您可以使用更新附件关键字 Python 笔记本重新填充 KEYWORDS 列。 如果您的调查中包含多个图像问题,则您无法使用笔记本,必须手动确定哪个文件与哪个问题相关联,然后在每个附件记录的 KEYWORDS 列中输入问题名称。 有关详细信息,请参阅技术支持文章。
如果数据重新发布为 ArcGIS Server 要素服务,则首先必须将 KEYWORDS 列添加至附件表。 可以使用升级附件工具添加此列。 如果您具有一个图像问题并且默认文件名已用于附件,则您可以使用更新附件关键字 Python 笔记本重新填充 KEYWORDS 列。 如果您的调查中包含多个图像问题,则您无法使用笔记本,必须手动确定哪个文件与哪个问题相关联,然后在每个附件记录的 KEYWORDS 列中输入问题名称。 有关详细信息,请参阅技术支持文章。
在任一环境中,当您接下来在 Survey123 中查看这些记录时,附件表中的关键字值将与问题名称性匹配,并自动进行关联。
自定义文件名
默认情况下,Survey123 将自动为问题中提交的图像、音频和文件生成文件名。 文件名包括作为前缀的问题名称,后跟一个唯一编号。 您可以自定义文件名使其更加有意义。 例如,您可以在签名文件的名称中包含签名者的名字和姓氏。 对于照片,您可以在其中包含日期或所拍摄对象的描述信息。
警告:
在 Web 应用程序中,图像、音频和文件问题支持自定义文件名。在外业应用程序中,仅图像问题支持自定义文件名。
自定义的文件名会在将文件添加至媒体问题时设置,不会自动更新以反映调查中的后续更改。 例如,如果文件名引用文本问题并且该问题的值在添加文件后发生变化,则不会更新文件名来反映更改。
您可以使用 bind::esri:parameters 列中的 fileName 参数来动态设置要创建的文件的文件名。 在以下示例中,根据 asset_id 问题和当前日期和时间创建了一个类似于 ASSET406-20221018145109.jpg 的图像文件名:
有关其他语法示例,请参阅 Survey123 Connect 中的图像和注释示例。
文件名必须符合以下要求:
- 设备上所有调查中的所有问题必须具有唯一的文件名。 我的调查附件文件夹用于存储设备上所有调查的所有图像,并且不能包含重复的文件名。 要确保文件名是唯一的,请考虑使用 fileName 表达式中的 now() 函数。
- 文件名的长度不能超过 140 个字符。
- 文件名不能包含空格或以下特殊字符:\ / : * ? < > ; | . , "。 将使用下划线替换空格和特殊字符。
警告:
在外业应用程序中,如果 fileName 参数的表达式导致文件名重复或超过最大长度,则将使用为图像自动生成的图像文件名。 同样,如果用户在调查中手动编辑文件名,当文件名重复或超过最大长度时,其将不被接受。
在 Web 应用程序中,如果因 fileName 参数表达式或手动编辑文件名而导致重复,则将在新文件名中追加递增数字。
可以在问题的 body::esri:style 列中应用以下参数,以进一步控制文件名:
- fileNameVisible - 指定文件的名称在调查中是否可见。 默认为 true。 要隐藏文件名,输入 fileNameVisible=false。
- allowRename - 指定是否允许用户手动编辑文件名。 默认为 true。 当 fileNameVisible=false 时,用户无法编辑文件名,尽管 allowRename=true。