Tile Search
Searches a precomputed embedding dataset of satellite imagery tiles and renders the matches both as a grid of image chips and as graphics on a sibling Map widget. You can search by meaning (CLIP text similarity), by a drawn area, or by both. Selecting tiles runs an AI vision summary of the area inline — the widget shows processing status, then opens the finished AOI summary in a modal.
See the Tile search & area summary guide for the end-to-end flow and the backend it talks to.
At a glance
| Type key | tile-search |
| Default size | 4 × 12 |
| Data source | An embedding dataset (backend) + a sibling Map widget |
| Emits | — |
| Receives | — |
| Source | src/widgets/widgets/tile-search/ |
Configuration
| Field | Type | Default | Purpose |
|---|---|---|---|
sourceWidgetId | string | "" | Instance id of the Map this search draws onto and reads its extent from. Empty shows the placeholder. |
sourceWidgetTitle | string | "" | Display title of the source Map (for the picker). |
datasetId | string | "" | Embedding dataset to search (from GET /api/embeddings/datasets). |
mode | "query" | "extent" | "combined" | "query" | How results are scored / filtered. |
topK | number | 12 | Max results to return (1–500). |
minScore | number | 0.15 | Minimum CLIP similarity for a result (query / combined). |
showScore | boolean | true | Show the per-tile similarity score badge on result chips. |
showDrawArea | boolean | true | Show the Draw search area button (extent / combined modes only). |
summaryFocus | string | "" | Optional analyst focus for the AOI summary run (e.g. "mining activity"). Steers the vision summary. |
Config panel
- Data — pick the source Map widget, choose the embedding dataset, select the search mode (Semantic / Area / Both), set the result cap and minimum score, and set the optional AOI summary focus.
- Appearance — toggle the per-tile score badge and the Draw search area button.
Search modes
- Semantic (
query) — embeds your text with the CLIP text encoder and ranks tiles by cosine similarity against their precomputed image vectors. - Area (
extent) — spatially filters tiles to the box you draw on the map (or, if you draw nothing, the map's current extent). No scoring. - Both (
combined) — CLIP ranking restricted to the drawn box.
The drawn box and the map extent are converted to WGS84 lat/lon bounds client side (geometry.ts) so the backend filters against the same coordinates regardless of the map's spatial reference.
Summarizing an area
Once you select one or more tiles, the Summarize N selected button runs
the backend area_summary workflow over the selection — no second widget or
action wiring required.
- While the run is in flight, a single status line reports progress across the selection (e.g. Processing 1 of 3 tiles…) instead of a per-tile list.
- When it finishes, the widget shows a completion message with View Summary and Re-run buttons.
- View Summary opens the AOI summary in a modal that renders the synthesized report as GitHub-flavored Markdown.
- Changing the tile selection resets the summary back to the Summarize prompt for the new set.
Notable behavior
- Tile chips are fetched as PNG blobs through the backend proxy
(
GET /api/embeddings/tile-image) with the signed-in user's ArcGIS token in theAuthorizationheader, then shown via an object URL — the token never appears in an<img>URL. - Result tiles are drawn as extent graphics on the source map; selected tiles use a distinct highlight symbol.
- Prompts you to pick a source Map until
sourceWidgetIdis set.