Treaty overlay
treaties draws the Crown-Indigenous Relations and Northern Affairs Canada (CIRNAC) historic and
modern treaty representations on any style, and a click or a typed coordinate lists every treaty
representation that covers that point. The data is open government data under the Open Government
Licence - Canada. It is treaty context: not traditional territories, not reserves, and not a land
acknowledgement.
import { Unmap, createTreatyOverlay } from "@unmap/sdk";
const unmap = new Unmap({
key: "um_live_...",
container: "map",
style: "muted",
overlays: ["treaties"],
center: [-106, 55],
zoom: 4,
});
const treaties = createTreatyOverlay(unmap.map!, unmap.geocoder, {
lang: "en",
onSelect: ({ context }) => {
if (context.status === "ok") {
for (const treaty of context.matches) console.log(treaty.name, treaty.source_url);
}
},
});
treaties.setVisibility({ modern: false });?overlays=treaties on /styles/{style}.json composes the same layers. The overlay is core: no
add-on.
What the map shows
- Historic treaties have a dashed outline, modern treaties a solid one. The difference is the line, not the colour, so it survives every style, mode and theme.
- Fills are faint on purpose. Where representations overlap, the tones add up, so an overlap looks like an overlap rather than one treaty covering another.
- There are no labels. Names come from the details for the point you pick.
- Tiles are simplified for display. A small representation can disappear at low zoom; the details lookup below never loses it.
Details for a point
createTreatyOverlay answers a map click, or lookupAt([lng, lat]) for a point from a search
result or a coordinate someone typed, with the geocoder's full-resolution lookup
(GET /geocode/reverse?include=treaties). The answer is for that exact coordinate, and it is pinned
to the dataset version drawn on the map, so the details always describe the shapes on screen.
status: "ok"with matches lists every representation covering the point. Overlaps are all listed, historic before modern.hiddennames categories you have switched off on the map; their matches are still listed.status: "ok"with no matches: No treaty record found in this dataset. This does not determine Indigenous rights or whether land is unceded.status: "unavailable": Treaty context is temporarily unavailable.- An error with
code: "treaties_version_not_found"means the version on screen has been retired. Reload the map; the helper never shows newer details against older shapes. - Rapid clicks keep only the latest answer, and nothing is reported after
destroy().
Always show the notice with the details: Source representations are approximate or illustrative.
Coverage is incomplete; consult the linked sources. Each match carries source_url, the
publisher's dataset page.
Billing
Overlay tiles meter like every catalog overlay. Each details lookup is one geocode call. Creating the helper, toggling a category or changing style makes no request.
Not included
Traditional territories, reserves (see aboriginal-lands in the layer catalog),
the Treaties of Peace and Neutrality (no mapped geography), Indigenous agreements, and two modern
treaties whose published geometry is invalid (the Labrador Inuit Land Claims Agreement and the
Tla'amin Nation Final Agreement). See Geocoding for include=treaties.