地理点

地理点问题允许您在调查中捕获特定位置。 即使不包含地理点问题,Survey123 中的调查答案也将始终尝试捕获设备的位置,从而使得表单上的可见地理点问题更好地捕获位置信息。

默认情况下的地理点问题

使用地理点时应考虑以下问题:

  • 您可以向调查添加多个 geopoint、geotrace 或 geoshape 问题,但是仅可以使用其中一个作为调查记录的几何。 如果除一个问题以外的所有问题都将 bind::esri:fieldType 设置为 null,则可以使用多个地图问题。
  • 调查中的每个重复项也可以有多个 geopoint、geotrace 或 geoshape 问题,但是仅可使用其中一个问题作为重复记录的几何。 可以使用上述相同的方法使用多个地图问题。
  • 默认情况下,Survey123 将以度/分/秒格式显示 WGS84 纬度和经度值。 要为调查更改此显示,请选择地图选项卡然后选择一个不同的坐标格式值。
  • 默认情况下,地理点问题使用在线底图。 如果要离线使用调查,请参阅使用离线底图
  • 可以在调查的任意地图上显示重复中第一个地理点问题中的点位置。 有关详细信息,请参阅地图上的点叠加
  • 如果调查不包含 geopoint、geotrace 或 geoshape 问题,则调查的主要要素图层将具有 esriGeometryPoint 几何类型。 打开到调查时,将使用通过设备获取的位置信息来填充点位置。 即使调查具有包含地图问题的重复内容,此行为仍然适用,但是不会包含重复内容以外的地图问题。
  • 通过将地理点问题的 appearance 列设置为 press-to-locateSurvey123 将仅在用户与问题交互时捕获一个点。
  • 在使用地图捕获响应时,web 应用程序中并不支持 Survey123 外业应用程序的所有要素。 以下要素在 Survey123 外业应用程序中受支持,但在 Web 应用程序中不受支持:
    • 离线底图。
    • 地理点问题的位置平均化。
    • 地理点符号系统。
    • 位置精度阈值和位置质量表达式。
    • 所有 pulldata("@geopoint") 属性。 Web 应用程序仅支持 xyzhorizontalAccuracyverticalAccuracyspeeddirection 属性。

位置精度阈值

默认情况下,Survey123 不会对其所采集位置值的精度进行检查。 如果位置精度对于调查结果非常重要,则可以通过位置平均化来定义精度阈值。 可通过在地理点问题的 body::accuracyThreshold 列中输入数值来实现以上操作。 该值将为精度的阈值,在计算位置的平均值时,不再捕获超出该值范围的值。

当响应超出精度阈值 5 米时的错误消息

如果未计算平均值,则当位置精度大于定义的阈值时,Survey123 外业应用程序中的地图面板将显示警告,但不会禁止用户捕获位置。 要捕获满足阈值的位置,请等待不再显示警告后,选择位置按钮。 当计算平均值时,才会自动忽略不满足阈值的位置。

位置质量表达式

位置精度阈值是单个数字,即给定位置水平精度的最小值。 要警告用户他们的位置不符合其他更加复杂的质量要求,或限制他们提交该位置,可以使用表达式。 可以在以下列(及其关联的消息列)中输入这些表达式:

  • Constraintconstraint_message 列可用于防止用户在不满足位置质量表达式要求的情况下在地理点问题中捕获位置。
  • bind::esri:warningbind::esri:warning_message 列可用于在不满足位置质量表达式时,向用户显示警告。 如果不满足位置质量表达式质量要求,则地理点问题顶部包含坐标值的栏将变为黄色。 在这种情况下,用户仍然可以捕获位置。
当响应未能满足位置质量表达式时的警告消息

可以使用调查中的任何问题在上述列中的任一列中创建表达式;但通常会使用与调查位置相关的问题或参数。

有关可以使用的位置参数,请参阅以下提取地理点值部分。

例如,以下表达式可用于确保用户在捕获位置之前已接近静止,并且该水平精度优于 5 米:

pulldata("@geopoint", ., "horizontalAccuracy") < 5 and pulldata("@geopoint", ., "speed") < 0.1

提示:

尽管您可能希望用户在静止时捕获一个点,但设备很少报告为零的速度值。 因此,上方示例将搜索小于 0.1 的速度以引入可接受的误差幅度。

如果必须在表达式所述的条件下捕获位置,则请在 constraint 列中输入该表达式。 如果表达式仅为建议,则在 bind::esri:warning 列中输入此表达式将向用户显示随附的警告消息。 用户仍然可以在地理点问题中捕获位置。

如果这些列中的表达式计算为 false,则会显示 constraintbind::esri:warning 消息。

对于大型或复杂的表达式,建议将这些 pulldata("@geopoint") 函数划分到单个问题中,并在表达式中引用这些问题名称。 例如,要执行与上方示例相同的函数,您可以在名为 hAccuracy 的问题中使用以下计算:

pulldata("@geopoint", ${location}, "horizontalAccuracy")

然后,您可以在名为 currentSpeed 的问题中使用以下计算:

pulldata("@geopoint", ${location}, "speed")

以下计算可以用作地理点问题的约束或警告表达式:

(${hAaccuracy} < 5) and (${currentSpeed} < 0.1)

报告 95% 的置信区间

您的组织可能要求以特定置信区间 (CI) 报告采集的数据。 默认情况下,返回的精度类型为均方根 (RMS) 时,CI 为 68%。 要在调查中报告 95% CI,请将水平精度乘以 1.7308,垂直精度乘以 1.9600。 有关这些转换系数的详细信息,请参阅空间数据准确度国家标准

高精准度示例

在此示例中,必须满足绝对最小变量集,但是用户可以自行决定使用一些不太严格的变量来采集位置。 可能存在安全或危险问题,这些问题会阻止用户长时间停留在某个位置以满足首选要求。 在这种情况下,将显示一条警告,用户可以决定捕获该位置或继续等待。

以下最小绝对精度要求由调查作者设置:

  • 95% CI 的水平精度小于 2 米。
  • 95% CI 的垂直精度小于 2 米。
  • 位置精度衰减因子 (PDOP) 小于或等于 6.0。
  • 使用五个或五个以上卫星。

以下首选精度要求由调查作者设置:

  • 95% CI 的水平精度小于 1 米。
  • 95% CI 的垂直精度小于 1 米。
  • PDOP 小于或等于 2.0
  • 使用七个或七个以上卫星。

以下计算用于名为 haccuracy68cep 的问题中:

pulldata("@geopoint", ${location}, "horizontalAccuracy")

然后,以下计算用于名为 haccuracy95ci 的问题中:

${haccuracy68cep} * 1.7308

对垂直精度执行类似计算后,可以在 constraint 列中输入以下表达式来表示最小绝对精度:

${accuracyType} = 0 and ${haccuracy95ci} < 2 and ${vaccuracy95ci} < 2 and ${pdop} <= 6 and ${satellitesInUse} >= 5

bind::esri:warning 列中输入以下表达式,以表示首选精度。 此处使用的值通常小于用于最小绝对精度的值。 首选较小的值,但也可以使用较大的最小值。

${accuracyType} = 0 and ${haccuracy95ci} < 1 and ${vaccuracy95ci} < 1 and ${pdop} <= 2 and ${satellitesInUse} >= 7

3D 要素图层

默认情况下,Survey123 地理点问题不支持 z 轴(高度)值;仅捕获二维要素图层中的纬度和经度。 可通过在问题的 bind::esri:fieldType 字段中输入 esriFieldTypePointZ 进行更改,从而能够将高度值捕获到要素图层中。 这样,指定地理点值时,也将允许更改高度字段。

默认值

可以通过在 default 列中提供一组以空格分隔的纬度和经度值(以十进制度为单位)来设置地理点问题的默认位置。 例如,-37.814552 144.966071 会导致地理点问题默认设置为澳大利亚墨尔本的一个位置。

提示:

位于南半球的位置默认值将导致 Microsoft Excel 中出现错误,由于值以减号 (-) 开头,因此会被视为公式。 在上述情况下,请在第一个值之前输入单引号,在 Excel 中即可按预期读取该值。 添加单引号在 Survey123 中不会导致行为发生变化。

如果未提供默认值,则地理点问题将自动更新为设备的当前位置。 为防止出现这种情况,请将默认值设置为 null。 地理点问题将显示用于启用位置捕获的选项、加载用于手动设置位置的地图页面,或者如果已应用计算,则刷新计算。

从非相关切换为相关状态的地理点问题不会自动更新为设备位置。 如果将默认值设置为位置,则将问题设置为相关时,将自动获取设备识别的当前位置。

收件箱草稿箱发件箱启动的调查中包含的地理点问题不会自动更新到设备的当前位置。 如果将默认值设置为位置,则从文件夹打开调查时,将自动获取设备识别的当前位置。

计算

可以使用其他问题的结果来填充地理点问题。 地理点问题答案的格式是以空格分隔的纬度和经度(以十进制度为单位)列表,后跟可选值,以高度和精度(以米为单位)为开头。 要填充地理点问题的答案,必须遵照此结构来生成有效答案。

由于填充 select_one 问题时不会直接执行以上操作,建议您使用 substr() 函数来帮助构建有效答案。 例如,地理点的名称可如下所示:

+059.38330_+018.00000

对于纬度和经度,该值将使用固定数量的字符,由于 name 列中不允许空格,两个值之间的零通常使用下划线截断。 由此可创建一个可使用 substr() 函数解构的值,以填充以下地理点问题的示例:

concat(substr(${LocationValue}, 0, 10), " ", substr(${LocationValue}, -10))

本示例提取值的前 10 个字符(纬度)和后 10 个字符(经度值),并在显示时使用空格分隔,以生成有效的地理点结果。

还可以通过附加的 csv 文件使用 pulldata() 函数填充地理点问题。 首先将 .csv 文件添加到调查的媒体文件夹中。 然后在 calculation 列中添加与以下内容相似的内容:

pulldata('Intersections', 'Lat', 'IntersectionID', ${intersection}) + " " + pulldata('Intersections', 'Long', 'IntersectionID', ${intersection})

substr() 示例类似,这将使用空格来组合位置的纬度和经度值,从而基于之前的问题创建地理点问题的有效答案。

要查看这些计算的示例,请参阅 Survey123 Connect 中的示例。

必填和只读

地理点问题可使用设备提供的位置(如果可用)自动填充调查。 如果设备在其调查响应中未提供有效位置,则 Survey123 将返回位置 0,0;此点位于非洲海岸附近。 将地理点问题标记为必填可防止在此值为空值的情况下提交调查,并且在设备提供位置或手动提交位置后,调查即会被接受。

将地理点问题标记为只读将避免手动输入答案。 对于需要自动响应的问题(手动响应可能会导致数据集问题),此选项非常有用。 建议将其与上述其中一种计算配合使用,这样可以提供一个用户无法更改的离散地理点值。

地理搜索和地理编码

地理点问题将包括地理搜索功能;用户可以搜索地址或感兴趣点,并将地图缩放到该位置并放置地理点标记。

默认情况下,地理搜索功能使用 ArcGIS World Geocoding Service 搜索地址,可返回来自全世界的结果。

默认情况下,地理搜索使用 ArcGIS World Geocoding Service 搜索地址,可返回来自全世界的结果。 登录的用户也会看到组织的所有已配置的地理编码服务

注:
使用 ArcGIS World Geocoding Service 进行地理编码将消耗配额。 有关详细信息,请参阅了解配额

要设置要从中返回结果的特定定位器,请在 bind::esri:parameters 列中提供定位器的项目 ID,例如 geocode=36ff9e8c13e042a58cfce4ad87f55d19ArcGIS Online 调查中使用的定位器必须是 ArcGIS Online 中的项目。 ArcGIS Enterprise 调查中使用的定位器项目必须与调查同属一个门户。

通过添加一个使用地理编码外观的文本问题,您可以设置一个问题以仅执行地理编码。 有关详细信息,请参阅地理编码外观

反向地理编码

当打开完整的地理点视图时,可以在外业应用程序中通过长按地图或坐标来执行反向地理编码,但系统不会将其保存并提交给调查。 可以使用 pulldata("@geopoint", ${location}, "reversegeocode") 从地理点获取反向地理编码值,系统会将该位置作为 JSON 对象返回。 可通过提供属性名称从对象中提取各个属性,但这些属性会因所用定位器的不同而有所差别。 对于 ArcGIS World Geocoding Service,将返回类似于以下内容的 JSON 对象:

{
	"address": {
		"Match_addr": "207-361 Flinders St, Melbourne, Victoria, 3000",
		"LongLabel": "207-361 Flinders St, Melbourne, Victoria, 3000, AUS",
		"ShortLabel": "207-361 Flinders St",
		"Addr_type": "StreetAddress",
		"Type": "",
		"PlaceName": "",
		"AddNum": "283",
		"Address": "283 Flinders St",
		"Block": "",
		"Sector": "",
		"Neighborhood": "Melbourne",
		"District": "Melbourne",
		"City": "Melbourne",
		"MetroArea": "",
		"Subregion": "",
		"Region": "Victoria",
		"RegionAbbr": "VIC",
		"Territory": "",
		"Postal": "3000",
		"PostalExt": "",
		"CntryName": "Australia",
		"CountryCode": "AUS"
	},
	"location": {
		"x": 144.96721048751365,
		"y": -37.81768543612741,
		"spatialReference": {
			"wkid": 4326,
			"latestWkid": 4326
		}
	}
}

要从 JSON 对象中提取特定值,请使用类似于以下内容的 pulldata("@geopoint") 函数,该函数可提取 Match_addr 属性:

pulldata("@geopoint", ${location}, "reversegeocode.address.Match_addr")

执行反向地理编码时,将使用组织的默认地理编码服务。 如需使用其他地理编码服务,请将定位器 URL 作为可选参数输入到格式为 pulldata("@geopoint", ${location}, "reversegeocode", ${locatorURL}) 的函数中。 如果该服务为安全服务,或者调查用于公共用户,则代理项目必须通过其中保存的访问凭据进行配置。

如果提供了定位器 URL,则可以提供将传递给 URL 的其他参数。 与 JSON 对象内提供的属性一样,这些参数会有所不同,具体取决于所使用的地理编码服务。 以下示例使用 featureTypes 参数,该参数可限制返回到特定类型位置的值,以仅返回最近的公司或地标:

pulldata("@geopoint", ${location}, "reversegeocode.address.Match_addr", "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer", "featureTypes=POI")
提示:

如果 ArcGIS Enterprise 部署的默认地理编码服务是 ArcGIS World Geocoding Service,或如果像上述步骤中那样将 ArcGIS World Geocoding Service 用作企业调查中的定位器 URL 参数,则您可能会在执行反向地理编码时接收到令牌错误。 要避免这种情况,请创建一个已保存 ArcGIS Online 访问凭据的代理项目,以供具有地理编码执行权限的用户访问。 然后,可以将此项目设置为门户的默认地理编码服务,或反向地理编码功能中定位器 URL 参数的目标。

有关反向地理编码 URL 参数的详细信息(包括可传递给 URL 的完整参数列表),请参阅 ArcGIS REST API 文档中的 reverseGeocode

您可以包含多个反向地理编码计算,而不会影响性能或配额。 例如,可以包括单个属性的以下三个调用:

pulldata("@geopoint", ${location}, "reversegeocode.address.Match_addr")

pulldata("@geopoint", ${location}, "reversegeocode.address.LongLabel")

pulldata("@geopoint", ${location}, "reversegeocode.address.ShortLabel")

将针对第一个计算执行反向地理编码,这将消耗配额。 然后,将对响应进行缓存并将其用于其他两个计算。 仅当反向地理编码请求 URL 由于位置更改、使用不同的请求参数或者原始访问令牌过期而更改时,才需要地理服务的新调用。

配置代理定位器项目

要配置代理定位器项目,请按照以下步骤操作:

  1. 使用具有地理编码权限的账户登录到 ArcGIS 组织。
  2. 内容页面中,浏览至添加项目 > 自 URL(适用于 ArcGIS Online)或添加项目 > 自 Web(适用于 ArcGIS Enterprise)并确保所选类型为 ArcGIS Server Web 服务
  3. 使用目标定位器的 URL,例如 ArcGIS World Geocoding Servicehttps://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer

    这将被检测为安全服务。

  4. 为具有地理编码权限的 ArcGIS 账户添加用户名和密码。
  5. 选择将凭据与服务项目一同存储。 不提示身份验证。
  6. 提供标题和标签。
  7. 单击添加项目
  8. 公开共享此在线定位器项目。

有关详细信息,请参阅面向 ArcGIS Online 配置您自己的定位器的要求,或面向 ArcGIS Enterprise 通过门户配置实用程序服务

提取地理点值

要解构地理点答案,可以使用 pulldata("@geopoint") 函数来提取值,以填充其他问题的值。 以下示例可从地理点问题提取水平精度值:

pulldata("@geopoint", ${location}, "horizontalAccuracy")

地理点属性的可用性取决于硬件。 下表列出了可从地理点提取的属性:

属性名称描述单位

x

经度:东半球为正值,西半球为负值。

十进制度

y

纬度:北半球为正值,南半球为负值。

十进制度

z

高度,海拔高度(默认值)或大地高度(如果在外业应用程序设置中选择)。

horizontalAccuracy

x 和 y 坐标的水平精度。

verticalAccuracy

z 坐标的垂直精度。

speed

地面速度。

米/秒

verticalSpeed

垂直速度。

米/秒

方向

以北为基准方向按顺时针进行测量的行驶方向。

十进制度

positionSourceType

位置源的类别。 可能产生的结果分为以下几种:Unknown (0)、User (1)、System Location (2)、External Device (3)、Network Device (4) 和 File (5)。

N/A

positionSourceInfo.antennaHeight

设备天线的高度。 从高度值中减去天线到地表的距离。

positionSourceInfo.altitudeType

所选高度类型。 可能的结果为平均海平面 (0) 上方的高度和椭圆体 (1) 上方的高度。 这适用于所有位置提供商类型。

N/A

下表列出了可从使用高精度接收器捕获的地理点中提取的其他属性:

属性名称描述单位

magneticVariation

磁北和正北之间的角度。

十进制度

fixType

坐标的定位类型。 可能产生的结果分为以下几种:NoFix (0)、GPS (1)、DifferentialGPS (2)、PrecisePositioningService (3)、RTKFixed (4)、RTKFloat (5)、Estimated (6)、Manual (7)、Simulator (8) 和 SBAS (9)。

N/A

positionSourceInfo

JSON 对象形式的设备信息。 适用于调试和验证。 也可以使用完整元素名称来返回单个元素。 有关所有可用元素,请参阅下表各行。

N/A

positionSourceInfo.pluginName

内部位置源的名称。 这仅适用于设备的集成位置提供商。

N/A

positionSourceInfo.deviceAddress

设备的地址。 这仅适用于外部 GNSS 接收器。

N/A

positionSourceInfo.deviceName

设备的名称。 这仅适用于外部 GNSS 接收器。

N/A

positionSourceInfo.deviceType

外部设备的类型。 可能产生的结果为:Unknown (-1)、Bluetooth (0)、Serial Port (1) 和 Bluetooth LE (2)。 这仅适用于外部 GNSS 接收器。

N/A

positionSourceInfo.networkName

网络位置源的名称。 这仅适用于网络位置提供商。

N/A

positionSourceInfo.networkAddress

网络位置源的地址。 这仅适用于网络位置提供商。

N/A

positionSourceInfo.networkPort

网络位置源的端口。 这仅适用于网络位置提供商。

N/A

positionSourceInfo.geoidSeparationCustom

用户在应用程序设置中定义的 WGS-84 地球椭圆体与平均海平面之间的差异。

geoidSeparation

通过 GNSS 接收器报告的 WGS-84 地球椭圆体与平均海平面之间的差异。 有时被称为正高。

accuracyType

horizontalAccuracy 和 verticalAccuracy 属性报告的精度类型。 可能产生的结果为 RMS (0) 和 DOP (1)。 RMS 为均方根精度。 该结果根据接收器提供的 GST 语句中报告的纬度、经度和高度误差的 68% 置信区间计算得出。 如果接收器不支持 GST,请使用 DOP。 DOP 为基于精度的精度衰减因子。 它使用恒定的用户估算范围误差 (UERE) 值来估算水平和垂直精度。

N/A

positionAccuracy

平均径向球面误差。 包括水平和垂直误差。

latitudeError

纬度 1-sigma 错误的值。 仅当定位设备支持 NMEA 流中的 GST 语句时,才会填充此属性。

longitudeError

经度 1-sigma 错误的值。 仅当定位设备支持 NMEA 流中的 GST 语句时,才会填充此属性。

altitudeError

高度 1-sigma 错误的值。 仅当定位设备支持 NMEA 流中的 GST 语句时,才会填充此属性。

hdop

位置数据的水平精度衰减因子 (HDOP)。

N/A

vdop

位置数据的垂直精度衰减因子 (VDOP)。

N/A

pdop

位置数据的位置精度衰减因子(PDOP)。 用于确定 PDOP 的公式为 PDOP^2 = HDOP^2 + VDOP^2。

N/A

differentialAge

差分信号的期限和 GPS 接收器用于差分校正位置的校正。

referenceStationId

GPS 接收器使用的站的差分参考站 ID (DSID)。

N/A

satellitesVisible

位置捕获时可见的定位卫星数。

N/A

satellitesInUse

用于返回位置数据的定位卫星数。

N/A

坐标格式

pulldata("@geopoint") 函数还可用于提取地理点值,并将其格式化为其他坐标格式:

  • pulldata("@geopoint", ${location}, "DMS") 将以度、分、秒的形式返回地理点。 该内容是作为 JSON 对象返回的:
    {
    	"latitudeDegrees": 39,
    	"latitudeHemisphere": "N",
    	"latitudeMinutes": 57,
    	"latitudeSeconds": 36.3,
    	"latitudeText": "39°57'36.3\"N",
    	"longitudeDegrees": 116,
    	"longitudeHemisphere": "E",
    	"longitudeMinutes": 27,
    	"longitudeSeconds": 4,
    	"longitudeText": "116°27'04.0\"E",
    	"text": "39°57'36\"N 116°27'4\"E"
    }
    可以使用其他参数提取这些单个值。 例如,pulldata("@geopoint", ${location}, "DMS.latitudeMinutes") 只返回纬度分。
  • pulldata("@geopoint", ${location}, "DDM") 将以度和十进制分的形式返回地理点,而 pulldata("@geopoint", ${location}, "DD") 将以十进制度的形式返回地理点。 这些内容也以 JSON 对象的形式返回,并且可以使用其他参数提取单个值,提取方式与上述的度、分、秒格式相同。

以下坐标格式可与可选精度参数搭配使用,生成 10 的幂的十进制值,例如 0.01、0.1、1、10 或 100。

  • pulldata("@geopoint", ${location}, "MGRS") 会将地理点作为精度为 1 米的军事格网参考系统 (MGRS) 格网值返回。 可通过提供可选的精度参数更改精度。 例如,pulldata("@geopoint", ${location}, "MGRS", 100) 可返回精度为 100 米的格网值。
  • pulldata("@geopoint", ${location}, "USNG") 会将地理点作为精度为 1 米的美国国家格网 (USNG) 格网值返回。
  • pulldata("@geopoint", ${location}, "UTM") 会将地理点作为通用横轴墨卡托 (UTM) 坐标返回(精度为 1 米)。 该内容是作为 JSON 对象返回的:
    {
    	"band": "S",
    	"easting": 452994,
    	"northing": 4423429,
    	"text": "50S 452994E 4423429N",
    	"type": "UTM",
    	"zone": 50
    }
    可以使用其他参数提取这些单个值。 例如,pulldata("@geopoint", ${location}, "UTM.easting", 0.01) 仅会返回精度为 1 厘米的东移值。

地理点符号系统

地理点问题可以使用调查 body::esri:style 列中的 symbol 参数在地图上显示点标记的自定义符号。 参数必须提供自定义符号的文件名,该文件必须是调查的媒体文件夹中的 .png 文件。 请参阅以下示例:

symbol=hydrant.png

symbol 参数可接受可选参数,以配置地图上符号的显示。 使用问号将这些参数与文件名分隔开,并使用与号 (&) 对这些参数进行分隔。 例如,symbol 参数可以具有 xyscale 属性,如下所示:

symbol=hydrant.png?x=0.2&y=0.7&scale=2

  • x 参数指定符号的水平锚点。 它接受介于 0(表示图像的左边缘)和 1(表示右边缘)之间的值。 如果未定义,则默认值为 0.5。
  • y 参数指定符号的垂直锚点。 它接受介于 0(表示图像的上边缘)和 1(表示下边缘)之间的值。 如果未定义,则默认值为 1。
  • scale 参数指定图像的显示比例。 小于 1 的值将对图像进行缩小,而大于 1 的值将对图像进行放大。
地理点的符号样式

提供的值可以是一个常量,也可以是针对某一问题的引用,例如,symbol=${symbol_question}。 不支持行内表达式。

地图上的点叠加

要在调查的任意地图问题上显示重复项内第一个地理点问题中的点位置,可将 geopoint、geotrace、geoshape 问题的 body::esri:style 列设置为 overlay=repeat_name。 将在地图上显示为该重复项内的第一个地理点问题捕获的所有点。 可以使用其他参数自定义叠加符号系统。

叠加样式支持以下可选参数,这些参数可以使用与号分隔,例如,overlay=repeat_name&preview=true

参数描述示例

查看

在地图问题上显示叠加点。 默认值为 true。

view=false

preview

在预览地图上显示叠加点。 默认值为 false。

preview=true

icon

用于图钉的点符号的名称。 有关可用符号,请参阅 Esri 开发者 文档点符号库。

icon=esri_pin_two

iconColor

用于图钉的图标的颜色。 此参数可接受标准颜色名称或十六进制颜色代码。 默认值为黑色。

iconColor=Blue

iconOutlineColor

用于图钉的轮廓的颜色。 此参数可接受标准颜色名称或十六进制颜色代码。 默认值为白色。

iconOutlineColor=#FF4500

iconSize

在地图上显示的图标的大小。 默认值为 30。

iconSize=40

label

用作标注的调查问题名称。

label=question_name

labelColor

点的标注的颜色。 此参数可接受标准颜色名称或十六进制颜色代码。 默认值为黑色。

labelColor=#FFD700

labelOutlineColor

标注的轮廓的颜色。 此参数可接受标准颜色名称或十六进制颜色代码。 默认值为白色。

labelOutlineColor=Black

fontSize

点的标注的字体大小。 默认值为 13。

fontSize=16

问题类型

可以为地图问题配置底图、地图工具和问题高度。

可以使用 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

注:
Survey123 web 应用程序不支持控制问题的高度和地图工具。