课程大纲
学院模块 6 · Beyond notes
The map canvas: places the agent maps for you
你将学到
- you can get a map by asking a spatial question in chat, and explain why there's no map button
- you can open a map full screen with "View large", switch basemaps, and read the legend
- you can select a feature, hand it to the agent as an @mention, and jump from a pin to the knowledge graph
- you can ask follow-up spatial questions like nearest, within-radius, real routes and travel times, once places are remembered in the graph
Your workspace is full of places. Client meetings in three cities, incident reports with addresses, a Kyoto trip spread across a dozen notes. Reading them as text, you can't see the one thing that matters most: where everything sits relative to everything else.
Consilience answers spatial questions with a real, interactive map, and the agent draws it for you. Ask "put my client meetings on a map" or "what's within 15 minutes of the office?". It geocodes the places, runs the analysis, and renders a live map in the conversation.
Ask, don't draw
There's no map button or sidebar icon anywhere in the app. A map only exists once the agent calls its write_map tool during a chat turn. So to get one, ask for a map in any chat.
While the place names turn into coordinates you'll see a "Geocoding places" card. Then an "Authored map" card appears, with the live map inline right below it. Pan, zoom, and click all work on the spot.
A map is built from 8 layer types, and you can stack and combine them however you like:
scatterplot: dots for your pins and bubbles (radius can encode a numeric value)heatmap: a soft density glowgeojson: polygons and lines, like district boundaries or choropleths (regions shaded by a value)path: routestext: labels placed on the maphexagon: automatic hex-binned density, with a real value per cellarc: great-circle links between origin and destination pairsraster: a tile-imagery overlay, such as live weather
Open it big
The inline card's footer has a "View large" button. Click it and the map opens as a full-screen tab (map-pin icon, titled with the map's name). The chat tucks into the left sidebar, so you keep talking while you look.
The usual gestures work: drag to pan, scroll or pinch to zoom, right-drag to rotate and tilt. On open, the camera auto-fits all the data, and maps with 3D extrusions open already tilted.
| Control | Where | What it does |
|---|---|---|
| Navigation control | Top-right | Zoom in, zoom out, and a compass/pitch button that resets north and flattens the tilt |
| "Map style" button | Top-right, below navigation | Basemap menu: "Standard" (default 3D), "Faded", "Mono", "Light 2D", "Dark 2D", "Satellite". Your pick sticks even when the agent re-authors the map |
| Legend | Bottom-right, full screen only | A color swatch and label for every category, choropleth range (like "≥ 50"), or layer |
| Time scrubber | Bottom-center, when the map has a time dimension | Replays time-stamped data (more on this below) |
| Hover tooltip | Any interactive mark | A small popup listing the feature's fields (heatmap layers are the exception: not hoverable or clickable) |
From a dot to a question
Map to chat to graph
Click a mark
A pill appears at the top of the map: "Selected: {label}", with an "×" button ("Clear selection") to undo it. Clicking an empty part of the map clears it too.
The composer picks it up
An
@labelmention chip drops into the chat composer. Your next message quietly carries the feature's full properties and coordinates, so "why is this one an outlier?" just works.Ask about exactly that place
Send the message. The agent gets the exact feature you clicked, with all its data. You never have to describe which dot you meant.
Jump to the knowledge graph
If the feature you clicked is tied to one of your entities, the pill also shows a "View in graph" button. One click opens the graph view focused on that entity.
快速自测
You click a hexagon cell on a density map. The "Selected" pill appears, but there's no "View in graph" button. Why?
Real analysis, real geometry
The map does real work. The app computes spatial analytics itself, deterministically, and real-world travel geometry comes from live services instead of straight-line guesses.
| You ask | What runs |
|---|---|
| "Where do incidents cluster?" | Hex-binned density, or a hotspot analysis (Getis-Ord Gi*) that finds statistically significant hot and cold spots |
| "Where is it spreading?" | emergingHotspot: a space-time trend test that labels each cell as intensifying, diminishing, persistent, new, sporadic, or historical |
| "How do I get from A to B?" | directions: actual road, walking, or cycling routes between your waypoints, with distance and duration |
| "What's within 15 minutes of the office?" | isochrone: real travel-time reach polygons showing everywhere you can get to within N minutes, in several nested time bands at once |
| "Which warehouse is fastest to reach from each store?" | travel_matrix: an origin-to-destination travel-time matrix across your points |
| "What's within 2 km of the warehouse?" (no map open) | query_geo: nearest, within-radius, bounding-box, or inside-a-polygon queries over places your graph already remembers |
(Kyoto Station) -located at-> POINT(135.7587 34.9858)This is the map's lasting payoff. Once a place has been on a map with an entity binding, the agent can answer spatial questions about it without drawing anything at all. Ask for "the 5 nearest customers" or "every asset inside this district", and query_geo handles it in any future conversation.
Replay time
If the mapspec declares a time field, the map grows a time scrubber: in the inline card's footer, or bottom-center in the full-screen tab (accessible name "Time scrubber"). It starts at the end, with everything visible.
Drag it left and features filter cumulatively up to the moment you pick. Because the transforms recompute on the filtered data, hexbins, hotspots, and choropleths all animate as you drag. Scrubbing never re-frames the camera, so you can watch one neighborhood while the pattern replays.
快速自测
You drag the time scrubber to March 15 on an incident map. What does the map show?
- mapspec
- The declarative JSON the agent writes: title, camera, basemap, layers. Validated twice, then compiled to native map layers.
- transform
- A parametric spatial computation the app runs on a layer's data: hexbin, kernel density, buffers, clusters, voronoi, hotspot statistics, and more.
- geocoding
- Turning place names into coordinates through OpenStreetMap, forward or reverse, one name or a whole batch at once. Every coordinate is a real, resolved location.
- isochrone
- A travel-time reach polygon: everywhere you can get to within N minutes, computed on the real road network.
- time scrubber
- The slider on time-aware maps that filters features cumulatively up to an instant, recomputing analytic layers live as you drag.
- query_geo
- The agent tool that answers nearest, within-radius, and in-polygon questions over entity coordinates the knowledge graph has remembered.
A map is a canvas the agent authors inside your conversation. The design canvas takes that same move to screens: the agent draws one, and you grab it and tweak it.