Trouver une description légale de terrain en Alberta
Dans les Prairies, les puits, les baux, les fermes et les propriétés rurales sont décrits par
l'arpentage des terres du Dominion plutôt que par une adresse : NW-25-24-1-W5 est le quart
nord-ouest de la section 25, canton 24, rang 1, à l'ouest du cinquième méridien. Ce tutoriel
résout une telle description en un lieu sur la carte, fait le chemin inverse d'un point vers sa
description, et trace la grille.
La recherche de terres légales, la grille d'arpentage et l'identification d'arpentage exigent la
capacité legalLand, que les compléments Terres légales, Énergie et Agriculture accordent tous.
Sur le forfait dev, elle est gratuite depuis localhost et les origines de prévisualisation,
comme tous les compléments unmap. Depuis une origine de production, une clé qui ne l'a pas reçoit
un 403 : addon_required sur un forfait payant, dev_only sur le forfait dev. La recherche
civique sur la même clé n'est pas touchée, et une recherche réussie est comptée sous legal-land,
pas sous geocode. Voir compléments et comptage.
import { Unmap } from "@unmap/sdk";
const unmap = new Unmap({ key: "um_live_..." });
const results = await unmap.geocoder.search("NW-25-24-1-W5", { limit: 1 });Le code est du TypeScript ordinaire. Pour le câblage React, Next.js, Vue ou Nuxt, partez des recettes par cadriciel.
Envoyez la description telle quelle
Il n'y a pas de point de terminaison distinct. Une description bien formée envoyée à la recherche
quitte entièrement le chemin des adresses et revient avec layer: "legal_land", ses parties
analysées et une graphie canonique. Les garder séparées est voulu : classée comme une adresse,
25-24-1-W5 correspondrait à une rue quelque part en Ontario.
const [cell] = await unmap.geocoder.search("NW-25-24-1-W5", { geometry: true });
if (cell?.layer === "legal_land") {
console.log(cell.legal_land?.canonical, cell.legal_land?.unit); // "NW-25-24-1-W5" "qtr"
console.log(cell.lng, cell.lat);
}Les graphies que les gens tapent vraiment mènent toutes à la même cellule : NW-25-24-1-W5,
NW 25-24-1 W5 et NW25-24-1W5. Chaque niveau de l'arpentage a son propre unit :
| Vous envoyez | unit | Signifie |
|---|---|---|
10-25-24-1-W5 | lsd | La subdivision légale 10 de la section 25 |
NW-25-24-1-W5 | qtr | Le quart nord-ouest de la section 25 |
25-24-1-W5 | sec | La section 25 |
24-1-W5 | twp | Le canton 24, rang 1 |
legal_land.province revient avec la cellule : une description de la Saskatchewan comme
SE-1-1-1-W3 indique SK.
Tracez la cellule
bbox donne les limites de la cellule, et geometry son polygone quand vous l'avez demandé avec
geometry: true. Cadrez la carte sur l'un et dessinez l'autre.
import type { GeocodeResult } from "@unmap/sdk";
function showCell(cell: GeocodeResult) {
const map = unmap.map;
if (!map) return;
if (cell.bbox) map.fitBounds(cell.bbox, { padding: 40 });
if (!cell.geometry) return;
// Un Polygon ou un MultiPolygon, selon la ligne d'arpentage : dessinez celui qui arrive.
const g = cell.geometry;
const geometry =
g.type === "Polygon"
? { type: "Polygon" as const, coordinates: g.coordinates as number[][][] }
: { type: "MultiPolygon" as const, coordinates: g.coordinates as number[][][][] };
map.addSource("cell", {
type: "geojson",
data: {
type: "Feature",
properties: {},
geometry,
},
});
map.addLayer({
id: "cell-outline",
type: "line",
source: "cell",
paint: { "line-color": "#FF3E9A", "line-width": 2 },
});
}Trouvez la description sous un point
Le sens inverse passe par l'identification, pas par le géocodage inverse : elle demande quelles cellules d'arpentage contiennent un point et répond pour tous les niveaux à la fois, de la subdivision légale jusqu'au canton.
const { results } = await unmap.identify({
at: [-114.0719, 51.0447],
layers: ["survey.dls"],
});
const lsd = results.find((r) => r.unit === "lsd");
console.log(lsd?.name); // "8-16-24-1-W5"Branchez-la sur un clic de carte et le lecteur peut pointer un champ et lire sa description, ce qui est souvent la raison même pour laquelle il voulait la recherche.
Tracez la grille
La grille d'arpentage est une superposition du catalogue. Demandez-la à la création de la carte et tous les niveaux s'affichent, chaque cellule étiquetée par sa description.
const unmap = new Unmap({
key,
container: "map",
center: [-114.0719, 51.0447],
zoom: 12,
overlays: ["survey.dls"],
});Les cantons s'affichent de loin ; les sections, les quarts et les subdivisions légales à partir du zoom 9. Pour choisir quels niveaux apparaissent à quel zoom, ajoutez la source vous-même, comme le montre Couches.
Là où cette approche se trompe
- Une description qui s'analyse mais n'est pas dans la table retourne
[]. Aucun centroïde n'est inventé pour une cellule absente. - La couverture dépend du système. Les descriptions DLS donnent un résultat en Alberta, en Saskatchewan, au Manitoba et dans la région de la Peace en Colombie-Britannique, et le SNRC en Colombie-Britannique. Le FPS, les concessions et lots ontariens et les lots de rivière s'analysent mais ne donnent pas encore de résultat. Les cadastres du Québec et de l'Atlantique ne sont pas sourcés.
- La recherche structurée ne la détecte pas.
/geocode/structuredtraiteNW-25-24-1-W5comme un nom de rue. Envoyez les descriptions à la recherche. - Une cellule situe un terrain, ce n'est pas un arpentage. Le polygone vient de la grille d'arpentage provinciale ouverte. Il dit où se trouve une description. Il n'établit pas une limite légale.
Voir aussi
- API de géocodage pour le tableau des systèmes et le corps d'erreur.
- Couches pour l'identification et les superpositions d'arpentage.
- Composants de superposition pour
legal-land-search, ce champ de recherche en composant à copier.