Project Type - Locate Objects

Unlike Find Features, which asks whether an object is present anywhere in a full imagery tile, Locate Objects asks where within the tile it is. A single imagery tile is shown per screen, virtually subdivided into a grid of smaller mini tiles (2x2, 4x4, or 8x8, chosen by the project manager). Contributors tap the mini tile(s) that contain an object:

  • One tap (highlighted green) — a single object is present in that mini tile.
  • Two taps (highlighted yellow) — multiple objects are present in that mini tile.
  • No tap — no object in that mini tile.

The mini-tile grid is a virtual subdivision of the same tile/zoom level (quad-tree style), not a request for higher-zoom imagery. The output is intended to produce AI-ready training datasets (e.g. for HOT’s fAIr), so results capture per-mini-tile classification rather than a single yes/no per tile.

Locate Objects projects have projectType = 9.

Project

In addition to the common project fields documented in the data model, Locate Objects projects carry the following project-type-specific fields:

Parameter Type Description
zoomLevel int Web Mercator zoom level at which tiles are served.
tileServer object Raster tile server configuration — includes a server name, url, credits, and an optional apiKey.
subGridSize enum (string) Size of the virtual mini-tile grid each screen’s tile is subdivided into: 2x2 (4 partitions), 4x4 (16 partitions), or 8x8 (64 partitions).
exportMetaKey string Key of an additional metadata entry attached to exports (e.g. "building").
exportMetaValue string Value of that additional metadata entry (e.g. "roof_top").
customOptions list (optional) Custom answer options for classifying a mini tile (each with a value, title, description, icon, iconColor, and optional sub-options) — overrides the default No / Single Feature / Multiple Features choices.

Group

Locate Objects groups have no project-type-specific fields beyond the common group fields, plus the tile-map-service bounding-box coordinates shared with Find Features:

Parameter Type Description
xMax int Maximum tile-X coordinate covered by the group.
xMin int Minimum tile-X coordinate covered by the group.
yMax int Maximum tile-Y coordinate covered by the group.
yMin int Minimum tile-Y coordinate covered by the group.

Task

Each task is a single imagery tile, identical in shape to a Find Features task; the mini-tile grid shown to the contributor is derived client-side from subGridSize rather than stored per-task.

Parameter Type Description
taskId string ID of the task, formatted as {zoomLevel}-{tileX}-{tileY}.
tileX int Tile-X coordinate of the task at zoomLevel.
tileY int Tile-Y coordinate of the task at zoomLevel.
geometry string Polygon geometry of the tile, generated from tileX, tileY and zoomLevel.
url string Tile URL for the imagery at tileX, tileY, zoomLevel.

Result

Locate Objects deviates from the common result shape: instead of a single int per task, each entry in results (keyed by taskId) is a list of ints — one value per mini-tile partition, ordered by partition index. A subGridSize of 2x2 yields a 4-value list, 4x4 a 16-value list, 8x8 a 64-value list.

results: {
  "9-267-352": [1, 0, 0, 2, ...]
}

Each value uses the same integer encoding as customOptions (or the fallback below when none are supplied). When exported, the backend explodes each list into one row per partition, adding a task_partition_index column set to the value’s position in the list.

When the project creator does not supply customOptions, the backend falls back to the following defaults:

Value Title Description
0 No The mini tile does not contain a feature.
1 Single Feature The mini tile contains a single feature.
2 Multiple Features The mini tile contains multiple features.