水印

可以将文本和图像水印应用到使用 Survey123 外业应用程序照相机拍摄的新照片上。 水印无法应用到设备的现有照片上。

注:

水印不能应用于 Survey123 web 应用程序。

水印位置

bind::esri:parameters 列输入的水印参数可以控制水印的显示位置。 可接受的参数如下:

  • watermark
  • topLeftWatermark
  • topCenterWatermark
  • topRightWatermark
  • leftCenterWatermark
  • centerWatermark
  • rightCenterWatermark
  • bottomLeftWatermark
  • bottomCenterWatermark
  • bottomRightWatermark

例如,watermark="@[latitude longitude:dms]" 会将经纬度打印在图像的右下角,而 topLeftWatermark="@[latitude longitude:dms]" 会将同样的值打印在左上角。

可以在一个语句中使用多个参数,以将多个水印添加到同一图像中。

水印内容和格式

可以将水印参数与一组属性结合使用,以帮助定义水印的内容和格式。

提示:

如果该属性组合的任意位置包含空格,请将 watermark 参数后的所有内容用双引号引上。

此外,无法将其他字段中的值引用为更大一级水印语句的组成部分。 而是要提取其他问题中的所需值,并在同一问题的计算列中构造水印语句的主体,包括所有变量。 然后,可以在图像问题的 bind::esri:parameters 列中引用此值。 有关示例,请参阅 Survey123 Connect 中的水印示例调查。 注意,此类计算的水印语句不需要加双引号。

下表列出了所有水印参数属性:

属性描述示例

text

自由文本输入,使用 \n 表示换行。 如果将文本作为第一个参数提供,则此属性为隐含属性,且无需定义。

watermark="Example Text"

color

水印文本的颜色。 此属性可接受标准颜色名称或十六进制颜色代码。 如果未输入,则默认为蓝色。

watermark="Example Text&color=White"

outlineColor

文本轮廓的颜色。 此属性可接受标准颜色名称或十六进制颜色代码。 如果未输入,则默认为与文本相同的颜色。

watermark="Example Text&outlineColor=#FFD700"

outlineWidth

文本轮廓,以像素为单位。 如果未输入,则默认为 1。

watermark="Example Text&outlineWidth=3"

haloColor

水印周围的晕圈颜色。 此属性可接受标准颜色名称或十六进制颜色代码。 如果未输入,则默认为对比色。

watermark="Example Text&haloColor=Yellow"

size

文本大小,以像素为单位。

watermark="Example Text&size=12"

font

要使用的字体名称。 如果未输入,则默认为外业应用程序的字体。

注:

请注意,并非每种字体均可在所有设备上使用。 查看首选设备产生的水印,以确保水印按预期显示。

watermark="Example Text&font=Arial"

bold

布尔值。 设置为 true 时,水印的字体为粗体。

watermark="Example Text&bold=true"

italic

布尔值。 设置为 true 时,水印的字体为斜体。

watermark="Example Text&italic=true"

margin

图像边距,以像素为单位。

watermark="Example Text&margin=5"

图像

代替文本作为水印的图像。 需要调查媒体文件夹中的图像文件名。

watermark=&image=example.png

imageSize

水印图像大小,以像素为单位。 如果未输入,则使用源图像大小。

watermark=&image=example.png&imageSize=50

提示:

水印中的图像将根据提供的空间进行调整,不考虑水印语句中提供的其他参数和文本。

如果您使用图像作为水印,请考虑使用 Survey123 Connect 选项选项卡中的图像尺寸选项。 这将影响照片和水印两者的质量。

位置和时间

水印常用于显示照片拍摄的位置。 可以使用多种方法设置该类水印格式。

提示:

如果照片的拍摄位置很重要,请务必等待屏幕右上角的位置图标停止闪烁。 这表示已获取位置。 如果没有获取位置,则位置读取将为空。

默认情况下,将使用 @[latitude]@[longitude] 占位符显示照片的拍摄位置,以十进制度为单位。 以下示例会将这些内容放在不同的行上:

watermark="Lat @[latitude]\nLon @[longitude]"

也可以使用占位符 @[latitude longitude]@[longitude latitude] 立即显示两个值。

可以通过在占位符中声明来使用不同的经纬度格式,使用冒号分隔:

  • @[longitude:ddm] 表示十进制度分
  • @[latitude:dms] 表示度/分/秒

可以使用其他占位符来显示更多信息,也可以使用完全不同的坐标系:

  • @[mgrs] - 军事格网参考系
  • @[usng] - 美国国家格网
  • @[utm] - 通用横轴墨卡托投影
  • @[altitude]
  • @[speed]
  • @[direction] - 拍摄照片时设备的移动方向
  • @[accuracy]@[horizontalAccuracy]
  • @[compass] - 罗盘方位

同样,水印也可以显示照片拍摄的日期和时间。 占位符 @[date]@[time]@[dateTime] 可以从设备时钟返回时间值。 此外,可以使用占位符 @[timestamp] 来显示从位置传感器获取的时间;但使用此占位符时,应确保照片正在获取位置。

在使用相同的语法作为经纬度时,可以使用不同的日期和时间格式。 可以采用以下两种格式:

  • @[dateTime]@[dateTime:long] 返回的格式为 Monday, 22 April 2019 5:02:11 PM。
  • @[dateTime:short] 返回的格式为 22/04/2019 5:02 PM。

也可以在冒号后面设置自定义日期格式来使用专属的日期和时间值格式。 这些日期使用的格式不是 Xform 标准,而是 Qt 标准格式。 例如,占位符 @[datetime:d MMM yyyy HH:mm] 返回的格式为 22 April 2019 17:02。

局限性

使用水印时的限制如下所示:

  • 对于使用 annotate 外观的图像,不支持水印。
  • 水印不支持反向地理编码。