[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-posts":3},[4,303,514,862,1179,1463,1660,1969,2180,2505,2846,3041,3236,3469,3682,4034,4294,4574,4993,5268,5450,6766,6969,7265,7663,7974,8226,8438,8802,9343,9536,9748,12223,12805,13945,14177,15502,15977,16268,16457,16668,17027,17561,17768,17953,18264,18460,19389,19645,19845,20392,20602,20803,21021,21255,21512,21683,21935,22097,22209,22356,22492,23669,23805,23949,24072],{"id":5,"title":6,"author":7,"body":8,"category":283,"cover":284,"date":285,"description":286,"extension":287,"meta":288,"navigation":289,"path":290,"seo":291,"stem":292,"tags":293,"__hash__":302},"blog\u002Fblog\u002Fsk-bc-manitoba-energy-agriculture-map-layers-live.md","Saskatchewan, BC, and Manitoba Energy and Agriculture Map Layers Are Now Live","Township Canada",{"type":9,"value":10,"toc":273},"minimark",[11,15,23,28,34,50,61,87,91,94,116,125,132,136,139,160,168,172,183,191,194,201,205,213,223,236,240],[12,13,14],"p",{},"A landman working a Saskatchewan oil play has been juggling four tools all morning: SaskGIS for wells, the SK Ministry of Energy and Resources pipeline viewer for the gathering lines, a paper land survey to keep track of the DLS quarter sections, and a separate browser tab for the operator's lease boundaries. None of them speak the same coordinate language. By the time the picture comes together, the morning is gone. A landman in northeast BC working the Peace River block has the same problem with a different cast of portals. A farmland buyer in Manitoba has it again — ag soil maps in one place, well data nowhere on the same screen.",[12,16,17,18,22],{},"Today that changes. Township Canada's Energy and Agriculture Bundles now cover ",[19,20,21],"strong",{},"Saskatchewan, BC, and Manitoba"," alongside Alberta. Wells, pipelines, facilities, soils, the BC Agricultural Land Reserve, ag crown land, oil-gas pools, and FWA wetlands are live as toggleable map layers on the same DLS and NTS grids your descriptions already reference.",[24,25,27],"h2",{"id":26},"whats-new-in-each-province","What's new in each province",[12,29,30,33],{},[19,31,32],{},"Saskatchewan."," Seven layers added: wells, pipelines, facilities, oil-gas pools, soils, pastures, and ag crown land. All of them render on the DLS grid that SK landmen and SCIC filers already work in. The Saskatchewan well data covers the Williston Basin south of Estevan, the Bakken trend, the heavy oil belt around Lloydminster, and everything in between.",[12,35,36,39,40,43,44,49],{},[19,37,38],{},"British Columbia."," Eight layers added: wells, pipelines, facilities, oil-gas fields, the ",[19,41,42],{},"BC Agricultural Land Reserve"," (ALR) with labels, FWA wetlands, the BC soil survey, and the BC ag capability layer. BC professionals can finally see northeast BC well activity on the same map as the NTS grid and — in the Peace River block — the DLS grid that overlaps it. A new parcel-report endpoint also resolves BC legal land descriptions via NTS\u002FDLS fallback, so the ",[45,46,48],"a",{"href":47},"\u002Fbc-nts-converter","BC NTS converter"," returns the same parcel context for either reference style.",[12,51,52,55,56,60],{},[19,53,54],{},"Manitoba."," Two additions: energy well data and ag soil layers in parcel reports. Manitoba is not in Petrinex, so the well data is loaded through a separate path (Manitoba's own provincial registry). The ag soil layers — detailed soil polygons and component data — drive the parcel report soil section for any MB quarter section you look up through the ",[45,57,59],{"href":58},"\u002Fmanitoba-legal-land-converter","Manitoba legal land description converter",".",[12,62,63,64,68,69,72,73,68,76,68,79,82,83,86],{},"The AI Assistant's tenure tools (",[65,66,67],"code",{},"list_expiring_tenure",", ",[65,70,71],{},"query_mineral_tenure",") now accept ",[65,74,75],{},"ab",[65,77,78],{},"sk",[65,80,81],{},"bc",", and ",[65,84,85],{},"mb"," as province inputs, so an analyst can ask \"list mineral tenure expiring in SK in the next 90 days\" and get an answer that previously only worked for Alberta. Petroleum and mineral tenure paint also includes MB as of this release.",[24,88,90],{"id":89},"a-saskatchewan-example-wells-and-pipelines-on-a-dls-quarter","A Saskatchewan example: wells and pipelines on a DLS quarter",[12,92,93],{},"Take a landman checking a quarter section in the Lloydminster heavy oil belt — say SW-22-49-23-W3, in the Maidstone area just east of Lloydminster. The workflow used to be: SaskGIS for the well permit map, a separate SK Energy and Resources viewer for the pipeline corridors, a third tab for the operator name, and back to the legal land description converter to translate everything into the LSD format that goes on the surface lease.",[12,95,96,97,100,101,105,106,68,109,82,112,115],{},"Now: enter ",[65,98,99],{},"SW-22-49-23-W3"," in the ",[45,102,104],{"href":103},"\u002Fsaskatchewan-legal-land-converter","Saskatchewan legal land converter",", toggle on the ",[19,107,108],{},"SK Wells",[19,110,111],{},"SK Pipelines",[19,113,114],{},"SK Facilities"," layers, and the picture is on one screen. Wells render as points on the DLS grid with status and operator on hover. Pipelines render as line work with their licence numbers. Facilities — batteries, custom treaters, the rest — sit as labelled markers. A single click on a well opens the parcel report with the surrounding wells, pipeline crossings, and any oil-gas pools that share the quarter.",[117,118,119],"blockquote",{},[12,120,121,124],{},[19,122,123],{},"📸 Screenshot placeholder:"," Township Canada interactive map zoomed to township 49, range 23, W3 in the Maidstone heavy-oil area with SK Wells, SK Pipelines, and SK Facilities layers toggled on. Highlight a single producing well with its hover popup showing operator and status. Capture in light map style at zoom 13.",[12,126,127],{},[128,129],"img",{"alt":130,"src":131},"Township Canada interactive map","\u002Fimages\u002Fguides\u002Finteractive-map.webp",[24,133,135],{"id":134},"a-northeast-bc-example-nts-reference-bc-wells-alr","A northeast BC example: NTS reference, BC wells, ALR",[12,137,138],{},"For the BC side, the move is similar but the reference frame shifts. Northeast BC professionals work with NTS map sheets like 094A\u002F03 (Peace River area, near Fort St. John) and — inside the Peace River block — the DLS grid. Until today, BC well data lived in a separate provincial tool and was a pain to reconcile against the NTS sheet you already had open.",[12,140,141,142,145,146,68,149,82,152,155,156,159],{},"Enter ",[65,143,144],{},"094A\u002F03"," in the BC NTS converter, toggle on ",[19,147,148],{},"BC Wells",[19,150,151],{},"BC Pipelines",[19,153,154],{},"BC Oil & Gas Fields",", and the whole well inventory inside that map sheet shows up on the same view. Add the ",[19,157,158],{},"BC ALR"," layer if the same parcel touches farmland — a single toggle reveals whether the property sits inside the Agricultural Land Reserve, which is the difference between a routine rural transaction and one that needs an ALR exclusion application. The FWA wetlands layer surfaces water features that affect surface lease setbacks and reclamation plans.",[117,161,162],{},[12,163,164,167],{},[19,165,166],{},"🗺️ Diagram placeholder:"," Sketch showing the NTS 094A map sheet with BC Wells as teal points, BC Pipelines as amber lines, and the BC ALR boundary as a green polygon overlaid on the DLS grid for the Peace River block. Label the layers panel toggles on the right.",[24,169,171],{"id":170},"agriculture-sk-crown-land-bc-alr-mb-soils","Agriculture: SK crown land, BC ALR, MB soils",[12,173,174,175,178,179,182],{},"The Agriculture Bundle expansion is the other half of this release. SK adds ",[19,176,177],{},"ag crown land"," and ",[19,180,181],{},"soils"," layers — the working dataset for farmland buyers and crop insurance adjusters checking provincial leases and rotation history. A buyer evaluating a parcel near Watrous, for example, can pull up SE-5-22-20-W2, see the soil polygons, check whether the adjacent half-section is provincial pasture, and confirm the productivity baseline before the purchase agreement is signed.",[12,184,185,186,190],{},"BC's ALR layer is the standout for rural real estate. Any agent listing a rural BC property near Williams Lake or in the Okanagan can confirm the ALR designation in seconds — no LTSA lookup, no separate ALR commission viewer. Combined with the ParcelMap BC layer that shipped earlier (see ",[45,187,189],{"href":188},"\u002Fblog\u002Fparcelmap-bc-parcel-boundaries-map","the ParcelMap BC integration post","), BC agents now have the survey grid, parcel boundaries, ALR status, and soil capability on a single screen.",[12,192,193],{},"Manitoba's contribution is the soil layers feeding parcel reports. A buyer looking at a MB quarter section — say NE-20-3-5-W1 in the Pembina Valley near Morden — gets the soil subgroup, drainage, and capability rating on the same report card that summarizes any energy activity on the parcel.",[117,195,196],{},[12,197,198,200],{},[19,199,123],{}," Parcel report sidebar for an MB quarter section showing the soil subgroup card and well summary side by side. Capture at app.townshipcanada.com\u002Fapp\u002Fsearch?sidebar=parcel:NE-20-3-5-W1.",[24,202,204],{"id":203},"how-to-turn-the-layers-on","How to turn the layers on",[12,206,207,208,212],{},"The new layers are part of the existing Energy and Agriculture Bundles — no new SKU, no separate upgrade. If you already subscribe to either bundle on Pro or Business, the SK, BC, and MB layers appeared in your map layers panel today. If you don't, the bundles are $50 CAD\u002Fmonth each and stack on your plan; see the ",[45,209,211],{"href":210},"\u002Fpricing#bundles","pricing page"," for the breakdown.",[12,214,215,216,222],{},"Open the ",[45,217,221],{"href":218,"rel":219},"https:\u002F\u002Ftownshipcanada.com\u002Fapp",[220],"nofollow","Township Canada app",", click the layers panel, scroll to the provincial sections, and toggle the layer you want. The layers compose — turn on SK Wells, SK Pipelines, and BC Wells together and the map renders all three across the SK\u002FBC border without complaint.",[12,224,225,226,230,231,235],{},"If your work spans more than one province — and most O&G land work in western Canada does — see the ",[45,227,229],{"href":228},"\u002Findustries\u002Foil-and-gas","oil and gas industry page"," for the cross-province workflow, or the ",[45,232,234],{"href":233},"\u002Findustries\u002Fagriculture","agriculture industry page"," for the soil-and-tenure cross-references.",[24,237,239],{"id":238},"related","Related",[241,242,243,250,256,262,267],"ul",{},[244,245,246],"li",{},[45,247,249],{"href":248},"\u002Fblog\u002Fintroducing-energy-bundle","Introducing the Energy Bundle",[244,251,252],{},[45,253,255],{"href":254},"\u002Fblog\u002Fintroducing-ag-bundle","Introducing the Agriculture Bundle",[244,257,258],{},[45,259,261],{"href":260},"\u002Fblog\u002Fannouncing-ag-energy-bundles","Announcing the Agriculture and Energy Bundles",[244,263,264],{},[45,265,266],{"href":188},"ParcelMap BC parcel boundaries on the map",[244,268,269],{},[45,270,272],{"href":271},"\u002Fblog\u002Fsaskatchewan-quarter-section-guide-grain-farmers-scic-filers","Saskatchewan quarter section guide for grain farmers and SCIC filers",{"title":274,"searchDepth":275,"depth":275,"links":276},"",2,[277,278,279,280,281,282],{"id":26,"depth":275,"text":27},{"id":89,"depth":275,"text":90},{"id":134,"depth":275,"text":135},{"id":170,"depth":275,"text":171},{"id":203,"depth":275,"text":204},{"id":238,"depth":275,"text":239},"product","https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-06\u002F90be437d-f9fb-40c8-be3e-029b5b538f23.jpeg","2026-06-09","Township Canada's Energy and Agriculture Bundles now cover SK, BC, and MB — wells, pipelines, facilities, soils, BC ALR, and ag crown land on the DLS and NTS grids you already use.","md",{},true,"\u002Fblog\u002Fsk-bc-manitoba-energy-agriculture-map-layers-live",{"title":6,"description":286},"blog\u002Fsk-bc-manitoba-energy-agriculture-map-layers-live",[294,295,296,297,298,299,300,301],"Saskatchewan","British Columbia","Manitoba","Energy Bundle","Agriculture Bundle","Map Layers","Oil and Gas","Product Launch","aDCHsD8HmOp5qixRP8xx12d73vAQCr9Vsh2tZCT78o0",{"id":304,"title":305,"author":7,"body":306,"category":503,"cover":365,"date":285,"description":504,"extension":287,"meta":505,"navigation":289,"path":506,"seo":507,"stem":508,"tags":509,"__hash__":513},"blog\u002Fblog\u002Fsurveying-legal-land-descriptions.md","How Professional Surveyors Use Legal Land Descriptions",{"type":9,"value":307,"toc":492},[308,311,314,318,321,324,330,336,342,346,351,354,357,360,366,375,379,382,385,393,397,406,409,412,416,425,436,442,448,454,460,464,467,470,473],[12,309,310],{},"The crew leaves at 6 AM. Eight section corners across a new subdivision development north of Leduc - a mix of quarter-section boundaries and road allowance intersections that need to be tied into the new plan. Before anyone gets in the truck, the survey party chief needs approximate coordinates for all eight targets. Not survey-grade - just accurate enough to plan the access routes, estimate drive time between stations, and flag any corners that might require a detour around a slough or a locked gate.",[12,312,313],{},"The survey plan lists every target as a legal land description. That's how subdivision plans, road construction drawings, and land title boundaries work in Alberta. Before any instrument goes up, those descriptions need to become GPS coordinates.",[24,315,317],{"id":316},"how-legal-land-descriptions-show-up-in-survey-work","How Legal Land Descriptions Show Up in Survey Work",[12,319,320],{},"Cadastral surveyors work with legal land descriptions constantly. Every subdivision plan references DLS parcels - the township, range, section, and legal subdivision that define the boundaries being subdivided. Road construction surveys reference section lines and quarter section corners by their DLS coordinates. Land title documents describe boundaries using the same system the original Dominion Land Survey established in the 1880s.",[12,322,323],{},"In practice, surveyors encounter legal land descriptions in three main contexts:",[12,325,326,329],{},[19,327,328],{},"Survey plans and drawings"," - A Plan of Subdivision for a rural acreage development might reference 12 or 15 legal land descriptions across three or four sections. Each one needs a coordinate before the crew can plan deployment.",[12,331,332,335],{},[19,333,334],{},"Client-supplied location lists"," - Clients - municipalities, developers, pipeline companies - hand over lists of parcels described in DLS format and ask the surveyor to establish or verify the boundaries. Those lists need to be converted to GPS before any field scheduling happens.",[12,337,338,341],{},[19,339,340],{},"Land title boundary descriptions"," - Title descriptions for rural properties use quarter section references. If there's a boundary dispute or a title survey, the surveyor pulls the legal description from the title and locates it on the ground.",[24,343,345],{"id":344},"three-workflows-where-township-canada-fits","Three Workflows Where Township Canada Fits",[347,348,350],"h3",{"id":349},"_1-pre-survey-planning","1. Pre-Survey Planning",[12,352,353],{},"Back to those eight section corners. The party chief opens Township Canada, enters each DLS reference from the survey plan, and has approximate GPS coordinates for all eight targets in under two minutes. Those coordinates go into the field navigation app, and the crew can plan the most efficient driving route before leaving the shop.",[12,355,356],{},"For example: SE 14-048-26W4 and NE 15-048-26W4 are adjacent corners that share a section line. Seeing them plotted on a map confirms the access route runs straight north along the range road - no detour needed. NW 11-049-26W4, on the other hand, sits in the middle of a cultivated field with no visible road access. The crew knows to call the landowner before heading out, rather than arriving to a locked field gate at 7 AM.",[12,358,359],{},"This kind of planning used to involve pulling 1:50,000 topo maps and estimating coordinates by eye. A direct conversion to lat\u002Flng makes the scheduling faster and reduces surprises in the field.",[12,361,362],{},[128,363],{"alt":364,"src":365},"Survey crew planning routes using GPS coordinates from legal land descriptions","\u002Fimages\u002Fblog\u002Fsurveying-legal-land-descriptions\u002Fcover.webp",[12,367,368,369,374],{},"The ",[45,370,373],{"href":371,"rel":372},"https:\u002F\u002Fwww.townshipcanada.com\u002Fhow-to\u002Fdls-to-gps-converter",[220],"DLS to GPS converter"," handles all standard DLS formats - LSD, quarter section, section, township - so the party chief doesn't need to reformat the descriptions from the plan before converting.",[347,376,378],{"id":377},"_2-coordinate-verification","2. Coordinate Verification",[12,380,381],{},"After the field work, the survey crew records coordinates for the monuments they've set or found. A quick sanity check against Township Canada's calculated coordinates confirms whether the monument is in the expected vicinity of the parcel center.",[12,383,384],{},"This isn't a substitute for survey-grade verification against control points - it's a gross error check. If Township Canada puts Section 32-048-07W5 at 53.6812, -114.9345 and the crew's field notes show the monument at 53.6118, -114.9345, that's a ~7.5 km latitude discrepancy. Something went wrong - wrong section, wrong range, transposed digit in the field notes. Catching that in the office is far better than catching it after the final plan is submitted.",[12,386,368,387,392],{},[45,388,391],{"href":389,"rel":390},"https:\u002F\u002Fwww.townshipcanada.com\u002Fhow-to\u002Fsection-township-range-lookup",[220],"section township range lookup"," makes these spot checks fast. Enter the description, compare to the field coordinate. If they're in the same order of magnitude (within 500 metres or so), the description is almost certainly correct.",[347,394,396],{"id":395},"_3-batch-processing-for-municipal-projects","3. Batch Processing for Municipal Projects",[12,398,399,400,405],{},"A municipality commissions a survey of all section corners within a 10-township block for a road improvement program. The project list has 240 section corners, all described in DLS format. Converting them one at a time would take the better part of a day. Uploading a CSV with all 240 descriptions to ",[45,401,404],{"href":402,"rel":403},"https:\u002F\u002Fwww.townshipcanada.com\u002Fguides\u002Fbatch-conversion",[220],"Township Canada's batch conversion tool"," returns GPS coordinates for all of them in seconds.",[12,407,408],{},"The output gets exported as a Shapefile and loaded into the project's GIS - the municipal engineering team can see every target plotted on a base map, flagged by priority zone, before the survey contract is even signed. The batch tool also flags any descriptions that don't match a known parcel, so data entry errors get caught before they become field problems.",[12,410,411],{},"For large municipal or provincial projects, batch conversion is the only practical way to get from a DLS reference list to a deployable coordinate set without tying up a technician for days.",[24,413,415],{"id":414},"export-formats-surveyors-actually-use","Export Formats Surveyors Actually Use",[12,417,418,419,424],{},"Once locations are converted, the file format matters. Surveyors and geomatics professionals work in specific software environments, and Township Canada's ",[45,420,423],{"href":421,"rel":422},"https:\u002F\u002Fwww.townshipcanada.com\u002Fguides\u002Fdownload-results",[220],"download options"," cover the most common ones:",[12,426,427,430,431,435],{},[19,428,429],{},"Shapefile"," - The standard format for ArcGIS, QGIS, and most survey-grade GIS platforms. If the project deliverables include a GIS layer of surveyed monuments or parcel boundaries, Shapefile is almost always the required format. For ArcGIS users, Township Canada also offers a ",[45,432,434],{"href":433},"\u002Fblog\u002Farcgis-canadian-legal-land-description","direct ArcGIS integration"," that converts legal land descriptions inside ArcGIS Pro without a separate export step.",[12,437,438,441],{},[19,439,440],{},"DXF"," - AutoCAD's native exchange format. Survey drawings, subdivision plans, and road design files all live in AutoCAD or Civil 3D. Exporting converted locations as DXF lets a CAD technician drop the points directly into the project drawing without retyping coordinates.",[12,443,444,447],{},[19,445,446],{},"CSV"," - Flexible and format-agnostic. Survey data management software, field data collectors, and custom databases all accept CSV. This is the right choice when the coordinates need to go somewhere other than GIS or CAD.",[12,449,450,453],{},[19,451,452],{},"GeoJSON"," - For web-based project portals and mapping dashboards that clients increasingly expect as a project deliverable.",[12,455,456,459],{},[19,457,458],{},"KML"," - Google Earth visualization for client presentations and preliminary site reviews.",[24,461,463],{"id":462},"why-this-matters-before-the-crew-ships-out","Why This Matters Before the Crew Ships Out",[12,465,466],{},"Field time is expensive. A survey crew costs several hundred dollars an hour once you factor in equipment, vehicles, and personnel. Driving to the wrong section corner because of a transposed range number wastes that time in a way that's completely avoidable with a two-minute coordinate check in the office.",[12,468,469],{},"Legal land descriptions are precise - a single wrong digit changes the location by a full township (9.7 km), a full range (roughly 8 km), or a full section (1.6 km). Those errors are easy to make when transcribing from a PDF plan or a handwritten notes page. Converting the description to GPS and spot-checking it on a map before dispatch catches the transposition before it costs the crew a morning.",[12,471,472],{},"Township Canada supports more Canadian survey systems than any other converter - DLS, LSD, NTS, FPS, and more - so the same tool works whether the project is in Alberta, Saskatchewan, Manitoba, or northeastern BC's Peace River country.",[12,474,475,476,481,482,178,486,491],{},"If you're processing a handful of locations from a survey plan, ",[45,477,480],{"href":478,"rel":479},"https:\u002F\u002Fwww.townshipcanada.com\u002F",[220],"start with a free search",". For batch processing a full project list and exporting to Shapefile or DXF, ",[45,483,485],{"href":402,"rel":484},[220],"see the batch conversion guide",[45,487,490],{"href":488,"rel":489},"https:\u002F\u002Fwww.townshipcanada.com\u002Fpricing",[220],"plan options"," to find the right fit for your workflow.",{"title":274,"searchDepth":275,"depth":275,"links":493},[494,495,501,502],{"id":316,"depth":275,"text":317},{"id":344,"depth":275,"text":345,"children":496},[497,499,500],{"id":349,"depth":498,"text":350},3,{"id":377,"depth":498,"text":378},{"id":395,"depth":498,"text":396},{"id":414,"depth":275,"text":415},{"id":462,"depth":275,"text":463},"industry","Pre-survey planning, coordinate verification, batch conversion for survey plans, and export to Shapefile and DXF - how land surveyors use Township Canada.",{},"\u002Fblog\u002Fsurveying-legal-land-descriptions",{"title":305,"description":504},"blog\u002Fsurveying-legal-land-descriptions",[510,511,512],"Industry","Surveying","GIS","hErHfsQv4xW5igW7jDKo8ATLNOjezI8zCj4upH0Ihyk",{"id":515,"title":516,"author":7,"body":517,"category":283,"cover":851,"date":852,"description":853,"extension":287,"meta":854,"navigation":289,"path":855,"seo":856,"stem":857,"tags":858,"__hash__":861},"blog\u002Fblog\u002Fenergy-agriculture-combined-parcel-reports.md","Energy, Agriculture, and Combined Parcel Reports: one quarter section, three ways to read it",{"type":9,"value":518,"toc":843},[519,532,547,561,565,568,575,586,593,602,606,609,612,626,629,635,639,642,652,655,659,780,783,787,804,816,818],[520,521,522],"note",{},[12,523,524,527,528,531],{},[19,525,526],{},"Cover image to add"," (",[65,529,530],{},"\u002Fimages\u002Fblog\u002Fenergy-agriculture-combined-parcel-reports\u002Fcover.png","): a Combined Parcel Report PDF on a desk next to the on-screen report sidebar, both showing the same quarter section near Barons, Alberta.",[12,533,534,535,538,539,542,543,546],{},"Search a quarter section on Township Canada and the report opens with three tabs: an ",[19,536,537],{},"Overview",", an ",[19,540,541],{},"Agriculture"," tab, and an ",[19,544,545],{},"Energy"," tab. One PDF button turns whatever you can see into a document you can attach to a file, email to a client, or bring to a negotiation.",[12,548,549,550,538,553,556,557,560],{},"Which of those tabs are unlocked depends on the bundle you carry. That gives you three distinct deliverables from the same search box: an ",[19,551,552],{},"Agriculture Parcel Report",[19,554,555],{},"Energy Parcel Report",", and, when you hold both bundles, a ",[19,558,559],{},"Combined Parcel Report",". This post walks through what each one contains, where the numbers come from, and which report fits which job.",[24,562,564],{"id":563},"the-agriculture-parcel-report","The Agriculture Parcel Report",[12,566,567],{},"The Agriculture Parcel Report answers a single question an appraiser, lender, or farmland investor asks first: how productive is this land, and what is holding it back?",[12,569,570,571,574],{},"It opens with the ",[19,572,573],{},"Productivity Score",", a 0-100 composite built on the federal Land Suitability Rating System, the Canada Land Inventory capability class, a five-year crop-diversity index, and a current drought modifier. Below the score sits the parcel's full agronomic profile: soil order, group, and subgroup, drainage and slope, the single limiter capping the score, the five-year crop rotation with its dominant crop, and the current Canadian Drought Monitor status.",[520,576,577],{},[12,578,579,527,582,585],{},[19,580,581],{},"Screenshot to add",[65,583,584],{},"\u002Fimages\u002Fblog\u002Fenergy-agriculture-combined-parcel-reports\u002Fagriculture-report.png","): the Agriculture tab for a quarter section near Barons, Alberta, showing a Productivity Score of 70, an Orthic Dark Brown Chernozem soil subgroup, a moisture-deficit limiter, a peas-spring wheat-lentils rotation, and a D0 (abnormally dry) drought flag.",[12,587,588,589,60],{},"The score is Alberta-first, computed directly from AGRASID 4.1 where it exists: more than 380,000 Alberta quarter sections already carry an LSRS productivity score. Outside Alberta the soil context still travels with you through the Soil Landscapes of Canada fallback, and crop history is available across the Prairies. The full method, including every weight and every known limitation, is published in the ",[45,590,592],{"href":591},"\u002Flearn\u002Fag\u002Fscore-methodology","Productivity Score methodology",[12,594,595,598,599,601],{},[19,596,597],{},"Get it with:"," the ",[45,600,298],{"href":254},", $50 CAD\u002Fmonth on top of Pro or Business.",[24,603,605],{"id":604},"the-energy-parcel-report","The Energy Parcel Report",[12,607,608],{},"The Energy Parcel Report is the analyst's view of the same ground. It answers what is on and under the parcel, who is responsible for it, and what is about to change.",[12,610,611],{},"For any Legal Subdivision it lists the wells individually, with UWI, operator, product, and current lifecycle status (active, suspended, abandoned, reclaimed, and the orphan flag where the Orphan Well Association has taken over closure). It shows the pipeline segments crossing the quarter, the licensed facilities sitting on it, and the Crown petroleum-and-natural-gas and mineral dispositions that overlap the LSD, with the days remaining until each one expires. Every well links through to the operator's full footprint across the AER inventory.",[520,613,614],{},[12,615,616,527,618,621,622,625],{},[19,617,581],{},[65,619,620],{},"\u002Fimages\u002Fblog\u002Fenergy-agriculture-combined-parcel-reports\u002Fenergy-report.png","): the Energy tab for ",[65,623,624],{},"14-7-13-21-W4"," near Barons, Alberta, showing two wells (one active, one suspended) operated by Gran Tierra Canada Ltd., 1.5 km of pipeline on the parcel, two battery facilities, and a data-refresh timestamp.",[12,627,628],{},"The data behind it is the full Alberta energy stack: more than 530,000 AER wells, over 320,000 licensed pipeline segments, and more than 120,000 facilities sorted into eight plain-English categories. The operator directory covers the AER's entire business-associate registry of more than 3,000 companies, and the tenure layer carries 63,000-plus Crown PNG dispositions alongside close to 2,000 mineral agreements. A timestamp on the report tells you exactly when each source last refreshed, drawn from the AER and Petrinex.",[12,630,631,598,633,601],{},[19,632,597],{},[45,634,297],{"href":248},[24,636,638],{"id":637},"the-combined-parcel-report","The Combined Parcel Report",[12,640,641],{},"Hold both bundles and the parcel report becomes the document neither half can produce alone. The Overview tab stops being a summary of two separate things and starts connecting them: a parcel can be top-tier cropland that also hosts an active well and a pipeline crossing, and the surface-rights or crop-damage conversation has to reflect both. The PDF carries the agriculture sections and the energy sections in one file.",[520,643,644],{},[12,645,646,527,648,651],{},[19,647,581],{},[65,649,650],{},"\u002Fimages\u002Fblog\u002Fenergy-agriculture-combined-parcel-reports\u002Fcombined-overview.png","): the Overview tab with both bundles active, showing the plain-English headlines (\"Productive cropland, abnormally dry\" and \"Active O&G, no liability\") and the insight line linking crop productivity to well and pipeline activity on the same quarter.",[12,653,654],{},"That single document is the deliverable for any cross-domain conversation: a surface-rights negotiation, a farmland appraisal on land with energy activity, or an acquisition where both the agronomy and the liability matter.",[24,656,658],{"id":657},"which-report-do-you-need","Which report do you need?",[660,661,662,680],"table",{},[663,664,665],"thead",{},[666,667,668,671,674,677],"tr",{},[669,670],"th",{},[669,672,673],{},"Agriculture Report",[669,675,676],{},"Energy Report",[669,678,679],{},"Combined Report",[681,682,683,700,716,732,748,764],"tbody",{},[666,684,685,691,694,697],{},[686,687,688],"td",{},[19,689,690],{},"Headline",[686,692,693],{},"Productivity Score (0-100)",[686,695,696],{},"Wells, liability, tenure",[686,698,699],{},"Both, side by side",[666,701,702,707,710,713],{},[686,703,704],{},[19,705,706],{},"Core data",[686,708,709],{},"LSRS, CLI, soil, 5-year crop rotation, drought",[686,711,712],{},"Wells, pipelines, facilities, operators, Crown tenure",[686,714,715],{},"Everything in both",[666,717,718,723,726,729],{},[686,719,720],{},[19,721,722],{},"Geography",[686,724,725],{},"Quarter section",[686,727,728],{},"Legal Subdivision",[686,730,731],{},"Quarter section + LSD",[666,733,734,739,742,745],{},[686,735,736],{},[19,737,738],{},"PDF export",[686,740,741],{},"Agriculture sections",[686,743,744],{},"Energy sections",[686,746,747],{},"One merged PDF",[666,749,750,755,758,761],{},[686,751,752],{},[19,753,754],{},"Best for",[686,756,757],{},"Appraisers, lenders, farmers, ag investors",[686,759,760],{},"Operators, land agents, M&A diligence, surface-rights teams",[686,762,763],{},"Surface-rights, cross-domain diligence, mixed portfolios",[666,765,766,771,774,777],{},[686,767,768],{},[19,769,770],{},"Bundle",[686,772,773],{},"Agriculture ($50\u002Fmo)",[686,775,776],{},"Energy ($50\u002Fmo)",[686,778,779],{},"Both ($100\u002Fmo)",[12,781,782],{},"Each bundle stacks on a Pro ($20) or Business ($40) plan and can be cancelled any time. Already on Pro or Business? You get one free parcel report, so you can run the exact report you would be buying on a quarter section you actually care about.",[24,784,786],{"id":785},"try-it","Try it",[12,788,789,790,794,795,799,800,60],{},"The fastest way to understand the three reports is to pull one. Open the ",[45,791,793],{"href":792},"\u002Flearn\u002Fhow-to\u002Fone-click-parcel-report","parcel report"," on a quarter section you know, or paste a legal land description into the ",[45,796,798],{"href":797},"\u002Fapp\u002Fsearch","search box",". To learn the surface that holds all three, see the guide to the ",[45,801,803],{"href":802},"\u002Fguides\u002Fparcel-report-sidebar","parcel report sidebar",[12,805,806,807,809,810,812,813,60],{},"Add the ",[45,808,298],{"href":233},", the ",[45,811,297],{"href":228},", or both from ",[45,814,815],{"href":210},"your account or the pricing page",[24,817,239],{"id":238},[241,819,820,824,828,833,839],{},[244,821,822],{},[45,823,255],{"href":254},[244,825,826],{},[45,827,249],{"href":248},[244,829,830],{},[45,831,832],{"href":802},"The Parcel Report Sidebar guide",[244,834,835],{},[45,836,838],{"href":837},"\u002Fguides\u002Fmap-layers","Map Layers guide",[244,840,841],{},[45,842,592],{"href":591},{"title":274,"searchDepth":275,"depth":275,"links":844},[845,846,847,848,849,850],{"id":563,"depth":275,"text":564},{"id":604,"depth":275,"text":605},{"id":637,"depth":275,"text":638},{"id":657,"depth":275,"text":658},{"id":785,"depth":275,"text":786},{"id":238,"depth":275,"text":239},null,"2026-06-08","Every Township Canada parcel report has three tabs and one PDF button. With the Agriculture Bundle you get a full agronomic report, with the Energy Bundle a full subsurface report, and with both a Combined Parcel Report that puts what's growing and what's underground in one document.",{},"\u002Fblog\u002Fenergy-agriculture-combined-parcel-reports",{"title":516,"description":853},"blog\u002Fenergy-agriculture-combined-parcel-reports",[859,297,298,860,301],"Parcel Report","PDF Reports","HonOzGY9PMCYlZcN6kqMrvcUogO3kzePY1wEQZnquSY",{"id":863,"title":864,"author":7,"body":865,"category":1168,"cover":882,"date":1169,"description":1170,"extension":287,"meta":1171,"navigation":289,"path":1172,"seo":1173,"stem":1174,"tags":1175,"__hash__":1178},"blog\u002Fblog\u002Fproduct-update-may-2026.md","Township Canada Product Update - May 2026",{"type":9,"value":866,"toc":1158},[867,870,873,887,891,905,920,926,930,940,952,955,976,980,986,999,1003,1009,1032,1035,1061,1065,1071,1084,1088,1094,1112,1116,1119,1123,1129,1135,1141,1147,1150],[12,868,869],{},"May was the most active shipping month in Township Canada's history. The Agriculture and Energy Bundles launched, putting farmland productivity, soil, crop history, wells, pipelines, and Crown tenure on every quarter section in one place. One-click Parcel Reports went live, the new Ask Township assistant arrived, the energy layers that power the bundles are now drawn on the map, and the field app reached Android.",[12,871,872],{},"Here's everything that shipped.",[520,874,875],{},[12,876,877,527,880,883,884,60],{},[19,878,879],{},"Visual placeholder: cover image",[65,881,882],{},"\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fcover.webp",", set in frontmatter). A branded hero showing a Parcel Report open beside the map with the energy layers switched on. Warm, light theme. New capture: use the agent-auth screenshot tooling in ",[65,885,886],{},"docs\u002Fblog-screenshots.md",[24,888,890],{"id":889},"one-click-parcel-reports","One-click Parcel Reports",[12,892,893,900,901,904],{},[19,894,895,896,899],{},"Go to ",[65,897,898],{},"\u002Fparcel\u002F[lld]"," for any legal land description and you get a full data report on that quarter section:"," soil classification, oil-and-gas activity context, crop and land-use history, and location details, all in one view with a PDF export. Type in ",[65,902,903],{},"NW-7-13-21-W4"," and instead of a pin on a map, you get everything known about that parcel from official government datasets.",[520,906,907],{},[12,908,909,912,913,916,917,60],{},[19,910,911],{},"Visual placeholder: Parcel Report overview."," Replace with ",[65,914,915],{},"![A Township Canada Parcel Report for NW-7-13-21-W4 with the Overview tab active, showing the plain-English summary headline and the satellite DLS-grid map](\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fparcel-report-overview.webp)",". An existing screenshot can be reused from the bundle launch post: ",[65,918,919],{},"\u002Fimages\u002Fblog\u002Fannouncing-ag-energy-bundles\u002Fparcel-report-overview.png",[12,921,922,925],{},[19,923,924],{},"Soil Landscapes of Canada (SLC v3.2) is now in every report."," Outside Alberta, where AGRASID 4.1 soil data covers the province at LSD resolution, parcel reports fall back to the AAFC Soil Landscapes of Canada dataset for soil order classification. If you're looking at a quarter section in Saskatchewan, Manitoba, or BC, the soil context travels with you, colour-coded by order, with a popover for interpretation. This rounds out the agronomic picture for every parcel across the Prairies.",[24,927,929],{"id":928},"the-agriculture-and-energy-bundles","The Agriculture and Energy Bundles",[12,931,932,935,936,939],{},[19,933,934],{},"Two new $50\u002Fmo bundles shipped."," The Agriculture and Energy Bundles give you the data that drives land decisions, on the same search and map you already use. Full details are in the ",[45,937,938],{"href":260},"launch post",", but here's the short version:",[241,941,942,947],{},[244,943,944,946],{},[19,945,298],{}," gives you the LSRS productivity score (0 to 100, per quarter section), AGRASID soil subgroup and drainage class, the AAFC Annual Crop Inventory (five-year rotation, dominant crop, diversity index), a current drought index, and the single factor capping the productivity score. Alberta is covered at LSD resolution; crop and drought layers cover the Prairies and BC.",[244,948,949,951],{},[19,950,297],{}," gives you AER wells (operator, licence status, abandoned and orphan flags), AER pipelines (licence, substance, diameter), AER facilities, a Petrinex 12-month production summary (oil, gas, and water volumes), and Crown tenure zones, all plotted on the DLS grid with satellite imagery.",[12,953,954],{},"Both bundles add a Parcel Report overview tab with a plain-English headline summarizing the agronomic and energy context for the parcel, plus a branded PDF export you can hand to a client or attach to a regulatory file. Add either one as an add-on from your account dashboard at $50\u002Fmo.",[520,956,957],{},[12,958,959,962,963,178,966,969,970,178,973,60],{},[19,960,961],{},"Visual placeholder: bundle report tabs."," Two screenshots side by side or stacked. Replace with ",[65,964,965],{},"![The Agriculture tab of a Parcel Report showing the LSRS productivity score, soil subgroup, and five-year crop rotation](\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fparcel-report-agriculture.webp)",[65,967,968],{},"![The Energy tab of a Parcel Report showing AER wells, pipelines, and Crown tenure for the parcel](\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fparcel-report-energy.webp)",". Existing screenshots can be reused: ",[65,971,972],{},"\u002Fimages\u002Fblog\u002Fannouncing-ag-energy-bundles\u002Fparcel-report-agriculture.png",[65,974,975],{},"\u002Fimages\u002Fblog\u002Fannouncing-ag-energy-bundles\u002Fparcel-report-energy.png",[24,977,979],{"id":978},"ask-township-a-new-ai-assistant","Ask Township: a new AI assistant",[12,981,982,985],{},[19,983,984],{},"Ask Township, our AI assistant, is live."," Open it from the button in the bottom-right corner of the app and ask in plain English. It can convert a legal land description to coordinates and give you driving directions between two parcels, and on higher plans it also validates a description's format, batch-converts a list of locations, optimizes a multi-stop route, and answers questions about features, pricing, and the legal-description systems themselves. What it can do scales with your plan, and so does the daily message allowance: 30 messages a day on Starter, 200 on Pro, and unlimited on Business.",[520,987,988],{},[12,989,990,912,993,996,997,60],{},[19,991,992],{},"Visual placeholder: Ask Township assistant.",[65,994,995],{},"![The Ask Township AI assistant answering a question about a legal land description and plotting the result on the map](\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fask-township.webp)",". New capture needed: open the assistant from the bottom-right button, ask it to convert and plot a description (for example \"where is NW-7-13-21-W4?\"), and capture the sidebar with the answer and the map result. Use the agent-auth screenshot tooling in ",[65,998,886],{},[24,1000,1002],{"id":1001},"energy-layers-now-on-the-map","Energy layers, now on the map",[12,1004,1005,1008],{},[19,1006,1007],{},"The data behind the Energy Bundle is no longer report-only."," AER wells, pipelines, and facilities now render directly on the DLS grid, each with its own symbology and a theme-aware legend that stays readable in light and dark mode. Unified search returns wells and operators alongside parcels, so you can jump straight from a search result to its spot on the map. One-click layer presets switch the map between liability, production, and tenure views without hunting through a layer list.",[520,1010,1011],{},[12,1012,1013,912,1016,1019,1020,1023,1024,1027,1028,1031],{},[19,1014,1015],{},"Visual placeholder: energy layers on the map.",[65,1017,1018],{},"![The Township Canada map on the DLS grid with the energy production preset active, showing AER wells and pipelines with a theme-aware legend](\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fmap-energy-preset.webp)",". An existing screenshot can be reused: ",[65,1021,1022],{},"\u002Fimages\u002Fblog\u002Fannouncing-ag-energy-bundles\u002Fmap-production-preset.png"," (or ",[65,1025,1026],{},"map-liability-preset.png"," \u002F ",[65,1029,1030],{},"map-tenure-preset.png",").",[12,1033,1034],{},"Several government datasets came online in May to power these features:",[241,1036,1037,1043,1049,1055],{},[244,1038,1039,1042],{},[19,1040,1041],{},"AER pipelines and facilities (ST76, ST102)"," join AER wells on the map, with licence, operator, substance, diameter, and status, plus abandoned and orphan flags on wells.",[244,1044,1045,1048],{},[19,1046,1047],{},"Petrinex well production"," provides a per-well 12-month rollup of oil, gas, and water volumes behind the Energy Bundle production summary.",[244,1050,1051,1054],{},[19,1052,1053],{},"LSRS Productivity Score"," delivers per-quarter-section land productivity ratings (Alberta v1), built on AGRASID 4.1 and AAFC's Land Suitability Rating System. This is the foundation of the Agriculture Bundle score.",[244,1056,1057,1060],{},[19,1058,1059],{},"AAFC Annual Crop Inventory (v5)"," adds national crop raster data plus a per-quarter-section rollup of dominant crop, five-year rotation, and diversity index, covering the Prairies and BC.",[24,1062,1064],{"id":1063},"measure-draw-and-save-boundaries","Measure, draw, and save boundaries",[12,1066,1067,1070],{},[19,1068,1069],{},"A new map toolbar brings measuring and drawing into one place."," Measure a distance or an area for free, on any plan. On Pro, switch to draw mode, click the corners of a property boundary, and the toolbar gives you its area, perimeter, and corner coordinates. Name it and save it to a Boundaries project, then export it: a PDF map and report on Pro, or GeoJSON, KML, Shapefile, and DXF on Business.",[520,1072,1073],{},[12,1074,1075,912,1078,1081,1082,60],{},[19,1076,1077],{},"Visual placeholder: map toolbar with a drawn boundary.",[65,1079,1080],{},"![The map toolbar with a property boundary drawn on the DLS grid, showing its area, perimeter, and corner coordinates ready to save and export](\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fmap-toolbar-boundary.webp)",". New capture needed: open the toolbar's Draw tool, draw a boundary over a quarter section, and capture the card showing area, perimeter, and the save and export controls. Use the agent-auth screenshot tooling in ",[65,1083,886],{},[24,1085,1087],{"id":1086},"the-field-app-now-on-android","The field app, now on Android",[12,1089,1090,1093],{},[19,1091,1092],{},"The Township Canada field app is available on Android."," Search, map, and navigate to LSD and DLS locations from the field, with the same legal-description coverage as the web app. Get it standalone for $10\u002Fmo, bundle it with web Pro for $25\u002Fmo (which saves $5 versus buying them separately), or use it at no extra cost on Business. The iOS version is in development.",[520,1095,1096],{},[12,1097,1098,912,1101,1104,1105,1108,1109,60],{},[19,1099,1100],{},"Visual placeholder: the field app on Android.",[65,1102,1103],{},"![The Township Canada field app running on an Android phone, showing a legal land description located on the map](\u002Fimages\u002Fblog\u002Fproduct-update-may-2026\u002Fmobile-android.webp)",". Existing assets can be reused from the mobile launch post: ",[65,1106,1107],{},"\u002Fimages\u002Fblog\u002Flaunching-township-canada-mobile-app\u002Foverview.webp"," and the Google Play QR code at ",[65,1110,1111],{},"\u002Fimages\u002Fblog\u002Flaunching-township-canada-mobile-app\u002Fandroid-qr-code.webp",[24,1113,1115],{"id":1114},"built-to-stay-current","Built to stay current",[12,1117,1118],{},"The datasets behind every report and map layer now refresh automatically on each source's publishing schedule. Wells, production, soil, crop, and tenure data stay current instead of going stale between manual updates, so the parcel you look up tomorrow reflects the latest the agencies have published.",[24,1120,1122],{"id":1121},"whats-coming","What's coming",[12,1124,1125,1128],{},[19,1126,1127],{},"Ask Township, connected to your bundle data."," A private alpha lets the assistant answer questions about a specific parcel's wells, soil, crop history, drought status, and tenure, grounded in the same datasets behind your reports. It's rolling out gradually to Agriculture and Energy Bundle subscribers.",[12,1130,1131,1134],{},[19,1132,1133],{},"Land Portfolio Manager."," The spec is done. The Portfolio Manager lets you track owned or watched parcels with running data updates, productivity-score changes, well activity, and tenure status, rather than running one-off lookups. Build starts next.",[12,1136,1137,1140],{},[19,1138,1139],{},"Alberta Crown dispositions overlay."," Crown surface and mineral disposition boundaries are the next data layer. The spec is written; ETL build and map integration follow.",[12,1142,1143,1146],{},[19,1144,1145],{},"iOS app."," Development is ongoing, bringing the field app to iPhone and iPad to match what's live on Android today.",[1148,1149],"hr",{},[12,1151,1152,1153,1157],{},"We ship new features based on what users ask for. If something's missing from your workflow, email us at ",[45,1154,1156],{"href":1155},"mailto:hello@townshipcanada.com","hello@townshipcanada.com",". We read every note.",{"title":274,"searchDepth":275,"depth":275,"links":1159},[1160,1161,1162,1163,1164,1165,1166,1167],{"id":889,"depth":275,"text":890},{"id":928,"depth":275,"text":929},{"id":978,"depth":275,"text":979},{"id":1001,"depth":275,"text":1002},{"id":1063,"depth":275,"text":1064},{"id":1086,"depth":275,"text":1087},{"id":1114,"depth":275,"text":1115},{"id":1121,"depth":275,"text":1122},"announcement","2026-06-01","May 2026: the Agriculture and Energy Bundles, one-click Parcel Reports, the new Ask Township AI assistant, AER layers live on the map, a measure-and-draw toolbar with saved boundaries, and the field app on Android.",{},"\u002Fblog\u002Fproduct-update-may-2026",{"title":864,"description":1170},"blog\u002Fproduct-update-may-2026",[1176,1177],"Product Update","Announcement","rqtN-jn7SeSCFKZejKY9Ppf5tcgHmnGx_x_Do6lhydw",{"id":1180,"title":1181,"author":7,"body":1182,"category":283,"cover":1453,"date":1454,"description":1455,"extension":287,"meta":1456,"navigation":289,"path":260,"seo":1457,"stem":1458,"tags":1459,"__hash__":1462},"blog\u002Fblog\u002Fannouncing-ag-energy-bundles.md","See what's growing and what's underground: introducing the Agriculture and Energy bundles",{"type":9,"value":1183,"toc":1442},[1184,1192,1198,1201,1212,1216,1226,1231,1239,1243,1250,1255,1258,1261,1265,1268,1273,1276,1280,1283,1289,1294,1300,1306,1312,1315,1319,1325,1331,1337,1347,1353,1357,1364,1385,1391,1394,1396,1399,1401,1410,1420,1422],[117,1185,1186],{},[12,1187,1188,1191],{},[19,1189,1190],{},"Update (2026):"," The Energy Bundle now includes Crown mineral tenure (metallic, coal, ammonite) on the map and in the parcel report, alongside PNG dispositions.",[12,1193,1194,1195,1197],{},"For nine years, Township Canada has been the fastest way to turn a legal land description into a point on a map. Type ",[65,1196,903],{},", get coordinates, see the parcel. Done.",[12,1199,1200],{},"But finding the parcel was never the hard part. The hard part was everything that came next. What's the soil like? What's been grown on it? Are there wells on it? Who operates them? Is the Crown lease about to expire? Answering those questions meant leaving us and opening AER GeoView, the AGRASID soil viewer, AAFC's crop inventory, the Orphan Well registry, and a stack of Petrinex spreadsheets - then stitching the answers together by hand.",[12,1202,1203,1204,1207,1208,1211],{},"Today that ends. Two new bundles put the full picture on the parcel you already searched for. ",[19,1205,1206],{},"The Agriculture Bundle"," tells you what's growing. ",[19,1209,1210],{},"The Energy Bundle"," tells you what's underground. Same map, same search box - now with the data that actually drives a decision.",[24,1213,1215],{"id":1214},"one-search-the-whole-story","One search, the whole story",[12,1217,1218,1219,538,1221,542,1223,1225],{},"Search any quarter section and you get a report with three tabs: an ",[19,1220,537],{},[19,1222,541],{},[19,1224,545],{}," tab. One PDF button turns it into a document you can send to a client, attach to a file, or bring to a negotiation.",[12,1227,1228],{},[128,1229],{"alt":1230,"src":919},"Township Canada parcel report showing an at-a-glance summary of crop productivity, drought, wells, pipelines, operator, and Crown tenure for a single quarter section",[12,1232,1233,1234,1238],{},"The Overview is the thirty-second read. Two plain-English headlines summarize the parcel - \"Productive cropland, abnormally dry\" and \"Active O&G, no liability\" - and a short set of insights connects the two: ",[1235,1236,1237],"em",{},"this quarter section hosts 2 wells and 5 pipeline crossings; surface-rights and crop-damage negotiations should reflect the productivity baseline."," That sentence is the kind of thing a landman and an agronomist would each only know half of. Now it's on one screen.",[24,1240,1242],{"id":1241},"whats-growing","What's growing",[12,1244,1245,1246,1249],{},"The Agriculture tab opens with a single number every appraiser, lender, and farmland investor already trusts: the ",[19,1247,1248],{},"productivity score",", built on AAFC's Land Suitability Rating System - the official 0-100 rating for spring-cereal cropland. We compute it per quarter section, then adjust it for current drought conditions and show you the one factor holding the parcel back.",[12,1251,1252],{},[128,1253],{"alt":1254,"src":972},"Agriculture tab showing a productivity score, Chernozem soil subgroup, drainage class, a moisture-deficit limiter, and a soil-order legend",[12,1256,1257],{},"Below the score, the parcel's full agronomic profile: soil subgroup (an Orthic Dark Brown Chernozem, here), drainage, slope, and the limiter capping the score - moisture deficit, in this case. Then the five-year crop rotation, the dominant crop, and a diversity index. It's the difference between \"160 acres near Barons\" and \"160 acres of Dark Brown Chernozem that's grown a peas-spring wheat-lentils rotation and is running dry this year.\" One of those you can price.",[12,1259,1260],{},"The productivity score is Alberta-only today (Saskatchewan is on the roadmap), built on AGRASID 4.1 and AAFC's LSRS. Outside Alberta the soil context still travels with you - we fall back to AAFC's Soil Landscapes of Canada - and the crop, land-use, and drought layers cover the Prairies and BC.",[24,1262,1264],{"id":1263},"whats-underground","What's underground",[12,1266,1267],{},"The Energy tab is the analyst's view of the same parcel. How many wells, and are they active, abandoned, or orphaned. How much pipeline crosses the quarter. Which facilities sit on it. Which Crown PNG or mineral agreements overlap the LSD, and when they expire. And who the operator is - with a one-click jump to that company's full footprint: active, suspended, abandoned, orphan, and reclaimed counts across their entire AER portfolio.",[12,1269,1270],{},[128,1271],{"alt":1272,"src":975},"Energy tab listing two wells (one active, one suspended) operated by Gran Tierra Canada Ltd, 1.5 km of pipeline, two facilities, and product and status legends",[12,1274,1275],{},"Each well is listed individually - UWI, operator, what it produces (oil, gas, water, condensate, sour gas), and its current status. A timestamp at the top tells you exactly when the data was last refreshed, drawn from the AER and Petrinex. For a surface-rights holder, that's the answer to \"what's actually on my land?\" For an M&A team, it's liability exposure before the term sheet.",[24,1277,1279],{"id":1278},"see-it-across-a-whole-township","See it across a whole township",[12,1281,1282],{},"The report answers one parcel. The map answers a region. Every dataset behind the report is also a layer you can paint across the grid - so you can spot the pattern, not just the point.",[12,1284,1285,1288],{},[19,1286,1287],{},"Where the production is."," Color the grid by trailing-12-month oil volume and the producing quarters light up while the dead ground stays clear. This is how you screen an acquisition or pick the parcels worth a closer look.",[12,1290,1291],{},[128,1292],{"alt":1293,"src":1022},"Map of south-central Alberta with each legal subdivision shaded by trailing-12-month oil production volume",[12,1295,1296,1299],{},[19,1297,1298],{},"What's about to expire."," Color the grid by Crown tenure expiry — PNG and mineral dispositions in one view, stable holdings in one shade and renewals inside their window in another. For a land team, this single view replaces the renewal spreadsheet that gets emailed around twice a quarter.",[12,1301,1302],{},[128,1303],{"alt":1304,"src":1305},"Map showing Crown dispositions shaded by days-to-expiry, with quarters approaching renewal highlighted","\u002Fimages\u002Fblog\u002Fannouncing-ag-energy-bundles\u002Fmap-tenure-preset.png",[12,1307,1308,1311],{},[19,1309,1310],{},"Mineral commodities."," Switch to the minerals preset to theme metallic leases by target substance — uranium, limestone, iron, and more — plus coal and ammonite shell tenure.",[12,1313,1314],{},"There's a liability view for orphan-well density, a productivity view for farmland, soil and drought overlays, pipelines, facilities, and more - every layer toggles from the same control, over the same DLS grid you've always used.",[24,1316,1318],{"id":1317},"who-its-for","Who it's for",[12,1320,1321,1324],{},[19,1322,1323],{},"Farmland appraisers and ag lenders."," Productivity score, soil, and rotation per quarter, in a defensible PDF for the appraisal file or the loan package. Stress-test collateral before the money goes out.",[12,1326,1327,1330],{},[19,1328,1329],{},"Farmers and farmland investors."," Check a lease or a listing before you sign - soil, recent rotation, drought exposure, and whether there's energy activity that affects your use of the surface.",[12,1332,1333,1336],{},[19,1334,1335],{},"Oil and gas operators and land agents."," Wells, pipelines, facilities, and tenure on one map. Prioritize expiring leases, target acquisitions, and plan field work without three portals open.",[12,1338,1339,1342,1343,1346],{},[19,1340,1341],{},"Surface-rights holders."," One report that shows the productivity of your land ",[1235,1344,1345],{},"and"," the energy activity on it - the document for a compensation conversation.",[12,1348,1349,1352],{},[19,1350,1351],{},"M&A and diligence teams."," Operator footprints, orphan and abandoned exposure, production rollups, and tenure renewal pressure - the picture you need before you commit.",[24,1354,1356],{"id":1355},"pricing","Pricing",[12,1358,1359,1360,1363],{},"Both bundles are ",[19,1361,1362],{},"$50 CAD\u002Fmonth"," and stack on a Pro ($20) or Business ($40) plan. Add one, or add both:",[241,1365,1366,1371,1376],{},[244,1367,1368,1370],{},[19,1369,298],{}," - productivity score, soil, capability, five-year crop history, drought, and unlimited branded Agriculture PDFs.",[244,1372,1373,1375],{},[19,1374,297],{}," - wells, pipelines, facilities, operator snapshots, Crown PNG and mineral tenure with expiry alerts, production, and unlimited branded Energy PDFs.",[244,1377,1378,1381,1382,1384],{},[19,1379,1380],{},"Add both"," and your report becomes a ",[19,1383,559],{}," - agriculture and energy in one PDF, the deliverable for any cross-domain conversation.",[12,1386,1387],{},[128,1388],{"alt":1389,"src":1390},"Pricing page showing the Agriculture and Energy bundles side by side at $50 CAD per month each","\u002Fimages\u002Fblog\u002Fannouncing-ag-energy-bundles\u002Fpricing-bundles.png",[12,1392,1393],{},"Already on Pro or Business? You get one free parcel report to see exactly what you'd be buying - run it on a quarter section you actually care about.",[24,1395,1122],{"id":1121},[12,1397,1398],{},"This is the foundation, and we're already building on it: Saskatchewan productivity scores (Alberta is live today), a portfolio manager for tracking owned, leased, and prospect parcels with renewal alerts, and broader provincial tenure coverage beyond Alberta. The datasets that power both bundles refresh on a schedule - monthly for energy activity, annually for soil and crop, monthly for drought - so the report you pull next quarter reflects the ground as it is, not as it was.",[24,1400,786],{"id":785},[12,1402,1403,1404,1407,1408,60],{},"The fastest way to understand the bundles is to run a report on a parcel you know. Try ",[45,1405,624],{"href":1406},"\u002Fapp\u002Fsearch?sidebar=parcel:14-7-13-21-W4&tab=overview"," near Barons, Alberta - two wells and productive cropland on the same quarter - or paste your own legal land description into the ",[45,1409,798],{"href":797},[12,1411,806,1412,809,1414,812,1416,1419],{},[45,1413,298],{"href":233},[45,1415,297],{"href":228},[45,1417,1418],{"href":210},"your account",". They attach to your existing plan in a single step, and you can cancel any time.",[24,1421,239],{"id":238},[241,1423,1424,1428,1432,1437],{},[244,1425,1426],{},[45,1427,255],{"href":254},[244,1429,1430],{},[45,1431,249],{"href":248},[244,1433,1434],{},[45,1435,1436],{"href":233},"Township Canada for Agriculture",[244,1438,1439],{},[45,1440,1441],{"href":228},"Township Canada for Oil & Gas",{"title":274,"searchDepth":275,"depth":275,"links":1443},[1444,1445,1446,1447,1448,1449,1450,1451,1452],{"id":1214,"depth":275,"text":1215},{"id":1241,"depth":275,"text":1242},{"id":1263,"depth":275,"text":1264},{"id":1278,"depth":275,"text":1279},{"id":1317,"depth":275,"text":1318},{"id":1355,"depth":275,"text":1356},{"id":1121,"depth":275,"text":1122},{"id":785,"depth":275,"text":786},{"id":238,"depth":275,"text":239},"\u002Fimages\u002Fblog\u002Fannouncing-ag-energy-bundles\u002Fcover.png","2026-05-27","Two new $50\u002Fmo add-ons put farmland productivity, soil, crop history, wells, pipelines, and Crown tenure on every quarter section in Western Canada - in one report and on one map, with a defensible PDF you can hand to a client.",{},{"title":1181,"description":1455},"blog\u002Fannouncing-ag-energy-bundles",[298,297,859,301,1460,1461],"LSRS","AER","a8IEoEyLgrwpQIOYTJV9JVk7cvROn3ehUp2g2F9Bq9g",{"id":1464,"title":1465,"author":7,"body":1466,"category":503,"cover":1650,"date":1651,"description":1652,"extension":287,"meta":1653,"navigation":289,"path":1654,"seo":1655,"stem":1656,"tags":1657,"__hash__":1659},"blog\u002Fblog\u002Fagriculture-farm-land-descriptions.md","How Agricultural Professionals Use Legal Land Descriptions",{"type":9,"value":1467,"toc":1639},[1468,1471,1474,1478,1486,1489,1495,1501,1507,1513,1517,1520,1523,1526,1529,1533,1537,1551,1560,1566,1570,1579,1583,1586,1592,1596,1604,1607,1618,1622,1625],[12,1469,1470],{},"It's the last week of March, and an AFSC adjuster has 45 quarter sections to verify before the declared-acres deadline. Each one appears on the application exactly as it was submitted: NW-14-032-21W4, SE-07-048-22W4, NE-22-041-19W4. Forty-five separate parcels across three counties in Alberta. The adjuster needs GPS coordinates for each one to plan the site visits - and the deadline doesn't move.",[12,1472,1473],{},"This is a normal week in agricultural claims processing. Legal land descriptions are the operating language of Canadian prairie agriculture. Crop insurance policies, land lease agreements, soil databases, and field records all reference quarter sections in DLS format. The problem isn't that the system is wrong - it works precisely as designed. The problem is the gap between a list of legal land descriptions and the physical land those descriptions represent.",[24,1475,1477],{"id":1476},"how-agriculture-uses-legal-land-descriptions","How Agriculture Uses Legal Land Descriptions",[12,1479,368,1480,1485],{},[45,1481,1484],{"href":1482,"rel":1483},"https:\u002F\u002Fwww.townshipcanada.com\u002Fabout",[220],"Dominion Land Survey (DLS)"," divides the prairies into townships (36 sections each), sections (640 acres), quarter sections (160 acres), and legal subdivisions (40 acres). Every parcel of agricultural land in Alberta, Saskatchewan, and Manitoba has a legal land description that pinpoints its location within this grid.",[12,1487,1488],{},"Agriculture uses this system at every level:",[12,1490,1491,1494],{},[19,1492,1493],{},"Crop insurance"," policies issued by AFSC (Alberta) and SCIC (Saskatchewan) reference quarter sections as the unit of coverage. When a producer files a claim - whether for hail damage, drought, or excess moisture - the application lists each affected quarter section by its legal land description. Adjusters then need to physically inspect those parcels, which means converting LLDs to GPS before scheduling field visits.",[12,1496,1497,1500],{},[19,1498,1499],{},"Land lease agreements"," are written in legal land descriptions. A lease offer that includes \"the NE and SE quarters of Section 14, Township 32, Range 21, W4M\" describes specific parcels, but a producer considering that offer needs to see where those quarters actually are before signing. Are they contiguous? How far from the home quarter? Do they cross a road allowance?",[12,1502,1503,1506],{},[19,1504,1505],{},"Soil data and agronomic records"," are organized by quarter section. PFRA soil surveys, provincial soil databases, and precision ag records all tie data to legal land descriptions. An agronomist building a field management plan needs to match those descriptions to actual field boundaries.",[12,1508,1509,1512],{},[19,1510,1511],{},"Grain delivery permits and Crown land leases"," also reference quarter sections - the legal land description is the common thread running through nearly every official agricultural document on the prairies.",[24,1514,1516],{"id":1515},"the-practical-pain-points","The Practical Pain Points",[12,1518,1519],{},"The gap between a list of LLDs and a map of those locations causes real problems:",[12,1521,1522],{},"A policy list that says \"NW-14-032-21W4\" is accurate and unambiguous - but an adjuster who needs to drive to that location needs GPS coordinates, not a survey notation. Entering 45 descriptions one at a time into a mapping tool is not a reasonable workflow before a deadline.",[12,1524,1525],{},"Farmers often know their land by landmarks, not legal descriptions. \"The quarter south of the slough on the Perlich road\" is how a producer thinks about a parcel. When a lease offer or an insurance application arrives using the legal description, they need a way to connect the notation to the land they actually know.",[12,1527,1528],{},"Lease verification runs in the opposite direction: a prospective tenant receives a list of LLDs and needs to see exactly which quarters are included, whether they're adjacent, and how they fit relative to existing operations. Getting that wrong before signing a lease is costly.",[24,1530,1532],{"id":1531},"three-workflows-that-save-time","Three Workflows That Save Time",[347,1534,1536],{"id":1535},"_1-insurance-claims-45-quarter-sections-one-batch","1. Insurance Claims - 45 Quarter Sections, One Batch",[12,1538,1539,1540,1544,1545,1550],{},"The adjuster with 45 parcels to verify doesn't need to convert them one at a time. Paste the list of legal land descriptions into a CSV, upload it through Township Canada's ",[45,1541,1543],{"href":402,"rel":1542},[220],"batch conversion tool",", and get GPS coordinates back for all 45 in seconds. From there, the ",[45,1546,1549],{"href":1547,"rel":1548},"https:\u002F\u002Fwww.townshipcanada.com\u002Fguides\u002Froute-planner",[220],"route planner"," can sequence the site visits to minimize driving time - grouping parcels by area rather than working through the list in policy order.",[12,1552,1553,1554,1559],{},"For Saskatchewan adjusters working SCIC claims, the same workflow applies. As covered in our post on ",[45,1555,1558],{"href":1556,"rel":1557},"https:\u002F\u002Fwww.townshipcanada.com\u002Fblog\u002Fsaskatchewan-satellite-crop-insurance-legal-land-descriptions",[220],"Saskatchewan's satellite crop insurance program",", coverage parameters are calculated at the township level, making accurate legal description lookup even more consequential when parcels sit near township boundaries.",[12,1561,1562],{},[128,1563],{"alt":1564,"src":1565},"Batch conversion of quarter section legal land descriptions to GPS coordinates","\u002Fimages\u002Fblog\u002Fagriculture-farm-land-descriptions\u002Fbatch-conversion-workflow.webp",[347,1567,1569],{"id":1568},"_2-lease-verification-seeing-the-quarters-on-a-map","2. Lease Verification - Seeing the Quarters on a Map",[12,1571,1572,1573,1578],{},"A producer receives a lease offer that includes six quarter sections across two townships in Saskatchewan: SE-22-045-15W3, NE-22-045-15W3, SW-27-045-15W3, NW-27-045-15W3, SE-34-045-15W3, NE-34-045-15W3. Are these contiguous blocks or scattered parcels? Enter each description into the ",[45,1574,1577],{"href":1575,"rel":1576},"https:\u002F\u002Fwww.townshipcanada.com\u002Fhow-to\u002Fquarter-section-finder",[220],"quarter section finder"," and view them on the DLS grid overlay. Within a few minutes, it's clear exactly which land is on offer and how it fits together - before committing to anything.",[347,1580,1582],{"id":1581},"_3-agronomist-field-mapping-gps-waypoints-for-soil-sampling","3. Agronomist Field Mapping - GPS Waypoints for Soil Sampling",[12,1584,1585],{},"An agronomist has a soil sampling plan organized by quarter section. The lab reports and historical data are all in legal land description format, but field crews use GPS to navigate to sampling locations. Convert the quarter section list to GPS coordinates, export the results, and load the waypoints into field navigation software. No manual coordinate lookup, no risk of a transposed range number sending a crew to the wrong field.",[12,1587,1588],{},[128,1589],{"alt":1590,"src":1591},"Quarter sections mapped on the DLS survey grid in Township Canada","\u002Fimages\u002Fblog\u002Fagriculture-farm-land-descriptions\u002Fgrid-map-quarter-sections.webp",[24,1593,1595],{"id":1594},"afsc-and-scic-deadline-pressure-is-real","AFSC and SCIC: Deadline Pressure Is Real",[12,1597,1598,1599,1603],{},"Both AFSC and SCIC operate on fixed application windows. AFSC's declared-acres deadline is April 30 - see our ",[45,1600,1602],{"href":1601},"\u002Fblog\u002Fafsc-declared-acres-verify-alberta-quarter-sections","step-by-step guide to verifying Alberta quarter sections before the AFSC deadline",". SCIC applications for forage insurance close March 31. These aren't soft targets - missing the window means waiting another year for coverage.",[12,1605,1606],{},"For agricultural agencies and adjusters handling applications across dozens of producers, the volume of legal land descriptions to verify adds up fast. A team processing 200 applications, each listing three to five quarter sections, is looking at 600–1,000 individual parcels to check before the deadline. Batch processing changes that from a multi-day task to something that takes an hour.",[12,1608,1609,1613,1614,1617],{},[45,1610,1612],{"href":402,"rel":1611},[220],"See how batch conversion works"," - or check the ",[45,1615,211],{"href":488,"rel":1616},[220]," if you're evaluating whether a plan makes sense for your claims volume.",[24,1619,1621],{"id":1620},"the-quarter-section-isnt-going-away","The Quarter Section Isn't Going Away",[12,1623,1624],{},"The DLS grid has organized prairie agriculture for over 150 years. It's embedded in titles, leases, insurance policies, soil surveys, and regulatory filings at every level. The legal land description isn't an artifact of an older system - it's the current, active language of prairie land records.",[12,1626,1627,1628,1632,1633,1638],{},"The tools have just gotten better at bridging the gap between a notation on a page and a location you can actually navigate to. If you're working through crop insurance applications, lease verification, or field crew logistics, ",[45,1629,1631],{"href":478,"rel":1630},[220],"Township Canada's converter"," handles all DLS formats for Alberta, Saskatchewan, and Manitoba - quarter sections, LSDs, sections, and full townships. And if your quarter section lists already live in Google Sheets, the ",[45,1634,1637],{"href":1635,"rel":1636},"https:\u002F\u002Fwww.townshipcanada.com\u002Fblog\u002Fgoogle-sheets-add-on-convert-legal-land-descriptions",[220],"Township Canada Google Sheets Add-On"," converts them to GPS coordinates without leaving the spreadsheet.",{"title":274,"searchDepth":275,"depth":275,"links":1640},[1641,1642,1643,1648,1649],{"id":1476,"depth":275,"text":1477},{"id":1515,"depth":275,"text":1516},{"id":1531,"depth":275,"text":1532,"children":1644},[1645,1646,1647],{"id":1535,"depth":498,"text":1536},{"id":1568,"depth":498,"text":1569},{"id":1581,"depth":498,"text":1582},{"id":1594,"depth":275,"text":1595},{"id":1620,"depth":275,"text":1621},"\u002Fimages\u002Fblog\u002Fagriculture-farm-land-descriptions\u002Fcover.webp","2026-05-26","Crop insurance claims, field mapping, soil data lookup, and lease agreements - how farmers, agronomists, and crop insurance adjusters use Township Canada.",{},"\u002Fblog\u002Fagriculture-farm-land-descriptions",{"title":1465,"description":1652},"blog\u002Fagriculture-farm-land-descriptions",[510,541,1658],"Crop Insurance","cHpEV88tVNE3TSsy7WjF-tzrauaGyTMvCdbsxtmkFoM",{"id":1661,"title":1662,"author":7,"body":1663,"category":503,"cover":851,"date":1959,"description":1960,"extension":287,"meta":1961,"navigation":289,"path":1962,"seo":1963,"stem":1964,"tags":1965,"__hash__":1968},"blog\u002Fblog\u002Forphan-well-workflow-aer-ma-diligence.md","Orphan vs. Abandoned Wells: An M&A Diligence Walkthrough",{"type":9,"value":1664,"toc":1950},[1665,1668,1671,1675,1678,1699,1702,1722,1725,1729,1732,1735,1744,1747,1779,1782,1787,1790,1794,1797,1804,1830,1834,1837,1843,1849,1855,1859,1862,1895,1898,1902,1922,1924],[12,1666,1667],{},"Alberta's oil and gas M&A market lives and dies on closure-obligation math. Every barrel of recoverable production has an end-of-life cost - physical abandonment of the well, surface reclamation, regulatory close-out. When a buyer evaluates an acquisition target, the headline question is \"what closure exposure am I inheriting.\" When a surface-rights holder negotiates with a licensee over a wellsite on their land, the parallel question is \"who's funding the cleanup.\"",[12,1669,1670],{},"The orphan flag is the field that splits the answer.",[24,1672,1674],{"id":1673},"orphan-vs-abandoned-theyre-not-the-same","Orphan vs. abandoned - they're not the same",[12,1676,1677],{},"This is the part that trips up first-time diligence:",[241,1679,1680,1690],{},[244,1681,1682,1685,1686,1689],{},[19,1683,1684],{},"Abandoned"," is a ",[19,1687,1688],{},"regulatory state"," - the well has been physically plugged and the licence isn't active. The licensee is still on the hook for surface reclamation.",[244,1691,1692,1685,1695,1698],{},[19,1693,1694],{},"Orphan",[19,1696,1697],{},"financial-responsibility state"," - the licensee can no longer fulfill closure obligations and the well has been transferred to the Orphan Well Association (OWA) inventory. The OWA funds the closure on behalf of the industry.",[12,1700,1701],{},"The combinations:",[241,1703,1704,1710,1716],{},[244,1705,1706,1709],{},[19,1707,1708],{},"Abandoned, non-orphan"," - most abandonments. Plugged and inactive, but the original licensee still owns the reclamation cost.",[244,1711,1712,1715],{},[19,1713,1714],{},"Abandoned orphan"," - the OWA is funding closure. Licensee insolvent or otherwise unable to pay.",[244,1717,1718,1721],{},[19,1719,1720],{},"Non-abandoned orphan"," - OWA has taken ownership but the well isn't physically closed yet. Production may have stopped years ago; the well sits as a non-producing asset on the OWA's books.",[12,1723,1724],{},"Township Canada layers the OWA monthly inventory on top of the AER ST37 dataset to surface the orphan flag distinctly on every well. See the data layer reference.",[24,1726,1728],{"id":1727},"the-ma-diligence-question","The M&A diligence question",[12,1730,1731],{},"Buyer side: \"I'm buying a company with ~400 well licences. What closure exposure am I taking on?\"",[12,1733,1734],{},"The naive answer is \"400 wells worth.\" The better answer is in the operator's BA snapshot, on the operator view of any parcel report:",[1736,1737,1742],"pre",{"className":1738,"code":1740,"language":1741},[1739],"language-text","Operator BA snapshot - per licensee BA code\n  total:                  423\n  active:                 187\n  suspended:               41\n  abandoned:              168\n  orphan:                  27\n  reclamation_certified:   19\n","text",[65,1743,1740],{"__ignoreMap":274},[12,1745,1746],{},"What this tells you:",[241,1748,1749,1755,1761,1767,1773],{},[244,1750,1751,1754],{},[19,1752,1753],{},"187 active wells"," - future closure obligation, far horizon, dependent on production economics",[244,1756,1757,1760],{},[19,1758,1759],{},"41 suspended wells"," - near-term decision needed (reactivate, abandon, or transfer)",[244,1762,1763,1766],{},[19,1764,1765],{},"168 abandoned wells"," - open reclamation work, costed on the AER Liability Rating model",[244,1768,1769,1772],{},[19,1770,1771],{},"27 orphan wells"," - closure funded by the OWA, not the licensee; don't count toward inherited obligation",[244,1774,1775,1778],{},[19,1776,1777],{},"19 reclamation-certified"," - fully closed, no further obligation",[12,1780,1781],{},"The buyer's inherited closure obligation is roughly:",[12,1783,1784],{},[65,1785,1786],{},"obligation = AER_LRM_per_well × (suspended + abandoned + active × probability_of_abandonment_in_window) - orphan_wells",[12,1788,1789],{},"The orphan count is a subtraction - those don't transfer. The OWA-funded wells stay with the OWA regardless of what happens at the corporate level.",[24,1791,1793],{"id":1792},"why-the-per-well-orphan-flag-matters-separately","Why the per-well orphan flag matters separately",[12,1795,1796],{},"The BA-level rollup gives you the headline numbers. The per-well flag matters when you're examining specific wells - for surface-rights diligence, for closure-cost forecasting, for risk-weighting individual wellsites.",[12,1798,1799,1800,1803],{},"A surface-rights holder evaluating a wellsite on their land: pull the parcel report at ",[65,1801,1802],{},"\u002Fapp\u002Fparcel\u002F[lld]",", see the wells listed on that parcel, check each one's orphan flag.",[241,1805,1806,1812,1818,1824],{},[244,1807,1808,1811],{},[19,1809,1810],{},"Orphan, abandoned"," → OWA-funded closure. Timeline is OWA-driven (their public inventory updates monthly).",[244,1813,1814,1817],{},[19,1815,1816],{},"Orphan, non-abandoned"," → OWA has it but the well sits non-producing. Reactivation by the OWA is rare; closure is the normal path.",[244,1819,1820,1823],{},[19,1821,1822],{},"Non-orphan, abandoned"," → Licensee owns the reclamation. If the licensee is suspended-status across most of their portfolio, that's an emerging orphan-risk signal.",[244,1825,1826,1829],{},[19,1827,1828],{},"Non-orphan, active"," → Licensee is operating. Normal commercial path.",[24,1831,1833],{"id":1832},"why-closure-exposure-is-the-dominant-ma-factor","Why closure exposure is the dominant M&A factor",[12,1835,1836],{},"A few sector-specific reasons:",[12,1838,1839,1842],{},[19,1840,1841],{},"The AER's industry-wide closure spend target is enforced."," Operators have to spend X dollars per year on closure, allocated against their inactive wells. Buying a company doesn't reset the closure clock - the obligation transfers.",[12,1844,1845,1848],{},[19,1846,1847],{},"Orphan-risk is increasing."," Every year, more licensees enter financial distress and their wells transition into the OWA inventory. The orphan count grew from ~2,500 in 2018 to ~10,000+ today. Buyers want to understand whether they're buying a fast-orphaning portfolio or a stable one.",[12,1850,1851,1854],{},[19,1852,1853],{},"Closure-cost models keep tightening."," Per-well closure cost estimates have risen as more wells reach end-of-life and the actual cost data accumulates. M&A discount rates against future closure obligation have changed materially since 2020.",[24,1856,1858],{"id":1857},"using-township-canada-for-the-diligence","Using Township Canada for the diligence",[12,1860,1861],{},"The combination is the workflow:",[1863,1864,1865,1871,1877,1883,1889],"ol",{},[244,1866,1867,1870],{},[19,1868,1869],{},"Pull the BA snapshot"," for the target's primary licensee BA code(s)",[244,1872,1873,1876],{},[19,1874,1875],{},"Filter the wells layer"," by BA code on the map - visual sanity check on the geographic spread",[244,1878,1879,1882],{},[19,1880,1881],{},"For the highest-exposure wells"," (active in good infrastructure zones, suspended at risk), pull individual well reports for the operator history",[244,1884,1885,1888],{},[19,1886,1887],{},"For surface-rights overlap",", run the parcel report on the title locations where the wells sit",[244,1890,1891,1894],{},[19,1892,1893],{},"Cross-reference with AER liability rating data"," (operator-level Liability Management Rating, LMR) for the regulator's view of the operator's financial fitness",[12,1896,1897],{},"The Energy Bundle ($50\u002Fmo, on Pro or Business) is the entitlement for steps 1-4. AER LMR data is published separately by the regulator.",[24,1899,1901],{"id":1900},"what-this-doesnt-cover","What this doesn't cover",[241,1903,1904,1910,1916],{},[244,1905,1906,1909],{},[19,1907,1908],{},"Operator transfer history"," - when did wells transfer, from whom, for what consideration? The AER publishes well transfer notices weekly; a future Township Canada feature would aggregate per-BA transfer flows.",[244,1911,1912,1915],{},[19,1913,1914],{},"Per-well closure cost forecasts"," - the AER LRM model is industry-public but Township Canada doesn't currently compute or surface per-well dollar estimates.",[244,1917,1918,1921],{},[19,1919,1920],{},"Petrinex production volumes"," - production-history-as-of-now is on the paid Petrinex feed. The free AER data we surface is licensing and status, not production.",[24,1923,239],{"id":238},[241,1925,1926,1932,1938,1941,1944],{},[244,1927,1928],{},[45,1929,1931],{"href":1930},"\u002Flearn\u002Fhow-to\u002Faer-wells-lifecycle-status","AER Wells Lifecycle Status",[244,1933,1934],{},[45,1935,1937],{"href":1936},"\u002Flearn\u002Fhow-to\u002Forphan-well-due-diligence","Orphan Well Due Diligence - workflow guide",[244,1939,1940],{},"Orphan + abandoned wells data layer reference",[244,1942,1943],{},"Asset \u002F operator history snapshot reference",[244,1945,1946],{},[45,1947,1949],{"href":1948},"\u002Ffor\u002Foil-and-gas","Township Canada for Oil and Gas Operators",{"title":274,"searchDepth":275,"depth":275,"links":1951},[1952,1953,1954,1955,1956,1957,1958],{"id":1673,"depth":275,"text":1674},{"id":1727,"depth":275,"text":1728},{"id":1792,"depth":275,"text":1793},{"id":1832,"depth":275,"text":1833},{"id":1857,"depth":275,"text":1858},{"id":1900,"depth":275,"text":1901},{"id":238,"depth":275,"text":239},"2026-05-25","When evaluating an Alberta oil and gas acquisition, the orphan flag is the single most consequential field on the wells dataset. Here's how to use the BA licensee snapshot API + per-well orphan flag to scope closure exposure.",{},"\u002Fblog\u002Forphan-well-workflow-aer-ma-diligence",{"title":1662,"description":1960},"blog\u002Forphan-well-workflow-aer-ma-diligence",[1966,1461,297,1967,300],"Orphan Wells","M&A","wCPaSzZ2ZeOIpKVNmwWa5_uV-5FagmFirQEGT6wp3nE",{"id":1970,"title":1971,"author":7,"body":1972,"category":503,"cover":851,"date":2169,"description":2170,"extension":287,"meta":2171,"navigation":289,"path":2172,"seo":2173,"stem":2174,"tags":2175,"__hash__":2179},"blog\u002Fblog\u002Ftreaty-boundaries-why-we-shipped-them.md","Why We Shipped Treaty Boundaries on the DLS Grid",{"type":9,"value":1973,"toc":2160},[1974,1977,1981,1984,2016,2027,2031,2034,2037,2040,2046,2050,2053,2067,2070,2074,2077,2080,2084,2087,2107,2110,2114,2117,2137,2139],[12,1975,1976],{},"A few weeks ago we shipped the Treaty Boundaries layer as part of the Energy Bundle - five polygons covering Treaties 4, 6, 7, 8, and 10 rendered on the DLS grid alongside wells, pipelines, and parcels. This post is about why we shipped it, what we're careful to say (and not say) about what the layer means, and the broader Indigenous consultation overlay that's spec'd as a follow-up.",[24,1978,1980],{"id":1979},"what-the-layer-is","What the layer is",[12,1982,1983],{},"Five polygons from the federal Government of Canada open data - published by Crown-Indigenous Relations and Northern Affairs Canada (CIRNAC) via the ArcGIS REST service. The five Numbered Treaties cover most of the Prairie agricultural belt and adjacent industrial corridors:",[241,1985,1986,1992,1998,2004,2010],{},[244,1987,1988,1991],{},[19,1989,1990],{},"Treaty 4"," (1874) - southern Saskatchewan + parts of MB and AB",[244,1993,1994,1997],{},[19,1995,1996],{},"Treaty 6"," (1876) - central Alberta and central Saskatchewan",[244,1999,2000,2003],{},[19,2001,2002],{},"Treaty 7"," (1877) - southern Alberta",[244,2005,2006,2009],{},[19,2007,2008],{},"Treaty 8"," (1899) - northern Alberta, northeastern BC, southern NWT, part of northern SK",[244,2011,2012,2015],{},[19,2013,2014],{},"Treaty 10"," (1906) - northeastern SK plus part of MB",[12,2017,2018,2019,60],{},"We render the polygons at zoom 0 (visible at continental scale, where most early-stage siting decisions get made) and surface the treaty name as a flag on every parcel report at ",[45,2020,2022,2023],{"href":2021},"\u002Fapp\u002Fparcel\u002FNE-14-32-21-W3","\u002Fapp\u002Fparcel\u002F",[2024,2025,2026],"span",{},"lld",[24,2028,2030],{"id":2029},"what-the-layer-is-not","What the layer is NOT",[12,2032,2033],{},"This is the part we obsessed over. A treaty boundary on a map can be read two very different ways:",[12,2035,2036],{},"The naive read: \"Here's where consultation applies.\" Wrong. The duty to consult arises from constitutional jurisprudence and the specific characteristics of each Nation's claim - including modern land claims, reserve geography, traditional territory assertions, and active negotiations. Treaty geography is one input.",[12,2038,2039],{},"The right read: \"Here's a first-pass flag during early-stage project siting.\" Project siting teams use the layer to understand which Numbered Treaty applies to a candidate location and route to the appropriate consultation team before further work.",[12,2041,2042,2043],{},"The layer copy reflects this. The parcel report card is labeled \"Indigenous consultation hazard\" - not \"Indigenous consultation status.\" The detail copy reads: ",[1235,2044,2045],{},"Reference only - verify duty-to-consult directly with the affected Nation before any activity.",[24,2047,2049],{"id":2048},"why-we-shipped-it-for-everyone-not-just-paid-customers","Why we shipped it for everyone, not just paid customers",[12,2051,2052],{},"The flag on the parcel report is available at every tier - not gated behind the Energy Bundle. Two reasons:",[1863,2054,2055,2061],{},[244,2056,2057,2060],{},[19,2058,2059],{},"Treaty geography is public information."," Federal open data. Putting a usability layer in front of public data shouldn't require a paid subscription.",[244,2062,2063,2066],{},[19,2064,2065],{},"Surfacing the flag early matters more than gating it."," A farmer pulling a free parcel report on a candidate lease should see the treaty flag. A surveyor scoping a new project should see it. A junior analyst at a CCS developer who's pre-screening sites before the senior team gets involved should see it. The downside of a missed consultation step is much larger than the marginal revenue from gating the flag.",[12,2068,2069],{},"The Energy Bundle adds the map overlay (toggle Treaty Boundaries on\u002Foff across the entire map view), which is the workflow for active project planning at scale.",[24,2071,2073],{"id":2072},"why-on-the-dls-grid-specifically","Why on the DLS grid specifically",[12,2075,2076],{},"Every legal land description in Western Canada references the DLS grid. Every well, every facility, every CCS tenure block, every parcel. Putting treaty geography on the same coordinate system isn't a decorative choice - it means that when an operator looks at a list of candidate wellsites or candidate CCS injection points, the treaty overlap is on the same map, not in a separate portal.",[12,2078,2079],{},"The cross-portal workflow (AER GeoView for tenure, federal GIS for treaty, internal mapping for wells) is the workflow we built the Energy Bundle to replace.",[24,2081,2083],{"id":2082},"the-broader-overlay-thats-roadmapped","The broader overlay that's roadmapped",[12,2085,2086],{},"The Treaty Boundaries layer is the v1 of a broader Indigenous consultation overlay. The full layer would add:",[241,2088,2089,2095,2101],{},[244,2090,2091,2094],{},[19,2092,2093],{},"Reserve and modern settlement lands"," - federal reserve boundaries plus modern treaty \u002F land claim areas (CIRNAC sources)",[244,2096,2097,2100],{},[19,2098,2099],{},"Provincial consultation databases"," - AB Aboriginal Consultation Office, BC Consultative Areas Database",[244,2102,2103,2106],{},[19,2104,2105],{},"Per-source disclaimer copy"," - explicitly labeling which polygons come from which authority and what they do (and don't) represent",[12,2108,2109],{},"The reason we shipped the Treaty Boundaries first and the broader overlay later: source selection requires legal sign-off on disclaimer copy that we don't want to rush. Treaty geography is well-defined (five polygons, CIRNAC-published, decades of legal precedent on what they mean). Provincial consultation databases are more contested in their interpretation - getting the disclaimer right is the gating factor.",[24,2111,2113],{"id":2112},"what-this-does-not-replace","What this does not replace",[12,2115,2116],{},"To be explicit about the boundary:",[241,2118,2119,2125,2131],{},[244,2120,2121,2124],{},[19,2122,2123],{},"Direct outreach to affected Nations."," The duty to consult is owed to specific Nations, not to a map polygon. Every project siting decision that triggers the duty also triggers an outreach process; the layer doesn't substitute for that.",[244,2126,2127,2130],{},[19,2128,2129],{},"Modern land claim analysis."," Modern treaties (Métis settlements, comprehensive claims, etc.) aren't fully captured by the five Numbered Treaty polygons. The broader overlay covers more of this; the spec is in the docs.",[244,2132,2133,2136],{},[19,2134,2135],{},"Legal advice."," This is published data on a map. Legal counsel on consultation obligations is the right input when the duty triggers.",[24,2138,239],{"id":238},[241,2140,2141,2147,2150,2156],{},[244,2142,2143],{},[45,2144,2146],{"href":2145},"\u002Flearn\u002Fhow-to\u002Ftreaty-boundaries-on-dls-grid","Treaty Boundaries on the DLS Grid - how to read the layer",[244,2148,2149],{},"Indigenous Consultation Overlay spec",[244,2151,2152],{},[45,2153,2155],{"href":2154},"\u002Ffor\u002Fccs-developers","Township Canada for CCS Developers",[244,2157,2158],{},[45,2159,1949],{"href":1948},{"title":274,"searchDepth":275,"depth":275,"links":2161},[2162,2163,2164,2165,2166,2167,2168],{"id":1979,"depth":275,"text":1980},{"id":2029,"depth":275,"text":2030},{"id":2048,"depth":275,"text":2049},{"id":2072,"depth":275,"text":2073},{"id":2082,"depth":275,"text":2083},{"id":2112,"depth":275,"text":2113},{"id":238,"depth":275,"text":239},"2026-05-24","Treaty 4, 6, 7, 8, and 10 boundaries are public data published by CIRNAC. Putting them on the same map as wells, parcels, and CCS tenure isn't a substitute for consultation - it's the first map a project siting team should consult.",{},"\u002Fblog\u002Ftreaty-boundaries-why-we-shipped-them",{"title":1971,"description":2170},"blog\u002Ftreaty-boundaries-why-we-shipped-them",[2176,2177,297,2178],"Treaty Boundaries","Indigenous Consultation","Product Decisions","t6wflEkyfReIKlok-efn_1zPRx8SUNDkT8KN4QILae0",{"id":2181,"title":2182,"author":7,"body":2183,"category":503,"cover":851,"date":2494,"description":2495,"extension":287,"meta":2496,"navigation":289,"path":2497,"seo":2498,"stem":2499,"tags":2500,"__hash__":2504},"blog\u002Fblog\u002Faafc-crop-inventory-walkthrough.md","AAFC Crop Inventory Walkthrough: 5 Years of What's Been Grown on the Prairies",{"type":9,"value":2184,"toc":2484},[2185,2188,2195,2199,2202,2228,2231,2251,2254,2257,2274,2277,2281,2284,2317,2324,2328,2331,2335,2338,2341,2361,2365,2368,2374,2380,2386,2392,2398,2402,2405,2431,2434,2438,2452,2459,2461],[12,2186,2187],{},"Agriculture and Agri-Food Canada (AAFC) publishes a national raster called the Annual Crop Inventory (ACI) each spring, covering the previous growing season. Each ~30m pixel carries a single integer crop class - canola, spring wheat, soybean, oats, fallow, and so on - derived from satellite imagery (Landsat, Sentinel) plus ground-truth verification.",[12,2189,2190,2191,2194],{},"For Township Canada's Agriculture Bundle, we aggregate the most recent five years into a per-parcel summary that surfaces on every ",[45,2192,793],{"href":2193},"\u002Fapp\u002Fparcel\u002FSE-14-29-21-W2"," and as a full overlay on the map for Agriculture Bundle subscribers. This post walks through how the aggregation works, what the outputs mean, and how to read the rotation patterns.",[24,2196,2198],{"id":2197},"what-the-summary-returns","What the summary returns",[12,2200,2201],{},"For any quarter section in Alberta or Saskatchewan, the AAFC crop summary card returns:",[241,2203,2204,2210,2216,2222],{},[244,2205,2206,2209],{},[19,2207,2208],{},"Dominant crop"," - the crop class that occupies the most acres across the 5-year window",[244,2211,2212,2215],{},[19,2213,2214],{},"Rotation"," - year-by-year sequence of dominant crops (Year 5 oldest → Year 1 newest)",[244,2217,2218,2221],{},[19,2219,2220],{},"Shannon diversity index"," - 0 to ~1, measuring how varied the rotation is",[244,2223,2224,2227],{},[19,2225,2226],{},"Years covered"," - explicit list of which years are in the aggregate",[12,2229,2230],{},"A typical Alberta canola-wheat rotation might return:",[241,2232,2233,2236,2242,2245],{},[244,2234,2235],{},"Dominant: Canola",[244,2237,2238,2239],{},"Rotation: ",[2024,2240,2241],{},"Canola, Wheat, Canola, Wheat, Canola",[244,2243,2244],{},"Diversity: 0.65",[244,2246,2247,2248],{},"Years: ",[2024,2249,2250],{},"2021, 2022, 2023, 2024, 2025",[12,2252,2253],{},"Read as: \"Canola in odd years, wheat in even years, with Canola taking the recent year. Moderately diverse rotation.\"",[12,2255,2256],{},"A continuous-canola operation:",[241,2258,2259,2261,2266,2269],{},[244,2260,2235],{},[244,2262,2238,2263],{},[2024,2264,2265],{},"Canola, Canola, Canola, Canola, Canola",[244,2267,2268],{},"Diversity: 0.0",[244,2270,2247,2271],{},[2024,2272,2273],{},"2021, ..., 2025",[12,2275,2276],{},"Read as: \"Canola monoculture. High disease pressure risk, no rotation.\"",[24,2278,2280],{"id":2279},"the-aggregation-pipeline","The aggregation pipeline",[12,2282,2283],{},"AAFC publishes the raster at ~30m resolution. Township Canada's pipeline is:",[1863,2285,2286,2296,2305,2311],{},[244,2287,2288,2291,2292,2295],{},[19,2289,2290],{},"Reproject + mode-aggregate to 1km cells."," ",[65,2293,2294],{},"gdalwarp -r mode -tr 1000 1000"," collapses ~30m pixels to 1km vector cells using mode aggregation (most-common pixel value wins).",[244,2297,2298,2291,2301,2304],{},[19,2299,2300],{},"Polygonize to vector.",[65,2302,2303],{},"gdal_polygonize"," converts the 1km raster to vector polygons.",[244,2306,2307,2310],{},[19,2308,2309],{},"Join the AAFC crop class codebook."," Pixel value 146 → \"Canola\", 153 → \"Spring Wheat\", 167 → \"Soybean\", and so on.",[244,2312,2313,2316],{},[19,2314,2315],{},"Compute the multi-year aggregate"," - dominant crop, rotation array, Shannon diversity per cell.",[12,2318,2319,2320,2323],{},"Result: ",[65,2321,2322],{},"app.aafc_crop_summary"," - one row per 1km cell with the 5-year summary attached. Served as PMTiles for the map overlay; queried directly for per-parcel reports.",[24,2325,2327],{"id":2326},"why-mode-aggregation-not-majority","Why mode aggregation, not majority",[12,2329,2330],{},"A 160-acre quarter section overlaps ~250 of the 1km AAFC cells in a typical configuration. We don't want to know \"what was grown on 60% of the acres\" - we want the dominant cell, which is the modal-of-modals across the parcel's overlap. The parcel report card returns the dominant cell; the full acreage breakdown is in the underlying data but isn't surfaced as a UI element today.",[24,2332,2334],{"id":2333},"the-shannon-diversity-index","The Shannon diversity index",[12,2336,2337],{},"Shannon's H is the standard ecology measure for \"how varied is this community.\" For crop rotations, it captures the difference between a monoculture (H = 0) and an even mix of N crops (H = ln(N), ~1.6 for a 5-crop mix).",[12,2339,2340],{},"Township Canada normalizes Shannon's H to a 0-1 scale where 1.0 = maximum observed diversity in the dataset (typically a perfect even mix of 5+ crops). Useful for:",[241,2342,2343,2349,2355],{},[244,2344,2345,2348],{},[19,2346,2347],{},"Carbon project baseline framing"," - Conservation Cropping protocols benefit from high-diversity rotations",[244,2350,2351,2354],{},[19,2352,2353],{},"Disease pressure proxy"," - low diversity (high canola or high wheat) correlates with higher disease\u002Fpest pressure",[244,2356,2357,2360],{},[19,2358,2359],{},"Risk profiling"," - high-diversity portfolios are more resilient to single-crop price shocks",[24,2362,2364],{"id":2363},"common-rotation-patterns-youll-see","Common rotation patterns you'll see",[12,2366,2367],{},"Scanning the AAFC overlay across the Prairies, several archetypes recur:",[12,2369,2370,2373],{},[19,2371,2372],{},"Canola-wheat (heaviest in central Alberta and Saskatchewan)."," Diversity ~0.6, dominant alternates between canola and wheat. The workhorse rotation for the Black Soil Zone.",[12,2375,2376,2379],{},[19,2377,2378],{},"Canola-wheat-pulse (south-central Saskatchewan)."," Diversity ~0.8, with lentils, peas, or chickpeas inserting on a 3-4 year cycle. More resilient to canola-specific disease pressure.",[12,2381,2382,2385],{},[19,2383,2384],{},"Continuous canola (Peace block, some central AB)."," Diversity 0.0-0.2. Agronomically risky but common where pulse rotations don't fit the local climate.",[12,2387,2388,2391],{},[19,2389,2390],{},"Wheat-fallow (Brown Soil Zone, southwest Saskatchewan, southern Alberta)."," Diversity 0.5-0.7 with fallow alternating. Standard dryland practice where moisture is the binding constraint.",[12,2393,2394,2397],{},[19,2395,2396],{},"Irrigation-driven complexity (southern Alberta near St. Mary or Bow River systems)."," Diversity 0.85+, with sugar beets, potatoes, alfalfa, soybeans, and dry beans in the rotation. Very different agronomic profile from dryland.",[24,2399,2401],{"id":2400},"what-aci-doesnt-capture","What ACI doesn't capture",[12,2403,2404],{},"A few important limitations:",[241,2406,2407,2413,2419,2425],{},[244,2408,2409,2412],{},[19,2410,2411],{},"Failed crops show as what came up."," A canola that failed in May and got reseeded to oats shows as oats - the satellite sees what's actually growing.",[244,2414,2415,2418],{},[19,2416,2417],{},"Cover crops and intercrops"," - typically not distinguishable at the 30m pixel scale. The summary reports the dominant cash crop.",[244,2420,2421,2424],{},[19,2422,2423],{},"Tillage and OM management"," - invisible to the satellite. ACI tells you what was grown, not how.",[244,2426,2427,2430],{},[19,2428,2429],{},"Unseeded fallow vs. summer fallow"," - both look the same to the satellite. Practice-level distinctions require additional inputs.",[12,2432,2433],{},"For most ag use cases (lease verification, portfolio screening, carbon baseline), the surface-level rotation summary is the right level of detail. For research-grade work, the underlying year-by-year rasters are still the source of truth.",[24,2435,2437],{"id":2436},"coverage-and-use-cases","Coverage and use cases",[241,2439,2440,2446],{},[244,2441,2442,2445],{},[19,2443,2444],{},"Alberta + Saskatchewan:"," full coverage of the cultivated land base",[244,2447,2448,2451],{},[19,2449,2450],{},"Manitoba, BC, Ontario:"," partial AAFC coverage; we ingest where available",[12,2453,2454,2455,2458],{},"Combined with ",[45,2456,1460],{"href":2457},"\u002Flearn\u002Fhow-to\u002Flsrs-soil-productivity-score",", the AAFC crop history triangulates the productivity claim - high-LSRS quarter with canola-heavy continuous rotation = confirmed-productive ground that's been worked hard. Lower-LSRS quarter with diverse rotation = managed-conservatively ground that may have head-room.",[24,2460,239],{"id":238},[241,2462,2463,2469,2475,2481],{},[244,2464,2465],{},[45,2466,2468],{"href":2467},"\u002Flearn\u002Fhow-to\u002Faafc-crop-history-quarter-section","AAFC Crop History per Quarter Section",[244,2470,2471],{},[45,2472,2474],{"href":2473},"\u002Flearn\u002Fhow-to\u002Fcanola-wheat-rotation-mapping","Canola-Wheat Rotation Mapping",[244,2476,2477],{},[45,2478,2480],{"href":2479},"\u002Fblog\u002Flsrs-explained-what-the-score-tells-you","LSRS Explained",[244,2482,2483],{},"AAFC Annual Crop Inventory layer reference",{"title":274,"searchDepth":275,"depth":275,"links":2485},[2486,2487,2488,2489,2490,2491,2492,2493],{"id":2197,"depth":275,"text":2198},{"id":2279,"depth":275,"text":2280},{"id":2326,"depth":275,"text":2327},{"id":2333,"depth":275,"text":2334},{"id":2363,"depth":275,"text":2364},{"id":2400,"depth":275,"text":2401},{"id":2436,"depth":275,"text":2437},{"id":238,"depth":275,"text":239},"2026-05-23","AAFC publishes a national satellite-derived crop inventory every year. Township Canada aggregates 5 years to a per-parcel summary with dominant crop, rotation, and Shannon diversity. Here's how to read it.",{},"\u002Fblog\u002Faafc-crop-inventory-walkthrough",{"title":2182,"description":2495},"blog\u002Faafc-crop-inventory-walkthrough",[2501,2502,2503,541],"AAFC","Crop Inventory","Ag Bundle","zigQs7si7IiOIIoA8wW-uJzPqY8Q3YCHxDPEtLEPUJU",{"id":2506,"title":2507,"author":7,"body":2508,"category":503,"cover":851,"date":2838,"description":2839,"extension":287,"meta":2840,"navigation":289,"path":2479,"seo":2841,"stem":2842,"tags":2843,"__hash__":2845},"blog\u002Fblog\u002Flsrs-explained-what-the-score-tells-you.md","LSRS Explained: What the Soil Productivity Score Actually Tells You About a Quarter Section",{"type":9,"value":2509,"toc":2829},[2510,2519,2522,2526,2529,2549,2552,2596,2599,2603,2610,2697,2700,2704,2707,2713,2719,2725,2731,2735,2769,2773,2792,2796,2806,2808],[12,2511,2512,2513,2518],{},"When you pull a parcel report at ",[45,2514,2516],{"href":2515},"\u002Fapp\u002Fparcel\u002FSE-14-29-21-W4",[65,2517,1802],{}," for an Alberta quarter section, the \"LSRS Soil Productivity\" card returns three numbers: a class (1 to 7), a score (0 to 100), and a label (Excellent, Very Good, Good, Moderate, Marginal, Severe Limitations, Unsuitable). The class is the canonical AAFC output; the 0-100 score is Township Canada's translation for easier reading.",[12,2520,2521],{},"This post walks through what the class means, where it comes from, and the common readings that get the interpretation wrong.",[24,2523,2525],{"id":2524},"what-lsrs-measures","What LSRS measures",[12,2527,2528],{},"The Land Suitability Rating System (LSRS) is a national-scale soil and climate suitability index, published by Agriculture and Agri-Food Canada (AAFC) and computed from AGRASID (the Alberta Soil Information Viewer database) plus climate and landscape inputs. It combines three suitability dimensions into a single class per polygon:",[241,2530,2531,2537,2543],{},[244,2532,2533,2536],{},[19,2534,2535],{},"Climate suitability"," - growing-degree-days, frost-free period, precipitation",[244,2538,2539,2542],{},[19,2540,2541],{},"Soil suitability"," - drainage, salinity, texture, organic matter, depth",[244,2544,2545,2548],{},[19,2546,2547],{},"Landscape suitability"," - slope, stoniness, surface form",[12,2550,2551],{},"Each component is rated independently, then combined. The output is the LSRS class - a 1-to-7 rating where:",[241,2553,2554,2560,2566,2572,2578,2584,2590],{},[244,2555,2556,2559],{},[19,2557,2558],{},"1"," = excellent, minimal limitations",[244,2561,2562,2565],{},[19,2563,2564],{},"2"," = very good, minor limitations",[244,2567,2568,2571],{},[19,2569,2570],{},"3"," = good, moderate limitations",[244,2573,2574,2577],{},[19,2575,2576],{},"4"," = moderate, several limitations",[244,2579,2580,2583],{},[19,2581,2582],{},"5"," = marginal, significant limitations",[244,2585,2586,2589],{},[19,2587,2588],{},"6"," = severe limitations",[244,2591,2592,2595],{},[19,2593,2594],{},"7"," = unsuitable for spring cereals",[12,2597,2598],{},"For Township Canada we use the spring-seeded small grains version of LSRS - the standard reference for cropland suitability in Western Canada.",[24,2600,2602],{"id":2601},"the-0-100-score-translation","The 0-100 score translation",[12,2604,2605,2606,2609],{},"Producers don't always read class numbers cleanly. A class-1 quarter is meaningfully different from a class-2, but the visual jump between \"1\" and \"2\" doesn't feel like much. We translate the 1-7 class into a 0-100 score using ",[65,2607,2608],{},"app.lsrs_class_to_score()",":",[660,2611,2612,2625],{},[663,2613,2614],{},[666,2615,2616,2619,2622],{},[669,2617,2618],{},"Class",[669,2620,2621],{},"Score range",[669,2623,2624],{},"Label",[681,2626,2627,2637,2647,2657,2667,2677,2687],{},[666,2628,2629,2631,2634],{},[686,2630,2558],{},[686,2632,2633],{},"90-100",[686,2635,2636],{},"Excellent",[666,2638,2639,2641,2644],{},[686,2640,2564],{},[686,2642,2643],{},"75-89",[686,2645,2646],{},"Very good",[666,2648,2649,2651,2654],{},[686,2650,2570],{},[686,2652,2653],{},"60-74",[686,2655,2656],{},"Good",[666,2658,2659,2661,2664],{},[686,2660,2576],{},[686,2662,2663],{},"45-59",[686,2665,2666],{},"Moderate",[666,2668,2669,2671,2674],{},[686,2670,2582],{},[686,2672,2673],{},"30-44",[686,2675,2676],{},"Marginal",[666,2678,2679,2681,2684],{},[686,2680,2588],{},[686,2682,2683],{},"15-29",[686,2685,2686],{},"Severe limitations",[666,2688,2689,2691,2694],{},[686,2690,2594],{},[686,2692,2693],{},"0-14",[686,2695,2696],{},"Unsuitable",[12,2698,2699],{},"Same information, different scale. A class-2 quarter scoring 82 sits firmly above the class-3 ceiling at 74 - there's room to compare nearby parcels within the same class.",[24,2701,2703],{"id":2702},"what-lsrs-is-not","What LSRS is NOT",[12,2705,2706],{},"This is where most misreadings come from.",[12,2708,2709,2712],{},[19,2710,2711],{},"LSRS is not yield."," A class-1 quarter still has bad years; a class-4 quarter can outperform if managed well. LSRS reflects long-run suitability under typical management - it doesn't model the specific year, the rotation, the operator's skill, or the input regime. For an investor underwriting a deal, LSRS is one input among yield-history, lease structure, and access factors.",[12,2714,2715,2718],{},[19,2716,2717],{},"LSRS is not market value."," Recent Farm Credit Canada (FCC) farmland values track LSRS loosely, but other factors move price more - proximity to grain delivery points, water access, road frontage, surface infrastructure, treaty\u002FIndigenous consultation considerations. A class-1 parcel in a remote corner of the Peace block won't price like a class-3 parcel next to a major elevator.",[12,2720,2721,2724],{},[19,2722,2723],{},"LSRS is not crop-specific."," The version Township Canada surfaces is for spring-seeded small grains - wheat, barley, oats. AAFC publishes pasture-specific LSRS too, but that's a different output. A high-rated spring-cereal quarter may be poor pasture; a low-rated cereal quarter may be excellent forage.",[12,2726,2727,2730],{},[19,2728,2729],{},"LSRS isn't current."," The underlying soil polygons in AGRASID 4.1 reflect mapping work done over decades. The actual soil hasn't changed much, but salinity, erosion, and OM may have shifted since the survey. For a specific parcel under diligence, a current soil test is still the gold standard.",[24,2732,2734],{"id":2733},"what-lsrs-is-good-for","What LSRS IS good for",[241,2736,2737,2743,2749,2764],{},[244,2738,2739,2742],{},[19,2740,2741],{},"Comparing parcels within a region"," - same climate, same broad landscape, soil and slope variations drive most of the LSRS variation. Use it to rank candidate parcels within a polygon.",[244,2744,2745,2748],{},[19,2746,2747],{},"Setting expectations on a new lease"," - a class-3 parcel will yield 80-90% of a class-1 parcel under similar management. Useful for setting rent and modeling baseline production.",[244,2750,2751,2754,2755,2759,2760,2763],{},[19,2752,2753],{},"First-pass acquisition filtering at scale"," - use the ",[45,2756,2758],{"href":2757},"\u002Flearn\u002Fhow-to\u002Ffind-best-farmland-by-lsrs","LSRS overlay"," with the Agriculture Bundle to scan an entire RM for top-class ground. Cross-reference with ",[45,2761,2762],{"href":2467},"AAFC crop history"," to confirm the productivity claim with actual rotation evidence.",[244,2765,2766,2768],{},[19,2767,2347],{}," - for TIER Conservation Cropping protocols, the LSRS class establishes the soil's pre-project suitability.",[24,2770,2772],{"id":2771},"coverage-today","Coverage today",[241,2774,2775,2781,2786],{},[244,2776,2777,2780],{},[19,2778,2779],{},"Alberta"," - full LSRS coverage via AGRASID 4.1",[244,2782,2783,2785],{},[19,2784,294],{}," - compute pipeline in flight. National AAFC LSRS doesn't exist for SK, so we're building from AGRASID + SKSIS + climate + DEM",[244,2787,2788,2791],{},[19,2789,2790],{},"Manitoba, BC, Ontario"," - further out",[24,2793,2795],{"id":2794},"how-to-read-lsrs-on-a-parcel-report","How to read LSRS on a parcel report",[12,2797,2798,2799,2802,2803,2805],{},"Walk through one: ",[45,2800,2801],{"href":2801},"\u002Fapp\u002Fparcel\u002FNE-14-32-21-W4",". If the LSRS card shows \"Class 2 - Very good (82\u002F100),\" that's a strong east-central Alberta quarter - minor limitations on one or more sub-dimensions, but firmly above the regional median for spring cereals. Compare to the same parcel's ",[45,2804,2762],{"href":2467}," - if the dominant crop has been canola for five straight years, the LSRS rating is validated by what's actually growing.",[24,2807,239],{"id":238},[241,2809,2810,2815,2820,2826],{},[244,2811,2812],{},[45,2813,2814],{"href":2457},"LSRS Soil Productivity Score - how to look it up",[244,2816,2817],{},[45,2818,2819],{"href":2757},"Find Top-LSRS Farmland in Alberta",[244,2821,2822],{},[45,2823,2825],{"href":2824},"\u002Flearn\u002Fhow-to\u002Ffarmland-due-diligence-soil-and-crop","Farmland Due Diligence: Soil and Crop Checks",[244,2827,2828],{},"LSRS Productivity layer reference",{"title":274,"searchDepth":275,"depth":275,"links":2830},[2831,2832,2833,2834,2835,2836,2837],{"id":2524,"depth":275,"text":2525},{"id":2601,"depth":275,"text":2602},{"id":2702,"depth":275,"text":2703},{"id":2733,"depth":275,"text":2734},{"id":2771,"depth":275,"text":2772},{"id":2794,"depth":275,"text":2795},{"id":238,"depth":275,"text":239},"2026-05-22","The Land Suitability Rating System (LSRS) is a national soil and climate suitability index used by AAFC. Here's what the 1-7 class means, what it doesn't, and how to read it in context.",{},{"title":2507,"description":2839},"blog\u002Flsrs-explained-what-the-score-tells-you",[1460,2844,2503,541,2779],"Soil","uuwvnPIIaBDam_CgKcWCTEIo_Bxa0QrdHaYhNZag8oM",{"id":2847,"title":2848,"author":7,"body":2849,"category":283,"cover":851,"date":3033,"description":3034,"extension":287,"meta":3035,"navigation":289,"path":254,"seo":3036,"stem":3037,"tags":3038,"__hash__":3040},"blog\u002Fblog\u002Fintroducing-ag-bundle.md","Introducing the Agriculture Bundle - Parcel Reports, LSRS, AAFC Crop History, and a Territory Tool",{"type":9,"value":2850,"toc":3024},[2851,2854,2860,2864,2867,2870,2874,2882,2888,2894,2900,2904,2907,2911,2953,2957,2970,2974,3000,3002],[12,2852,2853],{},"A central Alberta crop farmer sits down in late May to verify her SCIC seeded acreage report. Twelve insured quarter sections, three new leases this year, two she's still deciding on. She needs to confirm each description, see what's been grown on the new leases over the last five years, and check soil productivity before signing the final two.",[12,2855,2856,2857,2859],{},"Five years ago that took a day across AFSC documents, AAFC's published crop inventory rasters, the AGRASID viewer, and Google Maps. Township Canada's new ",[19,2858,298],{}," does it in fifteen minutes from a single workspace.",[24,2861,2863],{"id":2862},"a-single-add-on","A single add-on",[12,2865,2866],{},"The Agriculture Bundle is one $50 CAD\u002Fmonth add-on that stacks on Pro ($20) or Business ($40). Subscribers get unlimited parcel reports with PDF export, the full LSRS productivity overlay on the map (Alberta v1), the full AAFC crop history overlay (Alberta and Saskatchewan), treaty \u002F Indigenous consultation hazard flags, and the Territory & Prospecting polygon tool with CSV export pre-mapped for Salesforce and HubSpot. The Land Values panel ships when the underlying free-data path research completes.",[12,2868,2869],{},"One SKU for working farmers verifying SCIC and AFSC paperwork, crop insurance adjusters dealing with claim events at scale, farmland investors screening acquisition pipelines, and ag retailers and grain companies mapping prospecting territories.",[24,2871,2873],{"id":2872},"the-features-inside-the-bundle","The features inside the bundle",[12,2875,2876,2881],{},[19,2877,2878,2879,60],{},"One-click parcel report at ",[65,2880,1802],{}," For any DLS quarter section: legal description, GPS, area, LSRS productivity (0-100), 5-year crop rotation, dominant crop, Shannon diversity, treaty overlap. Server-rendered for indexability + Open Graph previews for sharing. Anonymous and Starter users get 5 reports\u002Fmonth; Agriculture Bundle subscribers are unlimited.",[12,2883,2884,2887],{},[19,2885,2886],{},"LSRS productivity overlay."," Spring-cereal suitability score per Alberta quarter section, sourced from AGRASID 4.1. Colour-coded map ramp from class 1 (Excellent, 90-100) to class 7 (Unsuitable, 0-14). Saskatchewan coverage is in flight via a compute pipeline (AGRASID + SKSIS + climate + DEM) since national AAFC LSRS doesn't exist for SK.",[12,2889,2890,2893],{},[19,2891,2892],{},"AAFC Annual Crop Inventory."," Five-year rolling window of dominant crop, rotation, and Shannon diversity per 1km cell. Alberta and Saskatchewan coverage. Same colour table AAFC publishes, so the visual matches what producers already see on the AAFC viewer.",[12,2895,2896,2899],{},[19,2897,2898],{},"Territory & Prospecting tool."," Draw a polygon. Get every parcel inside, joined to LSRS and AAFC dominant crop, with summary stats (parcel count, total acres, dominant crop mix, weighted-average LSRS) and a CSV export with Salesforce \u002F HubSpot column mapping. Covers the territory-mapping workflow that ag retailers and grain companies do today in standalone GIS.",[24,2901,2903],{"id":2902},"where-the-bundle-model-lands","Where the bundle model lands",[12,2905,2906],{},"One simple SKU instead of a multi-tier hierarchy. Anonymous and Starter users get a working free taste (5 parcel reports\u002Fmonth, soft paywall on overage). Agriculture Bundle subscribers get the full set - overlays, unlimited reports, the polygon tool, exports. The pricing is one decision, not three.",[24,2908,2910],{"id":2909},"who-this-is-for","Who this is for",[241,2912,2913,2923,2933,2943],{},[244,2914,2915,2918,2919,60],{},[19,2916,2917],{},"Working farmers"," verifying SCIC and AFSC paperwork, evaluating new leases, route-planning field scouting days. See ",[45,2920,2922],{"href":2921},"\u002Ffor\u002Ffarmers","Township Canada for Farmers",[244,2924,2925,2928,2929,60],{},[19,2926,2927],{},"Farmland investors"," screening acquisition pipelines, reconciling titles, polygon-scoping portfolio additions. See ",[45,2930,2932],{"href":2931},"\u002Ffor\u002Finvestors","Township Canada for Farmland Investors",[244,2934,2935,2938,2939,60],{},[19,2936,2937],{},"Ag retailers and grain companies"," mapping territories, prospecting customers, routing field agronomists. See ",[45,2940,2942],{"href":2941},"\u002Ffor\u002Fretailers","Township Canada for Ag Retailers",[244,2944,2945,2948,2949,60],{},[19,2946,2947],{},"Crop insurance adjusters and AFSC\u002FSCIC agents"," processing claim events at scale. See ",[45,2950,2952],{"href":2951},"\u002Ffor\u002Finsurance-adjusters","Township Canada for Insurance Adjusters",[24,2954,2956],{"id":2955},"how-to-subscribe","How to subscribe",[12,2958,2959,2960,2965,2966,2969],{},"The Agriculture Bundle is a $50\u002Fmo add-on that stacks on the standard Pro ($20) or Business ($40) plan. Add it from ",[45,2961,2962],{"href":210},[65,2963,2964],{},"\u002Fpricing"," or from the account screen at ",[65,2967,2968],{},"\u002Fapp\u002Faccount","; remove it any time via the Stripe Customer Portal. The add-on bills alongside the base plan.",[24,2971,2973],{"id":2972},"whats-still-roadmapped","What's still roadmapped",[241,2975,2976,2982,2988,2994],{},[244,2977,2978,2981],{},[19,2979,2980],{},"Land Portfolio Manager"," - owned\u002Fleased\u002Fprospect parcel tracking with lease renewal alerts. Specced; ships post-launch.",[244,2983,2984,2987],{},[19,2985,2986],{},"Land Values panel"," - regional FCC aggregates per RM\u002Fdistrict. Pending source-rights research.",[244,2989,2990,2993],{},[19,2991,2992],{},"Saskatchewan LSRS coverage"," - compute pipeline in flight.",[244,2995,2996,2999],{},[19,2997,2998],{},"Operator name inference in Territory CSV"," - pending legal sign-off on inference methodology.",[24,3001,239],{"id":238},[241,3003,3004,3009,3015,3020],{},[244,3005,3006],{},[45,3007,3008],{"href":792},"One-Click Parcel Report explained",[244,3010,3011],{},[45,3012,3014],{"href":3013},"\u002Fblog\u002Flaunching-territory-prospecting","Territory & Prospecting Tool explained",[244,3016,3017],{},[45,3018,3019],{"href":2457},"LSRS Soil Productivity Score",[244,3021,3022],{},[45,3023,2468],{"href":2467},{"title":274,"searchDepth":275,"depth":275,"links":3025},[3026,3027,3028,3029,3030,3031,3032],{"id":2862,"depth":275,"text":2863},{"id":2872,"depth":275,"text":2873},{"id":2902,"depth":275,"text":2903},{"id":2909,"depth":275,"text":2910},{"id":2955,"depth":275,"text":2956},{"id":2972,"depth":275,"text":2973},{"id":238,"depth":275,"text":239},"2026-05-21","A single $50\u002Fmo add-on for Canadian agriculture - unlimited parcel reports, full LSRS and AAFC overlays, the Territory & Prospecting polygon tool, and PDF export. Stacks on Pro or Business.",{},{"title":2848,"description":3034},"blog\u002Fintroducing-ag-bundle",[298,1460,3039,301,541],"AAFC Crop Inventory","Ovc2WwZ5r4h_0aM4WTCSXcJyaJB7pEy-ELIXpBBJVz4",{"id":3042,"title":3043,"author":7,"body":3044,"category":283,"cover":851,"date":3033,"description":3228,"extension":287,"meta":3229,"navigation":289,"path":248,"seo":3230,"stem":3231,"tags":3232,"__hash__":3235},"blog\u002Fblog\u002Fintroducing-energy-bundle.md","Introducing the Energy Bundle - AER Wells with Lifecycle, Pipelines, and Facilities on the DLS Grid",{"type":9,"value":3045,"toc":3219},[3046,3053,3056,3062,3066,3072,3104,3107,3113,3117,3120,3124,3127,3129,3160,3162,3173,3175,3189,3191],[117,3047,3048],{},[12,3049,3050,3052],{},[19,3051,1190],{}," Crown mineral tenure (metallic, coal, ammonite) now ships as a dedicated map layer and in the parcel report alongside PNG dispositions.",[12,3054,3055],{},"A pipeline integrity analyst in Calgary opens five tools to plan a single inspection campaign: the AER GeoView portal for licensed pipeline segments, the AER ST37 directives portal for the wells the line connects, the Orphan Well Association inventory for closure-funded sites, the Petrinex facility lookup for batteries and gas plants, and an internal GIS to overlay treaty geography. Each tool returns part of the picture; the operator stitches the rest manually.",[12,3057,3058,3059,3061],{},"Township Canada's new ",[19,3060,297],{}," puts all of that on one map, layered against the DLS grid that every legal land description in Alberta already references.",[24,3063,3065],{"id":3064},"whats-in-the-bundle","What's in the bundle",[12,3067,3068,3069,3071],{},"The Energy Bundle is a ",[19,3070,1362],{}," add-on (stacks on Pro or Business) that unlocks the Alberta energy data stack on top of the standard Township Canada feature set:",[241,3073,3074,3080,3086,3092,3098],{},[244,3075,3076,3079],{},[19,3077,3078],{},"AER Wells with full lifecycle"," - Active, Suspended, Abandoned, Reclaimed, plus the orphan flag (where the Orphan Well Association is funding closure rather than the original licensee).",[244,3081,3082,3085],{},[19,3083,3084],{},"AER Pipelines"," - every licensed pipeline segment, rendered as a line layer with mid-point labels. Tile coalescing handles the southern-Alberta density.",[244,3087,3088,3091],{},[19,3089,3090],{},"AER Facilities (ST102)"," - collapsed from 40+ Petrinex sub-codes into eight customer-facing buckets: battery, gas plant, compressor, disposal, custom treating, terminal, water source, other.",[244,3093,3094,3097],{},[19,3095,3096],{},"Operator BA snapshot"," - per-operator counts (total \u002F active \u002F suspended \u002F abandoned \u002F orphan \u002F reclamation-certified), surfaced on the operator view of every parcel report. Programmatic API access is on our roadmap.",[244,3099,3100,3103],{},[19,3101,3102],{},"Crown tenure (PNG + mineral)"," - petroleum and natural gas dispositions plus metallic, coal, and ammonite mineral agreements on the DLS grid, with expiry alerts and map presets.",[12,3105,3106],{},"Plus the CCS \u002F pore space tenure layers that shipped earlier - pore space rights, project boundaries, injection wells, geothermal tenure - are part of the Energy Bundle entitlement.",[12,3108,3109,3110,60],{},"Treaty Boundaries (Treaties 4, 6, 7, 8, and 10) render as polygons at low zoom and surface as a flag on every parcel report. That flag is free at every tier, not gated behind the bundle - see ",[45,3111,3112],{"href":2172},"why we shipped Treaty Boundaries the way we did",[24,3114,3116],{"id":3115},"why-bundle-these-together","Why bundle these together",[12,3118,3119],{},"The layers are tied at the data level. A reactivated well needs a tie-in pipeline, which needs a destination facility. An operator evaluating an acquisition target needs the per-BA rollup across all of them. A pipeline integrity team prioritizing inspection needs the lines geometry, the connected wells, and the surrounding facilities in a single view. Splitting the layers across separate products would force operators back into the cross-portal workflow the bundle exists to replace.",[24,3121,3123],{"id":3122},"pricing-math","Pricing math",[12,3125,3126],{},"The Energy Bundle is $50 CAD\u002Fmonth and stacks on your existing plan - $70\u002Fmonth total on Pro ($20), or $90\u002Fmonth on Business ($40). For comparison: standalone AER tools that come closest to this scope (geoSCOUT, OilTrails, Petrinex enterprise APIs) sit at five-figure annual contracts. Township Canada's pricing reflects what an individual analyst or a small team can justify on a corporate card.",[24,3128,2910],{"id":2909},[241,3130,3131,3140,3148,3154],{},[244,3132,3133,3136,3137,60],{},[19,3134,3135],{},"Oil and gas operators"," planning new wells, reactivations, or tie-ins. See ",[45,3138,3139],{"href":1948},"Township Canada for Oil and Gas",[244,3141,3142,3145,3146,60],{},[19,3143,3144],{},"CCS and geothermal developers"," scoping pore space tenure submissions. See ",[45,3147,2155],{"href":2154},[244,3149,3150,3153],{},[19,3151,3152],{},"Pipeline integrity, closure obligation, and surface-rights teams"," who need lifecycle status across the AER inventory.",[244,3155,3156,3159],{},[19,3157,3158],{},"M&A diligence teams"," evaluating operator portfolios via the BA snapshot.",[24,3161,2956],{"id":2955},[12,3163,3164,3165,3167,3168,3172],{},"The \"Add Energy Bundle\" card appears on ",[65,3166,2968],{}," (and on ",[45,3169,3170],{"href":210},[65,3171,2964],{},") for any Pro or Business customer. One click opens Stripe Checkout for the $50\u002Fmonth add-on, and the new layers unlock right away - no re-login.",[24,3174,2973],{"id":2972},[241,3176,3177,3183],{},[244,3178,3179,3182],{},[19,3180,3181],{},"Indigenous consultation overlay (beyond treaty boundaries)"," - reserve lands and provincial consultation databases, to complement the treaty flag.",[244,3184,3185,3188],{},[19,3186,3187],{},"SK and BC equivalents"," - the underlying datasets exist; coverage follows once the Alberta experience proves out.",[24,3190,239],{"id":238},[241,3192,3193,3197,3203,3209,3214],{},[244,3194,3195],{},[45,3196,1931],{"href":1930},[244,3198,3199],{},[45,3200,3202],{"href":3201},"\u002Flearn\u002Fhow-to\u002Faer-pipelines-map","AER Pipelines Map",[244,3204,3205],{},[45,3206,3208],{"href":3207},"\u002Flearn\u002Fhow-to\u002Faer-facilities-eight-categories","AER Facilities - 8 Categories",[244,3210,3211],{},[45,3212,3213],{"href":2145},"Treaty Boundaries on the DLS Grid",[244,3215,3216],{},[45,3217,3218],{"href":1936},"Orphan Well Due Diligence",{"title":274,"searchDepth":275,"depth":275,"links":3220},[3221,3222,3223,3224,3225,3226,3227],{"id":3064,"depth":275,"text":3065},{"id":3115,"depth":275,"text":3116},{"id":3122,"depth":275,"text":3123},{"id":2909,"depth":275,"text":2910},{"id":2955,"depth":275,"text":2956},{"id":2972,"depth":275,"text":2973},{"id":238,"depth":275,"text":239},"A new $50\u002Fmo add-on (stacks on Pro or Business) that puts the Alberta energy data stack on one map: AER wells with orphan\u002Fabandoned flags, the AER pipeline network, and 8-category facilities.",{},{"title":3043,"description":3228},"blog\u002Fintroducing-energy-bundle",[297,3233,3234,301,300],"AER Wells","Pipelines","pd4JC1YjqA9MuBN6rV3vJmWHaOcOXiwRe8abl9pg8z0",{"id":3237,"title":3238,"author":7,"body":3239,"category":283,"cover":851,"date":3033,"description":3461,"extension":287,"meta":3462,"navigation":289,"path":3463,"seo":3464,"stem":3465,"tags":3466,"__hash__":3468},"blog\u002Fblog\u002Flaunching-parcel-report.md","Launching `\u002Fapp\u002Fparcel\u002F[lld]` - A One-Click Report for Any Canadian Quarter Section",{"type":9,"value":3240,"toc":3452},[3241,3248,3255,3259,3262,3299,3303,3306,3309,3313,3316,3334,3337,3341,3347,3353,3359,3370,3376,3380,3405,3409,3424,3430,3432],[12,3242,3243,3244,3247],{},"Drop any DLS legal land description into the URL - ",[65,3245,3246],{},"townshipcanada.com\u002Fapp\u002Fparcel\u002FSE-14-29-21-W2"," - and get a complete report on that quarter section. Server-rendered for sharing and indexability, joined to every shipped data layer, with a soft paywall on the free tier that surfaces an upgrade CTA without blocking crawlers.",[12,3249,3250,3251,3254],{},"This is the ",[19,3252,3253],{},"One-Click Parcel Report"," - the first tier-defining Ag Bundle feature and the SEO acquisition wedge for the whole Ag product line.",[24,3256,3258],{"id":3257},"what-the-report-returns","What the report returns",[12,3260,3261],{},"For any quarter section in Western Canada:",[241,3263,3264,3270,3276,3282,3288,3293],{},[244,3265,3266,3269],{},[19,3267,3268],{},"Legal description, normalized"," - DLS notation, GPS coordinates, area in acres, township \u002F range \u002F meridian",[244,3271,3272,3275],{},[19,3273,3274],{},"LSRS soil productivity"," - 0-100 score with class label, sourced from AGRASID 4.1 (Alberta v1; Saskatchewan in flight)",[244,3277,3278,3281],{},[19,3279,3280],{},"5-year AAFC crop history"," - dominant crop across the window, year-by-year rotation array, Shannon diversity index (Alberta and Saskatchewan)",[244,3283,3284,3287],{},[19,3285,3286],{},"Indigenous consultation hazard"," - flag if the parcel sits inside Treaty 4, 6, 7, 8, or 10 boundaries",[244,3289,3290,3292],{},[19,3291,738],{}," - Agriculture Bundle subscribers (button shipped, generator next)",[244,3294,3295,3298],{},[19,3296,3297],{},"Save to portfolio"," - Agriculture Bundle subscribers (with the Land Portfolio Manager when that ships)",[24,3300,3302],{"id":3301},"the-free-tier-model","The free-tier model",[12,3304,3305],{},"Five reports per calendar month per signed-in user or per hashed-and-salted IP for anonymous visitors. Over quota: the full report still renders (so search engines see complete content), with a soft paywall card at the top routing to upgrade. Rapid refreshes within one minute don't double-count.",[12,3307,3308],{},"The 5\u002Fmonth cap is intentional - enough for the occasional verification or a parcel link someone sent you, not enough for the kind of portfolio-scale workflow that justifies the Agriculture Bundle ($50\u002Fmo, stacks on Pro or Business).",[24,3310,3312],{"id":3311},"why-server-rendered-matters","Why server-rendered matters",[12,3314,3315],{},"The report URL is built to be the marketing surface, not just an in-app tool. Every page has:",[241,3317,3318,3321,3328,3331],{},[244,3319,3320],{},"Full Open Graph meta tags with auto-generated descriptions from the report data",[244,3322,3323,3324,3327],{},"JSON-LD ",[65,3325,3326],{},"Place"," schema with coordinates and additional properties",[244,3329,3330],{},"Canonical URL set to the parcel URL itself",[244,3332,3333],{},"A canonical slug format that's case-insensitive and whitespace-tolerant",[12,3335,3336],{},"A planned phased sitemap rollout will submit ~100K parcel URLs to Google over three phases - 10K, 60K, 120K. Once indexed, search queries like \"NE 14-32-21 W3 acres\" should resolve to the parcel report at the top of the search results.",[24,3338,3340],{"id":3339},"use-cases-the-report-enables","Use cases the report enables",[12,3342,3343,3346],{},[19,3344,3345],{},"Farmer checking a new lease."," Two minutes of map work before signing - soil productivity, recent rotation, treaty exposure.",[12,3348,3349,3352],{},[19,3350,3351],{},"Investor pre-screening a deal sheet."," Pull reports on the top quarters in a 60-parcel portfolio. PDF export for the diligence binder.",[12,3354,3355,3358],{},[19,3356,3357],{},"Crop insurance adjuster onboarding."," Send the parcel link to a junior adjuster as part of the claim brief.",[12,3360,3361,3364,3365,3369],{},[19,3362,3363],{},"Sharing a parcel link"," to a buyer, tenant, or counterparty. The Open Graph preview shows the area, soil rating, and dominant crop before they click. See ",[45,3366,3368],{"href":3367},"\u002Flearn\u002Fhow-to\u002Fshare-parcel-link","Share a Parcel Link"," for the full pattern.",[12,3371,3372,3375],{},[19,3373,3374],{},"Carbon project developers"," evaluating Conservation Cropping protocol baselines - the AAFC rotation history is exactly the data the TIER protocol requires.",[24,3377,3379],{"id":3378},"whats-not-in-the-report-yet","What's NOT in the report yet",[241,3381,3382,3388,3394,3400],{},[244,3383,3384,3387],{},[19,3385,3386],{},"PDF generator"," - button visible, generation coming",[244,3389,3390,3393],{},[19,3391,3392],{},"Save-to-portfolio"," - UI stub; the Land Portfolio Manager ships next",[244,3395,3396,3399],{},[19,3397,3398],{},"Ownership info"," - pending ISC Map Search redistribution rights confirmation",[244,3401,3402,3404],{},[19,3403,2986],{}," (Investor only) - pending free-data path research",[24,3406,3408],{"id":3407},"how-to-use-it-now","How to use it now",[12,3410,3411,3412,68,3415,68,3419,3423],{},"Try it: ",[45,3413,3414],{"href":2193},"SE-14-29-21-W2",[45,3416,3418],{"href":3417},"\u002Fapp\u002Fparcel\u002FNW-22-44-9-W5","NW-22-44-9-W5",[45,3420,3422],{"href":3421},"\u002Fapp\u002Fparcel\u002FNE-31-40-26-W3","NE-31-40-26-W3",". Any DLS or NTS legal land description resolves to its report.",[12,3425,3426,3427,3429],{},"If you hit the 5-report monthly cap, the ",[45,3428,298],{"href":2921}," at $50\u002Fmo (stacks on Pro or Business) lifts the limit and unlocks the map overlays.",[24,3431,239],{"id":238},[241,3433,3434,3439,3443,3447],{},[244,3435,3436],{},[45,3437,3438],{"href":792},"One-Click Parcel Report - how it works",[244,3440,3441],{},[45,3442,3368],{"href":3367},[244,3444,3445],{},[45,3446,2922],{"href":2921},[244,3448,3449],{},[45,3450,3451],{"href":254},"Introducing the Ag Bundle",{"title":274,"searchDepth":275,"depth":275,"links":3453},[3454,3455,3456,3457,3458,3459,3460],{"id":3257,"depth":275,"text":3258},{"id":3301,"depth":275,"text":3302},{"id":3311,"depth":275,"text":3312},{"id":3339,"depth":275,"text":3340},{"id":3378,"depth":275,"text":3379},{"id":3407,"depth":275,"text":3408},{"id":238,"depth":275,"text":239},"Township Canada's new parcel report bundles LSRS soil productivity, 5-year crop history, area, and Indigenous consultation flags into a single shareable URL - indexable for SEO and built for sharing.",{},"\u002Fblog\u002Flaunching-parcel-report",{"title":3238,"description":3461},"blog\u002Flaunching-parcel-report",[859,301,2503,3467],"SEO","VK_nFDav2Enc83XCJ9uzJNiEUvqmQECu0QDs0bdw4lA",{"id":3470,"title":3471,"author":7,"body":3472,"category":283,"cover":851,"date":3033,"description":3673,"extension":287,"meta":3674,"navigation":289,"path":3013,"seo":3675,"stem":3676,"tags":3677,"__hash__":3681},"blog\u002Fblog\u002Flaunching-territory-prospecting.md","Launching Territory & Prospecting - Polygon Search + CSV Export for Ag Sales Teams",{"type":9,"value":3473,"toc":3664},[3474,3477,3488,3492,3498,3508,3514,3528,3538,3542,3548,3555,3559,3565,3571,3579,3585,3589,3595,3601,3605,3623,3625,3639,3641],[12,3475,3476],{},"A territory manager at a crop input retailer covers 200 km by 150 km - six RMs around the dealership. The customer book lives in Salesforce with legal land descriptions in the address field. Without a map, the territory manager works from memory: which growers are clustered, which corridors are under-served, which parcels are growing the inputs the retailer sells.",[12,3478,3479,3480,3483,3484,3487],{},"The new ",[19,3481,3482],{},"Territory & Prospecting"," tool at ",[65,3485,3486],{},"\u002Fapp\u002Fterritory"," lets the territory manager draw a polygon over the territory, get every quarter section inside it with dominant crop and LSRS productivity, and export the list to CSV pre-mapped for Salesforce \u002F HubSpot import. Five minutes of work; replaces an afternoon of standalone GIS.",[24,3489,3491],{"id":3490},"what-ships","What ships",[12,3493,3494,3495,3497],{},"A workspace at ",[65,3496,3486],{}," with:",[12,3499,3500,3503,3504,3507],{},[19,3501,3502],{},"Polygon drawing."," Click vertices, double-click to close. The drawn polygon snaps cleanly to the zoom level you're at - province scale or RM scale. Uses the same ",[65,3505,3506],{},"terra-draw"," library as the existing measurement tool, so the UX is consistent.",[12,3509,3510,3513],{},[19,3511,3512],{},"Saved territories sidebar."," Name a drawn polygon (e.g., \"Central Alberta - Lacombe corridor\"), save it, come back to it. Each Agriculture Bundle account can save up to 25 named territories.",[12,3515,3516,3519,3520,3523,3524,3527],{},[19,3517,3518],{},"Parcel list with joined data."," Clicking a saved territory runs the spatial query: every parcel centroid inside the polygon, joined to the ",[45,3521,3522],{"href":2457},"LSRS productivity"," layer (AB) and the ",[45,3525,3526],{"href":2467},"AAFC crop summary"," layer (AB + SK). Returns legal land description, coordinates, area in acres, LSRS score, dominant crop, plus summary stats: parcel count, total acres, dominant-crop breakdown by % area, weighted-average LSRS productivity.",[12,3529,3530,3533,3534,60],{},[19,3531,3532],{},"CSV export with CRM column mapping."," One click downloads a CSV with column headers pre-mapped for Salesforce Account \u002F Lead import and HubSpot Lead \u002F Contact \u002F Custom Object import. RFC-4180 CRLF row separators, properly escaped commas \u002F quotes \u002F newlines. Drops in without remapping. See ",[45,3535,3537],{"href":3536},"\u002Flearn\u002Fhow-to\u002Fag-crm-import-from-territory","Import an Ag Territory into Salesforce or HubSpot",[24,3539,3541],{"id":3540},"tier-agriculture-bundle","Tier - Agriculture Bundle",[12,3543,3544,3545,3547],{},"The Territory tool is included with the ",[19,3546,298],{}," ($50 CAD\u002Fmonth, stacks on Pro or Business). It's the entry point to polygon-scale workflows alongside unlimited parcel reports, PDF export, and the full map overlays.",[12,3549,3550,3551,3554],{},"Server-side gating: every endpoint goes through ",[65,3552,3553],{},"requireAgAddon(event)",". Users without the bundle hit the page and see an upgrade gate that routes to \u002Fpricing.",[24,3556,3558],{"id":3557},"use-cases","Use cases",[12,3560,3561,3564],{},[19,3562,3563],{},"Crop input retailer territory mapping."," Draw the dealership coverage area. Filter the parcel list to canola-dominant + LSRS class 1-2. That's the prospecting universe - already cropping the input you sell, on productive ground. Export to CSV, drop into Salesforce.",[12,3566,3567,3570],{},[19,3568,3569],{},"Grain company catchment."," Draw a 50km radius around an elevator. Get every quarter section inside, ranked by total acres and dominant crop. Lower-LSRS rotation-cycling growers vs. higher-LSRS continuous-canola operators have different delivery profiles - useful for grower outreach prioritization.",[12,3572,3573,3576,3577,60],{},[19,3574,3575],{},"Farmland investor portfolio screening."," Draw the geographic area you're shopping. Summary stats give a productivity-distribution read; per-parcel detail feeds the individual diligence at ",[65,3578,1802],{},[12,3580,3581,3584],{},[19,3582,3583],{},"Carbon project boundary scoping."," Draw the candidate project boundary. The dominant_crop column tells you the existing rotation; the LSRS column tells you the productivity baseline. Both inputs to the TIER Conservation Cropping protocol.",[24,3586,3588],{"id":3587},"whats-not-in-the-csv-yet","What's not in the CSV (yet)",[12,3590,368,3591,3594],{},[65,3592,3593],{},"account_name"," column is left blank by design. Operator-name inference from AAFC crop continuity and provincial registry data is pending legal sign-off on the inference methodology (OQ-6 in the Ag Bundle PRD). The column structure is ready for it; the data isn't surfaced until legal clears the methodology.",[12,3596,3597,3598,3600],{},"For now, the post-import workflow is: bulk-fill ",[65,3599,3593],{}," with placeholder values, then cross-reference via ISC Map Search (Saskatchewan), SPIN (Alberta), or LTSA (British Columbia) for the actual owner \u002F operator. The CSV gives you everything except the operator name; the operator-name diligence is one extra step.",[24,3602,3604],{"id":3603},"caps-and-limits","Caps and limits",[241,3606,3607,3613],{},[244,3608,3609,3612],{},[19,3610,3611],{},"Saved territories:"," 25 per Agriculture Bundle account",[244,3614,3615,3618,3619,3622],{},[19,3616,3617],{},"Parcels per query:"," 5000. A multi-RM polygon that exceeds the cap returns ",[65,3620,3621],{},"truncated: true"," and the UI surfaces a \"split the territory\" suggestion.",[24,3624,786],{"id":785},[12,3626,3627,3628,3630,3631,3635,3636,60],{},"Agriculture Bundle subscribers can open the workspace directly at ",[45,3629,3486],{"href":3486},". Anyone else can see the ",[45,3632,3634],{"href":3633},"\u002Flearn\u002Fhow-to\u002Fterritory-prospecting-tool","feature page"," or read the ",[45,3637,3638],{"href":2941},"retailer use case",[24,3640,239],{"id":238},[241,3642,3643,3648,3652,3656,3660],{},[244,3644,3645],{},[45,3646,3647],{"href":3633},"Territory & Prospecting Tool - how it works",[244,3649,3650],{},[45,3651,3537],{"href":3536},[244,3653,3654],{},[45,3655,2942],{"href":2941},[244,3657,3658],{},[45,3659,2932],{"href":2931},[244,3661,3662],{},[45,3663,3451],{"href":254},{"title":274,"searchDepth":275,"depth":275,"links":3665},[3666,3667,3668,3669,3670,3671,3672],{"id":3490,"depth":275,"text":3491},{"id":3540,"depth":275,"text":3541},{"id":3557,"depth":275,"text":3558},{"id":3587,"depth":275,"text":3588},{"id":3603,"depth":275,"text":3604},{"id":785,"depth":275,"text":786},{"id":238,"depth":275,"text":239},"Draw a polygon, get every quarter section inside with crop history and soil productivity, export to CSV with Salesforce \u002F HubSpot column mapping. Agriculture Bundle required.",{},{"title":3471,"description":3673},"blog\u002Flaunching-territory-prospecting",[3678,301,2503,3679,3680],"Territory Tool","Ag Retailers","Investors","utlT5ixheYFz8k5ErsUVw31Cxnmqo62RdhUei2Qc8yk",{"id":3683,"title":3684,"author":7,"body":3685,"category":4024,"cover":851,"date":4025,"description":4026,"extension":287,"meta":4027,"navigation":289,"path":271,"seo":4028,"stem":4029,"tags":4030,"__hash__":4033},"blog\u002Fblog\u002Fsaskatchewan-quarter-section-guide-grain-farmers-scic-filers.md","Saskatchewan Quarter Section Guide: A Practical Reference for Grain Farmers and SCIC Filers",{"type":9,"value":3686,"toc":4015},[3687,3690,3693,3697,3704,3707,3738,3741,3745,3748,3753,3756,3788,3791,3794,3814,3821,3825,3828,3835,3842,3845,3865,3868,3871,3875,3882,3891,3897,3900,3905,3919,3923,3926,3932,3938,3941,3945,3953,3960,3968,3972,3975,4001,4004],[12,3688,3689],{},"A Saskatchewan grain producer with 18 quarter sections sits down to file her SCIC seeded acreage report in late May. Half the land is owned, half is leased, and three of the leased quarters were just added for the 2026 crop year. The legal descriptions came from the lease paperwork - NW 14-032-21 W3M, SE 22-032-21 W3M, and one description that reads simply \"S 1\u002F2 of 7-033-21 W3M\" with no quarter notation. Section 7 sits in column one of the township, where the DLS grid does something unusual: the west-edge quarters are short by anywhere from a few feet to a few acres. The reported seeded acres won't match the deeded acres, and SCIC will flag the inconsistency unless the producer knows why.",[12,3691,3692],{},"This guide is for the people who deal with Saskatchewan legal land descriptions every spring: grain farmers reporting seeded acres to SCIC, AgriStability filers, agronomists scouting unfamiliar fields, and rural real estate agents writing offers on quarter sections their clients have never walked. The DLS grid that covers Saskatchewan looks straightforward on a map. The descriptions that come off it are not always so tidy.",[24,3694,3696],{"id":3695},"saskatchewan-land-description-basics","Saskatchewan Land Description Basics",[12,3698,3699,3700,3703],{},"Saskatchewan's farmland - roughly 60 million acres of cultivated land plus another 20 million acres of pasture and forage - sits inside the ",[45,3701,1484],{"href":3702},"\u002Flearn\u002Fsystems\u002Fdls",". The DLS divides the province into a grid of townships, sections, and quarter sections, each identified by a legal land description.",[12,3705,3706],{},"A few key terms come up on every SCIC form, AFSC equivalent in Alberta, and lease agreement:",[241,3708,3709,3714,3720,3726,3732],{},[244,3710,3711,3713],{},[19,3712,725],{}," - 160 acres, the standard unit for most field-scale agricultural work in Saskatchewan. Each section contains four quarters: NE, NW, SE, SW.",[244,3715,3716,3719],{},[19,3717,3718],{},"Legal Subdivision (LSD)"," - 40 acres, sixteen per section. LSDs are numbered 1 through 16 starting in the southeast corner. Most grain producers don't work in LSDs day to day; mineral leases and well sites do.",[244,3721,3722,3725],{},[19,3723,3724],{},"Section"," - 640 acres, the building block of a township. There are 36 sections per township, numbered 1 to 36 starting in the southeast and snaking back and forth.",[244,3727,3728,3731],{},[19,3729,3730],{},"Township"," - a 6-by-6 grid of sections, about 36 square miles total. Townships are identified by township number (north-south row) and range number (east-west column from a meridian).",[244,3733,3734,3737],{},[19,3735,3736],{},"Meridian"," - the reference line for ranges. Saskatchewan straddles two: the 2nd Meridian (W2M) in the east, and the 3rd Meridian (W3M) in the west.",[12,3739,3740],{},"SCIC and the federal AgriStability program both use these descriptions as the only identifier for parcels on a producer's policy. The Risk Area code that appears on SCIC contracts groups parcels for premium rating and yield assessment - it doesn't replace the legal land description. Every individual parcel on a contract still needs its DLS notation.",[24,3742,3744],{"id":3743},"reading-a-saskatchewan-legal-land-description","Reading a Saskatchewan Legal Land Description",[12,3746,3747],{},"A standard Saskatchewan description looks like this:",[12,3749,3750],{},[19,3751,3752],{},"NW 14-032-21 W3M",[12,3754,3755],{},"Reading it left to right:",[241,3757,3758,3764,3770,3776,3782],{},[244,3759,3760,3763],{},[19,3761,3762],{},"NW"," - the northwest quarter of the section. A 160-acre parcel in the upper-left corner of Section 14.",[244,3765,3766,3769],{},[19,3767,3768],{},"14"," - Section 14 within the township. Sections are numbered in a serpentine pattern: Section 1 starts in the southeast corner, Section 6 sits in the southwest, Section 7 is directly north of 6, Section 12 is north of Section 1, and so on up to Section 36 in the northeast corner.",[244,3771,3772,3775],{},[19,3773,3774],{},"032"," - Township 32. Township numbers count north from the 49th parallel - Township 1 sits along the Montana border, Township 60 is up near the northern grain belt.",[244,3777,3778,3781],{},[19,3779,3780],{},"21"," - Range 21. Range numbers count west from the meridian. Range 1 sits immediately west of the meridian; Range 21 is about 21 ranges (roughly 126 miles) west.",[244,3783,3784,3787],{},[19,3785,3786],{},"W3M"," - West of the 3rd Meridian. The 3rd Meridian runs north-south at approximately 106° West longitude, just east of Saskatoon.",[12,3789,3790],{},"That description identifies a specific 160-acre parcel west of the 3rd Meridian in west-central Saskatchewan. Change the meridian to W2M and the parcel jumps about 300 kilometres east. Change the range from 21 to 12 and it shifts roughly 50 kilometres. Every digit ties to a specific piece of land - there's no automatic correction for transposed numbers.",[12,3792,3793],{},"You'll occasionally see formats with slight variations:",[241,3795,3796,3802,3808],{},[244,3797,3798,3801],{},[19,3799,3800],{},"NW-14-32-21-W3"," - the same parcel, hyphenated with the meridian abbreviated.",[244,3803,3804,3807],{},[19,3805,3806],{},"NW 1\u002F4 Sec 14 Twp 32 Rge 21 W3M"," - the long-form version used on some deeded titles.",[244,3809,3810,3813],{},[19,3811,3812],{},"N 1\u002F2 14-32-21 W3M"," - references both north quarters (NE and NW) of Section 14, totalling 320 acres.",[12,3815,3816,3817,3820],{},"Township Canada's ",[45,3818,3819],{"href":103},"Saskatchewan converter"," parses all of these formats and resolves them to the same parcel on the map.",[24,3822,3824],{"id":3823},"correction-sections-why-the-west-edge-quarters-arent-160-acres","Correction Sections: Why the West-Edge Quarters Aren't 160 Acres",[12,3826,3827],{},"This is the part that catches producers off guard on their first SCIC filing for newly acquired land.",[12,3829,3830,3831,3834],{},"The DLS grid was laid out using meridian lines that run true north-south. But the earth is curved, so as you move north, the lines of longitude converge - the distance between two meridians shrinks. To keep each township roughly square, the surveyors who laid out the grid in the 1880s introduced ",[19,3832,3833],{},"correction lines"," every fourth township. At each correction line, the grid shifts west to compensate for the convergence.",[12,3836,3837,3838,3841],{},"The mechanical result: the ",[19,3839,3840],{},"west-edge sections"," of every township - sections 6, 7, 18, 19, 30, and 31, which occupy the westernmost column when the township is viewed with north up - absorb the survey adjustment. Their west halves can be short by anywhere from a few feet to about 5%. Quarters along the western edge of a township are routinely 152–158 acres rather than the standard 160.",[12,3843,3844],{},"This matters for SCIC seeded acreage reports:",[241,3846,3847,3853,3859],{},[244,3848,3849,3852],{},[19,3850,3851],{},"Deeded acres vs. seeded acres."," Your title might say \"NW 7-032-21 W3M, 152 acres.\" Your actual field, if it's clean to the legal boundary, will also be roughly 152 acres - not 160.",[244,3854,3855,3858],{},[19,3856,3857],{},"AgriStability allowable acres."," Programs that calculate per-acre payments use the deeded acreage, not a default 160. Filing 160 on a quarter that's actually 152 over-reports the parcel by 5%.",[244,3860,3861,3864],{},[19,3862,3863],{},"Yield calculations."," Bushel-per-acre figures drift if the acreage denominator is wrong. A truck weigh slip divided by 160 looks better than the same slip divided by 152.",[12,3866,3867],{},"The corner cases - pun unavoidable - affect almost every producer with land along the western column of any township in Saskatchewan. The first place to look on a new lease or purchase is whether the section number is 6, 7, 18, 19, 30, or 31. If it is, pull the title and use the deeded acreage, not the assumed 160.",[12,3869,3870],{},"The same survey adjustment applies in Alberta and Manitoba. Saskatchewan's third meridian runs through some of the most productive grain land in the province, which means a lot of farmland sits within a few quarters of a correction-affected section.",[24,3872,3874],{"id":3873},"verifying-quarter-sections-before-filing-with-scic","Verifying Quarter Sections Before Filing With SCIC",[12,3876,3877,3878,3881],{},"SCIC seeded acreage reports are due in ",[19,3879,3880],{},"late June each year"," (June 25 for most crops in recent seasons - confirm the current deadline with SCIC for the year you're filing), and the descriptions on the report must match the parcels actually farmed. A mistyped description doesn't get auto-corrected - if you report NE 14-032-21 W3M when you meant NW 14-032-21 W3M, you've reported a different 160 acres a mile away. SCIC adjusters reconcile against land titles, so the mismatch surfaces eventually, and it usually surfaces during a claim when timing matters most.",[12,3883,3884,3887,3888,3890],{},[19,3885,3886],{},"Single parcel verification."," Enter each quarter section description into the ",[45,3889,104],{"href":103},". The map pin should land on the field you intended. If it doesn't, the description on your form needs to be corrected before submission.",[12,3892,3893],{},[128,3894],{"alt":3895,"src":3896},"Search results showing a Saskatchewan quarter section on the interactive map","\u002Fimages\u002Fguides\u002Fsearch.webp",[12,3898,3899],{},"This takes about 15 seconds per parcel. For a typical SK grain operation with 8–20 insured quarters, the whole list verifies in a few minutes.",[12,3901,3902],{},[19,3903,3904],{},"The descriptions to double-check first:",[241,3906,3907,3910,3913,3916],{},[244,3908,3909],{},"Newly purchased or leased land you haven't physically walked recently",[244,3911,3912],{},"Parcels near the 3rd Meridian - the W2M\u002FW3M boundary runs roughly through Saskatoon and Prince Albert, where farmland on one side of the meridian uses W2M and farmland on the other uses W3M",[244,3914,3915],{},"Sections 6, 7, 18, 19, 30, or 31 - the correction-line quarters where acreage drifts from 160",[244,3917,3918],{},"Anywhere with a transposed-looking number (e.g., 032-21 vs. 023-12 - both are valid descriptions for different parcels)",[24,3920,3922],{"id":3921},"batch-verification-for-larger-operations","Batch Verification for Larger Operations",[12,3924,3925],{},"If you farm or insure dozens of parcels, the one-at-a-time approach stops scaling. SCIC agents reviewing seeded acreage reports across several producers, large grain operations with land spread across multiple municipalities, and farm management companies handling rented land for off-farm owners all hit the same problem.",[12,3927,3816,3928,3931],{},[45,3929,1543],{"href":3930},"\u002Fguides\u002Fbatch-conversion"," accepts a CSV with a column of legal land descriptions and returns GPS coordinates for every row. Upload your list of 40 quarter sections - or 400 - and review the results on a map. If one parcel shows up 80 kilometres from the rest of the operation, you've found a transposition error before the report goes in.",[12,3933,3934],{},[128,3935],{"alt":3936,"src":3937},"Upload a CSV of legal land descriptions and get GPS coordinates back in bulk","\u002Fimages\u002Fguides\u002Fbatch-conversion.webp",[12,3939,3940],{},"Batch conversion is on the Business plan. The output includes GPS coordinates, township and range numbers, meridian, and a flag for any rows that couldn't be parsed - most often because of a typo in the source spreadsheet.",[24,3942,3944],{"id":3943},"google-sheets-workflow-for-scic-filers","Google Sheets Workflow for SCIC Filers",[12,3946,3947,3948,3952],{},"For producers and AFSC\u002FSCIC field staff who keep their seeded acreage lists in a spreadsheet, the ",[45,3949,3951],{"href":3950},"\u002Fblog\u002Fgoogle-sheets-add-on-convert-legal-land-descriptions","Township Canada Google Sheets add-on"," converts descriptions to coordinates without leaving the sheet.",[12,3954,3955,3956,3959],{},"Type ",[65,3957,3958],{},"=TOWNSHIP(\"NW 14-032-21 W3M\")"," in a cell next to any quarter section description and the add-on returns the GPS coordinates for that parcel. Copy the formula down a column of 30 descriptions, and the whole list resolves in seconds. The sidebar batch mode handles up to 200 parcels at once - useful when an SCIC area manager is reviewing seeded acreage across multiple producers in the same Risk Area.",[12,3961,3962,3963,3967],{},"The add-on is free for 10 conversions per month; connect a ",[45,3964,3966],{"href":3965},"\u002Fapi","Township Canada API key"," for unlimited use. The output column drops straight into AgriStability spreadsheets, ArcGIS imports, or whatever downstream tool the operation runs.",[24,3969,3971],{"id":3970},"practical-notes-for-the-2026-seeding-season","Practical Notes for the 2026 Seeding Season",[12,3973,3974],{},"A few things to keep in mind heading into SCIC filings this year:",[241,3976,3977,3983,3989,3995],{},[244,3978,3979,3982],{},[19,3980,3981],{},"The reported description must match the title."," If your land title reads \"NW 1\u002F4 Sec 14 Twp 32 Rge 21 W3M,\" that's the parcel SCIC will reconcile against. Same legal description, just written longer.",[244,3984,3985,3988],{},[19,3986,3987],{},"Half-quarters and odd subdivisions."," Some parcels - especially older homesteads - are filed as \"S 1\u002F2 of NW 14-032-21 W3M\" or include lake\u002Friver frontage adjustments. Use the long-form description on the SCIC report rather than rounding it to a standard quarter.",[244,3990,3991,3994],{},[19,3992,3993],{},"Lease changes mid-season."," If you give up a quarter after the seeded acreage report goes in, you have to file an amendment. The amendment uses the same legal description format.",[244,3996,3997,4000],{},[19,3998,3999],{},"First-year land in a new township."," Pull the title and confirm acreage on every quarter before you assume 160. Correction-affected quarters and historical surveyor adjustments mean about one in twelve Saskatchewan quarters isn't exactly 160 acres.",[12,4002,4003],{},"The Saskatchewan DLS grid was designed for accuracy at scale. Reading the descriptions correctly - and verifying them against a map before they go on a SCIC form - is the difference between a clean filing and a claim that gets held up while the paperwork gets sorted out.",[12,4005,4006,4007,4011,4012,4014],{},"For the underlying grid mechanics, see ",[45,4008,4010],{"href":4009},"\u002Flearn\u002Fhow-to\u002Ftownship-range-meridian-explained","Township, range, and meridian explained",". For day-to-day quarter section lookups, the ",[45,4013,104],{"href":103}," handles all DLS formats used in the province.",{"title":274,"searchDepth":275,"depth":275,"links":4016},[4017,4018,4019,4020,4021,4022,4023],{"id":3695,"depth":275,"text":3696},{"id":3743,"depth":275,"text":3744},{"id":3823,"depth":275,"text":3824},{"id":3873,"depth":275,"text":3874},{"id":3921,"depth":275,"text":3922},{"id":3943,"depth":275,"text":3944},{"id":3970,"depth":275,"text":3971},"guides","2026-05-13","How to read, verify, and convert Saskatchewan quarter section descriptions for SCIC filings and seeding-season fieldwork. Covers DLS basics, correction sections, and batch verification.",{},{"title":3684,"description":4026},"blog\u002Fsaskatchewan-quarter-section-guide-grain-farmers-scic-filers",[541,294,1658,4031,4032],"SCIC","DLS","QHqd4ChcyOms_OJldt0vkyFsVRHz1Y-ROw7iaB9kf70",{"id":4035,"title":4036,"author":7,"body":4037,"category":503,"cover":4283,"date":4284,"description":4285,"extension":287,"meta":4286,"navigation":289,"path":4287,"seo":4288,"stem":4289,"tags":4290,"__hash__":4293},"blog\u002Fblog\u002Freal-estate-legal-land-descriptions.md","How Real Estate Professionals Use Legal Land Descriptions",{"type":9,"value":4038,"toc":4272},[4039,4050,4053,4062,4066,4071,4100,4103,4113,4119,4123,4126,4132,4138,4144,4150,4154,4158,4165,4172,4176,4179,4187,4191,4198,4206,4212,4216,4219,4225,4231,4237,4240,4244,4247,4253,4265],[12,4040,4041,4042,4045,4046,60],{},"A client emails you a title and asks you to list their rural acreage. The property description on the title reads ",[19,4043,4044],{},"NE 14-032-21W4",". No civic address. No street name. Just a legal land description that tells you exactly where this property is - if you know ",[45,4047,4049],{"href":4048},"\u002Fblog\u002Fhow-to-read-legal-land-description-rural-title","how to read it",[12,4051,4052],{},"Your client wants to know where it is on a map, how big it is, and what's nearby. Before you can write a single line of the MLS listing, you need to answer those questions.",[12,4054,4055,4056,4061],{},"This is the daily reality of rural real estate in western Canada. Most acreage and farmland transactions reference a ",[45,4057,4060],{"href":4058,"rel":4059},"https:\u002F\u002Fwww.townshipcanada.com\u002Fhow-to\u002Flegal-land-description-lookup",[220],"legal land description (LLD)"," as the official property identifier. Street addresses don't exist in most agricultural areas. The Dominion Land Survey (DLS) system is how land has been identified in the prairies since the 1880s, and it remains the standard on titles, land transfer documents, and municipal tax records today.",[24,4063,4065],{"id":4064},"what-that-title-description-actually-means","What That Title Description Actually Means",[12,4067,4068,4070],{},[19,4069,4044],{}," breaks down as follows:",[241,4072,4073,4079,4084,4089,4094],{},[244,4074,4075,4078],{},[19,4076,4077],{},"NE"," - Northeast quarter",[244,4080,4081,4083],{},[19,4082,3768],{}," - Section 14",[244,4085,4086,4088],{},[19,4087,3774],{}," - Township 32",[244,4090,4091,4093],{},[19,4092,3780],{}," - Range 21",[244,4095,4096,4099],{},[19,4097,4098],{},"W4"," - West of the 4th Meridian",[12,4101,4102],{},"That's a 160-acre parcel - one quarter section - in the area east of Drumheller, Alberta. The northeast quarter of Section 14 in Township 32, Range 21. Once you know how to read the notation, you can place it on a map. But knowing the notation and having GPS coordinates you can actually use are two different things.",[12,4104,141,4105,4107,4108,4112],{},[19,4106,4044],{}," into ",[45,4109,4111],{"href":1575,"rel":4110},[220],"Township Canada's quarter section finder"," and you get back the centre-point coordinates for that parcel - accurate to the parcel centre, calculated from official survey data. From there, you can confirm the location on satellite imagery, check access roads, identify the nearest highway, and see what adjoining parcels look like.",[12,4114,4115],{},[128,4116],{"alt":4117,"src":4118},"Satellite view of a rural quarter section identified by legal land description","\u002Fimages\u002Fblog\u002Freal-estate-legal-land-descriptions\u002Fquarter-section-satellite.webp",[24,4120,4122],{"id":4121},"how-real-estate-actually-uses-legal-land-descriptions","How Real Estate Actually Uses Legal Land Descriptions",[12,4124,4125],{},"Rural property titles in Alberta, Saskatchewan, and Manitoba use LLDs as the primary identifier. Unlike urban properties with a civic address, a quarter section or acreage parcel is identified by its position in the DLS grid. Here's where that shows up in practice:",[12,4127,4128,4131],{},[19,4129,4130],{},"Land title searches"," - When a buyer's lawyer searches title, the search is based on the LLD. If you transpose a range number or get the meridian wrong, you're searching for the wrong parcel. Accuracy from the start of the transaction matters.",[12,4133,4134,4137],{},[19,4135,4136],{},"MLS listings for rural land"," - A listing for a 320-acre farm needs GPS coordinates so buyers can find it on satellite maps and plan a site visit. Most rural buyers are evaluating multiple properties across large areas; a pin on a map is the first thing they check.",[12,4139,4140,4143],{},[19,4141,4142],{},"Acreage sales"," - A 10-acre residential acreage might be described as a portion of a quarter section. The LLD on the title tells you which quarter section it came from and, with the right tool, where the parcel centre is.",[12,4145,4146,4149],{},[19,4147,4148],{},"Farm portfolio management"," - A land broker managing 40 parcels for an estate sale or a farm portfolio needs to map every title, verify access, and prepare marketing packages. That means converting 40 LLDs to GPS coordinates.",[24,4151,4153],{"id":4152},"three-workflows-real-estate-agents-use","Three Workflows Real Estate Agents Use",[347,4155,4157],{"id":4156},"_1-title-verification-before-the-showing","1. Title Verification Before the Showing",[12,4159,4160,4161,4164],{},"A buyer's agent receives the title from the seller's lawyer: ",[19,4162,4163],{},"NW 22-044-09W5",". They want to confirm they're looking at the right property before driving two hours to view it.",[12,4166,4167,4168,4171],{},"They enter the LLD into Township Canada, get back coordinates at approximately ",[19,4169,4170],{},"53.1042, -115.2834",", and drop those into Google Maps satellite view. The parcel boundary, access road, and relation to the nearest town all check out. If the coordinates had come back in the wrong location - a transposed range number is a common data entry error - they'd catch it before the showing, not during.",[347,4173,4175],{"id":4174},"_2-planning-a-multi-property-showing-day","2. Planning a Multi-Property Showing Day",[12,4177,4178],{},"A buyer is looking at rural acreages and has 5 properties on their shortlist. The listings are spread across two counties, and the agent needs to plan a route that makes geographic sense rather than backtracking across the same roads.",[12,4180,4181,4182,4186],{},"They enter each LLD into Township Canada, get GPS coordinates for all five, and use the ",[45,4183,1549],{"href":4184,"rel":4185},"https:\u002F\u002Fwww.townshipcanada.com\u002Fguides\u002Fdirections",[220]," to find the most efficient showing order. What would have required manual cross-referencing of section maps takes a few minutes. The buyer sees more properties without the day running long.",[347,4188,4190],{"id":4189},"_3-preparing-a-listing-package","3. Preparing a Listing Package",[12,4192,4193,4194,4197],{},"A farmland broker is listing a quarter section: ",[19,4195,4196],{},"SE 07-028-14W4",". Before writing the listing description, they need to confirm the parcel location, identify access roads, note the proximity to grain elevators and highways, and pull satellite imagery showing the field condition.",[12,4199,4200,4201,4205],{},"They convert the LLD to coordinates, view the parcel on the map, and use the ",[45,4202,4204],{"href":421,"rel":4203},[220],"download and export tools"," to get a KML file they can open in Google Earth for screenshots. The listing goes up with accurate GPS coordinates, a satellite image, and a clear description of the access situation - all sourced from a single LLD lookup.",[12,4207,4208],{},[128,4209],{"alt":4210,"src":4211},"Rural listing workflow: converting legal land description to map pin and satellite imagery","\u002Fimages\u002Fblog\u002Freal-estate-legal-land-descriptions\u002Flisting-workflow.webp",[24,4213,4215],{"id":4214},"common-mistakes-worth-avoiding","Common Mistakes Worth Avoiding",[12,4217,4218],{},"The DLS notation looks simple, but a few errors come up repeatedly in real estate contexts:",[12,4220,4221,4224],{},[19,4222,4223],{},"Meridian errors"," - W4 (West of the 4th Meridian) and W5 (West of the 5th) put you in entirely different parts of Alberta. An LLD that should be near Red Deer ends up placed near Rocky Mountain House if the meridian is wrong.",[12,4226,4227,4230],{},[19,4228,4229],{},"Township and range transposition"," - The numbers look similar enough that transposing them is easy to do manually. Township 32, Range 21 and Township 21, Range 32 are not the same place.",[12,4232,4233,4236],{},[19,4234,4235],{},"Section vs. LSD confusion"," - A quarter section (NE, NW, SE, SW) is 160 acres. A Legal Subdivision (LSD 1–16) is 40 acres. Rural properties can be described either way depending on the subdivision history. Township Canada handles both formats.",[12,4238,4239],{},"Running the LLD through a converter before building any transaction documents takes under a minute and catches these errors before they become problems.",[24,4241,4243],{"id":4242},"why-this-matters-more-than-it-used-to","Why This Matters More Than It Used To",[12,4245,4246],{},"Rural property markets in Alberta, Saskatchewan, and Manitoba have seen significant activity over the past few years - farmland values rising, acreage demand from urban buyers, and farm estate transactions becoming more frequent. Agents who are comfortable working with legal land descriptions and know how to quickly convert them to map coordinates have a practical advantage: they spend less time cross-referencing section maps and more time with clients.",[12,4248,4249,4250,4252],{},"It's a basic workflow, but it's one that separates agents who work rural land regularly from those who find it unfamiliar. Understanding that ",[19,4251,4044],{}," is a 160-acre parcel east of Drumheller - and being able to show a buyer exactly where that is on a map in 30 seconds - builds credibility with clients who know the land.",[12,4254,4255,4256,4259,4260,4264],{},"If you're working rural listings or farmland transactions, ",[45,4257,1631],{"href":478,"rel":4258},[220]," handles single LLD lookups at no cost. For agents and brokers managing multiple properties or needing batch conversion and export, ",[45,4261,4263],{"href":488,"rel":4262},[220],"see the plan options"," to find what fits your volume.",[12,4266,4267,4268,60],{},"For a step-by-step guide to going from a legal description on a listing to a shareable map pin, see ",[45,4269,4271],{"href":4270},"\u002Fblog\u002Frural-property-legal-land-description-map","Rural Properties Don't Have Street Addresses - Here's How to Find Them on a Map",{"title":274,"searchDepth":275,"depth":275,"links":4273},[4274,4275,4276,4281,4282],{"id":4064,"depth":275,"text":4065},{"id":4121,"depth":275,"text":4122},{"id":4152,"depth":275,"text":4153,"children":4277},[4278,4279,4280],{"id":4156,"depth":498,"text":4157},{"id":4174,"depth":498,"text":4175},{"id":4189,"depth":498,"text":4190},{"id":4214,"depth":275,"text":4215},{"id":4242,"depth":275,"text":4243},"\u002Fimages\u002Fblog\u002Freal-estate-legal-land-descriptions\u002Fcover.webp","2026-05-12","Title search verification, rural property identification, MLS listing accuracy, and acreage descriptions - how real estate agents and land brokers use Township Canada.",{},"\u002Fblog\u002Freal-estate-legal-land-descriptions",{"title":4036,"description":4285},"blog\u002Freal-estate-legal-land-descriptions",[510,4291,4292],"Real Estate","Land","vATjZn25vkQ7w-ZWMatAzWRW3hlY9CL4ZRNtiP_Ws48",{"id":4295,"title":4296,"author":7,"body":4297,"category":503,"cover":4560,"date":4561,"description":4562,"extension":287,"meta":4563,"navigation":289,"path":4564,"seo":4565,"stem":4566,"tags":4567,"__hash__":4573},"blog\u002Fblog\u002Faer-ccs-pore-space-tenure-quarter-sections.md","AER CCS Pore Space Tenure: How to Identify Quarter Sections in Licensed Tenure Zones",{"type":9,"value":4298,"toc":4553},[4299,4302,4305,4308,4312,4319,4322,4348,4351,4354,4358,4361,4364,4369,4372,4378,4382,4385,4399,4402,4416,4427,4431,4434,4437,4442,4467,4472,4493,4498,4519,4527,4534,4538,4541],[12,4300,4301],{},"The AER's carbon capture and storage tenure evaluation window closes June 30, 2026. If you're assembling a pore space tenure application, one step that takes longer than it should is identifying which DLS quarter sections fall within a licensed AER CCS tenure zone - and translating those boundaries into the land descriptions the AER requires.",[12,4303,4304],{},"The registry defines storage areas by geological formation extent, not property lines. The geological model describes where a CO₂ plume will migrate. Your job is to translate that extent into AER CCS tenure land descriptions: a list of DLS sections and quarter sections that matches the formation boundary, each verified to resolve to the correct location on the ground.",[12,4306,4307],{},"For a project in the Fort Saskatchewan–Heartland industrial corridor, a single injection zone may cover 14 or more quarter sections across three to four DLS sections. Each one needs a verified legal land description before the AER application package is complete.",[24,4309,4311],{"id":4310},"how-pore-space-tenure-areas-are-defined-in-the-dls-grid","How Pore Space Tenure Areas Are Defined in the DLS Grid",[12,4313,4314,4315,4318],{},"Under Alberta's ",[1235,4316,4317],{},"Carbon Sequestration Tenure Regulations",", pore space tenure applications describe the storage formation by its DLS extent. The AER does not accept GPS coordinates or polygon shapefiles as the primary description - the submission requires standard DLS notation, tied to the survey grid.",[12,4320,4321],{},"For a deep saline aquifer project in the Fort Saskatchewan–Heartland area, a pore space tenure block might span:",[241,4323,4324,4330,4336,4342],{},[244,4325,4326,4329],{},[19,4327,4328],{},"Section 22, Township 55, Range 20, West of the 4th Meridian"," - All four quarter sections: NE-22-55-20-W4, NW-22-55-20-W4, SE-22-55-20-W4, SW-22-55-20-W4",[244,4331,4332,4335],{},[19,4333,4334],{},"Section 28, Township 55, Range 20, West of the 4th Meridian"," - All four quarter sections: NE-28-55-20-W4, NW-28-55-20-W4, SE-28-55-20-W4, SW-28-55-20-W4",[244,4337,4338,4341],{},[19,4339,4340],{},"Section 27, Township 55, Range 20, West of the 4th Meridian"," - The two northern quarter sections: NE-27-55-20-W4, NW-27-55-20-W4",[244,4343,4344,4347],{},[19,4345,4346],{},"Section 33, Township 55, Range 20, West of the 4th Meridian"," - Four quarter sections covering the injection formation tail: NE-33-55-20-W4, NW-33-55-20-W4, SE-33-55-20-W4, SW-33-55-20-W4",[12,4349,4350],{},"That's 14 quarter sections - one injection zone, one AER submission, 14 DLS descriptions that each need to be correct.",[12,4352,4353],{},"Above that list sits the surface component: injection wellheads at specific LSDs, monitoring wells, and the pipeline corridor connecting to the industrial emitter. A full application package for a project this size typically carries 35 to 50 individual AER CCS tenure land descriptions across surface and subsurface tenure types.",[24,4355,4357],{"id":4356},"using-the-ccs-tenure-layer-to-map-licensed-zones","Using the CCS Tenure Layer to Map Licensed Zones",[12,4359,4360],{},"Township Canada's CCS Tenure Layer (released April 2026) shows AER-licensed pore space tenure zone boundaries overlaid on the DLS survey grid, with satellite imagery underneath. For anyone preparing an AER CCS tenure application, this eliminates the manual step of cross-referencing the AER pore space registry against a separate DLS viewer.",[12,4362,4363],{},"Toggle the CCS Tenure layer from the map layers panel in the app. Licensed tenure zone boundaries appear on the DLS grid. You can see immediately which quarter sections fall inside a licensed zone, which are adjacent, and which sit outside the licensed area entirely.",[12,4365,4366],{},[128,4367],{"alt":4368,"src":131},"Township Canada interactive map with DLS grid overlay showing survey sections",[12,4370,4371],{},"This is particularly useful when your geological model suggests pore space overlap with an existing licensed tenure - a common scenario in the Heartland corridor where multiple CCS projects are proposed within the same deep saline formation. The layer lets you identify potential conflicts before the application is submitted, not during AER review.",[12,4373,4374,4375,4377],{},"The CCS Tenure Layer is part of the ",[45,4376,297],{"href":210}," - $50\u002Fmo, stacks on Pro or Business.",[24,4379,4381],{"id":4380},"batch-export-geojson-for-aer-shapefile-submissions","Batch Export: GeoJSON for AER Shapefile Submissions",[12,4383,4384],{},"The AER requires a location exhibit as part of every CCS tenure application - a map showing the pore space tenure boundary, injection well sites, and surface infrastructure. Most consultants deliver this as a KML file or shapefile generated from a GIS tool.",[12,4386,368,4387,4391,4392,4396,4397,60],{},[45,4388,4390],{"href":4389},"\u002Fapp\u002Fbatch","Business-plan batch converter"," and the ",[45,4393,4395],{"href":4394},"\u002Fguides\u002Fbatch-api-guide","Batch API"," take a full location list - mixed LSDs, quarter sections, and DLS sections - and return coordinates and GeoJSON in a single request, ready for the AER location exhibit. The CCS pore space tenure boundaries themselves are visible on the map with the ",[45,4398,297],{"href":210},[12,4400,4401],{},"The workflow for building the AER submission package:",[1863,4403,4404,4407,4410,4413],{},[244,4405,4406],{},"Start with your list of sections and quarter sections from the geological model boundary",[244,4408,4409],{},"Upload to the batch converter as a CSV - mixed LSDs, quarter sections, and DLS sections are all supported in the same upload",[244,4411,4412],{},"Export as GeoJSON for AER submission maps, or as KML for the internal verification pass in Google Earth",[244,4414,4415],{},"Use the GeoJSON directly in QGIS or ArcGIS to build the regulatory location exhibit",[12,4417,4418,4419,178,4422,4426],{},"For teams building this into a larger CCS project workflow, the batch converter and Batch API turn a location list into GeoJSON structured for direct use in AER shapefile submissions. See the ",[45,4420,4421],{"href":4394},"Batch API guide",[45,4423,4425],{"href":4424},"\u002Fguides\u002Fdownload-results","download formats reference"," for export format details.",[24,4428,4430],{"id":4429},"location-data-checklist-for-an-aer-ccs-tenure-proposal","Location Data Checklist for an AER CCS Tenure Proposal",[12,4432,4433],{},"The AER's review process checks legal land descriptions against its spatial database. Applications that don't pass this check come back with a location discrepancy notice - and with the June 30 deadline, there's no time to absorb a resubmission cycle.",[12,4435,4436],{},"Before the package goes in, verify each category of AER CCS tenure land description on this list:",[12,4438,4439],{},[19,4440,4441],{},"Pore space tenure sections",[241,4443,4446,4455,4461],{"className":4444},[4445],"contains-task-list",[244,4447,4450,4454],{"className":4448},[4449],"task-list-item",[4451,4452],"input",{"disabled":289,"type":4453},"checkbox"," Each DLS section description resolves to the correct geographic location - convert to GPS and confirm on satellite imagery",[244,4456,4458,4460],{"className":4457},[4449],[4451,4459],{"disabled":289,"type":4453}," Section numbers are valid for the township-range combination (not every section exists near the meridians or the US border)",[244,4462,4464,4466],{"className":4463},[4449],[4451,4465],{"disabled":289,"type":4453}," Meridian is W4, not W5 - these run 250 km apart and are the most common single-character error in AER filings",[12,4468,4469],{},[19,4470,4471],{},"Injection and monitoring well sites",[241,4473,4475,4481,4487],{"className":4474},[4445],[244,4476,4478,4480],{"className":4477},[4449],[4451,4479],{"disabled":289,"type":4453}," Each LSD resolves to the correct 40-acre parcel within the section",[244,4482,4484,4486],{"className":4483},[4449],[4451,4485],{"disabled":289,"type":4453}," The well licence surface location matches the LSD in the Surface Lease Agreement",[244,4488,4490,4492],{"className":4489},[4449],[4451,4491],{"disabled":289,"type":4453}," GPS coordinates for each wellhead land inside the proposed pore space tenure boundary",[12,4494,4495],{},[19,4496,4497],{},"Surface infrastructure",[241,4499,4501,4507,4513],{"className":4500},[4445],[244,4502,4504,4506],{"className":4503},[4449],[4451,4505],{"disabled":289,"type":4453}," Pipeline right-of-way quarter sections are listed in order from source to wellhead",[244,4508,4510,4512],{"className":4509},[4449],[4451,4511],{"disabled":289,"type":4453}," Each crossed quarter section has a valid DLS description",[244,4514,4516,4518],{"className":4515},[4449],[4451,4517],{"disabled":289,"type":4453}," Surface lease LSDs for compression and dehydration facilities match the AER licence descriptions",[12,4520,4521,4522,4526],{},"For the regulatory context on how CCS legal land descriptions flow through Alberta's tenure system - from pore space tenure through injection well licensing to surface rights - the ",[45,4523,4525],{"href":4524},"\u002Flearn\u002Findustries\u002Flegal-land-description-for-carbon-sequestration","carbon sequestration industry guide"," covers each tenure type in detail.",[12,4528,4529,4530,60],{},"For a full walkthrough of how consultants build the location package for an AER submission, see ",[45,4531,4533],{"href":4532},"\u002Fblog\u002Fcarbon-sequestration-tenure-alberta-ccs-lease-blocks","Mapping CCS Lease Blocks Before the AER June 30 Deadline",[24,4535,4537],{"id":4536},"preparing-for-june-30","Preparing for June 30",[12,4539,4540],{},"A CCS tenure application with 40 legal land descriptions and one meridian error gets returned for correction. The same package with verified DLS descriptions and GeoJSON exports goes to the AER reviewer complete.",[12,4542,4374,4543,4545,4546,4548,4549,4552],{},[45,4544,297],{"href":210}," ($50\u002Fmo, on Pro or Business); the ",[45,4547,4395],{"href":3965}," and batch converter are Business-plan features. For teams managing multiple CCS projects before the June 30 deadline, the ",[45,4550,4551],{"href":4389},"batch converter"," handles the full location list in a single upload - surface and subsurface tenure mixed - and exports in all AER-compatible formats.",{"title":274,"searchDepth":275,"depth":275,"links":4554},[4555,4556,4557,4558,4559],{"id":4310,"depth":275,"text":4311},{"id":4356,"depth":275,"text":4357},{"id":4380,"depth":275,"text":4381},{"id":4429,"depth":275,"text":4430},{"id":4536,"depth":275,"text":4537},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-05\u002F60eaf775-112b-495e-9d24-82f6313c5fe6.jpeg","2026-05-07","AER CCS tenure land descriptions require mapping DLS quarter sections within pore space zone boundaries. Here's how to verify and export them for the June 30, 2026 deadline.",{},"\u002Fblog\u002Faer-ccs-pore-space-tenure-quarter-sections",{"title":4296,"description":4562},"blog\u002Faer-ccs-pore-space-tenure-quarter-sections",[4568,4569,4570,2779,1461,4032,4571,4572],"carbon sequestration","CCS","CCUS","pore space tenure","land descriptions","Nf0bb5mD2gqloE97zdTwNP5_csmyxVUygO10Pbs9fmw",{"id":4575,"title":4576,"author":7,"body":4577,"category":4024,"cover":4979,"date":4980,"description":4981,"extension":287,"meta":4982,"navigation":289,"path":4984,"seo":4985,"stem":4986,"tags":4987,"__hash__":4992},"blog\u002Fblog\u002Fuwi-to-gps-developers-guide.md","UWI to GPS: The O&G Developer's Guide to Unique Well Identifier Conversion",{"type":9,"value":4578,"toc":4967},[4579,4586,4593,4597,4600,4603,4611,4615,4621,4624,4628,4719,4726,4730,4733,4754,4757,4763,4768,4772,4775,4795,4814,4820,4830,4834,4837,4841,4851,4854,4859,4862,4866,4873,4909,4912,4916,4926,4932,4935,4942,4946,4949,4952,4954,4963],[12,4580,4581,4582,4585],{},"You have 10,000 rows of AER well data. Every row has a UWI in the format ",[65,4583,4584],{},"100\u002F06-32-048-07W5\u002F00",". Your pipeline job needs GPS coordinates. You know the UWI encodes a legal land description, but you need to get from that identifier string to a lat\u002Flng pair - at scale, reliably, without a manual lookup for each record.",[12,4587,4588,4589,4592],{},"This is the core problem of ",[19,4590,4591],{},"UWI to GPS"," conversion in Canadian O&G data work. The format is deterministic: once you can parse it, conversion becomes a lookup problem, not a geometry problem. This guide covers the UWI structure, how to extract the location component, how to handle the common edge cases, and which batch workflow fits your stack.",[24,4594,4596],{"id":4595},"what-a-uwi-encodes","What a UWI Encodes",[12,4598,4599],{},"A Unique Well Identifier is a standardized reference format developed by PTAC (Petroleum Technology Alliance of Canada) and adopted by every major Canadian energy regulator - the AER in Alberta, the BC Energy Regulator, and Saskatchewan's Ministry of Energy and Resources.",[12,4601,4602],{},"The UWI is not just an administrative ID. It encodes the well's surface location directly inside the identifier. Parse it correctly and you already know where the well is before touching any external database.",[12,4604,4605,4606,4610],{},"The full format and regulatory context are documented at ",[45,4607,4609],{"href":4608},"\u002Flearn\u002Fsystems\u002Fuwi","Unique Well Identifiers (UWI) in Canada",". The short version: strip the prefix and sequence, and what remains is a DLS legal land description.",[24,4612,4614],{"id":4613},"breaking-down-the-dls-format-uwi","Breaking Down the DLS-Format UWI",[12,4616,4617,4618,60],{},"Most Canadian wells - those in Alberta, Saskatchewan, Manitoba, and the BC Peace River block - use UWIs built on the DLS (Dominion Land Survey) system. The format: ",[65,4619,4620],{},"[event prefix] \u002F [LSD location] \u002F [event sequence]",[12,4622,4623],{},"A concrete example:",[12,4625,4626],{},[19,4627,4584],{},[660,4629,4630,4643],{},[663,4631,4632],{},[666,4633,4634,4637,4640],{},[669,4635,4636],{},"Segment",[669,4638,4639],{},"Value",[669,4641,4642],{},"Meaning",[681,4644,4645,4656,4667,4677,4687,4698,4708],{},[666,4646,4647,4650,4653],{},[686,4648,4649],{},"Event prefix",[686,4651,4652],{},"100",[686,4654,4655],{},"Location type - 100 = bottomhole at surface location",[666,4657,4658,4661,4664],{},[686,4659,4660],{},"LSD",[686,4662,4663],{},"06",[686,4665,4666],{},"Legal Subdivision 6 within Section 32",[666,4668,4669,4671,4674],{},[686,4670,3724],{},[686,4672,4673],{},"32",[686,4675,4676],{},"Section 32",[666,4678,4679,4681,4684],{},[686,4680,3730],{},[686,4682,4683],{},"048",[686,4685,4686],{},"Township 48",[666,4688,4689,4692,4695],{},[686,4690,4691],{},"Range",[686,4693,4694],{},"07",[686,4696,4697],{},"Range 7",[666,4699,4700,4702,4705],{},[686,4701,3736],{},[686,4703,4704],{},"W5",[686,4706,4707],{},"West of the 5th Meridian",[666,4709,4710,4713,4716],{},[686,4711,4712],{},"Event sequence",[686,4714,4715],{},"00",[686,4717,4718],{},"First event at this surface location",[12,4720,4721,4722,4725],{},"The location component - ",[19,4723,4724],{},"06-32-048-07W5"," - is a standard LSD legal land description. It identifies a specific 40-acre parcel in west-central Alberta. That parcel is what you convert to GPS coordinates.",[24,4727,4729],{"id":4728},"converting-a-single-uwi-to-gps","Converting a Single UWI to GPS",[12,4731,4732],{},"For a one-off lookup, the steps are straightforward:",[1863,4734,4735,4741,4747],{},[244,4736,4737,4738],{},"Extract the location component: take everything between the first and last ",[65,4739,4740],{},"\u002F",[244,4742,4743,4744,4746],{},"The result (",[65,4745,4724],{},") is the LSD you need",[244,4748,4749,4750],{},"Enter it into Township Canada's search tool or the ",[45,4751,4753],{"href":4752},"\u002Flearn\u002Fhow-to\u002Fwell-site-gps-coordinates-alberta","Alberta well site GPS converter",[12,4755,4756],{},"You get back the centre-point coordinates for that 40-acre parcel, calculated from official survey data. For O&G applications - field navigation, AER filings, GIS mapping - this is the coordinate you need.",[12,4758,4759,4760,4762],{},"If you're using the AER Wells layer in Township Canada (part of the Energy Bundle - $50\u002Fmo, on Pro or Business), you can also search by the full UWI string directly: ",[65,4761,4584],{},". The well appears as a pin on the DLS satellite map without any pre-parsing.",[12,4764,4765],{},[128,4766],{"alt":4767,"src":3896},"Search for a well location by UWI or LSD and see it plotted on the DLS grid",[24,4769,4771],{"id":4770},"handling-the-edge-cases","Handling the Edge Cases",[12,4773,4774],{},"Not every UWI maps cleanly to a single LSD. A few patterns require attention before you run a batch job.",[12,4776,4777,4780,4781,4783,4784,68,4787,4790,4791,4794],{},[19,4778,4779],{},"Event prefix codes",": A prefix of ",[65,4782,4652],{}," means the bottomhole is at the surface location - straightforward. Prefix codes of ",[65,4785,4786],{},"102",[65,4788,4789],{},"103",", and higher indicate the well is directional or horizontal, with the bottomhole in a different LSD than the surface. The location component in the UWI always refers to the ",[19,4792,4793],{},"surface location",". For directional wells, the bottomhole location is tracked separately in the wellbore record (UWBI format).",[12,4796,4797,4800,4801,68,4804,68,4807,4810,4811,4813],{},[19,4798,4799],{},"Multiple events at one surface location",": The event sequence (",[65,4802,4803],{},"\u002F00",[65,4805,4806],{},"\u002F02",[65,4808,4809],{},"\u002F03",") tracks different completions or re-entry events at the same surface location. For ",[19,4812,4591],{}," purposes, all sequences at the same surface LSD return identical coordinates - the location component doesn't change between events.",[12,4815,4816,4819],{},[19,4817,4818],{},"Re-entries and abandonments",": A well re-entered after regulatory abandonment gets a new event sequence number but keeps the original LSD. Parse and convert identically to the original well.",[12,4821,4822,4825,4826,60],{},[19,4823,4824],{},"NTS-format UWIs (BC and NWT)",": Wells outside the Peace River block in British Columbia, and wells in the Northwest Territories, use UWIs built on the National Topographic System rather than DLS. The location component looks different - it references an NTS map sheet and block rather than LSD\u002Fsection\u002Ftownship - but Township Canada converts NTS references to GPS the same way. Separate the NTS reference from the prefix and sequence, then submit it to the converter. For more on NTS grid references in a field context, see ",[45,4827,4829],{"href":4828},"\u002Fblog\u002Fbc-nts-grid-references-convert-gps-field-work","BC NTS Grid References: How to Read Them and Convert to GPS",[24,4831,4833],{"id":4832},"batch-uwi-conversion-for-large-datasets","Batch UWI Conversion for Large Datasets",[12,4835,4836],{},"Single-record lookups don't scale. For anything above a few dozen wells, one of these three workflows covers the common O&G data engineering scenarios.",[347,4838,4840],{"id":4839},"csv-upload","CSV Upload",[12,4842,3816,4843,4846,4847,4850],{},[45,4844,1543],{"href":4845},"\u002Flearn\u002Fhow-to\u002Fbatch-convert-legal-land-descriptions"," accepts a CSV with a column of LSD descriptions. Pre-process your UWI list to extract the location component - ",[65,4848,4849],{},"SPLIT_PART(uwi, '\u002F', 2)"," in SQL, or equivalent - then upload the resulting LSD column.",[12,4852,4853],{},"Upload 500 LSDs, get 500 coordinate pairs back in seconds. The output includes a processing report that flags any descriptions that didn't resolve, so data entry errors in your source records surface before they reach the field or a regulatory submission.",[12,4855,4856],{},[128,4857],{"alt":4858,"src":3937},"Upload a CSV of LSD descriptions from your UWI list and receive GPS coordinates for every row",[12,4860,4861],{},"This is the fastest path for land teams and data analysts who don't need programmatic integration - export from your source system, strip the UWI wrapper, upload, download results.",[347,4863,4865],{"id":4864},"snowflake-sql","Snowflake SQL",[12,4867,4868,4869,4872],{},"If your well data lives in Snowflake, you can convert UWIs without exporting anything. Township Canada runs inside Snowflake via an External Function. After the initial setup (documented at ",[45,4870,4871],{"href":4871},"\u002Fblog\u002Fconvert-legal-land-descriptions-snowflake-sql","), a query like:",[1736,4874,4878],{"className":4875,"code":4876,"language":4877,"meta":274,"style":274},"language-sql shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","SELECT\n  uwi,\n  TOWNSHIP_CONVERT(SPLIT_PART(uwi, '\u002F', 2)) AS gps_coordinates\nFROM well_records\nWHERE well_status = 'active'\n","sql",[65,4879,4880,4887,4892,4897,4903],{"__ignoreMap":274},[2024,4881,4884],{"class":4882,"line":4883},"line",1,[2024,4885,4886],{},"SELECT\n",[2024,4888,4889],{"class":4882,"line":275},[2024,4890,4891],{},"  uwi,\n",[2024,4893,4894],{"class":4882,"line":498},[2024,4895,4896],{},"  TOWNSHIP_CONVERT(SPLIT_PART(uwi, '\u002F', 2)) AS gps_coordinates\n",[2024,4898,4900],{"class":4882,"line":4899},4,[2024,4901,4902],{},"FROM well_records\n",[2024,4904,4906],{"class":4882,"line":4905},5,[2024,4907,4908],{},"WHERE well_status = 'active'\n",[12,4910,4911],{},"returns GPS coordinates directly in the warehouse - no file exports, no broken data lineage, no Python script maintaining a separate connection. For O&G data teams that already manage well records in Snowflake, this eliminates the conversion step entirely from ETL pipelines.",[347,4913,4915],{"id":4914},"search-api-for-developer-integration","Search API for Developer Integration",[12,4917,4918,4919,4921,4922,4925],{},"For applications that need ",[19,4920,4591],{}," conversion in real time - a well status dashboard, a field dispatch tool, a custom regulatory portal - the ",[45,4923,4924],{"href":3965},"Township Canada Search API"," accepts LSD strings and returns GPS coordinates as GeoJSON. Feed the parsed LSD component from each UWI into the API and you get a structured response with coordinates, parcel boundary polygon, and survey details.",[1736,4927,4930],{"className":4928,"code":4929,"language":1741},[1739],"GET https:\u002F\u002Fapi.townshipcanada.com\u002Fsearch?q=06-32-048-07W5\nX-API-Key: your-api-key\n\n→ GeoJSON with lat\u002Flng, boundary polygon, province, survey system\n",[65,4931,4929],{"__ignoreMap":274},[12,4933,4934],{},"The Search API handles up to 10,000 requests per month at the Scale tier ($100\u002Fmonth). The Batch API accepts up to 100 LLDs per call with auto-chunking - better suited when you're processing large well lists programmatically rather than looking up individual records on demand.",[12,4936,4937,4938,60],{},"For more on building applications with Canadian well location data, see ",[45,4939,4941],{"href":4940},"\u002Fblog\u002Fbuilding-with-canadian-land-data-api","Building with Canadian Land Data: What the Legal Land Description API Does and Who Uses It",[24,4943,4945],{"id":4944},"the-aer-wells-layer","The AER Wells Layer",[12,4947,4948],{},"If your workflow starts with well discovery rather than a known UWI list, the AER Wells layer in Township Canada offers a different entry point. It plots all 672,880+ AER-licensed Alberta wells on the DLS satellite map - searchable by UWI or by LSD - which eliminates the need to cross-reference AER OneStop and a DLS converter in separate tabs.",[12,4950,4951],{},"Toggle the layer from the map panel in the web app with the Energy Bundle ($50\u002Fmo, on Pro or Business). Each well surfaces its GPS location, licence status, and LSD when you select it. For surface lease review, field planning, and pre-site-visit checks, having both the well data and the DLS grid in one view is a meaningful time reduction compared to working across two systems. (Programmatic API access to well data is on our roadmap.)",[1148,4953],{},[12,4955,4956,4957,4959,4960],{},"For O&G teams running high-volume well data pipelines, the ",[45,4958,4395],{"href":3965}," at $200\u002Fmonth (Scale tier) handles 10,000 requests per month - enough for most quarterly processing cycles. ",[45,4961,4962],{"href":3965},"See the full API pricing and documentation.",[4964,4965,4966],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":274,"searchDepth":275,"depth":275,"links":4968},[4969,4970,4971,4972,4973,4978],{"id":4595,"depth":275,"text":4596},{"id":4613,"depth":275,"text":4614},{"id":4728,"depth":275,"text":4729},{"id":4770,"depth":275,"text":4771},{"id":4832,"depth":275,"text":4833,"children":4974},[4975,4976,4977],{"id":4839,"depth":498,"text":4840},{"id":4864,"depth":498,"text":4865},{"id":4914,"depth":498,"text":4915},{"id":4944,"depth":275,"text":4945},"\u002Fimages\u002Fblog\u002Fuwi-to-gps-developers-guide\u002Fcover.webp","2026-05-06","How to convert UWI to GPS coordinates at scale - parse the DLS location component, handle edge cases like horizontal wells and NTS-format identifiers, and run batch workflows via CSV, Snowflake SQL, or the Search API.",{"hero_image":4983},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-05\u002F0d5172e5-37ee-4eba-82c0-5fddb6df75c7.jpeg","\u002Fblog\u002Fuwi-to-gps-developers-guide",{"title":4576,"description":4981},"blog\u002Fuwi-to-gps-developers-guide",[4988,2779,4989,4990,4991],"Oil & Gas","UWI","API","Batch Conversion","MOL5N9wKwPfOFLKXkmZm4PrjlAHlQ32g0ymFxt-be1w",{"id":4994,"title":4995,"author":7,"body":4996,"category":503,"cover":5255,"date":5256,"description":5257,"extension":287,"meta":5258,"navigation":289,"path":5259,"seo":5260,"stem":5261,"tags":5262,"__hash__":5267},"blog\u002Fblog\u002Fmanitoba-river-lot-quarter-section-dual-description.md","Manitoba's Two Land Systems: When a Title Has Both a River Lot and a Quarter Section",{"type":9,"value":4997,"toc":5246},[4998,5001,5004,5008,5011,5014,5017,5021,5024,5036,5042,5045,5048,5051,5061,5069,5073,5076,5082,5085,5116,5119,5131,5135,5138,5144,5150,5156,5159,5163,5166,5179,5187,5190,5195,5198,5202,5208,5214,5223,5229,5232,5236,5239],[12,4999,5000],{},"A title search in the Winnipeg–Selkirk corridor returns two distinct legal descriptions for the same property - one referencing a river lot and parish, the other a DLS quarter section. This is not a title defect and it's not uncommon. It's the direct result of how Manitoba's land was surveyed, settled, and then resurveyed over 150 years. Using a river lot converter for Manitoba alongside your DLS tools is part of working through those titles accurately.",[12,5002,5003],{},"This guide covers what each description means, when both appear on a single title, and how to convert either one to GPS coordinates for field verification.",[24,5005,5007],{"id":5006},"why-manitoba-has-two-survey-systems","Why Manitoba Has Two Survey Systems",[12,5009,5010],{},"Most of western Canada uses only the Dominion Land Survey (DLS) - the township-range-section grid that governs Alberta, Saskatchewan, and the majority of rural Manitoba. But Manitoba's agricultural heartland along the Red and Assiniboine rivers was already occupied and surveyed before the DLS reached the province.",[12,5012,5013],{},"The Red River Settlement, established in 1812, divided land into long narrow strips running perpendicular from the riverbank - a system modelled on the French seigneurial long-lot tradition. Every settler received river frontage; every lot was identified by a number within a named parish. By the time Manitoba entered Confederation in 1870, hundreds of these river lot grants were in place, protected under Section 31 of the Manitoba Act.",[12,5015,5016],{},"When the Dominion Land Survey arrived in 1871, it laid a new rectangular grid over territory where many parcels already had legal descriptions. Both systems became valid simultaneously, and both remain valid today. Manitoba is the only western province where this overlap exists at any significant scale.",[24,5018,5020],{"id":5019},"reading-a-river-lot-description","Reading a River Lot Description",[12,5022,5023],{},"River lot descriptions follow a consistent format:",[12,5025,5026],{},[19,5027,5028,5029,5032,5033],{},"River Lot ",[2024,5030,5031],{},"number",", Parish of ",[2024,5034,5035],{},"name",[12,5037,5038,5039],{},"For example: ",[19,5040,5041],{},"River Lot 52, Parish of St. Andrews",[12,5043,5044],{},"St. Andrews Parish runs along the west bank of the Red River north of Winnipeg, in what is now the RM of Rockwood. Lot 52 is a strip of land running from the riverbank back into agricultural territory north of the city.",[12,5046,5047],{},"Two elements are mandatory: the lot number and the full parish name. A river lot number without a parish name is not a legal description - every parish along both rivers has its own lot sequence, and each lot number refers to different ground in each parish. The description must specify the parish.",[12,5049,5050],{},"Parish names in the Winnipeg corridor include St. Andrews, St. Clements, Kildonan, St. Norbert, St. Vital, St. Boniface (east bank of the Red River), Headingley, and St. François Xavier along the Assiniboine.",[12,5052,5053,5054,5057,5058,60],{},"Subdivided lots add a directional qualifier: ",[19,5055,5056],{},"The South Half of River Lot 18, Parish of St. Clements",", or ",[19,5059,5060],{},"The East Half of River Lot 7, Parish of St. Johns",[12,5062,5063,5064,5068],{},"Standard lot dimensions were approximately 10 chains wide at the river and two miles deep - roughly 160 acres in total, coincidentally the same area as a DLS quarter section, but a completely different shape: long and narrow rather than square. The ",[45,5065,5067],{"href":5066},"\u002Flearn\u002Fsystems\u002Friver-lots","River Lots system overview"," covers the parish structure, lot dimensions, and historical numbering conventions in full.",[24,5070,5072],{"id":5071},"reading-a-dls-description","Reading a DLS Description",[12,5074,5075],{},"The DLS description identifies a parcel by quarter section, section, township, range, and meridian. In Manitoba, the primary reference line is the 1st Meridian (W1), running through southeastern Manitoba at approximately 97°20'W.",[12,5077,5078,5079],{},"A typical Manitoba DLS description: ",[19,5080,5081],{},"NW 12-008-04W1",[12,5083,5084],{},"Reading right to left, as DLS descriptions are structured:",[241,5086,5087,5093,5099,5105,5111],{},[244,5088,5089,5092],{},[19,5090,5091],{},"W1"," - west of the 1st Meridian",[244,5094,5095,5098],{},[19,5096,5097],{},"04"," - range 4 west of the meridian",[244,5100,5101,5104],{},[19,5102,5103],{},"008"," - township 8",[244,5106,5107,5110],{},[19,5108,5109],{},"12"," - section 12",[244,5112,5113,5115],{},[19,5114,3762],{}," - northwest quarter",[12,5117,5118],{},"This parcel is near Sanford, Manitoba, at approximately 49.50°N, 97.79°W. It's one of over 18 million acres of Manitoba farmland described using the DLS grid.",[12,5120,368,5121,5125,5126,5130],{},[45,5122,5124],{"href":5123},"\u002Fguides\u002Fdominion-land-survey-system","DLS system guide"," covers the grid structure in full. For Manitoba specifically, the ",[45,5127,5129],{"href":5128},"\u002Flearn\u002Fprovinces\u002Fmanitoba","Manitoba legal land description guide"," explains how the 1st Meridian works and includes a DLS coordinate reference table for locations across the province.",[24,5132,5134],{"id":5133},"when-both-appear-on-the-same-title","When Both Appear on the Same Title",[12,5136,5137],{},"In the overlap zone - the parishes immediately surrounding Winnipeg and the river corridors extending north to Selkirk and west to Portage la Prairie - a single property can legally carry both descriptions. There are three main reasons this happens:",[12,5139,5140,5143],{},[19,5141,5142],{},"The river lot predates the DLS."," When the 1871 survey overlaid the DLS grid on existing river lot territory, the two systems intersected rather than replacing each other. A property with a river lot grant from 1865 received a DLS coordinate by default when the grid survey mapped it. Both descriptions now identify the same parcel from different frameworks.",[12,5145,5146,5149],{},[19,5147,5148],{},"Successive title fragmentation."," Many river lots near Winnipeg have been subdivided, consolidated, and re-registered multiple times since the 1880s. A title may reference the original river lot as the root of title, then use a DLS reference to identify the specific carved-out portion conveyed in a later transaction.",[12,5151,5152,5155],{},[19,5153,5154],{},"Corridor rights-of-way."," Manitoba Hydro transmission lines and provincial highway rights-of-way often traverse both systems within the same registered easement document. A corridor that begins in DLS quarter-section territory may cross into river lot territory within the same boundary description. Planners working on the Winnipeg–Brandon corridor routinely encounter mixed-system right-of-way tables.",[12,5157,5158],{},"When both appear on a title, treat the river lot description as the historical root of title and the DLS reference as the current administrative identifier. They don't contradict each other - they describe overlapping ground from two different survey frameworks.",[24,5160,5162],{"id":5161},"converting-both-descriptions-for-field-work","Converting Both Descriptions for Field Work",[12,5164,5165],{},"For site visits, boundary verification, or corridor planning, you need GPS coordinates for both descriptions. A basic DLS converter won't handle river lot format; a tool built only for river lots won't handle DLS. You need both in one place.",[12,5167,368,5168,5171,5172,5175,5176,5178],{},[45,5169,5170],{"href":58},"Manitoba legal land converter"," handles both systems. Enter a river lot like ",[19,5173,5174],{},"River Lot 91, Parish of St. Andrews"," and the map locates the lot along the Red River north of Winnipeg. Enter ",[19,5177,5081],{}," and it shows the quarter section near Sanford. The converter returns GPS coordinates and renders the approximate parcel boundary on the map for each description.",[12,5180,5181,5182,5186],{},"For a step-by-step walkthrough, the ",[45,5183,5185],{"href":5184},"\u002Flearn\u002Fhow-to\u002Friver-lot-converter-manitoba","river lot converter for Manitoba guide"," covers the lookup process for parish lots and explains the output format.",[12,5188,5189],{},"For properties in the overlap zone, running both descriptions through the converter and comparing their map positions is a practical way to confirm that the DLS reference is actually describing the same ground as the river lot root of title - and that there's no meridian or range transcription error placing the DLS result somewhere else.",[12,5191,5192],{},[128,5193],{"alt":5194,"src":3896},"Township Canada search interface showing a Manitoba land description lookup",[12,5196,5197],{},"For bulk processing - a stack of mixed-description titles, a corridor right-of-way table, or a drainage district inventory with both systems - the batch converter handles both DLS and river lot formats in the same CSV upload (Business tier).",[24,5199,5201],{"id":5200},"what-to-watch-for","What to Watch For",[12,5203,5204,5207],{},[19,5205,5206],{},"Parish misidentification"," is the most common error. Using a modern municipal name (\"RM of Rockwood\") instead of the historical parish name (\"St. Andrews\") won't return results. The description must use the historical parish name as it appears in the original grant.",[12,5209,5210,5213],{},[19,5211,5212],{},"Bank orientation"," matters in parishes that appear on both sides of a river. St. Boniface river lots are on the east bank of the Red River; properties on the west bank near the same area fall under different parish names. If a lot lookup returns coordinates that don't match the expected location, confirm the bank assignment.",[12,5215,5216,5219,5220,5222],{},[19,5217,5218],{},"Subdivision fragmentation:"," many river lots near Winnipeg have been subdivided into dozens of parcels over the past century. A title referencing ",[19,5221,5056],{}," describes a portion of the original lot, not the full extent. The GPS coordinates returned reflect the half-lot area.",[12,5224,5225,5228],{},[19,5226,5227],{},"Hay privilege descriptions:"," some historical Manitoba land records include \"hay privilege\" lots - additional strips extending two to three miles beyond the standard river lot depth. These look similar to standard river lot grants but describe different land further from the river. Confirming which type of description you have requires reading the full grant document.",[12,5230,5231],{},"For legal boundary determinations, the Manitoba Land Titles Office is the authoritative source. GPS coordinates from a converter are accurate for field orientation and administrative planning - the starting point for a site visit, not a substitute for a registered survey.",[24,5233,5235],{"id":5234},"working-through-mixed-titles","Working Through Mixed Titles",[12,5237,5238],{},"The dual-description property is a feature of Manitoba's settlement history, not a title anomaly to work around. Real estate agents, conveyancers, and corridor planners in the Winnipeg metropolitan fringe encounter these descriptions regularly and need tools that handle both.",[12,5240,368,5241,4391,5243,5245],{},[45,5242,5170],{"href":58},[45,5244,5067],{"href":5066}," are the two resources that cover this ground in the most depth. Both systems are supported in the same converter - enter either format and get GPS coordinates and a map position in return.",{"title":274,"searchDepth":275,"depth":275,"links":5247},[5248,5249,5250,5251,5252,5253,5254],{"id":5006,"depth":275,"text":5007},{"id":5019,"depth":275,"text":5020},{"id":5071,"depth":275,"text":5072},{"id":5133,"depth":275,"text":5134},{"id":5161,"depth":275,"text":5162},{"id":5200,"depth":275,"text":5201},{"id":5234,"depth":275,"text":5235},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-05\u002Ff9dcbde1-7038-412d-af88-98250b2f8150.jpeg","2026-05-05","How to read Manitoba titles that carry both a river lot and a DLS description. A practical guide for real estate agents and conveyancers using a river lot converter for Manitoba properties.",{},"\u002Fblog\u002Fmanitoba-river-lot-quarter-section-dual-description",{"title":4995,"description":5257},"blog\u002Fmanitoba-river-lot-quarter-section-dual-description",[5263,5264,4032,5265,5266],"manitoba","river lots","real estate","legal land descriptions","Lel9dQ90DVQt1lB_XDfNPB9mbU0R6Xtjk0DM4-wfjuY",{"id":5269,"title":5270,"author":7,"body":5271,"category":1168,"cover":5441,"date":5442,"description":5443,"extension":287,"meta":5444,"navigation":289,"path":5445,"seo":5446,"stem":5447,"tags":5448,"__hash__":5449},"blog\u002Fblog\u002Fproduct-update-april-2026.md","Township Canada Product Update - April 2026",{"type":9,"value":5272,"toc":5430},[5273,5276,5278,5282,5286,5289,5295,5298,5312,5314,5318,5321,5324,5331,5336,5338,5342,5346,5352,5377,5393,5395,5398,5406,5408,5412,5420,5423,5425],[12,5274,5275],{},"Here's what shipped in April 2026. This month was focused on Alberta energy data - specifically the two datasets that O&G professionals most often need to cross-reference against a DLS quarter section: licensed wells and CCS pore space tenure. We also extended the BC parcel API with NTS-based lookup.",[1148,5277],{},[24,5279,5281],{"id":5280},"data-maps","Data & Maps",[347,5283,5285],{"id":5284},"aer-wells-layer","AER Wells Layer",[12,5287,5288],{},"Township Canada now displays 672,880+ Alberta Energy Regulator licensed wells as an interactive map layer on the DLS grid.",[12,5290,5291,5292,5294],{},"You can search by UWI (e.g., ",[65,5293,4584],{},") or by LSD and the well appears as a pin against satellite imagery and the DLS survey grid. If you're doing surface lease review, field planning ahead of a site visit, or preparing an AER Directive 056 filing, this replaces the back-and-forth between OneStop and the converter.",[12,5296,5297],{},"Programmatic API access for well lookup by UWI or LSD - for data teams enriching permit tables or building field planning tools - is on our roadmap.",[12,5299,5300,5303,5304,5308,5309,5311],{},[19,5301,5302],{},"Available with the Energy Bundle"," ($50\u002Fmo, stacks on Pro or Business). Toggle the AER Wells layer from the map layers panel at ",[45,5305,5307],{"href":218,"rel":5306},[220],"townshipcanada.com\u002Fapp",". See ",[45,5310,2964],{"href":210}," for plan details.",[1148,5313],{},[347,5315,5317],{"id":5316},"alberta-ccs-pore-space-tenure-layer","Alberta CCS \u002F Pore Space Tenure Layer",[12,5319,5320],{},"AER-licensed subsurface pore space tenure zone boundaries are now on the DLS grid map.",[12,5322,5323],{},"You can identify which quarter sections fall within or adjacent to a licensed CCS tenure area without cross-referencing the AER registry separately. Programmatic API access returning GeoJSON tenure-zone boundaries by LSD or quarter section - for the shapefiles AER CCS submission packages require - is on our roadmap.",[12,5325,5326,5327,5330],{},"If you're preparing a tenure proposal ahead of the ",[19,5328,5329],{},"AER CCS pore space tenure deadline on June 30, 2026",", this layer gives you DLS-indexed tenure boundaries in the same view as your parcel data.",[12,5332,5333,5335],{},[19,5334,5302],{}," ($50\u002Fmo, stacks on Pro or Business). Toggle the CCS Tenure layer from the map layers panel.",[1148,5337],{},[24,5339,5341],{"id":5340},"search-api","Search & API",[347,5343,5345],{"id":5344},"nts-parcel-lookup","NTS Parcel Lookup",[12,5347,368,5348,5351],{},[45,5349,5350],{"href":188},"ParcelMap BC"," layer now supports lookup by NTS grid reference in addition to GPS coordinates, PID, and PIN.",[12,5353,3479,5354,5357,5358,68,5361,82,5364,5367,5368,5371,5372,5376],{},[65,5355,5356],{},"GET \u002Fapi\u002Fparcels\u002Fnts"," endpoint returns all registered BC parcels whose centroids fall within a given NTS map sheet - with PID, plan number, area, centroid, and full boundary polygon (GeoJSON). It accepts the standard NTS map sheet identifier with or without separators - ",[65,5359,5360],{},"093P\u002F08",[65,5362,5363],{},"093P-08",[65,5365,5366],{},"093P08"," are all parsed the same way. The map sheet is the largest unit in the NTS hierarchy that British Columbia parcel records are reliably aligned to; higher-resolution references (block, unit, or quarter unit) such as ",[65,5369,5370],{},"A-2-F\u002F93-P-8"," should be resolved through the ",[45,5373,5375],{"href":5374},"\u002Fguides\u002Fsearch-api-guide","Search API"," instead.",[12,5378,5379,5380,68,5383,68,5386,5389,5390,60],{},"This is useful in northeast BC, where resource permits and environmental reports often reference both an NTS map sheet and registered parcel boundaries. All three BC parcel endpoints (",[65,5381,5382],{},"\u002Fnts",[65,5384,5385],{},"\u002Flookup",[65,5387,5388],{},"\u002Fsearch",") are now available on ",[19,5391,5392],{},"Pro plan and above",[1148,5394],{},[24,5396,5397],{"id":1121},"What's Coming",[241,5399,5400],{},[244,5401,5402,5405],{},[19,5403,5404],{},"Pipeline ROW layer"," - Pipeline right-of-way boundaries are on the data layer roadmap, following wells and CCS tenure.",[1148,5407],{},[24,5409,5411],{"id":5410},"industry-pulse","Industry Pulse",[12,5413,5414,5415,5419],{},"Esri ArcGIS Pro 3.7, now released, adds NATRF2022 coordinate systems but still has no native DLS\u002FNTS locator. The Township Canada ",[45,5416,5418],{"href":5417},"\u002Fblog\u002Farcgis-integration-search-canadian-legal-land-descriptions","ArcGIS Pro toolbox"," remains the only way to resolve legal land descriptions inside ArcGIS Pro without switching applications.",[12,5421,5422],{},"The AER CCS pore space tenure proposal window closes June 30, 2026. If you're working on a tenure application, the CCS layer and its API endpoint are available now.",[1148,5424],{},[12,5426,5427,5428,60],{},"Questions or feedback? Write to ",[45,5429,1156],{"href":1155},{"title":274,"searchDepth":275,"depth":275,"links":5431},[5432,5436,5439,5440],{"id":5280,"depth":275,"text":5281,"children":5433},[5434,5435],{"id":5284,"depth":498,"text":5285},{"id":5316,"depth":498,"text":5317},{"id":5340,"depth":275,"text":5341,"children":5437},[5438],{"id":5344,"depth":498,"text":5345},{"id":1121,"depth":275,"text":5397},{"id":5410,"depth":275,"text":5411},"\u002Fimages\u002Fblog\u002Fproduct-update-april-2026\u002Fcover.webp","2026-05-01","April 2026: AER wells on the DLS map, Alberta CCS pore space tenure boundaries, and NTS parcel lookup by grid reference.",{},"\u002Fblog\u002Fproduct-update-april-2026",{"title":5270,"description":5443},"blog\u002Fproduct-update-april-2026",[1176,1177],"KSR5mEm4vRkJY_zhN7BltXrvFDC65M_bMxI1yw7XzJw",{"id":5451,"title":5452,"author":7,"body":5453,"category":4024,"cover":6754,"date":6755,"description":6756,"extension":287,"meta":6757,"navigation":289,"path":6758,"seo":6759,"stem":6760,"tags":6761,"__hash__":6765},"blog\u002Fblog\u002Fintegrate-legal-land-description-api-canada.md","How to Integrate Canadian Legal Land Descriptions into Your Application Using the Township Canada API",{"type":9,"value":5454,"toc":6742},[5455,5462,5465,5468,5472,5477,5480,5486,5489,5753,5756,5762,5766,5778,5781,5787,5793,5797,5800,6112,6116,6119,6128,6275,6283,6403,6406,6410,6418,6424,6427,6431,6434,6443,6580,6592,6596,6599,6645,6649,6652,6702,6708,6712,6736,6739],[12,5456,5457,5458,5461],{},"A property management platform in Edmonton had a problem. Their database held 4,000 well site locations - all in DLS format like ",[65,5459,5460],{},"LSD 14-27-048-05W5",". Their map component needed GPS coordinates. A legal land description API in Canada would solve this, but building a conversion engine from raw survey data would take months of work.",[12,5463,5464],{},"One GET request to the Township Canada API handled the individual lookup. A batch endpoint handled the rest. Within an afternoon, the team had GPS coordinates and boundary polygons for every location in the database.",[12,5466,5467],{},"If your application works with Canadian land data - well sites, rural properties, field boundaries, mineral rights - here's how to add that same conversion capability.",[24,5469,5471],{"id":5470},"what-the-api-returns","What the API Returns",[12,5473,368,5474,5476],{},[45,5475,4924],{"href":5374}," accepts a legal land description and returns a GeoJSON response with GPS coordinates and a boundary polygon. It handles DLS, LSD, NTS, FPS, Ontario lot\u002Fconcession, and every other major Canadian survey system through a single endpoint.",[12,5478,5479],{},"A basic request:",[1736,5481,5484],{"className":5482,"code":5483,"language":1741},[1739],"GET https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=LSD+14-27-048-05W5\n",[65,5485,5483],{"__ignoreMap":274},[12,5487,5488],{},"The response:",[1736,5490,5494],{"className":5491,"code":5492,"language":5493,"meta":274,"style":274},"language-json shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","{\n  \"type\": \"FeatureCollection\",\n  \"features\": [{\n    \"type\": \"Feature\",\n    \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[...]] },\n    \"properties\": {\n      \"search_term\": \"LSD 14-27-048-05W5\",\n      \"legal_location\": \"LSD 14-27-048-05W5\",\n      \"unit\": \"Legal Subdivision\",\n      \"survey_system\": \"DLS\",\n      \"province\": \"Alberta\"\n    }\n  }]\n}\n","json",[65,5495,5496,5502,5530,5544,5565,5620,5635,5656,5676,5696,5716,5735,5741,5747],{"__ignoreMap":274},[2024,5497,5498],{"class":4882,"line":4883},[2024,5499,5501],{"class":5500},"soVBu","{\n",[2024,5503,5504,5508,5512,5515,5517,5521,5525,5527],{"class":4882,"line":275},[2024,5505,5507],{"class":5506},"s4Jsk","  \"",[2024,5509,5511],{"class":5510},"sLorS","type",[2024,5513,5514],{"class":5506},"\"",[2024,5516,2609],{"class":5500},[2024,5518,5520],{"class":5519},"sbYkP"," \"",[2024,5522,5524],{"class":5523},"sTbE_","FeatureCollection",[2024,5526,5514],{"class":5519},[2024,5528,5529],{"class":5500},",\n",[2024,5531,5532,5534,5537,5539,5541],{"class":4882,"line":498},[2024,5533,5507],{"class":5506},[2024,5535,5536],{"class":5510},"features",[2024,5538,5514],{"class":5506},[2024,5540,2609],{"class":5500},[2024,5542,5543],{"class":5500}," [{\n",[2024,5545,5546,5549,5552,5554,5556,5558,5561,5563],{"class":4882,"line":4899},[2024,5547,5548],{"class":5506},"    \"",[2024,5550,5511],{"class":5551},"sa2tF",[2024,5553,5514],{"class":5506},[2024,5555,2609],{"class":5500},[2024,5557,5520],{"class":5519},[2024,5559,5560],{"class":5523},"Feature",[2024,5562,5514],{"class":5519},[2024,5564,5529],{"class":5500},[2024,5566,5567,5569,5572,5574,5576,5579,5581,5584,5586,5588,5590,5593,5595,5598,5600,5603,5605,5607,5610,5614,5617],{"class":4882,"line":4905},[2024,5568,5548],{"class":5506},[2024,5570,5571],{"class":5551},"geometry",[2024,5573,5514],{"class":5506},[2024,5575,2609],{"class":5500},[2024,5577,5578],{"class":5500}," {",[2024,5580,5520],{"class":5506},[2024,5582,5511],{"class":5583},"skNjk",[2024,5585,5514],{"class":5506},[2024,5587,2609],{"class":5500},[2024,5589,5520],{"class":5519},[2024,5591,5592],{"class":5523},"Polygon",[2024,5594,5514],{"class":5519},[2024,5596,5597],{"class":5500},",",[2024,5599,5520],{"class":5506},[2024,5601,5602],{"class":5583},"coordinates",[2024,5604,5514],{"class":5506},[2024,5606,2609],{"class":5500},[2024,5608,5609],{"class":5500}," [[",[2024,5611,5613],{"class":5612},"srjyR","...",[2024,5615,5616],{"class":5500},"]]",[2024,5618,5619],{"class":5500}," },\n",[2024,5621,5623,5625,5628,5630,5632],{"class":4882,"line":5622},6,[2024,5624,5548],{"class":5506},[2024,5626,5627],{"class":5551},"properties",[2024,5629,5514],{"class":5506},[2024,5631,2609],{"class":5500},[2024,5633,5634],{"class":5500}," {\n",[2024,5636,5638,5641,5644,5646,5648,5650,5652,5654],{"class":4882,"line":5637},7,[2024,5639,5640],{"class":5506},"      \"",[2024,5642,5643],{"class":5583},"search_term",[2024,5645,5514],{"class":5506},[2024,5647,2609],{"class":5500},[2024,5649,5520],{"class":5519},[2024,5651,5460],{"class":5523},[2024,5653,5514],{"class":5519},[2024,5655,5529],{"class":5500},[2024,5657,5659,5661,5664,5666,5668,5670,5672,5674],{"class":4882,"line":5658},8,[2024,5660,5640],{"class":5506},[2024,5662,5663],{"class":5583},"legal_location",[2024,5665,5514],{"class":5506},[2024,5667,2609],{"class":5500},[2024,5669,5520],{"class":5519},[2024,5671,5460],{"class":5523},[2024,5673,5514],{"class":5519},[2024,5675,5529],{"class":5500},[2024,5677,5679,5681,5684,5686,5688,5690,5692,5694],{"class":4882,"line":5678},9,[2024,5680,5640],{"class":5506},[2024,5682,5683],{"class":5583},"unit",[2024,5685,5514],{"class":5506},[2024,5687,2609],{"class":5500},[2024,5689,5520],{"class":5519},[2024,5691,728],{"class":5523},[2024,5693,5514],{"class":5519},[2024,5695,5529],{"class":5500},[2024,5697,5699,5701,5704,5706,5708,5710,5712,5714],{"class":4882,"line":5698},10,[2024,5700,5640],{"class":5506},[2024,5702,5703],{"class":5583},"survey_system",[2024,5705,5514],{"class":5506},[2024,5707,2609],{"class":5500},[2024,5709,5520],{"class":5519},[2024,5711,4032],{"class":5523},[2024,5713,5514],{"class":5519},[2024,5715,5529],{"class":5500},[2024,5717,5719,5721,5724,5726,5728,5730,5732],{"class":4882,"line":5718},11,[2024,5720,5640],{"class":5506},[2024,5722,5723],{"class":5583},"province",[2024,5725,5514],{"class":5506},[2024,5727,2609],{"class":5500},[2024,5729,5520],{"class":5519},[2024,5731,2779],{"class":5523},[2024,5733,5734],{"class":5519},"\"\n",[2024,5736,5738],{"class":4882,"line":5737},12,[2024,5739,5740],{"class":5500},"    }\n",[2024,5742,5744],{"class":4882,"line":5743},13,[2024,5745,5746],{"class":5500},"  }]\n",[2024,5748,5750],{"class":4882,"line":5749},14,[2024,5751,5752],{"class":5500},"}\n",[12,5754,5755],{},"You get the parcel boundary as a polygon (useful for drawing on a map), plus metadata like survey system, province, and unit type. Response times are sub-200ms.",[12,5757,5758],{},[128,5759],{"alt":5760,"src":5761},"Township Canada API portal","\u002Fimages\u002Fguides\u002Fapi-portal.webp",[24,5763,5765],{"id":5764},"step-1-get-your-api-key","Step 1: Get Your API Key",[12,5767,5768,5769,5772,5773,5777],{},"Sign up at ",[45,5770,5771],{"href":4740},"townshipcanada.com",", then generate an API key from your ",[45,5774,5776],{"href":5775},"\u002Fguides\u002Fapi-key-management","account settings",". You can create separate keys for development, staging, and production - there's no limit on the number of keys per account.",[12,5779,5780],{},"Authentication is a single header:",[1736,5782,5785],{"className":5783,"code":5784,"language":1741},[1739],"X-API-Key: your-api-key\n",[65,5786,5784],{"__ignoreMap":274},[12,5788,368,5789,5792],{},[45,5790,5791],{"href":2964},"Search Build plan"," starts at $20\u002Fmonth and includes 1,000 requests. For teams running 500+ conversions per month, that's a fraction of what alternatives charge - SCADALink's equivalent access starts at $325\u002Fmonth.",[24,5794,5796],{"id":5795},"step-2-make-your-first-conversion","Step 2: Make Your First Conversion",[12,5798,5799],{},"Here's a minimal example in JavaScript:",[1736,5801,5805],{"className":5802,"code":5803,"language":5804,"meta":274,"style":274},"language-javascript shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","const response = await fetch(\n  \"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=NW-25-024-01W5\",\n  {\n    headers: { \"X-API-Key\": process.env.TC_API_KEY }\n  }\n);\n\nconst data = await response.json();\nconst feature = data.features[0];\nconst [lng, lat] = feature.geometry.coordinates[0][0];\n\nconsole.log(`Location: ${feature.properties.legal_location}`);\nconsole.log(`Coordinates: ${lat}, ${lng}`);\nconsole.log(`Province: ${feature.properties.province}`);\n","javascript",[65,5806,5807,5832,5843,5848,5884,5889,5897,5902,5924,5951,5993,5997,6041,6077],{"__ignoreMap":274},[2024,5808,5809,5813,5817,5820,5824,5828],{"class":4882,"line":4883},[2024,5810,5812],{"class":5811},"s5Kfy","const",[2024,5814,5816],{"class":5815},"sSC40"," response",[2024,5818,5819],{"class":5500}," =",[2024,5821,5823],{"class":5822},"siDh9"," await",[2024,5825,5827],{"class":5826},"sljsM"," fetch",[2024,5829,5831],{"class":5830},"snCua","(\n",[2024,5833,5834,5836,5839,5841],{"class":4882,"line":275},[2024,5835,5507],{"class":5519},[2024,5837,5838],{"class":5523},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=NW-25-024-01W5",[2024,5840,5514],{"class":5519},[2024,5842,5529],{"class":5500},[2024,5844,5845],{"class":4882,"line":498},[2024,5846,5847],{"class":5500},"  {\n",[2024,5849,5850,5854,5856,5858,5860,5864,5866,5868,5871,5873,5876,5878,5881],{"class":4882,"line":4899},[2024,5851,5853],{"class":5852},"suXOh","    headers",[2024,5855,2609],{"class":5500},[2024,5857,5578],{"class":5500},[2024,5859,5520],{"class":5519},[2024,5861,5863],{"class":5862},"sQtxO","X-API-Key",[2024,5865,5514],{"class":5519},[2024,5867,2609],{"class":5500},[2024,5869,5870],{"class":5815}," process",[2024,5872,60],{"class":5500},[2024,5874,5875],{"class":5815},"env",[2024,5877,60],{"class":5500},[2024,5879,5880],{"class":5815},"TC_API_KEY",[2024,5882,5883],{"class":5500}," }\n",[2024,5885,5886],{"class":4882,"line":4905},[2024,5887,5888],{"class":5500},"  }\n",[2024,5890,5891,5894],{"class":4882,"line":5622},[2024,5892,5893],{"class":5830},")",[2024,5895,5896],{"class":5500},";\n",[2024,5898,5899],{"class":4882,"line":5637},[2024,5900,5901],{"emptyLinePlaceholder":289},"\n",[2024,5903,5904,5906,5909,5911,5913,5915,5917,5919,5922],{"class":4882,"line":5658},[2024,5905,5812],{"class":5811},[2024,5907,5908],{"class":5815}," data",[2024,5910,5819],{"class":5500},[2024,5912,5823],{"class":5822},[2024,5914,5816],{"class":5815},[2024,5916,60],{"class":5500},[2024,5918,5493],{"class":5826},[2024,5920,5921],{"class":5830},"()",[2024,5923,5896],{"class":5500},[2024,5925,5926,5928,5931,5933,5935,5937,5939,5942,5946,5949],{"class":4882,"line":5678},[2024,5927,5812],{"class":5811},[2024,5929,5930],{"class":5815}," feature",[2024,5932,5819],{"class":5500},[2024,5934,5908],{"class":5815},[2024,5936,60],{"class":5500},[2024,5938,5536],{"class":5815},[2024,5940,5941],{"class":5830},"[",[2024,5943,5945],{"class":5944},"s7CZa","0",[2024,5947,5948],{"class":5830},"]",[2024,5950,5896],{"class":5500},[2024,5952,5953,5955,5958,5961,5963,5966,5968,5970,5972,5974,5976,5978,5980,5982,5984,5987,5989,5991],{"class":4882,"line":5698},[2024,5954,5812],{"class":5811},[2024,5956,5957],{"class":5500}," [",[2024,5959,5960],{"class":5815},"lng",[2024,5962,5597],{"class":5500},[2024,5964,5965],{"class":5815}," lat",[2024,5967,5948],{"class":5500},[2024,5969,5819],{"class":5500},[2024,5971,5930],{"class":5815},[2024,5973,60],{"class":5500},[2024,5975,5571],{"class":5815},[2024,5977,60],{"class":5500},[2024,5979,5602],{"class":5815},[2024,5981,5941],{"class":5830},[2024,5983,5945],{"class":5944},[2024,5985,5986],{"class":5830},"][",[2024,5988,5945],{"class":5944},[2024,5990,5948],{"class":5830},[2024,5992,5896],{"class":5500},[2024,5994,5995],{"class":4882,"line":5718},[2024,5996,5901],{"emptyLinePlaceholder":289},[2024,5998,5999,6002,6004,6007,6010,6013,6016,6020,6024,6026,6028,6030,6032,6035,6037,6039],{"class":4882,"line":5737},[2024,6000,6001],{"class":5815},"console",[2024,6003,60],{"class":5500},[2024,6005,6006],{"class":5826},"log",[2024,6008,6009],{"class":5830},"(",[2024,6011,6012],{"class":5519},"`",[2024,6014,6015],{"class":5523},"Location: ",[2024,6017,6019],{"class":6018},"s8XtY","${",[2024,6021,6023],{"class":6022},"su_V2","feature",[2024,6025,60],{"class":5500},[2024,6027,5627],{"class":6022},[2024,6029,60],{"class":5500},[2024,6031,5663],{"class":6022},[2024,6033,6034],{"class":6018},"}",[2024,6036,6012],{"class":5519},[2024,6038,5893],{"class":5830},[2024,6040,5896],{"class":5500},[2024,6042,6043,6045,6047,6049,6051,6053,6056,6058,6061,6063,6065,6067,6069,6071,6073,6075],{"class":4882,"line":5743},[2024,6044,6001],{"class":5815},[2024,6046,60],{"class":5500},[2024,6048,6006],{"class":5826},[2024,6050,6009],{"class":5830},[2024,6052,6012],{"class":5519},[2024,6054,6055],{"class":5523},"Coordinates: ",[2024,6057,6019],{"class":6018},[2024,6059,6060],{"class":6022},"lat",[2024,6062,6034],{"class":6018},[2024,6064,68],{"class":5523},[2024,6066,6019],{"class":6018},[2024,6068,5960],{"class":6022},[2024,6070,6034],{"class":6018},[2024,6072,6012],{"class":5519},[2024,6074,5893],{"class":5830},[2024,6076,5896],{"class":5500},[2024,6078,6079,6081,6083,6085,6087,6089,6092,6094,6096,6098,6100,6102,6104,6106,6108,6110],{"class":4882,"line":5749},[2024,6080,6001],{"class":5815},[2024,6082,60],{"class":5500},[2024,6084,6006],{"class":5826},[2024,6086,6009],{"class":5830},[2024,6088,6012],{"class":5519},[2024,6090,6091],{"class":5523},"Province: ",[2024,6093,6019],{"class":6018},[2024,6095,6023],{"class":6022},[2024,6097,60],{"class":5500},[2024,6099,5627],{"class":6022},[2024,6101,60],{"class":5500},[2024,6103,5723],{"class":6022},[2024,6105,6034],{"class":6018},[2024,6107,6012],{"class":5519},[2024,6109,5893],{"class":5830},[2024,6111,5896],{"class":5500},[347,6113,6115],{"id":6114},"sdk-options","SDK Options",[12,6117,6118],{},"If you'd rather skip raw HTTP calls, Township Canada has official SDKs for TypeScript and Python with the same method surface:",[12,6120,6121,6124,6125],{},[19,6122,6123],{},"TypeScript \u002F Node.js"," - ",[65,6126,6127],{},"npm install townshipcanada",[1736,6129,6133],{"className":6130,"code":6131,"language":6132,"meta":274,"style":274},"language-typescript shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","import { TownshipClient } from \"townshipcanada\";\n\nconst client = new TownshipClient({ apiKey: process.env.TC_API_KEY });\nconst result = await client.search(\"NW-25-024-01W5\");\nconsole.log(result.latitude, result.longitude, result.province);\n","typescript",[65,6134,6135,6160,6164,6205,6236],{"__ignoreMap":274},[2024,6136,6137,6140,6142,6145,6148,6151,6153,6156,6158],{"class":4882,"line":4883},[2024,6138,6139],{"class":5822},"import",[2024,6141,5578],{"class":5500},[2024,6143,6144],{"class":5815}," TownshipClient",[2024,6146,6147],{"class":5500}," }",[2024,6149,6150],{"class":5822}," from",[2024,6152,5520],{"class":5519},[2024,6154,6155],{"class":5523},"townshipcanada",[2024,6157,5514],{"class":5519},[2024,6159,5896],{"class":5500},[2024,6161,6162],{"class":4882,"line":275},[2024,6163,5901],{"emptyLinePlaceholder":289},[2024,6165,6166,6168,6171,6173,6177,6179,6181,6184,6187,6189,6191,6193,6195,6197,6199,6201,6203],{"class":4882,"line":498},[2024,6167,5812],{"class":5811},[2024,6169,6170],{"class":5815}," client",[2024,6172,5819],{"class":5500},[2024,6174,6176],{"class":6175},"sVsLi"," new",[2024,6178,6144],{"class":5826},[2024,6180,6009],{"class":5830},[2024,6182,6183],{"class":5500},"{",[2024,6185,6186],{"class":5852}," apiKey",[2024,6188,2609],{"class":5500},[2024,6190,5870],{"class":5815},[2024,6192,60],{"class":5500},[2024,6194,5875],{"class":5815},[2024,6196,60],{"class":5500},[2024,6198,5880],{"class":5815},[2024,6200,6147],{"class":5500},[2024,6202,5893],{"class":5830},[2024,6204,5896],{"class":5500},[2024,6206,6207,6209,6212,6214,6216,6218,6220,6223,6225,6227,6230,6232,6234],{"class":4882,"line":4899},[2024,6208,5812],{"class":5811},[2024,6210,6211],{"class":5815}," result",[2024,6213,5819],{"class":5500},[2024,6215,5823],{"class":5822},[2024,6217,6170],{"class":5815},[2024,6219,60],{"class":5500},[2024,6221,6222],{"class":5826},"search",[2024,6224,6009],{"class":5830},[2024,6226,5514],{"class":5519},[2024,6228,6229],{"class":5523},"NW-25-024-01W5",[2024,6231,5514],{"class":5519},[2024,6233,5893],{"class":5830},[2024,6235,5896],{"class":5500},[2024,6237,6238,6240,6242,6244,6246,6249,6251,6254,6256,6258,6260,6263,6265,6267,6269,6271,6273],{"class":4882,"line":4905},[2024,6239,6001],{"class":5815},[2024,6241,60],{"class":5500},[2024,6243,6006],{"class":5826},[2024,6245,6009],{"class":5830},[2024,6247,6248],{"class":5815},"result",[2024,6250,60],{"class":5500},[2024,6252,6253],{"class":5815},"latitude",[2024,6255,5597],{"class":5500},[2024,6257,6211],{"class":5815},[2024,6259,60],{"class":5500},[2024,6261,6262],{"class":5815},"longitude",[2024,6264,5597],{"class":5500},[2024,6266,6211],{"class":5815},[2024,6268,60],{"class":5500},[2024,6270,5723],{"class":5815},[2024,6272,5893],{"class":5830},[2024,6274,5896],{"class":5500},[12,6276,6277,6124,6280],{},[19,6278,6279],{},"Python",[65,6281,6282],{},"pip install townshipcanada",[1736,6284,6288],{"className":6285,"code":6286,"language":6287,"meta":274,"style":274},"language-python shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","from townshipcanada import TownshipClient\n\nclient = TownshipClient(api_key=os.environ[\"TC_API_KEY\"])\nresult = client.search(\"NW-25-024-01W5\")\nprint(result.latitude, result.longitude, result.province)\n","python",[65,6289,6290,6304,6308,6347,6371],{"__ignoreMap":274},[2024,6291,6292,6295,6299,6301],{"class":4882,"line":4883},[2024,6293,6294],{"class":5822},"from",[2024,6296,6298],{"class":6297},"sftqT"," townshipcanada ",[2024,6300,6139],{"class":5822},[2024,6302,6303],{"class":6297}," TownshipClient\n",[2024,6305,6306],{"class":4882,"line":275},[2024,6307,5901],{"emptyLinePlaceholder":289},[2024,6309,6310,6313,6316,6319,6321,6325,6327,6330,6332,6336,6338,6340,6342,6344],{"class":4882,"line":498},[2024,6311,6312],{"class":6297},"client ",[2024,6314,6315],{"class":5500},"=",[2024,6317,6144],{"class":6318},"siWMO",[2024,6320,6009],{"class":5500},[2024,6322,6324],{"class":6323},"sqOPj","api_key",[2024,6326,6315],{"class":5500},[2024,6328,6329],{"class":6318},"os",[2024,6331,60],{"class":5500},[2024,6333,6335],{"class":6334},"sBPpx","environ",[2024,6337,5941],{"class":5500},[2024,6339,5514],{"class":5519},[2024,6341,5880],{"class":5523},[2024,6343,5514],{"class":5519},[2024,6345,6346],{"class":5500},"])\n",[2024,6348,6349,6352,6354,6356,6358,6360,6362,6364,6366,6368],{"class":4882,"line":4899},[2024,6350,6351],{"class":6297},"result ",[2024,6353,6315],{"class":5500},[2024,6355,6170],{"class":6297},[2024,6357,60],{"class":5500},[2024,6359,6222],{"class":6318},[2024,6361,6009],{"class":5500},[2024,6363,5514],{"class":5519},[2024,6365,6229],{"class":5523},[2024,6367,5514],{"class":5519},[2024,6369,6370],{"class":5500},")\n",[2024,6372,6373,6377,6379,6381,6383,6385,6387,6389,6391,6393,6395,6397,6399,6401],{"class":4882,"line":4905},[2024,6374,6376],{"class":6375},"sJdAF","print",[2024,6378,6009],{"class":5500},[2024,6380,6248],{"class":6318},[2024,6382,60],{"class":5500},[2024,6384,6253],{"class":6334},[2024,6386,5597],{"class":5500},[2024,6388,6211],{"class":6318},[2024,6390,60],{"class":5500},[2024,6392,6262],{"class":6334},[2024,6394,5597],{"class":5500},[2024,6396,6211],{"class":6318},[2024,6398,60],{"class":5500},[2024,6400,5723],{"class":6334},[2024,6402,6370],{"class":5500},[12,6404,6405],{},"Both SDKs wrap every endpoint with typed methods - no manual fetch calls or GeoJSON parsing required.",[24,6407,6409],{"id":6408},"step-3-add-autocomplete-for-user-input","Step 3: Add Autocomplete for User Input",[12,6411,6412,6413,6417],{},"If your application has a search field where users type legal land descriptions, the ",[45,6414,6416],{"href":6415},"\u002Fguides\u002Fautocomplete-api-guide","Autocomplete API"," returns suggestions as they type. This catches formatting errors before they become bad lookups:",[1736,6419,6422],{"className":6420,"code":6421,"language":1741},[1739],"GET https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fautocomplete\u002Flegal-location?location=NW-25-024\n",[65,6423,6421],{"__ignoreMap":274},[12,6425,6426],{},"The response includes matching descriptions ranked by relevance, so users pick from valid options instead of guessing at format.",[24,6428,6430],{"id":6429},"step-4-handle-bulk-data-with-the-batch-endpoint","Step 4: Handle Bulk Data with the Batch Endpoint",[12,6432,6433],{},"Most real-world integrations need to convert more than one location at a time. A pipeline company importing 230 well crossings, a crop insurance provider processing 2,000 policy applications, an O&G data team enriching a production database - these are batch jobs.",[12,6435,368,6436,6438,6439,6442],{},[45,6437,4395],{"href":4394}," accepts up to 100 legal land descriptions per request. The npm SDK's ",[65,6440,6441],{},"batchSearch()"," method automatically chunks larger datasets:",[1736,6444,6446],{"className":6130,"code":6445,"language":6132,"meta":274,"style":274},"const locations = [\n  \"LSD 06-32-048-07W5\",\n  \"NE-14-032-21W4\",\n  \"NW-25-024-01W5\"\n  \u002F\u002F ... hundreds more\n];\n\nconst batch = await client.batchSearch(locations);\nconsole.log(`Converted: ${batch.success} of ${batch.total}`);\n",[65,6447,6448,6460,6471,6482,6490,6496,6502,6506,6533],{"__ignoreMap":274},[2024,6449,6450,6452,6455,6457],{"class":4882,"line":4883},[2024,6451,5812],{"class":5811},[2024,6453,6454],{"class":5815}," locations",[2024,6456,5819],{"class":5500},[2024,6458,6459],{"class":5830}," [\n",[2024,6461,6462,6464,6467,6469],{"class":4882,"line":275},[2024,6463,5507],{"class":5519},[2024,6465,6466],{"class":5523},"LSD 06-32-048-07W5",[2024,6468,5514],{"class":5519},[2024,6470,5529],{"class":5500},[2024,6472,6473,6475,6478,6480],{"class":4882,"line":498},[2024,6474,5507],{"class":5519},[2024,6476,6477],{"class":5523},"NE-14-032-21W4",[2024,6479,5514],{"class":5519},[2024,6481,5529],{"class":5500},[2024,6483,6484,6486,6488],{"class":4882,"line":4899},[2024,6485,5507],{"class":5519},[2024,6487,6229],{"class":5523},[2024,6489,5734],{"class":5519},[2024,6491,6492],{"class":4882,"line":4905},[2024,6493,6495],{"class":6494},"s9Tkl","  \u002F\u002F ... hundreds more\n",[2024,6497,6498,6500],{"class":4882,"line":5622},[2024,6499,5948],{"class":5830},[2024,6501,5896],{"class":5500},[2024,6503,6504],{"class":4882,"line":5637},[2024,6505,5901],{"emptyLinePlaceholder":289},[2024,6507,6508,6510,6513,6515,6517,6519,6521,6524,6526,6529,6531],{"class":4882,"line":5658},[2024,6509,5812],{"class":5811},[2024,6511,6512],{"class":5815}," batch",[2024,6514,5819],{"class":5500},[2024,6516,5823],{"class":5822},[2024,6518,6170],{"class":5815},[2024,6520,60],{"class":5500},[2024,6522,6523],{"class":5826},"batchSearch",[2024,6525,6009],{"class":5830},[2024,6527,6528],{"class":5815},"locations",[2024,6530,5893],{"class":5830},[2024,6532,5896],{"class":5500},[2024,6534,6535,6537,6539,6541,6543,6545,6548,6550,6553,6555,6558,6560,6563,6565,6567,6569,6572,6574,6576,6578],{"class":4882,"line":5678},[2024,6536,6001],{"class":5815},[2024,6538,60],{"class":5500},[2024,6540,6006],{"class":5826},[2024,6542,6009],{"class":5830},[2024,6544,6012],{"class":5519},[2024,6546,6547],{"class":5523},"Converted: ",[2024,6549,6019],{"class":6018},[2024,6551,6552],{"class":6022},"batch",[2024,6554,60],{"class":5500},[2024,6556,6557],{"class":6022},"success",[2024,6559,6034],{"class":6018},[2024,6561,6562],{"class":5523}," of ",[2024,6564,6019],{"class":6018},[2024,6566,6552],{"class":6022},[2024,6568,60],{"class":5500},[2024,6570,6571],{"class":6022},"total",[2024,6573,6034],{"class":6018},[2024,6575,6012],{"class":5519},[2024,6577,5893],{"class":5830},[2024,6579,5896],{"class":5500},[12,6581,6582,6583,6587,6588,6591],{},"For warehouse-scale conversion, Township Canada also runs as a ",[45,6584,6586],{"href":6585},"\u002Fblog\u002Fsnowflake-dls-enrichment","Snowflake External Function"," - call ",[65,6589,6590],{},"TOWNSHIP_CONVERT(lld_column)"," directly in SQL without exporting data.",[24,6593,6595],{"id":6594},"common-use-cases","Common Use Cases",[12,6597,6598],{},"A legal land description API in Canada fits wherever Canadian land locations show up in software:",[241,6600,6601,6612,6622,6628,6639],{},[244,6602,6603,6606,6607,6611],{},[19,6604,6605],{},"Well site lookup for O&G applications"," - Field dispatch tools convert UWI locations to GPS for crew navigation. A ",[45,6608,6610],{"href":6609},"\u002Fblog\u002Foil-gas-legal-land-descriptions","detailed breakdown of energy-industry workflows"," covers the specifics.",[244,6613,6614,6617,6618,6621],{},[19,6615,6616],{},"Rural property platforms"," - Listings in ",[45,6619,6620],{"href":3702},"DLS format"," get map pins and quarter-section boundaries for buyer-facing search.",[244,6623,6624,6627],{},[19,6625,6626],{},"Field crew dispatch tools"," - Turn legal descriptions from work orders into GPS coordinates that mobile devices can navigate to.",[244,6629,6630,6633,6634,6638],{},[19,6631,6632],{},"Crop insurance systems"," - Batch-convert ",[45,6635,6637],{"href":6636},"\u002Flearn\u002Fhow-to\u002Fquarter-section-finder","quarter sections"," from policy applications and display them on maps for adjuster review.",[244,6640,6641,6644],{},[19,6642,6643],{},"Data warehouse enrichment"," - Add GPS columns to tables of legal land descriptions without moving data out of Snowflake or Databricks.",[24,6646,6648],{"id":6647},"pricing-that-scales-with-your-usage","Pricing That Scales with Your Usage",[12,6650,6651],{},"The legal land description API in Canada is priced by request volume, not per-seat:",[660,6653,6654,6667],{},[663,6655,6656],{},[666,6657,6658,6661,6664],{},[669,6659,6660],{},"Plan",[669,6662,6663],{},"Monthly Cost",[669,6665,6666],{},"Requests Included",[681,6668,6669,6680,6691],{},[666,6670,6671,6674,6677],{},[686,6672,6673],{},"Build",[686,6675,6676],{},"$20\u002Fmo",[686,6678,6679],{},"1,000",[666,6681,6682,6685,6688],{},[686,6683,6684],{},"Scale",[686,6686,6687],{},"$100\u002Fmo",[686,6689,6690],{},"10,000",[666,6692,6693,6696,6699],{},[686,6694,6695],{},"Enterprise",[686,6697,6698],{},"$500\u002Fmo",[686,6700,6701],{},"100,000",[12,6703,6704,6705,60],{},"Autocomplete, Batch, and Maps APIs are available as separate subscriptions. Full pricing details are on the ",[45,6706,6707],{"href":3965},"API page",[24,6709,6711],{"id":6710},"start-integrating","Start Integrating",[12,6713,6714,6715,6719,6720,68,6724,68,6728,82,6732,60],{},"The setup takes less than five minutes: create an account, generate a key, and make your first request. The ",[45,6716,6718],{"href":6717},"\u002Fguides\u002Fapi-integration","API integration guide"," covers authentication, error handling, and response formats in detail. If you're building with a mapping library, Township Canada has step-by-step guides for ",[45,6721,6723],{"href":6722},"\u002Fguides\u002Fgoogle-maps-integration","Google Maps",[45,6725,6727],{"href":6726},"\u002Fguides\u002Fmapbox-integration","Mapbox GL JS",[45,6729,6731],{"href":6730},"\u002Fguides\u002Fleaflet-integration","Leaflet",[45,6733,6735],{"href":6734},"\u002Fguides\u002Fopenlayers-integration","OpenLayers",[12,6737,6738],{},"Your application handles the user experience. The API handles the conversion layer. One endpoint, any Canadian survey system, sub-200ms response.",[4964,6740,6741],{},"html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .s4Jsk, html code.shiki .s4Jsk{--shiki-light:#39ADB5;--shiki-default:#99841877;--shiki-dark:#B8A96577}html pre.shiki code .sLorS, html code.shiki .sLorS{--shiki-light:#9C3EDA;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .sa2tF, html code.shiki .sa2tF{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .skNjk, html code.shiki .skNjk{--shiki-light:#F76D47;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .srjyR, html code.shiki .srjyR{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .sftqT, html code.shiki .sftqT{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .siWMO, html code.shiki .siWMO{--shiki-light:#6182B8;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .sqOPj, html code.shiki .sqOPj{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#BD976A;--shiki-dark-font-style:inherit}html pre.shiki code .sBPpx, html code.shiki .sBPpx{--shiki-light:#E53935;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .sJdAF, html code.shiki .sJdAF{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sSC40, html code.shiki .sSC40{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .sljsM, html code.shiki .sljsM{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .snCua, html code.shiki .snCua{--shiki-light:#90A4AE;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .suXOh, html code.shiki .suXOh{--shiki-light:#E53935;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sQtxO, html code.shiki .sQtxO{--shiki-light:#E53935;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html pre.shiki code .s8XtY, html code.shiki .s8XtY{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .su_V2, html code.shiki .su_V2{--shiki-light:#90A4AE;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .s9Tkl, html code.shiki .s9Tkl{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#758575DD;--shiki-dark-font-style:inherit}",{"title":274,"searchDepth":275,"depth":275,"links":6743},[6744,6745,6746,6749,6750,6751,6752,6753],{"id":5470,"depth":275,"text":5471},{"id":5764,"depth":275,"text":5765},{"id":5795,"depth":275,"text":5796,"children":6747},[6748],{"id":6114,"depth":498,"text":6115},{"id":6408,"depth":275,"text":6409},{"id":6429,"depth":275,"text":6430},{"id":6594,"depth":275,"text":6595},{"id":6647,"depth":275,"text":6648},{"id":6710,"depth":275,"text":6711},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002F78e9e64b-533f-429a-a69b-7a061dc4b81f.jpeg","2026-04-28","Use the legal land description API in Canada to add DLS, LSD, and NTS conversion to your app. Code examples, SDKs, and pricing.",{},"\u002Fblog\u002Fintegrate-legal-land-description-api-canada",{"title":5452,"description":6756},"blog\u002Fintegrate-legal-land-description-api-canada",[6762,4990,6763,6764],"Developer","Integration","Tutorial","qKBKW1xJbvHshpoP8ywWrzuzOLE0PxV5VGT31EES5Yk",{"id":6767,"title":6768,"author":7,"body":6769,"category":503,"cover":6962,"date":6755,"description":6963,"extension":287,"meta":6964,"navigation":289,"path":6609,"seo":6965,"stem":6966,"tags":6967,"__hash__":6968},"blog\u002Fblog\u002Foil-gas-legal-land-descriptions.md","How Oil and Gas Companies Use Legal Land Descriptions",{"type":9,"value":6770,"toc":6952},[6771,6774,6777,6780,6784,6787,6817,6820,6824,6827,6833,6843,6857,6861,6865,6868,6871,6877,6881,6884,6891,6895,6898,6904,6908,6915,6922,6933,6940],[12,6772,6773],{},"A pipeline company is preparing a regulatory submission to the AER. The filing lists 230 well locations, each recorded as a legal land description. Before submission, the land team needs GPS coordinates for every one - to verify positions on a map, run a proximity check against sensitive areas, and attach a coordinates schedule to the application.",[12,6775,6776],{},"Converting 230 LSDs by hand takes the better part of a day. It also introduces risk: a transposed township number or wrong meridian produces coordinates that are kilometres off. In a regulatory filing, that error triggers a revision request and delays the submission by weeks.",[12,6778,6779],{},"This is a routine problem in Canadian oil and gas. Legal land descriptions appear on every well licence, surface lease, pipeline crossing permit, and environmental assessment. The friction isn't with the system itself - it's between legal descriptions and the GPS-based tools that field crews, GIS analysts, and engineers use every day.",[24,6781,6783],{"id":6782},"why-legal-land-descriptions-are-everywhere-in-oil-and-gas","Why Legal Land Descriptions Are Everywhere in Oil and Gas",[12,6785,6786],{},"The DLS (Dominion Land Survey) system has been the foundation of land administration in Alberta, Saskatchewan, and Manitoba since the 1880s. Every regulator, registry, and government agency in those provinces records locations in DLS notation. For oil and gas specifically:",[241,6788,6789,6799,6805,6811],{},[244,6790,6791,6794,6795,6798],{},[19,6792,6793],{},"Well licences",": The AER in Alberta and the Ministry of Energy and Resources in Saskatchewan require well locations as LSDs. The Unique Well Identifier (UWI) embeds the DLS location directly - ",[65,6796,6797],{},"100\u002F06-32-048-07W5\u002F0"," identifies LSD 6, Section 32, Township 48, Range 7, West of the 5th Meridian.",[244,6800,6801,6804],{},[19,6802,6803],{},"Pipeline routing",": Crossing points are identified by section and quarter section. A single gathering line might cross 30 sections, each documented as a legal land description.",[244,6806,6807,6810],{},[19,6808,6809],{},"Facility locations",": Compressor stations, batteries, and tank farms are sited by quarter section in surface lease agreements and environmental filings.",[244,6812,6813,6816],{},[19,6814,6815],{},"Mineral rights",": Every title search, rights acquisition, and farm-in agreement references a legal description.",[12,6818,6819],{},"If your work touches Canadian oil and gas - engineering, land, regulatory, field operations - you are dealing with legal land descriptions daily.",[24,6821,6823],{"id":6822},"where-the-friction-shows-up","Where the Friction Shows Up",[12,6825,6826],{},"The DLS system works well for land administration. The friction comes when those descriptions need to move into GPS-based workflows.",[12,6828,6829,6832],{},[19,6830,6831],{},"Regulatory filings"," attach coordinates schedules to well licence applications and environmental assessments. Locations live in internal systems as LSDs; the filing requires GPS. Someone has to convert them.",[12,6834,6835,6838,6839,6842],{},[19,6836,6837],{},"Pipeline GIS work"," starts with plotting crossing points in ArcGIS or QGIS. The survey team delivers section crossings in DLS notation. The GIS analyst needs lat\u002Flng to place them on a basemap. If your team uses Esri tools, see ",[45,6840,6841],{"href":433},"how to get Canadian legal land descriptions into ArcGIS"," - ArcGIS Pro has no native DLS geocoder, but there are three practical workarounds.",[12,6844,6845,6848,6849,6852,6853,6856],{},[19,6846,6847],{},"Field crew dispatch"," is where errors get expensive. Work orders list locations as legal descriptions; crews navigate by GPS. A transposed range number - ",[65,6850,6851],{},"07W5"," entered as ",[65,6854,6855],{},"06W5"," - moves the destination by 8 kilometres. The crew drives to the wrong location and the job gets rescheduled.",[24,6858,6860],{"id":6859},"three-workflows-where-this-matters-most","Three Workflows Where This Matters Most",[347,6862,6864],{"id":6863},"_1-regulatory-filings-batch-convert-before-you-submit","1. Regulatory Filings: Batch Convert Before You Submit",[12,6866,6867],{},"A mid-size Alberta producer files quarterly production reports and licence amendments with the AER. Each submission covers 150 to 200 active well locations. The locations exist in the company's production database as UWIs - legal descriptions embedded in a standard format.",[12,6869,6870],{},"Before each filing cycle, a land technician extracts the UWI list, parses out the LSD component for each well, and needs a verified GPS coordinate for every one. The purpose is twofold: to populate the coordinates schedule required by the AER, and to spot-check locations against the licensed positions before the file goes in.",[12,6872,6873,6874,6876],{},"Using Township Canada's ",[45,6875,1543],{"href":3930},", the technician uploads a CSV with all 180 legal descriptions and gets GPS coordinates back in seconds. The output flags any descriptions that didn't resolve - catching data entry errors in the source database before they reach a regulator.",[347,6878,6880],{"id":6879},"_2-pipeline-routing-from-crossing-points-to-gis-ready-geometry","2. Pipeline Routing: From Crossing Points to GIS-Ready Geometry",[12,6882,6883],{},"A gathering line running from LSD 06-32-048-07W5 to NE-14-050-07W5 crosses roughly 25 kilometres through three townships. Environmental review requires a GIS layer with all 34 section crossings plotted and a 500-metre buffer analysis against wetlands.",[12,6885,6886,6887,6890],{},"The survey team records crossing points as quarter sections in DLS notation. After converting them through ",[45,6888,6889],{"href":4740},"Township Canada's search tool"," and exporting as a Shapefile, the GIS analyst loads the point layer directly into ArcGIS, draws the route line, and runs the buffer analysis. Total time: under five minutes.",[347,6892,6894],{"id":6893},"_3-field-crew-dispatch-route-planning-for-multi-stop-inspections","3. Field Crew Dispatch: Route Planning for Multi-Stop Inspections",[12,6896,6897],{},"A pipeline integrity inspector has 12 anomaly sites to visit across a 60-kilometre section of gathering system. The work order lists each site as an LSD. The inspector's truck has GPS navigation; the work order has legal descriptions. Someone needs to convert and plan the route.",[12,6899,6873,6900,6903],{},[45,6901,1549],{"href":6902},"\u002Fguides\u002Froute-planner",", the inspector enters all 12 LSDs, the tool converts them to GPS coordinates and calculates the most efficient driving order between them. The route can be exported and sent to a navigation device, or the inspector can follow the turn-by-turn directions on their phone. Twelve stops, optimized route, no manual lookup required.",[24,6905,6907],{"id":6906},"what-township-canada-provides","What Township Canada Provides",[12,6909,6910,6911,6914],{},"For single lookups, the ",[45,6912,6913],{"href":4740},"LSD converter"," returns GPS coordinates and a map view immediately - enough for a field supervisor confirming one well location before dispatch.",[12,6916,6917,6918,6921],{},"For volume work, the ",[45,6919,6920],{"href":3930},"batch CSV upload"," processes hundreds of legal descriptions at once. Upload a column of LSDs or quarter sections, get GPS coordinates back in seconds. The output flags any descriptions that didn't resolve so data errors surface before they reach the field or a regulator.",[12,6923,6924,6925,6928,6929,6932],{},"For programmatic workflows, the ",[45,6926,6927],{"href":3965},"Township Canada API"," connects directly to internal land systems, production databases, and dispatch platforms so conversions happen automatically rather than manually. See ",[45,6930,6931],{"href":4940},"how developers in O&G and other industries build with the API"," - including code examples and pricing comparisons.",[12,6934,6935,6936,6939],{},"Results export to Shapefile, DXF, KML, GeoJSON, and CSV - covering GIS analysts loading data into ArcGIS, engineers importing into AutoCAD, and land teams working in spreadsheets. Teams that work primarily in Esri's ecosystem can now skip the export step entirely with the ",[45,6937,6938],{"href":433},"Township Canada ArcGIS integration",", which adds a native DLS\u002FNTS locator and batch tool directly inside ArcGIS Pro.",[12,6941,6942,6943,6947,6948,6951],{},"If you need to ",[45,6944,6946],{"href":6945},"\u002Flearn\u002Fhow-to\u002Flsd-to-lat-long","convert legal land descriptions to GPS coordinates"," for a filing, a routing project, or a field dispatch, ",[45,6949,6950],{"href":2964},"see the available plans"," - including batch and API options for higher-volume work.",{"title":274,"searchDepth":275,"depth":275,"links":6953},[6954,6955,6956,6961],{"id":6782,"depth":275,"text":6783},{"id":6822,"depth":275,"text":6823},{"id":6859,"depth":275,"text":6860,"children":6957},[6958,6959,6960],{"id":6863,"depth":498,"text":6864},{"id":6879,"depth":498,"text":6880},{"id":6893,"depth":498,"text":6894},{"id":6906,"depth":275,"text":6907},"\u002Fimages\u002Fblog\u002Foil-gas-legal-land-descriptions\u002Fcover.webp","Well site identification, pipeline routing, AER filings, and field crew navigation - how the energy industry relies on legal land descriptions and how Township Canada helps.",{},{"title":6768,"description":6963},"blog\u002Foil-gas-legal-land-descriptions",[510,300,545],"mCuJ7goUOrI7jtYG8ycII8qJIN2i0Vjh1JF2smvVVkw",{"id":6970,"title":6971,"author":7,"body":6972,"category":283,"cover":7256,"date":7257,"description":7258,"extension":287,"meta":7259,"navigation":289,"path":5417,"seo":7260,"stem":7261,"tags":7262,"__hash__":7264},"blog\u002Fblog\u002Farcgis-integration-search-canadian-legal-land-descriptions.md","ArcGIS Integration: Search Canadian Legal Land Descriptions Directly in ArcGIS Pro and ArcGIS Online",{"type":9,"value":6973,"toc":7247},[6974,6982,6985,6988,6992,7003,7006,7012,7025,7030,7036,7039,7043,7079,7086,7090,7093,7096,7116,7119,7123,7126,7129,7132,7135,7139,7148,7159,7169,7175,7181,7185,7188,7218,7231,7236],[12,6975,6976,6977,68,6979,6981],{},"A GIS analyst at a midstream pipeline company opens ArcGIS Pro, loads a spreadsheet of 50 well licence locations from the AER, and needs every one plotted on a map with parcel boundaries. The locations are all in DLS format - ",[65,6978,6466],{},[65,6980,4044],{}," - the standard notation for well sites across Western Canada. To get them into ArcGIS, the analyst has to leave the GIS environment entirely: copy descriptions into a browser-based converter, wait for results, copy coordinates back, and paste them into a table. Fifty times.",[12,6983,6984],{},"ArcGIS Pro has no native DLS or NTS locator. Esri has confirmed this gap won't be addressed - not in version 3.7, not with the NATRF2022 datum update. GIS professionals working with Canadian legal land descriptions have been stuck switching between tools.",[12,6986,6987],{},"Township Canada's new ArcGIS integration changes that. It adds DLS and NTS search directly inside ArcGIS Pro, ArcGIS Online, and Survey123 field workflows - three entry points for the same underlying conversion, each designed for a different part of the GIS workflow.",[24,6989,6991],{"id":6990},"arcgis-pro-toolbox-search-and-batch-convert-from-the-desktop","ArcGIS Pro Toolbox: Search and Batch Convert from the Desktop",[12,6993,6994,6995,6998,6999,7002],{},"The core of the integration is a Python toolbox (",[65,6996,6997],{},"TownshipCanada.pyt",") that installs as a standard ArcGIS Pro toolbox. It uses only ",[65,7000,7001],{},"urllib.request"," - no extra Python dependencies beyond what ships with ArcGIS Pro.",[12,7004,7005],{},"The toolbox includes three geoprocessing tools:",[12,7007,7008,7011],{},[19,7009,7010],{},"Configure API Key"," stores your Township Canada API key in the toolbox configuration. You set this once, and all subsequent tools use it automatically.",[12,7013,7014,7017,7018,7021,7022,7024],{},[19,7015,7016],{},"Search Legal Land Description"," adds a locator to the ArcGIS Pro Locate pane. Type a DLS quarter section like ",[65,7019,7020],{},"NW-36-42-3-W5"," or an NTS reference like ",[65,7023,5366],{}," into the search bar, and the locator resolves it to a point on the map. The locator supports three methods - geocode (description to coordinates), suggest (autocomplete as you type), and reverse geocode (click a map location to get the legal land description back). It works alongside Esri's default geocoders in the same search bar.",[12,7026,7027],{},[128,7028],{"alt":7029,"src":3937},"Batch convert a column of DLS or NTS legal land descriptions into a point feature class with optional boundary polygons",[12,7031,7032,7035],{},[19,7033,7034],{},"Convert Legal Land Descriptions (batch)"," takes a table or feature class with a column of legal land descriptions and converts every row. The output is a point feature class with GPS coordinates, province, and survey system attributes for each record. Optionally, the tool also generates a boundary polygon feature class - one polygon per quarter section or LSD - so you get actual parcel geometry, not just centre points.",[12,7037,7038],{},"For the pipeline company analyst with 50 well licence locations, this means: open the batch tool, point it at the spreadsheet column, run, and the result is a point layer and a polygon layer ready for buffer analysis and proximity checks. No tab-switching. No copy-paste. The entire conversion happens inside the ArcGIS Pro Geoprocessing pane.",[347,7040,7042],{"id":7041},"installation","Installation",[1863,7044,7045,7054,7064,7071],{},[244,7046,7047,7048,7050,7051],{},"Download ",[65,7049,6997],{}," from the ",[45,7052,7053],{"href":3965},"ArcGIS Marketplace",[244,7055,7056,7057,7060,7061],{},"In ArcGIS Pro, right-click ",[19,7058,7059],{},"Toolboxes"," in the Catalog pane and select ",[19,7062,7063],{},"Add Toolbox",[244,7065,7066,7067,7070],{},"Browse to the ",[65,7068,7069],{},".pyt"," file - the toolbox appears under your project toolboxes",[244,7072,7073,7074,7076,7077],{},"Run the ",[19,7075,7010],{}," tool and enter your ",[45,7078,3966],{"href":3965},[12,7080,7081,7082,7085],{},"The toolbox works with ArcGIS Pro 3.x. API plans start at $20\u002Fmonth for the Build tier (1,000 requests) and go up to $100\u002Fmonth for Scale (10,000 requests) - enough for daily batch conversion jobs. See the ",[45,7083,7084],{"href":3965},"API pricing page"," for the full breakdown.",[24,7087,7089],{"id":7088},"experience-builder-widget-legal-land-description-search-on-web-maps","Experience Builder Widget: Legal Land Description Search on Web Maps",[12,7091,7092],{},"Not every user on a team has ArcGIS Pro installed on their desktop. Field supervisors, land managers, and operations coordinators often access maps through a browser. The Experience Builder widget brings legal land description search to ArcGIS Online web maps without requiring desktop GIS software.",[12,7094,7095],{},"Add the Township Canada widget to any ArcGIS Online Experience Builder application, and it provides:",[241,7097,7098,7104,7110],{},[244,7099,7100,7103],{},[19,7101,7102],{},"Search with autocomplete",": Type a DLS or NTS description and see results appear after 300 milliseconds, narrowing with each keystroke. Select a result and the map zooms to the location.",[244,7105,7106,7109],{},[19,7107,7108],{},"Boundary polygon display",": The widget draws the quarter section or LSD boundary directly on the map - not just a pin, but the actual parcel outline. Useful for confirming a well pad sits within the correct legal subdivision.",[244,7111,7112,7115],{},[19,7113,7114],{},"Reverse geocode",": Click any point on the map and get the legal land description for that location. A pipeline integrity team checking a right-of-way can tap a location on a satellite basemap and immediately see which quarter section it falls in.",[12,7117,7118],{},"The widget is compatible with ArcGIS Online Experience Builder 1.14 and later. It connects to the same Township Canada API as the Pro toolbox - one API key covers both.",[24,7120,7122],{"id":7121},"survey123-convert-field-collected-legal-land-descriptions-automatically","Survey123: Convert Field-Collected Legal Land Descriptions Automatically",[12,7124,7125],{},"Field crews collecting data with Survey123 often enter legal land descriptions by hand - a well site LSD from a licence document, a quarter section from a lease agreement, or an NTS reference from a forestry permit. Those descriptions sit in the feature layer as text strings until someone converts them later.",[12,7127,7128],{},"The Township Canada Survey123 integration automates that conversion using a Make.com webhook pipeline. When a Survey123 submission arrives containing a legal land description, the webhook sends it to the Township Canada API, parses the GPS coordinates from the response, and updates the feature layer with latitude and longitude values - automatically, without manual intervention.",[12,7130,7131],{},"The integration includes a ready-to-use Make.com blueprint and XLSForm examples, so the setup doesn't require custom code. Configure the webhook URL in Make.com, connect your Township Canada API key, and point the output at your ArcGIS Online feature layer. From that point on, every Survey123 submission with a legal land description gets GPS coordinates appended within seconds of submission.",[12,7133,7134],{},"This is particularly valuable for environmental assessment crews, pipeline inspection teams, and well-site consultants who collect location data in the field and need it converted before it reaches the GIS team.",[24,7136,7138],{"id":7137},"real-world-example-processing-50-well-licence-locations","Real-World Example: Processing 50 Well Licence Locations",[12,7140,7141,7142,68,7144,7147],{},"An oil and gas GIS analyst at a Calgary-based producer receives a regulatory filing package from the AER containing 50 new well licence applications. Each licence lists the well location as an LSD - ",[65,7143,4724],{},[65,7145,7146],{},"14-27-048-05W5",", and so on. The analyst needs to:",[1863,7149,7150,7153,7156],{},[244,7151,7152],{},"Plot all 50 locations on a map",[244,7154,7155],{},"Generate boundary polygons to check for overlap with existing infrastructure",[244,7157,7158],{},"Export the results as a geodatabase feature class for the engineering team",[12,7160,7161,7164,7165,7168],{},[19,7162,7163],{},"Before the integration",": Export the LSD list to CSV, open the Township Canada ",[45,7166,7167],{"href":3930},"web batch converter",", upload, download the results as a Shapefile, and import back into ArcGIS Pro. Three tool switches and at least 15 minutes of file management.",[12,7170,7171,7174],{},[19,7172,7173],{},"With the integration",": Open the batch geoprocessing tool in ArcGIS Pro, select the table column containing the LSDs, check the \"Generate boundary polygons\" option, and run. The output is two feature classes - points and polygons - added directly to the current map. Ready for overlay analysis in under a minute.",[12,7176,7177,7178,7180],{},"The batch tool flags any descriptions that don't resolve (a mistyped township number, a range that doesn't exist), so the analyst can fix those specific rows rather than re-running the entire set. For larger regulatory filings involving hundreds of well locations, the same workflow scales - the ",[45,7179,4395],{"href":4394}," behind the tool handles high-volume requests on the Scale and Enterprise tiers.",[24,7182,7184],{"id":7183},"getting-started","Getting Started",[12,7186,7187],{},"The full integration - ArcGIS Pro toolbox, Experience Builder widget, and Survey123 pipeline - is available now.",[1863,7189,7190,7200,7206,7212],{},[244,7191,7192,7195,7196,7199],{},[19,7193,7194],{},"Get an API key",": Sign up at the ",[45,7197,7198],{"href":3965},"API portal",". The Build plan ($20\u002Fmonth, 1,000 requests) is enough for daily individual lookups; Scale ($100\u002Fmonth, 10,000 requests) covers batch operations.",[244,7201,7202,7205],{},[19,7203,7204],{},"Install the ArcGIS Pro toolbox",": Download from the ArcGIS Marketplace, add it to your project, and configure your API key. Your first search runs in under five minutes.",[244,7207,7208,7211],{},[19,7209,7210],{},"Add the Experience Builder widget",": Available for any ArcGIS Online Experience Builder application (version 1.14+). Drop it into your web map experience and configure the API key.",[244,7213,7214,7217],{},[19,7215,7216],{},"Set up Survey123 conversion",": Import the Make.com blueprint, connect your API key and feature layer, and test with a sample submission.",[12,7219,7220,7221,7225,7226,7230],{},"For a detailed walkthrough of the ArcGIS Pro toolbox - including installation screenshots, example outputs, and tips for migrating from ArcMap - see the ",[45,7222,7224],{"href":7223},"\u002Flearn\u002Fhow-to\u002Farcgis-pro-legal-land-description-locator","ArcGIS Pro legal land description locator guide",". If you're moving from ArcMap to ArcGIS Pro, the ",[45,7227,7229],{"href":7228},"\u002Flearn\u002Fhow-to\u002Farcmap-to-arcgis-pro-dls-migration","ArcMap migration guide"," covers what changes and how to restore your DLS lookup workflows.",[12,7232,7233],{},[128,7234],{"alt":7235,"src":3896},"Township Canada search resolving NW-36-42-3-W5 to a point and parcel polygon - the same conversion the ArcGIS Pro locator returns",[12,7237,7238,7239,7241,7242,7246],{},"Try a conversion now - enter ",[19,7240,6466],{}," into the ",[45,7243,7245],{"href":7244},"\u002F?example=LSD%2006-32-048-07W5","Township Canada search bar"," to see the same result the ArcGIS Pro locator returns: GPS coordinates, parcel boundary, and survey grid context for a 40-acre parcel near Rocky Mountain House, Alberta.",{"title":274,"searchDepth":275,"depth":275,"links":7248},[7249,7252,7253,7254,7255],{"id":6990,"depth":275,"text":6991,"children":7250},[7251],{"id":7041,"depth":498,"text":7042},{"id":7088,"depth":275,"text":7089},{"id":7121,"depth":275,"text":7122},{"id":7137,"depth":275,"text":7138},{"id":7183,"depth":275,"text":7184},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002Fb6b6299e-f51e-4d22-92bd-579c61273ae5.jpeg","2026-04-23","Township Canada now ships a native ArcGIS Pro toolbox, Experience Builder widget, and Survey123 pipeline for DLS and NTS legal land descriptions.",{},{"title":6971,"description":7258},"blog\u002Farcgis-integration-search-canadian-legal-land-descriptions",[7263,512,300,6763,301],"ArcGIS","VKLBxv_hxRi9n1ZN-mo7QxkXIAOWw1B-_ztyP6uQ2Bg",{"id":7266,"title":7267,"author":7,"body":7268,"category":4024,"cover":7653,"date":7654,"description":7655,"extension":287,"meta":7656,"navigation":289,"path":7657,"seo":7658,"stem":7659,"tags":7660,"__hash__":7662},"blog\u002Fblog\u002Fontario-lot-concession-system-gps-coordinates.md","Ontario Lot and Concession System Explained: How to Convert to GPS Coordinates",{"type":9,"value":7269,"toc":7638},[7270,7277,7280,7284,7287,7295,7299,7302,7308,7314,7320,7323,7330,7343,7347,7357,7360,7363,7367,7370,7373,7376,7383,7387,7390,7472,7475,7478,7483,7487,7490,7528,7534,7539,7543,7546,7552,7558,7564,7572,7575,7579,7583,7586,7593,7597,7600,7607,7611,7614,7618,7627],[12,7271,7272,7273,7276],{},"You're reviewing a rural property title in Dufferin County, and the legal description reads ",[19,7274,7275],{},"Lot 15, Concession 3, Township of Amaranth",". No township number. No range. No meridian reference. If you've spent your career working with Alberta or Saskatchewan land descriptions, this format is unrecognisable - because Ontario uses an entirely different survey system.",[12,7278,7279],{},"Ontario's lot and concession system predates the western Dominion Land Survey by nearly a century. It covers every rural property in the province, from farmland in the Grand River valley to mining claims in the Sudbury Basin. This guide explains how the system works, breaks down each component of an Ontario legal land description, and shows how to convert any lot-and-concession reference to GPS coordinates.",[24,7281,7283],{"id":7282},"ontarios-geographic-township-system","Ontario's Geographic Township System",[12,7285,7286],{},"Ontario was surveyed before the prairies. Starting in the 1780s, British colonial administrators divided the province into named geographic townships - Amaranth, Adjala, Thurlow, Ops, McNab - each covering roughly 100 square kilometres of territory. Unlike the numbered townships in Alberta and Saskatchewan, every Ontario township has a proper name.",[12,7288,7289,7290,7294],{},"These named townships are the foundation of every Ontario legal land description. Without the township name, a lot and concession number is meaningless - \"Lot 15, Concession 3\" could refer to parcels in hundreds of different townships across the province. The ",[45,7291,7293],{"href":7292},"\u002Flearn\u002Fsystems\u002Flots-and-concessions","lots and concessions system guide"," covers the full structure in detail.",[24,7296,7298],{"id":7297},"anatomy-of-an-ontario-legal-land-description","Anatomy of an Ontario Legal Land Description",[12,7300,7301],{},"An Ontario description has three required components:",[12,7303,7304,7307],{},[19,7305,7306],{},"Lot number"," - identifies the specific parcel within a concession. Lots are numbered sequentially from one side of the township to the other, typically running east-west. In most southern Ontario townships, each lot covers roughly 80 to 200 acres.",[12,7309,7310,7313],{},[19,7311,7312],{},"Concession number"," - identifies the strip of land within the township. Concessions are long bands running across the township, numbered outward from a baseline - usually a lake shore, river, or major road. Most townships have 7 to 14 concessions.",[12,7315,7316,7319],{},[19,7317,7318],{},"Township name"," - the named geographic township from the original Crown survey. This is the critical identifier that makes the description unique.",[12,7321,7322],{},"A complete description reads:",[117,7324,7325],{},[12,7326,7327],{},[19,7328,7329],{},"Lot 15, Concession 3, Township of Amaranth, County of Dufferin",[12,7331,7332,7333,68,7336,5057,7339,7342],{},"You'll also see abbreviated forms in documents: ",[65,7334,7335],{},"Lot 15 Con 3 Amaranth",[65,7337,7338],{},"L15 C3 Amaranth Twp",[65,7340,7341],{},"Pt Lot 15 Con III Amaranth"," (where \"Pt\" means a portion of the lot and Roman numerals sometimes appear in older records).",[24,7344,7346],{"id":7345},"real-example-lot-15-concession-3-amaranth-township","Real Example: Lot 15, Concession 3, Amaranth Township",[12,7348,141,7349,7241,7352,7356],{},[19,7350,7351],{},"Lot 15, Concession 3, Amaranth",[45,7353,7355],{"href":7354},"\u002Fontario-geographic-township-converter","Ontario Geographic Township Converter",". The result places the parcel in central Dufferin County, northwest of Orangeville.",[12,7358,7359],{},"This is rolling farmland in the Headwaters region of Ontario. A real estate agent listing a rural acreage here would find this description on the property title, in the deed history, and on the MPAC (Municipal Property Assessment Corporation) roll. A surveyor conducting a boundary survey would reference the same lot and concession against the original Crown survey plans held at the Surveyor General's office.",[12,7361,7362],{},"The description tells you the parcel is in the 3rd concession strip from Amaranth's baseline, and is the 15th lot along that strip. The concession width and lot depth vary by township, but in Amaranth a standard full lot is about 200 acres - roughly comparable to a half-section in the western DLS grid.",[24,7364,7366],{"id":7365},"how-ontarios-system-evolved-from-the-crown-land-survey","How Ontario's System Evolved from the Crown Land Survey",[12,7368,7369],{},"The lot and concession system grew out of practical necessity. After the American Revolution in the 1780s, the British government needed to settle thousands of Loyalist refugees on land in what was then Upper Canada. Surveyors worked outward from Lake Ontario and the St. Lawrence River, laying out townships as they went.",[12,7371,7372],{},"Each surveyor adapted to local terrain. In flat agricultural areas like the Grand River valley and the Holland Marsh, concession lines are straight and regular. Along the Canadian Shield - with its lakes, rock outcrops, and irregular shorelines - township boundaries and concession lines bend to follow the terrain. This is why Ontario townships are not all the same size or shape.",[12,7374,7375],{},"The surveying continued for over a century. Southern Ontario was largely complete by the 1860s. Northern Ontario townships were surveyed later, often in response to mining discoveries - the Sudbury Basin in the 1880s, the Cobalt silver rush in 1903, the Timmins gold camp in 1909. Each wave of surveying added named townships with their own internal lot-and-concession grids.",[12,7377,7378,7379,7382],{},"By contrast, the ",[45,7380,7381],{"href":3702},"Dominion Land Survey"," was designed decades later as a single, province-spanning grid - consistent from the US border to the Peace River country. Ontario's system was never intended to be uniform. It was built township by township, and the variation is permanent.",[24,7384,7386],{"id":7385},"key-differences-from-the-western-dlslsd-system","Key Differences from the Western DLS\u002FLSD System",[12,7388,7389],{},"If you work with legal land descriptions in both Ontario and the prairies, these are the differences that matter most:",[660,7391,7392,7404],{},[663,7393,7394],{},[666,7395,7396,7398,7401],{},[669,7397,5560],{},[669,7399,7400],{},"Ontario",[669,7402,7403],{},"Western DLS",[681,7405,7406,7417,7428,7439,7450,7461],{},[666,7407,7408,7411,7414],{},[686,7409,7410],{},"Township identity",[686,7412,7413],{},"Named (e.g., Amaranth)",[686,7415,7416],{},"Numbered (e.g., Township 48)",[666,7418,7419,7422,7425],{},[686,7420,7421],{},"Province-wide grid",[686,7423,7424],{},"No - each township independent",[686,7426,7427],{},"Yes - continuous grid",[666,7429,7430,7433,7436],{},[686,7431,7432],{},"Standard parcel size",[686,7434,7435],{},"~100-200 acres (varies)",[686,7437,7438],{},"160 acres (quarter section)",[666,7440,7441,7444,7447],{},[686,7442,7443],{},"Subdivision unit",[686,7445,7446],{},"Lot and concession",[686,7448,7449],{},"Section, quarter section, LSD",[666,7451,7452,7455,7458],{},[686,7453,7454],{},"Meridian reference",[686,7456,7457],{},"None required",[686,7459,7460],{},"Required (W1 through W6)",[666,7462,7463,7466,7469],{},[686,7464,7465],{},"Coverage",[686,7467,7468],{},"Ontario only",[686,7470,7471],{},"AB, SK, MB, Peace River BC",[12,7473,7474],{},"The biggest practical difference: in the DLS, a description like NE-14-032-21-W4M is globally unique without any additional context. In Ontario, you always need the township name. \"Lot 15, Concession 3\" means nothing on its own - it could be in Amaranth (Dufferin County), Adjala (Simcoe County), or dozens of other townships.",[12,7476,7477],{},"Prairie professionals moving to Ontario projects regularly trip on this. The reverse is also true: Ontario land professionals encountering DLS descriptions for the first time often don't recognise the meridian reference or the section numbering pattern.",[12,7479,7480],{},[128,7481],{"alt":7482,"src":3896},"Search an Ontario lot and concession description and view the parcel on the interactive map",[24,7484,7486],{"id":7485},"how-to-convert-ontario-lot-and-concession-to-gps-coordinates","How to Convert Ontario Lot and Concession to GPS Coordinates",[12,7488,7489],{},"Converting an Ontario description to GPS coordinates is straightforward:",[1863,7491,7492,7498,7516,7522],{},[244,7493,7494,7497],{},[19,7495,7496],{},"Collect the full description."," You need all three parts: lot number, concession number, and township name. If the source document includes the county or district, note it - it helps resolve townships with similar names.",[244,7499,7500,7503,7504,7506,7507,7509,7510,7512,7513,1031],{},[19,7501,7502],{},"Enter the description."," Go to the ",[45,7505,7355],{"href":7354}," and type the description. The converter accepts standard forms (",[65,7508,7275],{},"), abbreviations (",[65,7511,7335],{},"), and short forms (",[65,7514,7515],{},"L15 C3 Amaranth",[244,7517,7518,7521],{},[19,7519,7520],{},"Review the result."," The converter returns GPS coordinates (latitude and longitude in decimal degrees) and places the parcel on an interactive map. Pan and zoom to verify the location against roads, rivers, or landmarks you recognise.",[244,7523,7524,7527],{},[19,7525,7526],{},"Use the coordinates."," Copy the GPS coordinates for field navigation, GIS import, a title report, or an MLS listing. On Pro plans and above, satellite imagery helps you visually confirm the parcel boundaries.",[12,7529,7530,7531,7533],{},"For multiple descriptions - say, a list of 30 lots from an estate settlement or a title search across a township - the ",[45,7532,4551],{"href":4845}," processes them all at once from a CSV upload.",[12,7535,7536],{},[128,7537],{"alt":7538,"src":3937},"Batch convert a CSV of Ontario lot, concession, and township descriptions into GPS coordinates in one upload",[24,7540,7542],{"id":7541},"common-ontario-township-names-and-how-to-find-them","Common Ontario Township Names and How to Find Them",[12,7544,7545],{},"Ontario has hundreds of geographic townships. Some names you'll encounter often:",[12,7547,7548,7551],{},[19,7549,7550],{},"Southern Ontario"," (Simcoe, Dufferin, Grey, Wellington, Renfrew counties): Adjala, Amaranth, Artemesia, Innisfil, McNab, Mulmur, Oro, Osprey, Proton, Thurlow, Tyendinaga.",[12,7553,7554,7557],{},[19,7555,7556],{},"Eastern Ontario"," (Hastings, Lennox, Frontenac, Leeds, Lanark counties): Camden, Kaladar, Kennebec, Loughborough, Palmerston, Rawdon, Sidney, South Crosby, Sheffield.",[12,7559,7560,7563],{},[19,7561,7562],{},"Northern Ontario"," (Sudbury, Cochrane, Algoma, Thunder Bay districts): Capreol, Creighton, Garson, Neelon, Nickel Centre, Tisdale (Timmins), Whitney (Porcupine gold camp).",[12,7565,7566,7567,7571],{},"If you're unsure of the exact township name - common with older documents or handwritten records - try entering a partial name. Township Canada's ",[45,7568,7570],{"href":7569},"\u002Flearn\u002Fhow-to\u002Fontario-lot-concession-lookup","search tool"," suggests matches as you type, so entering \"Lot 15 Con 3 Amar\" is enough to find Amaranth.",[12,7573,7574],{},"Historical township names that changed during municipal amalgamation can cause confusion. Many townships were merged into larger municipalities in the 1990s and 2000s - Nickel Centre became part of Greater Sudbury, Ops became part of Kawartha Lakes. The geographic township name from the original survey is still the one used in legal descriptions, not the current municipality name.",[24,7576,7578],{"id":7577},"real-estate-and-surveying-use-cases","Real Estate and Surveying Use Cases",[347,7580,7582],{"id":7581},"rural-real-estate","Rural Real Estate",[12,7584,7585],{},"Every rural property transaction in Ontario touches the lot and concession system. A real estate agent listing a 100-acre farm near Shelburne needs the legal description from the title - say, Lot 22, Concession 5, Melancthon Township - to accurately represent the property. Buyers doing due diligence need GPS coordinates to confirm access roads, check zoning, and assess the land before making an offer.",[12,7587,7588,7589,60],{},"Title examiners trace ownership chains through Ontario's land registry, where records are indexed by lot, concession, and township. A severance application - splitting one lot into two parcels - requires the parent lot description and a registered plan of survey. For more on how legal land descriptions fit into property transactions, see the ",[45,7590,7592],{"href":7591},"\u002Flearn\u002Fhow-to\u002Flegal-land-description-for-real-estate","real estate guide",[347,7594,7596],{"id":7595},"land-surveying","Land Surveying",[12,7598,7599],{},"Ontario Land Surveyors (OLS) work with lot and concession descriptions on nearly every project. Boundary surveys, subdivision plans, reference plans, and right-of-way surveys all begin with the lot-and-concession description from the original Crown survey. Surveyors reference the original survey field notes - stored at the Surveyor General's Office in Peterborough - to locate original survey monuments and re-establish boundary lines.",[12,7601,7602,7603,60],{},"Converting lot-and-concession descriptions to GPS coordinates is a routine first step in survey planning: it tells the surveyor where to start field work. For more on how legal land descriptions fit into survey workflows, see the ",[45,7604,7606],{"href":7605},"\u002Flearn\u002Fhow-to\u002Flegal-land-description-for-surveying","surveying guide",[347,7608,7610],{"id":7609},"mining-exploration","Mining Exploration",[12,7612,7613],{},"Northern Ontario mining companies register claims using the geographic township system. An exploration geologist working the Sudbury Basin needs to convert claim locations - Lot 4, Concession 7, Creighton Township - to GPS coordinates for drill collar placement, ground-truthing geophysical surveys, and NI 43-101 technical reporting.",[24,7615,7617],{"id":7616},"start-converting-ontario-descriptions","Start Converting Ontario Descriptions",[12,7619,7620,7621,7623,7624,7626],{},"Enter any Ontario lot and concession description into the ",[45,7622,7355],{"href":7354}," and get GPS coordinates in seconds. Try ",[19,7625,7351],{}," to see the Dufferin County example from this guide, or type in any description from your own titles, deeds, or survey plans.",[12,7628,7629,7630,7634,7635,60],{},"For a deeper look at the system structure, read the ",[45,7631,7633],{"href":7632},"\u002Flearn\u002Fprovinces\u002Fontario","Ontario province guide",". For the technical details of how lots and concessions are organized within each township, see ",[45,7636,7637],{"href":7292},"Ontario Lots and Concessions Explained",{"title":274,"searchDepth":275,"depth":275,"links":7639},[7640,7641,7642,7643,7644,7645,7646,7647,7652],{"id":7282,"depth":275,"text":7283},{"id":7297,"depth":275,"text":7298},{"id":7345,"depth":275,"text":7346},{"id":7365,"depth":275,"text":7366},{"id":7385,"depth":275,"text":7386},{"id":7485,"depth":275,"text":7486},{"id":7541,"depth":275,"text":7542},{"id":7577,"depth":275,"text":7578,"children":7648},[7649,7650,7651],{"id":7581,"depth":498,"text":7582},{"id":7595,"depth":498,"text":7596},{"id":7609,"depth":498,"text":7610},{"id":7616,"depth":275,"text":7617},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002Ff49a6c0b-d3c9-4ebe-828a-ce3f6367e7c3.jpeg","2026-04-22","How Ontario's lot and concession system works, how it differs from the western DLS grid, and how to convert lot-concession-township descriptions to GPS.",{},"\u002Fblog\u002Fontario-lot-concession-system-gps-coordinates",{"title":7267,"description":7655},"blog\u002Fontario-lot-concession-system-gps-coordinates",[7400,7661,4291,511],"Lot and Concession","Lx-4lle8a1IJjXgGWCK7Hk6DlaeAvqkT3kvcJHJUPGQ",{"id":7664,"title":7665,"author":7,"body":7666,"category":503,"cover":7965,"date":7966,"description":7967,"extension":287,"meta":7968,"navigation":289,"path":7969,"seo":7970,"stem":7971,"tags":7972,"__hash__":7973},"blog\u002Fblog\u002Farcgis-pro-migration-legal-land-descriptions.md","ArcGIS Pro Migration: Working with Legal Land Descriptions After ArcMap",{"type":9,"value":7667,"toc":7950},[7668,7671,7677,7680,7684,7687,7694,7697,7701,7705,7711,7714,7718,7721,7725,7739,7742,7747,7751,7761,7775,7781,7784,7788,7827,7830,7835,7839,7845,7848,7869,7872,7878,7882,7885,7892,7896,7899,7906,7912,7916,7922,7928,7932,7938,7941],[12,7669,7670],{},"Your ArcMap project had a custom DLS locator. It batch-geocoded well inventories, resolved quarter sections from the search bar, and sat behind half the map products your team delivered. Then Esri retired ArcMap in March 2026, and you opened ArcGIS Pro to find that none of it works.",[12,7672,368,7673,7676],{},[65,7674,7675],{},".loc"," file won't import. The Locate pane doesn't recognize DLS notation. A search for \"NE 14-032-21W4\" returns nothing - not an error, just silence. Your legal land description workflows didn't migrate. They disappeared.",[12,7678,7679],{},"This is happening right now at O&G companies, survey firms, and provincial agencies across Western Canada. ArcMap's retirement isn't a future event - it's a current one, and the gap it leaves in Canadian GIS workflows is wider than most teams expected.",[24,7681,7683],{"id":7682},"what-retired-support-means-for-your-dls-workflows","What \"Retired Support\" Means for Your DLS Workflows",[12,7685,7686],{},"Esri moved ArcMap to \"retired\" status on March 1, 2026. No more patches, no security updates, no technical support. Existing installations still run, but any organisation with an IT policy around supported software is on a deadline to migrate.",[12,7688,7689,7690,7693],{},"The migration itself is technically straightforward for most workflows. ArcGIS Pro imports ",[65,7691,7692],{},".mxd"," projects, preserves layer symbology, and handles most geoprocessing tools without issue. But DLS and NTS legal land descriptions fall through the cracks - ArcGIS Pro has never supported them natively, and Esri has confirmed there are no plans to add support, even with the NATRF2022 datum update in version 3.7.",[12,7695,7696],{},"If your ArcMap workflow depended on Canadian legal land descriptions at any point - search, geocoding, batch conversion - you have a gap to fill.",[24,7698,7700],{"id":7699},"three-things-that-break-after-migration","Three Things That Break After Migration",[347,7702,7704],{"id":7703},"custom-dls-locators","Custom DLS Locators",[12,7706,7707,7708,7710],{},"ArcMap users who built composite address locators for DLS conversion will find those ",[65,7709,7675],{}," files incompatible with ArcGIS Pro. The locator format changed in ArcGIS Pro 2.x and the old files simply don't load. You'll see a \"locator is not compatible\" error, and there's no conversion path.",[12,7712,7713],{},"This affects any team that invested time building a DLS-aware locator - and there are a lot of them. It was one of the most common workarounds for ArcMap's lack of native DLS support.",[347,7715,7717],{"id":7716},"batch-geocoding-tables","Batch Geocoding Tables",[12,7719,7720],{},"If your ArcMap project batch-geocoded a table of DLS or LSD descriptions - common for well inventories, pipeline crossing lists, and mineral rights spreadsheets - that workflow fails at two points. The locator file won't import, and ArcGIS Pro's built-in geocoders don't recognize DLS notation as a valid address type. The source data is intact; you just can't re-geocode it.",[347,7722,7724],{"id":7723},"silent-search-failures","Silent Search Failures",[12,7726,7727,7728,7730,7731,7734,7735,7738],{},"When you open a migrated ",[65,7729,7692],{}," in ArcGIS Pro, it converts to an ",[65,7732,7733],{},".aprx"," project. Layers and symbology survive. But anything that depended on a DLS locator stops working without warning. Type ",[65,7736,7737],{},"SW-25-24-1-W5"," into the Locate pane - nothing comes back. No error message, just empty results.",[12,7740,7741],{},"For teams that relied on search-bar lookups for daily tasks like verifying well locations or checking quarter section boundaries, this is the most disorienting part of the migration.",[12,7743,7744],{},[128,7745],{"alt":7746,"src":3896},"Township Canada resolves DLS, LSD, and NTS legal land descriptions to coordinates and parcel polygons - the same engine the ArcGIS Pro toolbox calls",[24,7748,7750],{"id":7749},"restoring-dls-and-nts-search-in-arcgis-pro","Restoring DLS and NTS Search in ArcGIS Pro",[12,7752,7753,7754,7757,7758,7760],{},"Township Canada ships an ",[45,7755,7756],{"href":7223},"ArcGIS Pro Python toolbox"," that restores - and improves on - the DLS and NTS functionality that ArcMap users lost. The toolbox (",[65,7759,6997],{},") installs as a standard ArcGIS Pro toolbox and adds two core capabilities:",[12,7762,7763,7766,7767,68,7769,68,7771,7774],{},[19,7764,7765],{},"Search bar locator."," Type any DLS or NTS legal land description into the ArcGIS Pro Locate pane - ",[65,7768,6466],{},[65,7770,4044],{},[65,7772,7773],{},"NTS 093P09"," - and it resolves to GPS coordinates and zooms the map to the parcel. This replaces the custom locator files that ArcMap users built and maintained.",[12,7776,7777,7780],{},[19,7778,7779],{},"Batch geoprocessing tool."," Point the tool at a table column containing legal land descriptions, and it converts every row to a point feature class with coordinates, province, and survey system as attributes. Optionally, it generates boundary polygons - one per quarter section or LSD - so you get actual parcel geometry, not just centre points.",[12,7782,7783],{},"The toolbox handles DLS, LSD, NTS, and FPS grid references in the same batch run. No need to separate files by survey system before processing.",[24,7785,7787],{"id":7786},"installation-five-minutes-to-a-working-locator","Installation: Five Minutes to a Working Locator",[1863,7789,7790,7799,7806,7821],{},[244,7791,7792,7795,7796,7798],{},[19,7793,7794],{},"Get a Township Canada API key."," Sign up at the ",[45,7797,7198],{"href":3965},". The Build plan starts at $20\u002Fmonth for 1,000 requests. The Scale plan at $100\u002Fmonth covers 10,000 - enough for most batch jobs.",[244,7800,7801,7805],{},[19,7802,7047,7803],{},[65,7804,6997],{}," from the ArcGIS Marketplace.",[244,7807,7808,7811,7812,7814,7815,7817,7818,7820],{},[19,7809,7810],{},"Add the toolbox."," In ArcGIS Pro, open the Catalog pane, right-click ",[19,7813,7059],{},", select ",[19,7816,7063],{},", and browse to the ",[65,7819,7069],{}," file. It appears immediately - no restart required.",[244,7822,7823,7826],{},[19,7824,7825],{},"Configure your API key."," Enter the key in the toolbox properties. It persists across sessions in your ArcGIS Pro project settings.",[12,7828,7829],{},"After configuration, the Township Canada locator appears in the Locate pane alongside Esri's default geocoders. The batch tool is available in the Geoprocessing pane under the Township Canada toolbox.",[12,7831,7832],{},[128,7833],{"alt":7834,"src":3937},"Batch-convert 400 LSDs from a geodatabase column into point and polygon feature classes ready for ArcGIS Pro",[24,7836,7838],{"id":7837},"real-example-migrating-a-400-well-inventory","Real Example: Migrating a 400-Well Inventory",[12,7840,7841,7842,7844],{},"A land technician at a mid-size E&P company has an ArcMap project with 400 well locations stored as LSD descriptions in a file geodatabase table. The geocoded results layer breaks after migration because the old ",[65,7843,7675],{}," locator isn't recognized by ArcGIS Pro.",[12,7846,7847],{},"The fix:",[1863,7849,7850,7853,7860,7863,7866],{},[244,7851,7852],{},"Open the geodatabase table in ArcGIS Pro (the data imports cleanly - the table isn't the problem)",[244,7854,7855,7856,7859],{},"Run ",[19,7857,7858],{},"Township Canada Batch Convert"," from the Geoprocessing pane",[244,7861,7862],{},"Select the LSD column as the input field",[244,7864,7865],{},"Set the output location in the geodatabase",[244,7867,7868],{},"Run the tool",[12,7870,7871],{},"Output: a point feature class with all 400 wells plotted by GPS coordinates, plus a second polygon feature class with the LSD boundaries. Each feature carries the original legal land description, latitude, longitude, province, and survey system as attributes.",[12,7873,7874,7875,7877],{},"That's the kind of job that used to require rebuilding a custom locator, verifying it against test data, and hoping the ",[65,7876,7692],{}," conversion hadn't dropped any table joins. With the toolbox, it's a five-minute geoprocessing step.",[24,7879,7881],{"id":7880},"reverse-geocoding-gps-coordinates-back-to-dls","Reverse Geocoding: GPS Coordinates Back to DLS",[12,7883,7884],{},"ArcMap users who did field-to-office workflows - collecting GPS coordinates in the field, then determining the DLS description for regulatory filings - can replicate this in ArcGIS Pro through the Township Canada API's reverse geocode. Pass latitude and longitude, get back the legal land description for that location.",[12,7886,7887,7888,7891],{},"This matters for AER well licence applications, where the filing requires the LSD notation even though the field crew collected coordinates with a GPS receiver. The ",[45,7889,7890],{"href":7223},"ArcGIS Pro locator guide"," covers the reverse geocoding setup.",[24,7893,7895],{"id":7894},"beyond-desktop-arcgis-online-and-field-teams","Beyond Desktop: ArcGIS Online and Field Teams",[12,7897,7898],{},"Not every migration target is ArcGIS Pro desktop. Some teams are moving map-based workflows to ArcGIS Online - especially field operations that need browser or tablet access.",[12,7900,7901,7902,7905],{},"Township Canada includes an ",[19,7903,7904],{},"Experience Builder widget"," for ArcGIS Online that adds legal land description search with autocomplete to any web map experience. A pipeline integrity crew checking well locations on a tablet can type an LSD and see it highlighted on the satellite basemap. There's also a Survey123 integration: when a field worker enters a DLS description in a Survey123 form, the integration auto-converts it to GPS coordinates and updates the feature layer.",[12,7907,7908,7909,60],{},"For a full comparison of desktop vs. web capabilities, see ",[45,7910,7911],{"href":433},"ArcGIS Doesn't Support Canadian Legal Land Descriptions - Here's What GIS Professionals Use Instead",[24,7913,7915],{"id":7914},"handling-the-transition-period","Handling the Transition Period",[12,7917,7918,7919,7921],{},"Some organisations are running ArcMap and ArcGIS Pro in parallel during the transition. The Township Canada toolbox works independently of any ArcMap configuration - it doesn't need the old ",[65,7920,7675],{}," files and won't conflict with existing setups. You can test it on a copy of your production project before committing to the full switch.",[12,7923,7924,7925,7927],{},"For teams that need batch results in formats beyond geodatabase feature classes - CSV, KML, GeoJSON, or Shapefile - the Township Canada ",[45,7926,4551],{"href":3930}," handles those exports through the web interface.",[24,7929,7931],{"id":7930},"getting-your-team-moved-over","Getting Your Team Moved Over",[12,7933,368,7934,7937],{},[45,7935,7936],{"href":7228},"ArcMap to ArcGIS Pro migration guide"," walks through the full process: what breaks, what carries over, and the exact steps to restore legal land description search and batch geocoding in ArcGIS Pro.",[12,7939,7940],{},"ArcMap served Canadian GIS professionals well for two decades. ArcGIS Pro is a better platform in most respects - faster rendering, 3D support, better project management. The one thing it doesn't do is recognize DLS and NTS legal land descriptions. The Township Canada toolbox fixes that, and it takes five minutes to install.",[12,7942,7943,7946,7947,7949],{},[45,7944,7945],{"href":4740},"Try it now"," - enter ",[65,7948,6466],{}," to see the coordinates and boundary polygon the ArcGIS Pro locator returns for a 40-acre parcel near Rocky Mountain House, Alberta.",{"title":274,"searchDepth":275,"depth":275,"links":7951},[7952,7953,7958,7959,7960,7961,7962,7963,7964],{"id":7682,"depth":275,"text":7683},{"id":7699,"depth":275,"text":7700,"children":7954},[7955,7956,7957],{"id":7703,"depth":498,"text":7704},{"id":7716,"depth":498,"text":7717},{"id":7723,"depth":498,"text":7724},{"id":7749,"depth":275,"text":7750},{"id":7786,"depth":275,"text":7787},{"id":7837,"depth":275,"text":7838},{"id":7880,"depth":275,"text":7881},{"id":7894,"depth":275,"text":7895},{"id":7914,"depth":275,"text":7915},{"id":7930,"depth":275,"text":7931},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002F4e27243b-f771-4633-97ac-16be2b0a22de.jpeg","2026-04-20","ArcMap retired March 2026. Here's how to restore DLS and NTS legal land description search and batch geocoding in ArcGIS Pro.",{},"\u002Fblog\u002Farcgis-pro-migration-legal-land-descriptions",{"title":7665,"description":7967},"blog\u002Farcgis-pro-migration-legal-land-descriptions",[512,7263,300,511],"wu6PAgedTV36Qr-Uqu6LH5YRQnAnJC0rAJ7HUE9xarU",{"id":7975,"title":7976,"author":7,"body":7977,"category":4024,"cover":8218,"date":7966,"description":8219,"extension":287,"meta":8220,"navigation":289,"path":4270,"seo":8221,"stem":8222,"tags":8223,"__hash__":8225},"blog\u002Fblog\u002Frural-property-legal-land-description-map.md","Rural Properties Don't Have Street Addresses. Here's How to Find Them on a Map.",{"type":9,"value":7978,"toc":8206},[7979,7986,7989,7993,7999,8002,8005,8009,8019,8025,8054,8057,8060,8065,8069,8073,8087,8091,8094,8099,8103,8111,8114,8118,8132,8138,8141,8152,8156,8159,8162,8165,8172,8177,8181,8184,8187,8200],[12,7980,7981,7982,7985],{},"A buyer from Edmonton calls about a quarter section near Innisfail. The listing says ",[19,7983,7984],{},"NW 27-039-04W5"," - no street address, no postal code, no Google pin. The buyer wants to drive out Saturday and see the land. How do you tell them where to go?",[12,7987,7988],{},"This is the daily reality of rural real estate in Alberta and Saskatchewan. Every rural property legal land description in Alberta refers to a survey grid that predates roads, towns, and postal codes by over a century. If you sell, appraise, or buy rural land, you need to know how to turn that description into a location you can actually find on a map.",[24,7990,7992],{"id":7991},"why-rural-properties-dont-have-street-addresses","Why Rural Properties Don't Have Street Addresses",[12,7994,7995,7996,7998],{},"Western Canada was surveyed under the ",[45,7997,1484],{"href":3702}," system starting in 1871 - decades before most prairie roads existed. Survey crews working out of Winnipeg divided the landscape into a precise grid of townships, sections, and quarter sections, staking iron monuments across millions of acres of open prairie. Settlers received their land grants by grid reference. Roads and municipal addresses came later, and only for properties with direct road access.",[12,8000,8001],{},"A quarter section of farmland two kilometres off the nearest range road has no civic address. The legal land description on the certificate of title is the only identifier that the land registry, the mortgage lender, and the MLS listing all agree on.",[12,8003,8004],{},"That grid is still the official land registration system today. Alberta Land Titles, Saskatchewan's ISC, and Manitoba's Land Titles Office all identify parcels by their DLS description - not by a street number. When a rural property changes hands, the Transfer of Land document references the legal land description exactly as it appears on the current title.",[24,8006,8008],{"id":8007},"reading-a-legal-land-description-on-a-title","Reading a Legal Land Description on a Title",[12,8010,8011,8012,8015,8016,60],{},"A rural property legal land description follows the pattern: ",[19,8013,8014],{},"Quarter – Section – Township – Range – Meridian",". For a detailed breakdown of every component, see ",[45,8017,8018],{"href":4048},"How to Read a Legal Land Description on a Rural Title",[12,8020,8021,8022,8024],{},"Take ",[19,8023,7984],{}," from that Innisfail listing:",[241,8026,8027,8032,8038,8044,8049],{},[244,8028,8029,8031],{},[19,8030,3762],{}," - Northwest quarter (160 acres, the upper-left portion of the section)",[244,8033,8034,8037],{},[19,8035,8036],{},"27"," - Section 27 within the township",[244,8039,8040,8043],{},[19,8041,8042],{},"039"," - Township 39 (roughly 39 rows of 6-mile blocks north of the US border)",[244,8045,8046,8048],{},[19,8047,5097],{}," - Range 4 (four columns west of the 5th Meridian)",[244,8050,8051,8053],{},[19,8052,4704],{}," - West of the 5th Meridian (the reference line running through central Alberta near Red Deer)",[12,8055,8056],{},"That places the property in the rolling foothills west of Red Deer - cattle ranching and mixed farming country, about 160 acres of land.",[12,8058,8059],{},"The meridian is the most consequential piece. W4 covers eastern Alberta along the Saskatchewan border. W5 covers central Alberta. W6 covers the far west near BC. Getting the meridian wrong shifts the location by hundreds of kilometres. A transposed range number - Range 04 instead of Range 40 - does the same.",[12,8061,8062,8063,60],{},"For the full structure of how townships, ranges, and sections fit together, see the ",[45,8064,5124],{"href":3702},[24,8066,8068],{"id":8067},"how-to-convert-a-legal-land-description-to-a-map-location","How to Convert a Legal Land Description to a Map Location",[347,8070,8072],{"id":8071},"step-1-paste-the-description","Step 1: Paste the Description",[12,8074,895,8075,8077,8078,68,8080,5057,8083,8086],{},[45,8076,7],{"href":4740}," and type or paste the legal land description from the title or listing. The converter accepts multiple formats - ",[65,8079,7984],{},[65,8081,8082],{},"NW-27-39-4-W5",[65,8084,8085],{},"Sec 27 Twp 39 Rge 4 W5M"," all work.",[347,8088,8090],{"id":8089},"step-2-confirm-the-location","Step 2: Confirm the Location",[12,8092,8093],{},"The result shows GPS coordinates for the centre of the parcel, the survey grid overlaid on the map, and the parcel boundary. Switch to satellite view to check terrain, access roads, and what's actually on the ground - cropland, pasture, buildings, tree cover.",[12,8095,8096],{},[128,8097],{"alt":8098,"src":3896},"Township Canada search interface showing a converted legal land description",[347,8100,8102],{"id":8101},"step-3-share-the-pin-with-your-buyer","Step 3: Share the Pin with Your Buyer",[12,8104,8105,8106,8110],{},"Copy the GPS coordinates or share the map link directly. Your buyer can load it into any navigation app and get ",[45,8107,8109],{"href":8108},"\u002Fguides\u002Fdirections","turn-by-turn directions"," to the property. If they're driving from Calgary, they'll know the exact turnoff from the highway onto the range road.",[12,8112,8113],{},"Title description to map pin, under a minute.",[24,8115,8117],{"id":8116},"quarter-section-vs-lsd-in-acreage-listings","Quarter Section vs. LSD in Acreage Listings",[12,8119,8120,8121,8124,8125,178,8128,8131],{},"Most rural listings in ",[45,8122,2779],{"href":8123},"\u002Flearn\u002Fprovinces\u002Falberta"," reference quarter sections - 160-acre parcels identified by NE, NW, SE, or SW. A standard half-section grain farm shows up as two quarter sections on the title: ",[19,8126,8127],{},"NE 22-040-27W4",[19,8129,8130],{},"SE 22-040-27W4",", for example. That's 320 acres near Sylvan Lake.",[12,8133,8134,8135,8137],{},"But smaller acreages - a 10-acre farmstead, a rural residential lot - sometimes reference a Legal Subdivision (LSD). An LSD is 40 acres, and four of them make up one quarter section. If the listing description starts with a two-digit number like ",[19,8136,4724],{}," instead of a quarter designation (NE, NW, SE, SW), you're looking at an LSD.",[12,8139,8140],{},"The distinction directly affects listing price. A quarter section is four times the land area of an LSD. Mixing them up in a comparable sale analysis means comparing 160-acre parcels to 40-acre parcels. That error compounds when you're calculating per-acre values in a market where Alberta farmland is appreciating at double digits.",[12,8142,8143,8144,8146,8147,8151],{},"Use the ",[45,8145,1577],{"href":6636}," for quarter-level lookups, or the ",[45,8148,8150],{"href":8149},"\u002Flearn\u002Fhow-to\u002Flsd-finder","LSD finder"," for 40-acre precision.",[24,8153,8155],{"id":8154},"explaining-the-dls-system-to-urban-buyers","Explaining the DLS System to Urban Buyers",[12,8157,8158],{},"Most buyers from Calgary or Edmonton have never encountered a legal land description before. Here's the analogy that works:",[12,8160,8161],{},"Think of the DLS grid like a city block system, scaled up to prairie scale. In Calgary, you navigate by street and avenue numbers - \"the building at 4th Street and 17th Avenue.\" On the prairies, you navigate by range and township numbers - \"the quarter at Range 4, Township 39.\" The quarter designation (NW, NE, SW, SE) is like specifying which corner of the intersection you mean.",[12,8163,8164],{},"The meridian tells you which grid you're on - like specifying \"downtown\" versus \"the west end.\" W4 is eastern Alberta. W5 is central Alberta. W6 is the western edge near the mountains.",[12,8166,8167,8168,8171],{},"Once buyers see two or three descriptions plotted on a map, the system clicks. Share the ",[45,8169,8170],{"href":4740},"Township Canada converter"," link and let them type in the description from any listing they're evaluating. It's faster than explaining the notation in an email.",[12,8173,8174],{},[128,8175],{"alt":8176,"src":131},"Interactive map with DLS grid overlay",[24,8178,8180],{"id":8179},"spring-2026-why-getting-the-legal-description-right-matters-now","Spring 2026: Why Getting the Legal Description Right Matters Now",[12,8182,8183],{},"FCC's latest Farmland Values Report shows Alberta farmland up 10.3% and Saskatchewan up 13.1% year-over-year. In a market where quarter sections are selling at record prices, every transaction depends on the rural property legal land description in Alberta being correct - from the initial listing through to the registered title transfer.",[12,8185,8186],{},"A wrong township number on a comparable sale doesn't just produce a bad map pin. It produces a bad valuation. And in a competitive spring market with multiple offers, a delayed closing because of a description error costs everyone time and money.",[12,8188,8189,8190,8192,8193,8195,8196,8199],{},"Agents and appraisers who can verify a legal description against a map in under a minute work faster and make fewer errors. For a single property, the ",[45,8191,8170],{"href":4740}," handles it instantly. For a portfolio of rural listings or a comparable sales database, the ",[45,8194,4551],{"href":4389}," on a ",[45,8197,8198],{"href":2964},"Business plan"," processes hundreds of descriptions at once.",[12,8201,8202,8203,60],{},"For a deeper walkthrough of real estate workflows - listing preparation, title verification, multi-parcel showings - see the ",[45,8204,8205],{"href":7591},"real estate how-to guide",{"title":274,"searchDepth":275,"depth":275,"links":8207},[8208,8209,8210,8215,8216,8217],{"id":7991,"depth":275,"text":7992},{"id":8007,"depth":275,"text":8008},{"id":8067,"depth":275,"text":8068,"children":8211},[8212,8213,8214],{"id":8071,"depth":498,"text":8072},{"id":8089,"depth":498,"text":8090},{"id":8101,"depth":498,"text":8102},{"id":8116,"depth":275,"text":8117},{"id":8154,"depth":275,"text":8155},{"id":8179,"depth":275,"text":8180},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002Ff76074ac-c008-43d3-b759-579582fb130b.jpeg","Rural property legal land description Alberta guide. Convert a quarter section from a title to GPS coordinates and a map pin in under a minute.",{},{"title":7976,"description":8219},"blog\u002Frural-property-legal-land-description-map",[4291,2779,4032,8224],"Rural Property","JcmYkdDZF8OZZz5Brxf4jQ4VAGt5dQLTCvmnhGM1CCY",{"id":8227,"title":8228,"author":7,"body":8229,"category":503,"cover":8427,"date":8428,"description":8429,"extension":287,"meta":8430,"navigation":289,"path":8431,"seo":8432,"stem":8433,"tags":8434,"__hash__":8437},"blog\u002Fblog\u002Fsurface-lease-legal-land-descriptions-aer-filings.md","Surface Lease Legal Land Descriptions: What Alberta Landmen Need to Know Before AER Filings",{"type":9,"value":8230,"toc":8419},[8231,8234,8237,8241,8244,8247,8274,8279,8282,8288,8292,8295,8298,8312,8315,8323,8327,8330,8340,8345,8351,8355,8358,8366,8371,8377,8383,8387,8390,8393,8396,8403,8407,8410,8416],[12,8232,8233],{},"The AER application comes back with a location discrepancy. The operator has a signed Surface Lease Agreement for LSD 06-32-048-07W5, but the IAR submission lists it as LSD 07-32-048-07W5. Different 40-acre parcel, different landowner. The agreement is void, and the entire negotiation starts over.",[12,8235,8236],{},"This is the kind of error that doesn't feel possible until it happens on your file. Surface lease legal land descriptions sit at the junction of property law, regulatory compliance, and field operations. A one-number difference in an LSD reference isn't a typo the AER will overlook - it's a filing error that stops the project.",[24,8238,8240],{"id":8239},"what-a-surface-lease-legal-land-description-identifies","What a Surface Lease Legal Land Description Identifies",[12,8242,8243],{},"A surface lease in Alberta gives an energy company the right to occupy and use a defined parcel of land - a well site, pipeline corridor, compressor station, or battery facility. The legal land description in the agreement is the geographic reference that everything else depends on. It defines which landowner has rights, what obligations the operator has under the Surface Rights Act, and what the AER's regulatory record will show for that facility.",[12,8245,8246],{},"Alberta surface leases use the Dominion Land Survey (DLS) system. A full surface lease legal land description identifies:",[241,8248,8249,8254,8259,8264,8269],{},[244,8250,8251,8253],{},[19,8252,4660],{},": Legal Subdivision, numbered 1–16 within each section - a ~40-acre parcel",[244,8255,8256,8258],{},[19,8257,3724],{},": 1–36 within a township",[244,8260,8261,8263],{},[19,8262,3730],{},": numbered sequentially north from the US border",[244,8265,8266,8268],{},[19,8267,4691],{},": numbered east from the relevant meridian",[244,8270,8271,8273],{},[19,8272,3736],{},": W4 (eastern Alberta), W5 (central and west-central Alberta), or W6 (western Alberta near the BC border)",[12,8275,8276,8278],{},[19,8277,5460],{}," reads as: Legal Subdivision 14, Section 27, Township 48, Range 5, West of the 5th Meridian - a specific 40-acre parcel near Drayton Valley. That description is the legal address of the surface rights agreement. No other parcel shares it.",[12,8280,8281],{},"For projects involving a larger footprint - a battery facility spanning multiple LSDs, or a pipeline right-of-way through several sections - the surface lease legal land description lists each affected parcel separately. Each one needs to be correct.",[12,8283,8284,8285,60],{},"For a full breakdown of how the DLS grid is structured, see the ",[45,8286,8287],{"href":5123},"Dominion Land Survey system guide",[24,8289,8291],{"id":8290},"what-the-aer-validates","What the AER Validates",[12,8293,8294],{},"Surface lease applications submitted through the AER's Integrated Application Registry are cross-checked against the AER's spatial database. The AER validates that the legal land description in your submission corresponds to an actual DLS parcel and that it matches the location information in related applications - particularly the associated well licence.",[12,8296,8297],{},"Applications get held or rejected when the surface lease legal land description:",[241,8299,8300,8303,8306,8309],{},[244,8301,8302],{},"Doesn't match a valid DLS parcel in the AER's database",[244,8304,8305],{},"Conflicts with the surface location on the concurrent well licence",[244,8307,8308],{},"References a section or LSD that doesn't exist in that township-range combination",[244,8310,8311],{},"Doesn't align with the location described in the executed Surface Lease Agreement",[12,8313,8314],{},"That third scenario is more common than expected. Not every section number is valid in every township - sections at range edges and near the US border follow different patterns. A section-range combination that looks right on paper may not exist in the DLS grid.",[12,8316,8317,8318,8322],{},"For context on how well licence legal land descriptions work in the same AER ecosystem, the post on ",[45,8319,8321],{"href":8320},"\u002Fblog\u002Falberta-well-licence-legal-land-description","Alberta well licence legal land descriptions"," covers the UWI format and how surface locations are encoded there.",[24,8324,8326],{"id":8325},"where-errors-enter-the-process","Where Errors Enter the Process",[12,8328,8329],{},"A surface lease legal land description typically passes through several hands between the geoscience team identifying the well location and the regulatory coordinator submitting the IAR application. Field geologists, land negotiators, administrative staff, and regulatory specialists each touch the file. Every handoff is an opportunity for transcription errors.",[12,8331,8332,8335,8336,60],{},[19,8333,8334],{},"Transposed LSD numbers"," are the most frequent problem. LSD 06 and LSD 07 look nearly identical in a document stack. LSD 09 and LSD 06 are easy to reverse when you're copying from a handwritten note. The numbering pattern within a section runs in a boustrophedon (back-and-forth) sequence starting from the southeast corner - so numerically adjacent LSDs aren't necessarily physically adjacent on the ground, and non-adjacent LSDs can be right next to each other. For a detailed explanation of how LSDs are numbered within a section, see ",[45,8337,8339],{"href":8338},"\u002Fguides\u002Fwhat-is-lsd-land-description","what LSD stands for in land descriptions",[12,8341,8342,8344],{},[19,8343,4223],{}," are less frequent but more consequential. LSD 14-27-048-05W4 and LSD 14-27-048-05W5 differ by a single character - W4 versus W5 - but describe parcels more than 250 kilometres apart. W4 puts you near Camrose, W5 puts you near Drayton Valley. If the well licence was filed with W5 and the surface lease with W4, the AER's cross-validation will flag the mismatch before the application clears first review.",[12,8346,8347,8350],{},[19,8348,8349],{},"Re-keyed historical data"," introduces a different category of error. A surface lease originally executed in 1992 may use older notation conventions, and when that location gets re-entered into a modern IAR submission, the numbers can shift. Reviewing the original document against the digital submission before filing catches these discrepancies.",[24,8352,8354],{"id":8353},"verifying-before-the-filing-goes-in","Verifying Before the Filing Goes In",[12,8356,8357],{},"The most direct check is converting every surface lease legal land description to GPS coordinates and confirming those coordinates land inside the project area on a map.",[12,8359,8360,8361,8365],{},"Enter the LSD into ",[45,8362,8364],{"href":8363},"\u002Falberta-legal-land-converter","Township Canada's Alberta legal land converter",". The result shows the GPS centre point and the parcel boundary on a satellite map. Cross-reference that against the well licence location, the landowner's title, and your internal project map. If they all agree, the description is correct.",[12,8367,8368],{},[128,8369],{"alt":8370,"src":3896},"Township Canada converts an LSD to GPS coordinates and shows the parcel boundary on the map",[12,8372,8373,8374,8376],{},"For applications involving multiple parcels - a right-of-way crossing a dozen sections, or a battery pad with four LSDs - run the full list through the ",[45,8375,1543],{"href":3930},". Export the results as KML, load into Google Earth, and walk the route visually. Location errors stand out immediately against satellite imagery.",[12,8378,368,8379,8382],{},[45,8380,6913],{"href":8381},"\u002Flsd-converter"," is also useful when a landowner is disputing which parcel is subject to the agreement. Converting both the operator's LSD and the parcel the landowner believes was negotiated gives you a visual comparison - the parcels either match or they don't, and you have a printable map to discuss.",[24,8384,8386],{"id":8385},"matching-the-sla-to-the-iar","Matching the SLA to the IAR",[12,8388,8389],{},"One check that gets skipped under deadline pressure: confirming that the legal land description in the executed Surface Lease Agreement exactly matches what's being entered in the IAR submission.",[12,8391,8392],{},"The SLA is the governing document. If the SLA says LSD 06-32-048-07W5 and the IAR submission says LSD 07-32-048-07W5, the regulatory record doesn't match the contract. Even if the AER accepts the filing, the operator holds a surface lease for land they didn't negotiate access to. That's a problem at surface rights court, at renewal, and at abandonment.",[12,8394,8395],{},"Print both documents side by side and verify the LSD, section, township, range, and meridian match character for character. Then convert both to GPS coordinates and confirm they return the same point. The conversion takes 30 seconds and removes any ambiguity about what \"this parcel\" means in the agreement.",[12,8397,8398,8399,60],{},"For a broader view of how legal land descriptions flow through O&G regulatory workflows - from well licence application through surface access to abandonment - see the ",[45,8400,8402],{"href":8401},"\u002Flearn\u002Fhow-to\u002Flegal-land-description-for-oil-and-gas","legal land descriptions for oil and gas guide",[24,8404,8406],{"id":8405},"before-the-deadline","Before the Deadline",[12,8408,8409],{},"A surface lease rejected at IAR review means rescheduling field work, reopening negotiations with the landowner, and explaining the delay to operations. None of that is necessary if the legal land descriptions were verified before submission.",[12,8411,8412,8413,8415],{},"Township Canada covers every DLS parcel in Alberta, Saskatchewan, and Manitoba. You can look up any surface lease legal land description, confirm the GPS coordinates, and see the parcel boundary against satellite imagery - individually or in bulk. If your team is managing a large application package, the ",[45,8414,1543],{"href":3930}," can process the entire location list at once and flag any descriptions that don't resolve to a valid parcel.",[12,8417,8418],{},"Three minutes of verification before filing beats three weeks of re-work after rejection.",{"title":274,"searchDepth":275,"depth":275,"links":8420},[8421,8422,8423,8424,8425,8426],{"id":8239,"depth":275,"text":8240},{"id":8290,"depth":275,"text":8291},{"id":8325,"depth":275,"text":8326},{"id":8353,"depth":275,"text":8354},{"id":8385,"depth":275,"text":8386},{"id":8405,"depth":275,"text":8406},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002F694e9db0-1bd7-49ab-ac5d-810ca8a6a30d.jpeg","2026-04-19","AER surface lease filings require precise legal land descriptions. Learn what gets applications rejected and how to verify your LSD references before submitting.",{},"\u002Fblog\u002Fsurface-lease-legal-land-descriptions-aer-filings",{"title":8228,"description":8429},"blog\u002Fsurface-lease-legal-land-descriptions-aer-filings",[4988,2779,1461,8435,8436],"Surface Lease","Land Administration","1u3Yg8CxBzDX7mzlVax1XHal2W3oaHJyhs2Gqhu11TY",{"id":8439,"title":8440,"author":7,"body":8441,"category":4024,"cover":8790,"date":8791,"description":8792,"extension":287,"meta":8793,"navigation":289,"path":8794,"seo":8795,"stem":8796,"tags":8797,"__hash__":8801},"blog\u002Fblog\u002Fland-manager-google-sheets-batch-convert-legal-land-descriptions.md","The Land Manager's Guide to Google Sheets: Batch Convert Legal Land Descriptions with a Formula",{"type":9,"value":8442,"toc":8780},[8443,8446,8453,8456,8460,8471,8482,8486,8489,8495,8539,8546,8555,8559,8562,8661,8664,8667,8671,8681,8688,8694,8698,8709,8714,8721,8725,8738,8742,8749,8755,8759,8768],[12,8444,8445],{},"You have a Google Sheet with 140 surface lease descriptions in column A. Your GIS team needs GPS coordinates to plot them for a pipeline route assessment, and the deadline is end of week. Copying each description into a converter and pasting the result back - 140 times - is not a real workflow.",[12,8447,8448,8449,8452],{},"The Township Canada Google Sheets add-on puts a legal land description formula directly inside your spreadsheet. Type ",[65,8450,8451],{},"=TOWNSHIP(\"NW-25-024-01W5\")"," in any cell and GPS coordinates appear. Reference a column of descriptions, drag the formula down, and 140 descriptions become 140 coordinate pairs in a couple of minutes - no copy-pasting, no tab-switching.",[12,8454,8455],{},"This guide covers the complete formula-based workflow: installing the add-on, setting up a multi-column coordinate sheet, catching data errors automatically, and batching larger lists with the sidebar.",[24,8457,8459],{"id":8458},"installing-the-add-on","Installing the Add-On",[12,8461,8462,8463,8466,8467,8470],{},"Open any Google Sheet. Go to ",[19,8464,8465],{},"Extensions → Add-ons → Get add-ons",", search \"Township Canada\", and click ",[19,8468,8469],{},"Install",". The add-on requests permission to run custom functions and make external calls - both are required for the formula to work. The install takes under a minute.",[12,8472,8473,8474,8477,8478,8481],{},"The add-on includes 10 free conversions per month to test with immediately. For production lists, connect your Township Canada API key in the Settings dialog (",[19,8475,8476],{},"Extensions → Township Canada → Settings","). If you already have an ",[45,8479,8480],{"href":3965},"API subscription",", your existing plan covers add-on usage at no additional cost.",[24,8483,8485],{"id":8484},"the-four-formulas","The Four Formulas",[12,8487,8488],{},"After installation, four custom functions are available anywhere in your sheet.",[12,8490,8491,8494],{},[65,8492,8493],{},"=TOWNSHIP(\"LLD\")"," returns a formatted coordinate pair. For individual fields - better when you're building a structured export or joining against another dataset - use the three companion functions:",[660,8496,8497,8507],{},[663,8498,8499],{},[666,8500,8501,8504],{},[669,8502,8503],{},"Formula",[669,8505,8506],{},"Returns",[681,8508,8509,8519,8529],{},[666,8510,8511,8516],{},[686,8512,8513],{},[65,8514,8515],{},"=TOWNSHIP_LAT(\"NW-25-024-01W5\")",[686,8517,8518],{},"Latitude (decimal degrees)",[666,8520,8521,8526],{},[686,8522,8523],{},[65,8524,8525],{},"=TOWNSHIP_LNG(\"NW-25-024-01W5\")",[686,8527,8528],{},"Longitude (decimal degrees)",[666,8530,8531,8536],{},[686,8532,8533],{},[65,8534,8535],{},"=TOWNSHIP_PROVINCE(\"NW-25-024-01W5\")",[686,8537,8538],{},"Province name",[12,8540,8541,8542,8545],{},"Use these with cell references rather than hardcoded strings. ",[65,8543,8544],{},"=TOWNSHIP_LAT(A2)"," reads the description from cell A2 and returns its latitude. Drag the formula down to row 141 and the entire column converts.",[12,8547,8548,8549,8551,8552,8554],{},"The formulas handle any Canadian survey system the ",[45,8550,8170],{"href":4740}," supports: ",[45,8553,4032],{"href":5123}," quarter sections and LSDs, NTS grid references, Geographic Township lot-and-concession descriptions, River Lots, UWI, and FPS Grid. A column with mixed formats - Alberta DLS descriptions alongside Saskatchewan NTS references - converts without any special setup.",[24,8556,8558],{"id":8557},"setting-up-a-multi-column-coordinate-sheet","Setting Up a Multi-Column Coordinate Sheet",[12,8560,8561],{},"For most land management exports, you want latitude and longitude in separate columns. Here's a practical layout for a surface lease inventory:",[660,8563,8564,8580],{},[663,8565,8566],{},[666,8567,8568,8571,8574,8577],{},[669,8569,8570],{},"A",[669,8572,8573],{},"B",[669,8575,8576],{},"C",[669,8578,8579],{},"D",[681,8581,8582,8604,8622,8641],{},[666,8583,8584,8589,8594,8599],{},[686,8585,8586],{},[19,8587,8588],{},"Legal Description",[686,8590,8591],{},[19,8592,8593],{},"Latitude",[686,8595,8596],{},[19,8597,8598],{},"Longitude",[686,8600,8601],{},[19,8602,8603],{},"Province",[666,8605,8606,8608,8612,8617],{},[686,8607,6229],{},[686,8609,8610],{},[65,8611,8544],{},[686,8613,8614],{},[65,8615,8616],{},"=TOWNSHIP_LNG(A2)",[686,8618,8619],{},[65,8620,8621],{},"=TOWNSHIP_PROVINCE(A2)",[666,8623,8624,8626,8631,8636],{},[686,8625,6477],{},[686,8627,8628],{},[65,8629,8630],{},"=TOWNSHIP_LAT(A3)",[686,8632,8633],{},[65,8634,8635],{},"=TOWNSHIP_LNG(A3)",[686,8637,8638],{},[65,8639,8640],{},"=TOWNSHIP_PROVINCE(A3)",[666,8642,8643,8646,8651,8656],{},[686,8644,8645],{},"SE-22-045-14W4",[686,8647,8648],{},[65,8649,8650],{},"=TOWNSHIP_LAT(A4)",[686,8652,8653],{},[65,8654,8655],{},"=TOWNSHIP_LNG(A4)",[686,8657,8658],{},[65,8659,8660],{},"=TOWNSHIP_PROVINCE(A4)",[12,8662,8663],{},"Enter the formulas in row 2, select B2:D2, and drag the fill handle down to the last row of your list. The Google Sheets legal land description formula fills in automatically for every row.",[12,8665,8666],{},"Column D earns its place even when your current project doesn't cross provincial lines. Surface lease lists that span Alberta and Saskatchewan look identical in DLS notation - the province column catches any descriptions that drifted into the wrong dataset.",[24,8668,8670],{"id":8669},"catching-meridian-errors-automatically","Catching Meridian Errors Automatically",[12,8672,8673,8674,8676,8677,8680],{},"A transposed meridian in a DLS description places a location 250 kilometres from where it should be. ",[65,8675,6477],{}," is near Drumheller. ",[65,8678,8679],{},"NE-14-032-21W3"," is in Saskatchewan. Both are valid descriptions that convert without error - but they're not the same place.",[12,8682,8683,8684,8687],{},"The province column catches this automatically. If a description is supposed to be in Alberta but ",[65,8685,8686],{},"=TOWNSHIP_PROVINCE()"," returns \"Saskatchewan\", that row has a data entry error. One visual scan down column D after the formulas run flags problems that would otherwise surface when a field crew shows up at the wrong location.",[12,8689,8690,8691,8693],{},"For a detailed look at how meridians, ranges, and township numbers work together, the ",[45,8692,5124],{"href":5123}," covers the full notation system.",[24,8695,8697],{"id":8696},"batch-converting-larger-lists-with-the-sidebar","Batch Converting Larger Lists with the Sidebar",[12,8699,8700,8701,8704,8705,8708],{},"For lists over 200 descriptions, or when you'd rather keep the sheet formula-free, the add-on includes a sidebar batch converter. Open it from ",[19,8702,8703],{},"Extensions → Township Canada → Open Sidebar",", select the range containing your descriptions, and click ",[19,8706,8707],{},"Convert",". The sidebar writes coordinates to adjacent columns and shows a progress bar as it runs.",[12,8710,8711],{},[128,8712],{"alt":8713,"src":3937},"Batch conversion of legal land descriptions to GPS coordinates",[12,8715,8716,8717,8720],{},"The sidebar processes up to 200 descriptions per run. For inventories in the thousands - quarterly AER filings, post-hailstorm insurance triage, farmland portfolio analysis - the ",[45,8718,8719],{"href":3930},"web-based batch converter"," accepts CSV uploads and returns results in KML, Shapefile, and GeoJSON in addition to CSV. For the add-on's free tier of 10 conversions per month, use the sidebar or formula for smaller workflows.",[24,8722,8724],{"id":8723},"format-tip-prevent-auto-formatting","Format Tip: Prevent Auto-Formatting",[12,8726,8727,8728,8730,8731,527,8734,8737],{},"Google Sheets sometimes treats legal land descriptions as dates or numbers. A value like ",[65,8729,4724],{}," may get reformatted unexpectedly. Before entering descriptions, select the column and set the format to ",[19,8732,8733],{},"Plain Text",[19,8735,8736],{},"Format → Number → Plain Text","). This prevents the sheet from touching the raw description strings before the formula reads them.",[24,8739,8741],{"id":8740},"exporting-to-gis","Exporting to GIS",[12,8743,8744,8745,8748],{},"Once the coordinate columns are populated, go to ",[19,8746,8747],{},"File → Download → Comma Separated Values (.csv)"," and import into ArcGIS, QGIS, or any GIS tool that accepts coordinate-based point layers. The original legal description column carries through as an attribute, so the DLS reference stays linked to each GPS point.",[12,8750,8751,8752,8754],{},"For teams already inside Esri's environment, the ",[45,8753,6938],{"href":7223}," adds a native DLS and NTS locator directly inside ArcGIS Pro - an alternative for organizations where GIS is the primary tool and the Sheets step adds an unnecessary round-trip.",[24,8756,8758],{"id":8757},"get-started","Get Started",[12,8760,8761,8762,8764,8765,8767],{},"Install the Township Canada add-on from the Google Workspace Marketplace - search \"Township Canada\" in ",[19,8763,8465],{},". Type ",[65,8766,8451],{}," in any cell to test it immediately with the built-in sample data.",[12,8769,8770,8771,8774,8775,178,8777,8779],{},"When you're ready to convert a production list, connect your API key in the Settings dialog. For the full add-on overview including installation details and sidebar batch converter walkthrough, see the ",[45,8772,8773],{"href":3950},"Google Sheets add-on guide",". For individual lookups or lists that don't fit a spreadsheet workflow, the ",[45,8776,6913],{"href":8381},[45,8778,8719],{"href":3930}," handle both cases directly on the site.",{"title":274,"searchDepth":275,"depth":275,"links":8781},[8782,8783,8784,8785,8786,8787,8788,8789],{"id":8458,"depth":275,"text":8459},{"id":8484,"depth":275,"text":8485},{"id":8557,"depth":275,"text":8558},{"id":8669,"depth":275,"text":8670},{"id":8696,"depth":275,"text":8697},{"id":8723,"depth":275,"text":8724},{"id":8740,"depth":275,"text":8741},{"id":8757,"depth":275,"text":8758},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002F22d95573-a308-442f-aa1f-1198bb821a52.jpeg","2026-04-18","Batch convert legal land descriptions to GPS coordinates in Google Sheets using =TOWNSHIP(). Step-by-step tutorial for land managers working with DLS, LSD, and NTS data.",{},"\u002Fblog\u002Fland-manager-google-sheets-batch-convert-legal-land-descriptions",{"title":8440,"description":8792},"blog\u002Fland-manager-google-sheets-batch-convert-legal-land-descriptions",[8798,4991,8799,4032,8800],"Google Sheets","Legal Land Description","Land Management","1h7QBo2wj22Lhq0wRMnNh-UI6rsMWDGKlLQgmcaCl4c",{"id":8803,"title":8804,"author":7,"body":8805,"category":4024,"cover":9333,"date":9334,"description":9335,"extension":287,"meta":9336,"navigation":289,"path":4871,"seo":9337,"stem":9338,"tags":9339,"__hash__":9342},"blog\u002Fblog\u002Fconvert-legal-land-descriptions-snowflake-sql.md","How to Convert Legal Land Descriptions Directly in Snowflake SQL",{"type":9,"value":8806,"toc":9323},[8807,8820,8823,8827,8830,8840,8855,8858,8862,8865,8894,8902,8905,8944,8952,8956,8959,8999,9002,9007,9011,9014,9043,9049,9053,9056,9069,9072,9109,9127,9130,9164,9167,9171,9174,9238,9241,9275,9278,9280,9285,9291,9312,9318,9321],[12,8808,8809,8810,8813,8814,68,8817,8819],{},"You've loaded a Canadian wells or parcels dataset into Snowflake. The ",[65,8811,8812],{},"legal_description"," column holds values like ",[65,8815,8816],{},"NW-25-24-1-W5",[65,8818,6466],{},", maybe NTS block references mixed in. Your dashboard needs GPS coordinates. Your data team is about to export to CSV.",[12,8821,8822],{},"Stop there. You can convert legal land descriptions directly in Snowflake SQL - no export, no Python script, no broken data lineage. Here's how, covering the SQL patterns you'll actually use and the one validation step most teams skip.",[24,8824,8826],{"id":8825},"two-paths-for-sql-native-conversion","Two Paths for SQL-Native Conversion",[12,8828,8829],{},"Township Canada supports two ways to run legal land description conversion inside Snowflake:",[12,8831,8832,8835,8836,8839],{},[19,8833,8834],{},"Snowflake Native App"," - Install from the Snowflake Marketplace. No AWS infrastructure required. Once installed, it registers the conversion function as ",[65,8837,8838],{},"TOWNSHIP_CANADA_CONVERT"," plus a set of built-in utility functions for format validation and parsing. The fastest path for teams that want to start converting and skip the Lambda setup entirely.",[12,8841,8842,8845,8846,8849,8850,8854],{},[19,8843,8844],{},"External Function via AWS Lambda"," - Deploy an AWS Lambda proxy, configure an API Gateway endpoint, and register the function in Snowflake as ",[65,8847,8848],{},"TOWNSHIP_CONVERT",". The ",[45,8851,8853],{"href":8852},"\u002Fguides\u002Fsnowflake-external-function","setup guide"," walks through every step - Lambda deployment, API Gateway, IAM roles, and Snowflake integration objects. Most data engineers complete it in under an hour. This option suits teams that manage Snowflake in a private VPC with controlled outbound network access.",[12,8856,8857],{},"Both call the same Township Canada Batch API and return GPS coordinates in the same JSON structure. The SQL patterns below work with either - just swap the function name.",[24,8859,8861],{"id":8860},"core-conversion-patterns","Core Conversion Patterns",[12,8863,8864],{},"Before running against a production table, test with a known description:",[1736,8866,8868],{"className":4875,"code":8867,"language":4877,"meta":274,"style":274},"-- Native App\nSELECT TOWNSHIP_CANADA_CONVERT('NW-25-24-1-W5');\n\n-- External Function\nSELECT TOWNSHIP_CONVERT('NW-25-24-1-W5');\n",[65,8869,8870,8875,8880,8884,8889],{"__ignoreMap":274},[2024,8871,8872],{"class":4882,"line":4883},[2024,8873,8874],{},"-- Native App\n",[2024,8876,8877],{"class":4882,"line":275},[2024,8878,8879],{},"SELECT TOWNSHIP_CANADA_CONVERT('NW-25-24-1-W5');\n",[2024,8881,8882],{"class":4882,"line":498},[2024,8883,5901],{"emptyLinePlaceholder":289},[2024,8885,8886],{"class":4882,"line":4899},[2024,8887,8888],{},"-- External Function\n",[2024,8890,8891],{"class":4882,"line":4905},[2024,8892,8893],{},"SELECT TOWNSHIP_CONVERT('NW-25-24-1-W5');\n",[12,8895,8896,8897,178,8899,8901],{},"Both return a JSON variant with ",[65,8898,6253],{},[65,8900,6262],{}," fields for the northwest quarter of Section 25, Township 24, Range 1, West of the 5th Meridian.",[12,8903,8904],{},"To extract coordinates as separate float columns:",[1736,8906,8908],{"className":4875,"code":8907,"language":4877,"meta":274,"style":274},"SELECT\n    well_id,\n    legal_description,\n    TOWNSHIP_CONVERT(legal_description):latitude::FLOAT  AS latitude,\n    TOWNSHIP_CONVERT(legal_description):longitude::FLOAT AS longitude\nFROM well_inventory\nWHERE region = 'Cardium_Play';\n",[65,8909,8910,8914,8919,8924,8929,8934,8939],{"__ignoreMap":274},[2024,8911,8912],{"class":4882,"line":4883},[2024,8913,4886],{},[2024,8915,8916],{"class":4882,"line":275},[2024,8917,8918],{},"    well_id,\n",[2024,8920,8921],{"class":4882,"line":498},[2024,8922,8923],{},"    legal_description,\n",[2024,8925,8926],{"class":4882,"line":4899},[2024,8927,8928],{},"    TOWNSHIP_CONVERT(legal_description):latitude::FLOAT  AS latitude,\n",[2024,8930,8931],{"class":4882,"line":4905},[2024,8932,8933],{},"    TOWNSHIP_CONVERT(legal_description):longitude::FLOAT AS longitude\n",[2024,8935,8936],{"class":4882,"line":5622},[2024,8937,8938],{},"FROM well_inventory\n",[2024,8940,8941],{"class":4882,"line":5637},[2024,8942,8943],{},"WHERE region = 'Cardium_Play';\n",[12,8945,8946,8947,8951],{},"This runs inline - no staging table, no intermediate step. For large-scale table enrichment (CTAS, LATERAL, Snowflake Tasks), the ",[45,8948,8950],{"href":8949},"\u002Fblog\u002Fenrich-snowflake-table-dls-gps-coordinates","full enrichment walkthrough"," covers those patterns in detail.",[347,8953,8955],{"id":8954},"define-a-view-for-on-demand-conversion","Define a View for On-Demand Conversion",[12,8957,8958],{},"If your source table updates continuously and you don't want to maintain a scheduled enrichment task, define a view that converts on read:",[1736,8960,8962],{"className":4875,"code":8961,"language":4877,"meta":274,"style":274},"CREATE OR REPLACE VIEW well_locations AS\nSELECT\n    well_id,\n    uwi,\n    legal_description,\n    TOWNSHIP_CONVERT(legal_description):latitude::FLOAT  AS latitude,\n    TOWNSHIP_CONVERT(legal_description):longitude::FLOAT AS longitude\nFROM well_inventory;\n",[65,8963,8964,8969,8973,8977,8982,8986,8990,8994],{"__ignoreMap":274},[2024,8965,8966],{"class":4882,"line":4883},[2024,8967,8968],{},"CREATE OR REPLACE VIEW well_locations AS\n",[2024,8970,8971],{"class":4882,"line":275},[2024,8972,4886],{},[2024,8974,8975],{"class":4882,"line":498},[2024,8976,8918],{},[2024,8978,8979],{"class":4882,"line":4899},[2024,8980,8981],{},"    uwi,\n",[2024,8983,8984],{"class":4882,"line":4905},[2024,8985,8923],{},[2024,8987,8988],{"class":4882,"line":5622},[2024,8989,8928],{},[2024,8991,8992],{"class":4882,"line":5637},[2024,8993,8933],{},[2024,8995,8996],{"class":4882,"line":5658},[2024,8997,8998],{},"FROM well_inventory;\n",[12,9000,9001],{},"Dashboard tools that query this view always get coordinates fresh from the source. The trade-off is API call volume - every query that touches unconverted rows triggers conversions. For stable source data, a materialized table is more cost-efficient.",[12,9003,9004],{},[128,9005],{"alt":9006,"src":3937},"Batch-convert mixed legal land descriptions and review the results before piping coordinates into your warehouse",[24,9008,9010],{"id":9009},"working-with-mixed-lld-formats","Working with Mixed LLD Formats",[12,9012,9013],{},"Most Snowflake enrichment guides assume a clean, single-format column. Real datasets rarely cooperate. A provincial well database might contain DLS quarter sections alongside Legal Subdivisions; an acquisition might introduce NTS references from BC assets. The same function resolves all of them:",[1736,9015,9017],{"className":4875,"code":9016,"language":4877,"meta":274,"style":274},"-- DLS quarter section (Alberta, Saskatchewan, Manitoba, BC Peace River block)\nSELECT TOWNSHIP_CONVERT('SE-36-42-3-W5'):latitude::FLOAT;\n\n-- Legal Subdivision - a 40-acre parcel within a DLS section\nSELECT TOWNSHIP_CONVERT('LSD 06-32-048-07W5'):latitude::FLOAT;\n",[65,9018,9019,9024,9029,9033,9038],{"__ignoreMap":274},[2024,9020,9021],{"class":4882,"line":4883},[2024,9022,9023],{},"-- DLS quarter section (Alberta, Saskatchewan, Manitoba, BC Peace River block)\n",[2024,9025,9026],{"class":4882,"line":275},[2024,9027,9028],{},"SELECT TOWNSHIP_CONVERT('SE-36-42-3-W5'):latitude::FLOAT;\n",[2024,9030,9031],{"class":4882,"line":498},[2024,9032,5901],{"emptyLinePlaceholder":289},[2024,9034,9035],{"class":4882,"line":4899},[2024,9036,9037],{},"-- Legal Subdivision - a 40-acre parcel within a DLS section\n",[2024,9039,9040],{"class":4882,"line":4905},[2024,9041,9042],{},"SELECT TOWNSHIP_CONVERT('LSD 06-32-048-07W5'):latitude::FLOAT;\n",[12,9044,9045,9046,9048],{},"Pass NTS map sheet references - common in BC resource and environmental datasets - using the same function call. No format detection, no branching logic, no separate function per system. The ",[45,9047,5124],{"href":5123}," explains how DLS quarter sections and Legal Subdivisions relate to each other - useful if you're working with a mixed Alberta dataset for the first time.",[24,9050,9052],{"id":9051},"validate-before-you-enrich","Validate Before You Enrich",[12,9054,9055],{},"This is the step most teams skip, and it causes the most downstream problems.",[12,9057,9058,9059,9061,9062,9064,9065,9068],{},"A legal land description that looks valid can still fail to convert. The most common cause is a transposed meridian - changing ",[65,9060,4704],{}," to ",[65,9063,4098],{}," in ",[65,9066,9067],{},"SE-36-42-3-W5"," moves the location nearly 200 kilometres east, into a different province entirely. When the function can't resolve a description, it returns null. That null propagates silently into your production table and every model downstream.",[12,9070,9071],{},"The Snowflake Native App includes validation functions that run in pure SQL before any enrichment:",[1736,9073,9075],{"className":4875,"code":9074,"language":4877,"meta":274,"style":274},"-- Find descriptions that won't convert before running the enrichment\nSELECT\n    legal_description,\n    CORE.VALIDATE_LLD(legal_description)  AS is_valid,\n    CORE.PARSE_LLD(legal_description)     AS parsed_components\nFROM well_inventory\nWHERE NOT CORE.VALIDATE_LLD(legal_description);\n",[65,9076,9077,9082,9086,9090,9095,9100,9104],{"__ignoreMap":274},[2024,9078,9079],{"class":4882,"line":4883},[2024,9080,9081],{},"-- Find descriptions that won't convert before running the enrichment\n",[2024,9083,9084],{"class":4882,"line":275},[2024,9085,4886],{},[2024,9087,9088],{"class":4882,"line":498},[2024,9089,8923],{},[2024,9091,9092],{"class":4882,"line":4899},[2024,9093,9094],{},"    CORE.VALIDATE_LLD(legal_description)  AS is_valid,\n",[2024,9096,9097],{"class":4882,"line":4905},[2024,9098,9099],{},"    CORE.PARSE_LLD(legal_description)     AS parsed_components\n",[2024,9101,9102],{"class":4882,"line":5622},[2024,9103,8938],{},[2024,9105,9106],{"class":4882,"line":5637},[2024,9107,9108],{},"WHERE NOT CORE.VALIDATE_LLD(legal_description);\n",[12,9110,9111,9114,9115,9118,9119,9122,9123,9126],{},[65,9112,9113],{},"CORE.VALIDATE_LLD"," returns ",[65,9116,9117],{},"true"," or ",[65,9120,9121],{},"false",". ",[65,9124,9125],{},"CORE.PARSE_LLD"," returns a structured JSON object with the individual components - direction, section, township, range, meridian - so you can see exactly which part of the description is malformed.",[12,9128,9129],{},"Common finds in O&G data:",[241,9131,9132,9146,9155],{},[244,9133,9134,9137,9138,9141,9142,9145],{},[19,9135,9136],{},"Trailing suffix from Alberta Land Titles",": ",[65,9139,9140],{},"SE-36-42-3-W5M"," - the ",[65,9143,9144],{},"M"," is a Meridian suffix added by some government export tools, not standard DLS notation",[244,9147,9148,9137,9151,9154],{},[19,9149,9150],{},"Missing separator",[65,9152,9153],{},"NW2524-1-W5"," - looks like a DLS quarter section but won't parse",[244,9156,9157,9160,9161,9163],{},[19,9158,9159],{},"Non-standard LSD format",": some AER exports omit the ",[65,9162,4660],{}," prefix entirely, which can trip up downstream parsers even when the API resolves it correctly",[12,9165,9166],{},"Fix the bad rows in your source table first, then run the enrichment. One invalid description out of 15,000 costs nothing to fix before the CTAS runs; it costs real time to find and correct after that row has propagated through five dbt models.",[24,9168,9170],{"id":9169},"running-conversion-in-a-dbt-model","Running Conversion in a dbt Model",[12,9172,9173],{},"If your warehouse uses dbt, the conversion integrates cleanly as an enrichment model:",[1736,9175,9177],{"className":4875,"code":9176,"language":4877,"meta":274,"style":274},"-- models\u002Fenriched\u002Fwell_locations.sql\n{{ config(materialized='table') }}\n\nSELECT\n    well_id,\n    uwi,\n    legal_description,\n    TOWNSHIP_CONVERT(legal_description):latitude::FLOAT  AS latitude,\n    TOWNSHIP_CONVERT(legal_description):longitude::FLOAT AS longitude,\n    CURRENT_TIMESTAMP() AS enriched_at\nFROM {{ ref('stg_well_inventory') }}\nWHERE legal_description IS NOT NULL\n  AND legal_description != ''\n",[65,9178,9179,9184,9189,9193,9197,9201,9205,9209,9213,9218,9223,9228,9233],{"__ignoreMap":274},[2024,9180,9181],{"class":4882,"line":4883},[2024,9182,9183],{},"-- models\u002Fenriched\u002Fwell_locations.sql\n",[2024,9185,9186],{"class":4882,"line":275},[2024,9187,9188],{},"{{ config(materialized='table') }}\n",[2024,9190,9191],{"class":4882,"line":498},[2024,9192,5901],{"emptyLinePlaceholder":289},[2024,9194,9195],{"class":4882,"line":4899},[2024,9196,4886],{},[2024,9198,9199],{"class":4882,"line":4905},[2024,9200,8918],{},[2024,9202,9203],{"class":4882,"line":5622},[2024,9204,8981],{},[2024,9206,9207],{"class":4882,"line":5637},[2024,9208,8923],{},[2024,9210,9211],{"class":4882,"line":5658},[2024,9212,8928],{},[2024,9214,9215],{"class":4882,"line":5678},[2024,9216,9217],{},"    TOWNSHIP_CONVERT(legal_description):longitude::FLOAT AS longitude,\n",[2024,9219,9220],{"class":4882,"line":5698},[2024,9221,9222],{},"    CURRENT_TIMESTAMP() AS enriched_at\n",[2024,9224,9225],{"class":4882,"line":5718},[2024,9226,9227],{},"FROM {{ ref('stg_well_inventory') }}\n",[2024,9229,9230],{"class":4882,"line":5737},[2024,9231,9232],{},"WHERE legal_description IS NOT NULL\n",[2024,9234,9235],{"class":4882,"line":5743},[2024,9236,9237],{},"  AND legal_description != ''\n",[12,9239,9240],{},"For incremental runs, filter to only rows that haven't been enriched:",[1736,9242,9244],{"className":4875,"code":9243,"language":4877,"meta":274,"style":274},"{{ config(materialized='incremental') }}\n\n...\n{% if is_incremental() %}\nWHERE legal_description NOT IN (SELECT legal_description FROM {{ this }})\n{% endif %}\n",[65,9245,9246,9251,9255,9260,9265,9270],{"__ignoreMap":274},[2024,9247,9248],{"class":4882,"line":4883},[2024,9249,9250],{},"{{ config(materialized='incremental') }}\n",[2024,9252,9253],{"class":4882,"line":275},[2024,9254,5901],{"emptyLinePlaceholder":289},[2024,9256,9257],{"class":4882,"line":498},[2024,9258,9259],{},"...\n",[2024,9261,9262],{"class":4882,"line":4899},[2024,9263,9264],{},"{% if is_incremental() %}\n",[2024,9266,9267],{"class":4882,"line":4905},[2024,9268,9269],{},"WHERE legal_description NOT IN (SELECT legal_description FROM {{ this }})\n",[2024,9271,9272],{"class":4882,"line":5622},[2024,9273,9274],{},"{% endif %}\n",[12,9276,9277],{},"This avoids re-calling the API for rows already in the enriched table - important for keeping costs predictable at the Scale and Enterprise tiers. The API charges per request, not per row per run.",[24,9279,8758],{"id":8757},[12,9281,9282],{},[128,9283],{"alt":9284,"src":131},"Township Canada interactive map preview for verifying converted Snowflake rows against parcel boundaries",[12,9286,9287,9288,9290],{},"Both options require a Township Canada API key. Sign up on the ",[45,9289,6707],{"href":3965}," - the Batch API starts at $40\u002Fmonth for 1,000 requests.",[241,9292,9293,9303],{},[244,9294,9295,9298,9299,9302],{},[19,9296,9297],{},"Native App",": Install from the Snowflake Marketplace, connect your API key in the Settings panel, and call ",[65,9300,9301],{},"TOWNSHIP_CANADA_CONVERT()"," plus the validation functions immediately.",[244,9304,9305,9308,9309,9311],{},[19,9306,9307],{},"External Function",": Follow the ",[45,9310,8853],{"href":8852}," - Lambda, API Gateway, and Snowflake integration configuration all in one place.",[12,9313,368,9314,9317],{},[45,9315,9316],{"href":6585},"Snowflake DLS enrichment post"," goes deeper on the business case for warehouse-native conversion and covers the Databricks UDF variant if your team runs on Databricks.",[12,9319,9320],{},"For API subscribers already using Township Canada for batch conversion via the web app, the Snowflake Native App connects to the same API key - no separate subscription.",[4964,9322,4966],{},{"title":274,"searchDepth":275,"depth":275,"links":9324},[9325,9326,9329,9330,9331,9332],{"id":8825,"depth":275,"text":8826},{"id":8860,"depth":275,"text":8861,"children":9327},[9328],{"id":8954,"depth":498,"text":8955},{"id":9009,"depth":275,"text":9010},{"id":9051,"depth":275,"text":9052},{"id":9169,"depth":275,"text":9170},{"id":8757,"depth":275,"text":8758},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002Fcd45f664-b792-4f38-a3e7-a9e162a3db65.jpeg","2026-04-17","Convert Canadian DLS, LSD, and NTS legal land descriptions to GPS coordinates in Snowflake SQL - validate bad data first, enrich tables inline, and keep your pipeline clean.",{},{"title":8804,"description":9335},"blog\u002Fconvert-legal-land-descriptions-snowflake-sql",[9340,9341,4990,300,6762],"Snowflake","SQL","ydIMNUpehHhznMGhusRcqy4gxrJLAzz-nr1CtJGQ7S8",{"id":9344,"title":9345,"author":7,"body":9346,"category":503,"cover":9527,"date":9528,"description":9529,"extension":287,"meta":9530,"navigation":289,"path":4532,"seo":9531,"stem":9532,"tags":9533,"__hash__":9535},"blog\u002Fblog\u002Fcarbon-sequestration-tenure-alberta-ccs-lease-blocks.md","Carbon Sequestration Tenure in Alberta - Mapping CCS Lease Blocks Before the AER June 30 Deadline",{"type":9,"value":9347,"toc":9520},[9348,9351,9354,9357,9361,9364,9370,9379,9386,9390,9397,9400,9403,9407,9410,9413,9452,9457,9464,9468,9471,9478,9488,9493,9499,9503,9506],[12,9349,9350],{},"The AER's carbon capture and storage tenure evaluation window closes June 30, 2026. For energy consultants and land technicians preparing CCS tenure applications, that deadline is the forcing function for a task that's technically specific but operationally demanding: translating a geological formation boundary into precise DLS legal land descriptions that will appear in a regulatory submission.",[12,9352,9353],{},"A subsurface CO₂ storage target doesn't come with GPS coordinates attached. It comes as a reservoir model - a mapped geological extent typically spanning dozens of DLS sections across one or more townships. Before any of that becomes an AER filing, someone has to define the pore space tenure area using the Dominion Land Survey grid, confirm each DLS description resolves to the correct location, and produce a map the regulator can verify.",[12,9355,9356],{},"For teams working against the June 30 deadline, the mapping and verification step is where schedules get compressed.",[24,9358,9360],{"id":9359},"two-kinds-of-land-in-a-ccs-tenure-application","Two Kinds of Land in a CCS Tenure Application",[12,9362,9363],{},"CCS tenure applications in Alberta cover two distinct land components, each requiring different types of legal land descriptions.",[12,9365,9366,9369],{},[19,9367,9368],{},"Surface tenure"," covers the physical footprint - injection wellheads, monitoring wells, compressor stations, access roads, and pipelines. Each wellhead is described at the LSD level: a 40-acre parcel within the DLS grid. A pipeline corridor records the quarter sections it crosses in sequence. This part of the application follows the same format as a conventional oil and gas well license.",[12,9371,9372,9375,9376,9378],{},[19,9373,9374],{},"Subsurface pore space tenure"," is the element unique to CCS work. Under Alberta's ",[1235,9377,4317],{},", an applicant must define the underground geological formation where CO₂ will be stored - described by its DLS extent at the section or township level. A modeled CO₂ plume in a deep saline aquifer might cover 10 to 20 DLS sections across two or three townships, well beyond the surface footprint of the injection wells above.",[12,9380,9381,9382,9385],{},"A proposed deep saline aquifer storage project in the Fort Saskatchewan–Heartland area of Alberta, for example, might describe a pore space tenure block spanning 14 sections across Township 55 to Township 56, Range 19–20, West of the 4th Meridian. The primary injection well would be at a specific LSD - say ",[19,9383,9384],{},"SE-22-55-20-W4"," - with pressure monitoring wells at neighboring parcels within the same formation extent. Each DLS reference must resolve correctly - both on the AER submission map and in the project's GIS model - before the application package is complete.",[24,9387,9389],{"id":9388},"where-legal-land-description-errors-appear","Where Legal Land Description Errors Appear",[12,9391,9392,9393,9396],{},"The most common error in CCS lease block mapping is a meridian transposition. West of the 4th Meridian (W4) and West of the 5th Meridian (W5) run roughly 250 kilometres apart. ",[19,9394,9395],{},"SE-22-55-20-W5"," is not the Fort Saskatchewan–Heartland area - it places the location in west-central Alberta, near the Drayton Valley region. For a pore space tenure application, that error puts the entire geological formation in the wrong province of the geological basin, and the AER will flag it immediately.",[12,9398,9399],{},"Township and section transpositions are subtler. A project team working from a hand-drawn cross-section might list Section 22 when the correct section is Section 32 - one digit off. The GPS points land six miles from where they should be. On a small-scale printed map, that error may not be obvious until someone zooms into satellite imagery and sees the location doesn't match the visible surface geology or the industrial emitter the project is capturing from.",[12,9401,9402],{},"With 20 to 40 DLS descriptions in a typical CCS tenure package - mixing sections, quarter sections, and LSDs across surface and subsurface tenure types - manual verification of each one is time-consuming and error-prone.",[24,9404,9406],{"id":9405},"the-practical-workflow-for-mapping-ccs-lease-blocks","The Practical Workflow for Mapping CCS Lease Blocks",[12,9408,9409],{},"Most energy consultants assembling a carbon sequestration lease block package work from a combination of geological maps, a reservoir model, and surface rights information from Alberta Land Titles. The DLS descriptions are assembled into a spreadsheet before the AER filing is prepared.",[12,9411,9412],{},"The mapping workflow that handles this efficiently:",[1863,9414,9415,9421,9434,9440,9446],{},[244,9416,9417,9420],{},[19,9418,9419],{},"Build the DLS list"," - Extract section and quarter section references from the geological model boundaries and surface rights data. Format them consistently: the AER requires standard DLS notation, and the pore space section descriptions must match the formation boundaries in the geological assessment.",[244,9422,9423,9426,9427,9429,9430,9433],{},[19,9424,9425],{},"Batch-convert to GPS"," - Upload the full list to a ",[45,9428,4551],{"href":4389},". Each DLS description returns GPS coordinates and a boundary polygon. For a 30-section pore space tenure block plus 8 surface parcels, the conversion takes seconds. See the ",[45,9431,9432],{"href":3930},"batch conversion guide"," for CSV upload format details.",[244,9435,9436,9439],{},[19,9437,9438],{},"Validate against satellite imagery"," - Plot the GPS coordinates on satellite imagery and confirm each point lands in the correct geological region. A meridian error or transposed section number shows up immediately when a point appears 200 km from the rest of the cluster.",[244,9441,9442,9445],{},[19,9443,9444],{},"Export for AER submission"," - Download results as KML for the project boundary exhibit or as GeoJSON for internal GIS review. AER map submissions require a location exhibit - the KML export generates the file directly.",[244,9447,9448,9451],{},[19,9449,9450],{},"File before June 30"," - The AER's CCS tenure evaluation window doesn't carry extensions. Applications received after June 30, 2026 wait for the next intake round.",[12,9453,9454],{},[128,9455],{"alt":9456,"src":131},"Interactive map with DLS grid overlay showing survey sections",[12,9458,368,9459,9463],{},[45,9460,9462],{"href":9461},"\u002Fguides\u002Fmap","interactive map at Township Canada"," shows DLS section boundaries overlaid on satellite imagery, which is useful for a desktop verification pass before the formal batch run. Section boundaries on a satellite base let you cross-check a modeled plume extent against the visible landscape before committing to the submission coordinates.",[24,9465,9467],{"id":9466},"how-ccs-tenure-differs-from-conventional-og-applications","How CCS Tenure Differs from Conventional O&G Applications",[12,9469,9470],{},"The volume of legal land descriptions in a carbon sequestration lease block application is higher than a conventional well license. A single producing well requires one LSD for the wellhead and a handful of quarter sections for the surface lease and pipeline. A CCS tenure application layers subsurface section descriptions across the pore space block on top of the surface parcel list - routinely 3 to 5 times the number of entries in a comparable conventional filing.",[12,9472,368,9473,9477],{},[45,9474,9476],{"href":9475},"\u002Fblog\u002Fdls-tools-alberta-well-closure","AER well closure workflow"," uses similar DLS notation, but the driving constraint is the existing license database. In CCS tenure work, the geological model sets the boundaries - a set of subsurface formation extents that has to be translated into the DLS grid before any regulatory filing can proceed.",[12,9479,9480,9481,9484,9485,9487],{},"For teams managing CCS and conventional O&G applications in parallel, the ",[45,9482,9483],{"href":8363},"Alberta legal land description converter"," handles both formats in the same interface. The ",[45,9486,5124],{"href":3702}," covers the township and section numbering conventions that apply to both workflows.",[12,9489,9490,9491,60],{},"For a full breakdown of all three CCS tenure types - pore space tenure, injection well licenses, and surface rights - and how legal land descriptions appear in each, see the ",[45,9492,4525],{"href":4524},[12,9494,9495,9496,9498],{},"Once you have the lease block mapped, the next step is identifying which specific quarter sections fall within each licensed pore space tenure zone boundary and preparing the GeoJSON for AER submission. See ",[45,9497,4296],{"href":4564}," for the quarter-section verification workflow and location data checklist.",[24,9500,9502],{"id":9501},"getting-the-application-ready-before-the-deadline","Getting the Application Ready Before the Deadline",[12,9504,9505],{},"The mechanics of carbon sequestration lease block mapping are tractable. The bottleneck is verification - confirming that each DLS description in the tenure package resolves to the right location before the application goes to the AER.",[12,9507,9508,9509,9511,9512,9515,9516,9519],{},"If your team is working on a CCS tenure evaluation package for the June 30 deadline, the ",[45,9510,9483],{"href":8363}," handles individual LSD and quarter section lookups. For the full pore space section list and surface parcel package together, the ",[45,9513,9514],{"href":4389},"Business plan batch converter"," processes the complete list in a single upload and exports in the formats AER map submissions require - KML, Shapefile, GeoJSON, and PDF. ",[45,9517,9518],{"href":2964},"See pricing"," for team access options that work across a multi-consultant project team.",{"title":274,"searchDepth":275,"depth":275,"links":9521},[9522,9523,9524,9525,9526],{"id":9359,"depth":275,"text":9360},{"id":9388,"depth":275,"text":9389},{"id":9405,"depth":275,"text":9406},{"id":9466,"depth":275,"text":9467},{"id":9501,"depth":275,"text":9502},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002F4aa20ec3-36d1-46d3-b3aa-f9335d199bf0.jpeg","2026-04-16","Alberta's AER CCS tenure evaluation window closes June 30, 2026. How energy consultants map carbon sequestration lease blocks using DLS legal land descriptions for regulatory submissions.",{},{"title":9345,"description":9529},"blog\u002Fcarbon-sequestration-tenure-alberta-ccs-lease-blocks",[4568,4569,4570,2779,1461,4032,9534],"land tenure","ytahLek71dnIqiD1Vs9Bal5MVR--9RmOq5K3fSKtzQI",{"id":9537,"title":9538,"author":7,"body":9539,"category":4024,"cover":9740,"date":9741,"description":9742,"extension":287,"meta":9743,"navigation":289,"path":4048,"seo":9744,"stem":9745,"tags":9746,"__hash__":9747},"blog\u002Fblog\u002Fhow-to-read-legal-land-description-rural-title.md","How to Read a Legal Land Description on a Rural Real Estate Title",{"type":9,"value":9540,"toc":9732},[9541,9548,9551,9555,9561,9564,9568,9574,9584,9590,9600,9606,9615,9621,9625,9631,9637,9640,9643,9646,9650,9653,9662,9667,9670,9680,9684,9687,9698,9702,9705,9718,9725],[12,9542,9543,9544,9547],{},"You receive a certificate of title for a rural property listing near Hanna, Alberta. Under the legal description, it reads ",[19,9545,9546],{},"NE 14-032-21 W4M",". No street address, no postal code, no Google Maps pin - just a string of letters and numbers that identifies exactly where this land sits on the prairie.",[12,9549,9550],{},"If you're a rural property agent, title examiner, or mortgage specialist working in Alberta or Saskatchewan, you've seen descriptions like this on every deal. Knowing how to read a legal land description on a rural property title is a basic requirement for the job. A misread township number or a flipped range puts you in the wrong county. This guide breaks down each component so you can read any title description with confidence.",[24,9552,9554],{"id":9553},"what-youre-looking-at-the-dominion-land-survey-grid","What You're Looking At: The Dominion Land Survey Grid",[12,9556,9557,9558,9560],{},"Rural titles in Alberta and Saskatchewan use the ",[45,9559,1484],{"href":3702}," system - a grid that was surveyed across the prairies starting in 1871. The DLS divides the landscape into a hierarchy of squares: meridians, townships, ranges, sections, and quarter sections. Every rural property in these provinces is identified by its position on this grid.",[12,9562,9563],{},"A legal land description on a title is a shorthand address within that grid. Once you know what each piece means, you can place the property on a map.",[24,9565,9567],{"id":9566},"breaking-down-ne-14-032-21-w4m","Breaking Down NE 14-032-21 W4M",[12,9569,9570,9571,9573],{},"Let's work through a real title description: ",[19,9572,9546],{},". Read from right to left - start with the largest unit and work inward.",[12,9575,9576,9579,9580,60],{},[19,9577,9578],{},"W4M - West of the 4th Meridian","\nThe meridian is the vertical reference line. Six principal meridians run north-south across the prairies. W4M (West of the 4th Meridian) covers most of central and eastern Alberta. W5M covers western Alberta. Saskatchewan primarily uses ",[45,9581,9583],{"href":9582},"\u002Flearn\u002Fprovinces\u002Fsaskatchewan","W2M and W3M",[12,9585,9586,9589],{},[19,9587,9588],{},"21 - Range 21","\nRanges are columns of townships, numbered westward from the meridian. Range 21 means this land sits 21 columns west of the 4th Meridian.",[12,9591,9592,9595,9596,9599],{},[19,9593,9594],{},"032 - Township 32","\nTownships are rows, numbered northward from the US border (the 49th parallel). ",[45,9597,9598],{"href":4009},"Township 32"," places this property roughly in the Drumheller–Hanna corridor of east-central Alberta.",[12,9601,9602,9605],{},[19,9603,9604],{},"14 - Section 14","\nEach township is a 6×6 grid of 36 sections. Each section is one square mile, or 640 acres. Sections are numbered in a serpentine pattern starting from the southeast corner: Section 1 is bottom-right, Section 6 is bottom-left of the first row, Section 7 is directly above Section 6 on the left side of the second row, and so on up to Section 36 in the northeast corner.",[12,9607,9608,9611,9612,9614],{},[19,9609,9610],{},"NE - Northeast Quarter","\nEach section is divided into four ",[45,9613,6637],{"href":6636},": NE (northeast), NW (northwest), SE (southeast), and SW (southwest). Each quarter is approximately 160 acres. NE 14 is the northeast quarter of Section 14.",[12,9616,9617,9618,9620],{},"So ",[19,9619,9546],{}," is the northeast quarter of Section 14, Township 32, Range 21, West of the 4th Meridian. That's roughly 160 acres of land in the Hanna area of Alberta.",[24,9622,9624],{"id":9623},"quarter-sections-vs-legal-subdivisions","Quarter Sections vs. Legal Subdivisions",[12,9626,9627,9628,60],{},"Most rural real estate titles reference quarter sections - the 160-acre parcels described above. But you'll occasionally see a different format on titles, especially for smaller parcels or well site leases: the Legal Subdivision, or ",[45,9629,4660],{"href":9630},"\u002Flearn\u002Fsystems\u002Flsd",[12,9632,9633,9634,60],{},"An LSD description looks like this: ",[19,9635,9636],{},"LSD 06-32-048-07 W5M",[12,9638,9639],{},"The last four components are the same - Section 32, Township 48, Range 7, West of the 5th Meridian. The difference is the leading number. Instead of a quarter direction (NE, NW, SE, SW), an LSD uses a number from 1 to 16. Each section is divided into 16 legal subdivisions of roughly 40 acres each - four LSDs per quarter section.",[12,9641,9642],{},"LSDs are numbered in the same serpentine pattern as sections within a township. LSD 1 is in the southeast corner of the section, LSD 4 is in the southwest corner of the first row, LSD 5 is directly above LSD 4 on the left side of the second row, and so on.",[12,9644,9645],{},"For rural real estate, the practical difference is size. A quarter section is 160 acres. An LSD is 40 acres. If a title references an LSD, the property is one-quarter the size of a standard quarter section. This matters for acreage calculations, property tax assessments, and purchase price comparisons.",[24,9647,9649],{"id":9648},"how-to-place-a-legal-description-on-a-map","How to Place a Legal Description on a Map",[12,9651,9652],{},"Reading the notation is step one. Step two is knowing where it actually is on the ground - which road to take, what's nearby, and how to direct a buyer or appraiser to the site.",[12,9654,9655,9656,9658,9659,9661],{},"You can type any DLS description into ",[45,9657,1631],{"href":4740}," and get GPS coordinates, a map pin, and satellite imagery in seconds. Enter ",[19,9660,9546],{}," and you'll see the parcel outlined on the map east of Hanna, Alberta, with the nearest highways and range roads visible.",[12,9663,9664],{},[128,9665],{"alt":9666,"src":3896},"Township Canada search results",[12,9668,9669],{},"This is especially useful when a buyer calls about a listing and wants to drive out to see the land. You can convert the legal land description from the title, get a shareable pin link, and send it to them - no need to try to describe which range road intersection to look for.",[12,9671,9672,9673,9676,9677,9679],{},"For Saskatchewan listings, the same process works. A title reading ",[19,9674,9675],{},"SW 21-015-20 W2M"," is the southwest quarter of Section 21, Township 15, Range 20, West of the 2nd Meridian - farmland southeast of Weyburn. Enter it in the ",[45,9678,3819],{"href":103}," and you'll get exact coordinates and a map view.",[24,9681,9683],{"id":9682},"sharing-a-property-location-with-clients","Sharing a Property Location with Clients",[12,9685,9686],{},"Once you've converted a legal land description to a map location, Township Canada generates a shareable link for the result. You can send this directly to a buyer, appraiser, or mortgage specialist - they get a map pin, GPS coordinates, and the full legal description in one view, without needing to understand the DLS grid themselves.",[12,9688,9689,9690,9694,9695,9697],{},"For agents managing multiple rural listings, the ",[45,9691,9693],{"href":9692},"\u002Fguides\u002Fprojects","Projects feature"," lets you save and organize converted locations. Pin all your active listings in one project, and you have a visual map of your rural portfolio you can pull up during client meetings or use with the ",[45,9696,1549],{"href":6902}," to schedule property showings efficiently.",[24,9699,9701],{"id":9700},"quick-reference-reading-any-rural-title","Quick Reference: Reading Any Rural Title",[12,9703,9704],{},"Every Alberta and Saskatchewan rural title follows the same pattern. Once you've read a few, the format becomes automatic:",[241,9706,9707,9713],{},[244,9708,9709,9712],{},[19,9710,9711],{},"Quarter Section",": Quarter – Section – Township – Range – Meridian (e.g., NE 14-032-21 W4M)",[244,9714,9715,9717],{},[19,9716,4660],{},": LSD Number – Section – Township – Range – Meridian (e.g., LSD 06-32-048-07 W5M)",[12,9719,9720,9721,9724],{},"The quarter or LSD tells you the specific parcel. The section tells you the square mile. The ",[45,9722,9723],{"href":4009},"township and range"," tell you the grid position. The meridian tells you which province and region. Read right to left to zoom in from the broadest reference to the specific parcel.",[12,9726,9727,9728,9731],{},"If you're working a rural transaction and need to confirm a property location, convert a legal land description to GPS coordinates, or send a client a map pin, ",[45,9729,9730],{"href":4740},"try the converter"," - it takes less time than explaining range roads over the phone.",{"title":274,"searchDepth":275,"depth":275,"links":9733},[9734,9735,9736,9737,9738,9739],{"id":9553,"depth":275,"text":9554},{"id":9566,"depth":275,"text":9567},{"id":9623,"depth":275,"text":9624},{"id":9648,"depth":275,"text":9649},{"id":9682,"depth":275,"text":9683},{"id":9700,"depth":275,"text":9701},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002F02bbe2f9-e750-481b-9cbc-abcd2b3e3ce9.jpeg","2026-04-14","Learn how to read a legal land description on a rural property title in Alberta and Saskatchewan. Break down quarter sections, LSDs, and DLS notation.",{},{"title":9538,"description":9742},"blog\u002Fhow-to-read-legal-land-description-rural-title",[4291,2779,294,4032,8224],"aKOxdfSWXiCoXK8rEX0GLx-k8MmemG0oAv3q81DzojI",{"id":9749,"title":9750,"author":7,"body":9751,"category":12213,"cover":12214,"date":9741,"description":12215,"extension":287,"meta":12216,"navigation":289,"path":12217,"seo":12218,"stem":12219,"tags":12220,"__hash__":12222},"blog\u002Fblog\u002Fusing-township-api-with-mapbox.md","Build a Survey Grid Map with Mapbox and Township Canada",{"type":9,"value":9752,"toc":12204},[9753,9759,9762,9765,9769,9787,9791,9794,9797,9803,9826,9833,10721,10737,10752,10756,10770,11758,11777,11781,11787,12091,12100,12104,12107,12113,12127,12136,12145,12149,12155,12166,12170,12201],[12,9754,9755,9756,9758],{},"An energy company's GIS team gets a request: build an internal web tool that shows well sites on a survey grid map. Field staff need to type in a legal land description - something like ",[65,9757,8816],{}," - and see exactly where that quarter section sits, with township and section grid lines visible underneath.",[12,9760,9761],{},"This is a common requirement across oil and gas, agriculture, utilities, and land management in western Canada. The DLS (Dominion Land Survey) grid is how land is recorded, and any serious map tool needs to show it.",[12,9763,9764],{},"This tutorial walks through the two core pieces: adding vector tile grid layers to a Mapbox GL JS map, and calling the Township Canada Search API to find and highlight a location by legal land description.",[24,9766,9768],{"id":9767},"what-youll-need","What you'll need",[241,9770,9771,9780],{},[244,9772,9773,9774,9779],{},"A Mapbox access token - sign up at ",[45,9775,9778],{"href":9776,"rel":9777},"https:\u002F\u002Fwww.mapbox.com\u002F",[220],"mapbox.com"," and copy your default public token",[244,9781,9782,9783,9786],{},"A Township Canada API key - subscribe to the Maps API and Search API from the ",[45,9784,6707],{"href":9785},"\u002Fapp\u002Fapi",", then create a key from your account settings",[24,9788,9790],{"id":9789},"adding-the-survey-grid","Adding the survey grid",[12,9792,9793],{},"Township Canada serves the DLS grid as vector tiles. Mapbox GL JS loads vector tiles natively, so no plugins are required - you add a source and a layer, just like any other tileset.",[12,9795,9796],{},"The tile URL pattern for the DLS township grid is:",[1736,9798,9801],{"className":9799,"code":9800,"language":1741},[1739],"https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Ftwp\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=YOUR_API_KEY\n",[65,9802,9800],{"__ignoreMap":274},[12,9804,9805,9806,9809,9810,9813,9814,9817,9818,9821,9822,9825],{},"Grid levels each have their own tileset: ",[65,9807,9808],{},"grid\u002Fdls\u002Ftwp"," for townships (~23,000 acres), ",[65,9811,9812],{},"grid\u002Fdls\u002Fsec"," for sections (~640 acres), and ",[65,9815,9816],{},"grid\u002Fdls\u002Flsd"," for LSDs (~40 acres). Each tileset has a matching label tileset (append ",[65,9819,9820],{},"_label",") with ",[65,9823,9824],{},"descriptor"," properties for rendering text on the grid cells.",[12,9827,9828,9829,9832],{},"Here's how to add the township and section grids inside a ",[65,9830,9831],{},"map.on('load')"," callback, with zoom-dependent visibility so each level appears at an appropriate scale:",[1736,9834,9836],{"className":5802,"code":9835,"language":5804,"meta":274,"style":274},"map.on(\"load\", () => {\n  \u002F\u002F Township grid - visible from zoom 6 to 12\n  map.addSource(\"twp\", {\n    type: \"vector\",\n    tiles: [`https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Ftwp\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=${TC_API_KEY}`],\n    minzoom: 0,\n    maxzoom: 14\n  });\n\n  map.addLayer({\n    id: \"ab_twp\",\n    type: \"line\",\n    source: \"twp\",\n    \"source-layer\": \"ab_twp\",\n    minzoom: 6,\n    maxzoom: 12,\n    paint: { \"line-color\": \"#2d5a47\", \"line-width\": 1.5 }\n  });\n\n  \u002F\u002F Township labels use the descriptor property\n  map.addSource(\"twp_label\", {\n    type: \"vector\",\n    tiles: [\n      `https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Ftwp_label\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=${TC_API_KEY}`\n    ],\n    minzoom: 0,\n    maxzoom: 14\n  });\n\n  map.addLayer({\n    id: \"ab_twp_label\",\n    type: \"symbol\",\n    source: \"twp_label\",\n    \"source-layer\": \"ab_twp_label\",\n    minzoom: 10,\n    maxzoom: 12,\n    layout: { \"text-field\": \"{descriptor}\", \"text-size\": 14 },\n    paint: { \"text-color\": \"#333\", \"text-halo-color\": \"#fff\", \"text-halo-width\": 2 }\n  });\n\n  \u002F\u002F Section grid - visible from zoom 12 to 14\n  map.addSource(\"sec\", {\n    type: \"vector\",\n    tiles: [`https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Fsec\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=${TC_API_KEY}`],\n    minzoom: 9,\n    maxzoom: 14\n  });\n\n  map.addLayer({\n    id: \"ab_sec\",\n    type: \"line\",\n    source: \"sec\",\n    \"source-layer\": \"ab_sec\",\n    minzoom: 12,\n    maxzoom: 14,\n    paint: { \"line-color\": \"#4a7c59\", \"line-width\": 1 }\n  });\n});\n",[65,9837,9838,9868,9873,9897,9913,9939,9951,9961,9970,9974,9987,10003,10017,10032,10051,10063,10075,10117,10126,10131,10137,10159,10174,10183,10201,10209,10220,10229,10238,10243,10256,10272,10288,10303,10322,10334,10345,10387,10446,10455,10460,10466,10488,10503,10529,10541,10550,10559,10564,10577,10593,10608,10623,10642,10653,10664,10703,10712],{"__ignoreMap":274},[2024,9839,9840,9843,9845,9848,9850,9852,9855,9857,9859,9862,9866],{"class":4882,"line":4883},[2024,9841,9842],{"class":5815},"map",[2024,9844,60],{"class":5500},[2024,9846,9847],{"class":5826},"on",[2024,9849,6009],{"class":5830},[2024,9851,5514],{"class":5519},[2024,9853,9854],{"class":5523},"load",[2024,9856,5514],{"class":5519},[2024,9858,5597],{"class":5500},[2024,9860,9861],{"class":5500}," ()",[2024,9863,9865],{"class":9864},"sIOqK"," =>",[2024,9867,5634],{"class":5500},[2024,9869,9870],{"class":4882,"line":275},[2024,9871,9872],{"class":6494},"  \u002F\u002F Township grid - visible from zoom 6 to 12\n",[2024,9874,9875,9878,9880,9883,9886,9888,9891,9893,9895],{"class":4882,"line":498},[2024,9876,9877],{"class":5815},"  map",[2024,9879,60],{"class":5500},[2024,9881,9882],{"class":5826},"addSource",[2024,9884,6009],{"class":9885},"sLdnO",[2024,9887,5514],{"class":5519},[2024,9889,9890],{"class":5523},"twp",[2024,9892,5514],{"class":5519},[2024,9894,5597],{"class":5500},[2024,9896,5634],{"class":5500},[2024,9898,9899,9902,9904,9906,9909,9911],{"class":4882,"line":4899},[2024,9900,9901],{"class":5852},"    type",[2024,9903,2609],{"class":5500},[2024,9905,5520],{"class":5519},[2024,9907,9908],{"class":5523},"vector",[2024,9910,5514],{"class":5519},[2024,9912,5529],{"class":5500},[2024,9914,9915,9918,9920,9922,9924,9927,9929,9931,9933,9935,9937],{"class":4882,"line":4905},[2024,9916,9917],{"class":5852},"    tiles",[2024,9919,2609],{"class":5500},[2024,9921,5957],{"class":9885},[2024,9923,6012],{"class":5519},[2024,9925,9926],{"class":5523},"https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Ftwp\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=",[2024,9928,6019],{"class":6018},[2024,9930,5880],{"class":6022},[2024,9932,6034],{"class":6018},[2024,9934,6012],{"class":5519},[2024,9936,5948],{"class":9885},[2024,9938,5529],{"class":5500},[2024,9940,9941,9944,9946,9949],{"class":4882,"line":5622},[2024,9942,9943],{"class":5852},"    minzoom",[2024,9945,2609],{"class":5500},[2024,9947,9948],{"class":5944}," 0",[2024,9950,5529],{"class":5500},[2024,9952,9953,9956,9958],{"class":4882,"line":5637},[2024,9954,9955],{"class":5852},"    maxzoom",[2024,9957,2609],{"class":5500},[2024,9959,9960],{"class":5944}," 14\n",[2024,9962,9963,9966,9968],{"class":4882,"line":5658},[2024,9964,9965],{"class":5500},"  }",[2024,9967,5893],{"class":9885},[2024,9969,5896],{"class":5500},[2024,9971,9972],{"class":4882,"line":5678},[2024,9973,5901],{"emptyLinePlaceholder":289},[2024,9975,9976,9978,9980,9983,9985],{"class":4882,"line":5698},[2024,9977,9877],{"class":5815},[2024,9979,60],{"class":5500},[2024,9981,9982],{"class":5826},"addLayer",[2024,9984,6009],{"class":9885},[2024,9986,5501],{"class":5500},[2024,9988,9989,9992,9994,9996,9999,10001],{"class":4882,"line":5718},[2024,9990,9991],{"class":5852},"    id",[2024,9993,2609],{"class":5500},[2024,9995,5520],{"class":5519},[2024,9997,9998],{"class":5523},"ab_twp",[2024,10000,5514],{"class":5519},[2024,10002,5529],{"class":5500},[2024,10004,10005,10007,10009,10011,10013,10015],{"class":4882,"line":5737},[2024,10006,9901],{"class":5852},[2024,10008,2609],{"class":5500},[2024,10010,5520],{"class":5519},[2024,10012,4882],{"class":5523},[2024,10014,5514],{"class":5519},[2024,10016,5529],{"class":5500},[2024,10018,10019,10022,10024,10026,10028,10030],{"class":4882,"line":5743},[2024,10020,10021],{"class":5852},"    source",[2024,10023,2609],{"class":5500},[2024,10025,5520],{"class":5519},[2024,10027,9890],{"class":5523},[2024,10029,5514],{"class":5519},[2024,10031,5529],{"class":5500},[2024,10033,10034,10036,10039,10041,10043,10045,10047,10049],{"class":4882,"line":5749},[2024,10035,5548],{"class":5519},[2024,10037,10038],{"class":5862},"source-layer",[2024,10040,5514],{"class":5519},[2024,10042,2609],{"class":5500},[2024,10044,5520],{"class":5519},[2024,10046,9998],{"class":5523},[2024,10048,5514],{"class":5519},[2024,10050,5529],{"class":5500},[2024,10052,10054,10056,10058,10061],{"class":4882,"line":10053},15,[2024,10055,9943],{"class":5852},[2024,10057,2609],{"class":5500},[2024,10059,10060],{"class":5944}," 6",[2024,10062,5529],{"class":5500},[2024,10064,10066,10068,10070,10073],{"class":4882,"line":10065},16,[2024,10067,9955],{"class":5852},[2024,10069,2609],{"class":5500},[2024,10071,10072],{"class":5944}," 12",[2024,10074,5529],{"class":5500},[2024,10076,10078,10081,10083,10085,10087,10090,10092,10094,10096,10099,10101,10103,10105,10108,10110,10112,10115],{"class":4882,"line":10077},17,[2024,10079,10080],{"class":5852},"    paint",[2024,10082,2609],{"class":5500},[2024,10084,5578],{"class":5500},[2024,10086,5520],{"class":5519},[2024,10088,10089],{"class":5862},"line-color",[2024,10091,5514],{"class":5519},[2024,10093,2609],{"class":5500},[2024,10095,5520],{"class":5519},[2024,10097,10098],{"class":5523},"#2d5a47",[2024,10100,5514],{"class":5519},[2024,10102,5597],{"class":5500},[2024,10104,5520],{"class":5519},[2024,10106,10107],{"class":5862},"line-width",[2024,10109,5514],{"class":5519},[2024,10111,2609],{"class":5500},[2024,10113,10114],{"class":5944}," 1.5",[2024,10116,5883],{"class":5500},[2024,10118,10120,10122,10124],{"class":4882,"line":10119},18,[2024,10121,9965],{"class":5500},[2024,10123,5893],{"class":9885},[2024,10125,5896],{"class":5500},[2024,10127,10129],{"class":4882,"line":10128},19,[2024,10130,5901],{"emptyLinePlaceholder":289},[2024,10132,10134],{"class":4882,"line":10133},20,[2024,10135,10136],{"class":6494},"  \u002F\u002F Township labels use the descriptor property\n",[2024,10138,10140,10142,10144,10146,10148,10150,10153,10155,10157],{"class":4882,"line":10139},21,[2024,10141,9877],{"class":5815},[2024,10143,60],{"class":5500},[2024,10145,9882],{"class":5826},[2024,10147,6009],{"class":9885},[2024,10149,5514],{"class":5519},[2024,10151,10152],{"class":5523},"twp_label",[2024,10154,5514],{"class":5519},[2024,10156,5597],{"class":5500},[2024,10158,5634],{"class":5500},[2024,10160,10162,10164,10166,10168,10170,10172],{"class":4882,"line":10161},22,[2024,10163,9901],{"class":5852},[2024,10165,2609],{"class":5500},[2024,10167,5520],{"class":5519},[2024,10169,9908],{"class":5523},[2024,10171,5514],{"class":5519},[2024,10173,5529],{"class":5500},[2024,10175,10177,10179,10181],{"class":4882,"line":10176},23,[2024,10178,9917],{"class":5852},[2024,10180,2609],{"class":5500},[2024,10182,6459],{"class":9885},[2024,10184,10186,10189,10192,10194,10196,10198],{"class":4882,"line":10185},24,[2024,10187,10188],{"class":5519},"      `",[2024,10190,10191],{"class":5523},"https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Ftwp_label\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=",[2024,10193,6019],{"class":6018},[2024,10195,5880],{"class":6022},[2024,10197,6034],{"class":6018},[2024,10199,10200],{"class":5519},"`\n",[2024,10202,10204,10207],{"class":4882,"line":10203},25,[2024,10205,10206],{"class":9885},"    ]",[2024,10208,5529],{"class":5500},[2024,10210,10212,10214,10216,10218],{"class":4882,"line":10211},26,[2024,10213,9943],{"class":5852},[2024,10215,2609],{"class":5500},[2024,10217,9948],{"class":5944},[2024,10219,5529],{"class":5500},[2024,10221,10223,10225,10227],{"class":4882,"line":10222},27,[2024,10224,9955],{"class":5852},[2024,10226,2609],{"class":5500},[2024,10228,9960],{"class":5944},[2024,10230,10232,10234,10236],{"class":4882,"line":10231},28,[2024,10233,9965],{"class":5500},[2024,10235,5893],{"class":9885},[2024,10237,5896],{"class":5500},[2024,10239,10241],{"class":4882,"line":10240},29,[2024,10242,5901],{"emptyLinePlaceholder":289},[2024,10244,10246,10248,10250,10252,10254],{"class":4882,"line":10245},30,[2024,10247,9877],{"class":5815},[2024,10249,60],{"class":5500},[2024,10251,9982],{"class":5826},[2024,10253,6009],{"class":9885},[2024,10255,5501],{"class":5500},[2024,10257,10259,10261,10263,10265,10268,10270],{"class":4882,"line":10258},31,[2024,10260,9991],{"class":5852},[2024,10262,2609],{"class":5500},[2024,10264,5520],{"class":5519},[2024,10266,10267],{"class":5523},"ab_twp_label",[2024,10269,5514],{"class":5519},[2024,10271,5529],{"class":5500},[2024,10273,10275,10277,10279,10281,10284,10286],{"class":4882,"line":10274},32,[2024,10276,9901],{"class":5852},[2024,10278,2609],{"class":5500},[2024,10280,5520],{"class":5519},[2024,10282,10283],{"class":5523},"symbol",[2024,10285,5514],{"class":5519},[2024,10287,5529],{"class":5500},[2024,10289,10291,10293,10295,10297,10299,10301],{"class":4882,"line":10290},33,[2024,10292,10021],{"class":5852},[2024,10294,2609],{"class":5500},[2024,10296,5520],{"class":5519},[2024,10298,10152],{"class":5523},[2024,10300,5514],{"class":5519},[2024,10302,5529],{"class":5500},[2024,10304,10306,10308,10310,10312,10314,10316,10318,10320],{"class":4882,"line":10305},34,[2024,10307,5548],{"class":5519},[2024,10309,10038],{"class":5862},[2024,10311,5514],{"class":5519},[2024,10313,2609],{"class":5500},[2024,10315,5520],{"class":5519},[2024,10317,10267],{"class":5523},[2024,10319,5514],{"class":5519},[2024,10321,5529],{"class":5500},[2024,10323,10325,10327,10329,10332],{"class":4882,"line":10324},35,[2024,10326,9943],{"class":5852},[2024,10328,2609],{"class":5500},[2024,10330,10331],{"class":5944}," 10",[2024,10333,5529],{"class":5500},[2024,10335,10337,10339,10341,10343],{"class":4882,"line":10336},36,[2024,10338,9955],{"class":5852},[2024,10340,2609],{"class":5500},[2024,10342,10072],{"class":5944},[2024,10344,5529],{"class":5500},[2024,10346,10348,10351,10353,10355,10357,10360,10362,10364,10366,10369,10371,10373,10375,10378,10380,10382,10385],{"class":4882,"line":10347},37,[2024,10349,10350],{"class":5852},"    layout",[2024,10352,2609],{"class":5500},[2024,10354,5578],{"class":5500},[2024,10356,5520],{"class":5519},[2024,10358,10359],{"class":5862},"text-field",[2024,10361,5514],{"class":5519},[2024,10363,2609],{"class":5500},[2024,10365,5520],{"class":5519},[2024,10367,10368],{"class":5523},"{descriptor}",[2024,10370,5514],{"class":5519},[2024,10372,5597],{"class":5500},[2024,10374,5520],{"class":5519},[2024,10376,10377],{"class":5862},"text-size",[2024,10379,5514],{"class":5519},[2024,10381,2609],{"class":5500},[2024,10383,10384],{"class":5944}," 14",[2024,10386,5619],{"class":5500},[2024,10388,10390,10392,10394,10396,10398,10401,10403,10405,10407,10410,10412,10414,10416,10419,10421,10423,10425,10428,10430,10432,10434,10437,10439,10441,10444],{"class":4882,"line":10389},38,[2024,10391,10080],{"class":5852},[2024,10393,2609],{"class":5500},[2024,10395,5578],{"class":5500},[2024,10397,5520],{"class":5519},[2024,10399,10400],{"class":5862},"text-color",[2024,10402,5514],{"class":5519},[2024,10404,2609],{"class":5500},[2024,10406,5520],{"class":5519},[2024,10408,10409],{"class":5523},"#333",[2024,10411,5514],{"class":5519},[2024,10413,5597],{"class":5500},[2024,10415,5520],{"class":5519},[2024,10417,10418],{"class":5862},"text-halo-color",[2024,10420,5514],{"class":5519},[2024,10422,2609],{"class":5500},[2024,10424,5520],{"class":5519},[2024,10426,10427],{"class":5523},"#fff",[2024,10429,5514],{"class":5519},[2024,10431,5597],{"class":5500},[2024,10433,5520],{"class":5519},[2024,10435,10436],{"class":5862},"text-halo-width",[2024,10438,5514],{"class":5519},[2024,10440,2609],{"class":5500},[2024,10442,10443],{"class":5944}," 2",[2024,10445,5883],{"class":5500},[2024,10447,10449,10451,10453],{"class":4882,"line":10448},39,[2024,10450,9965],{"class":5500},[2024,10452,5893],{"class":9885},[2024,10454,5896],{"class":5500},[2024,10456,10458],{"class":4882,"line":10457},40,[2024,10459,5901],{"emptyLinePlaceholder":289},[2024,10461,10463],{"class":4882,"line":10462},41,[2024,10464,10465],{"class":6494},"  \u002F\u002F Section grid - visible from zoom 12 to 14\n",[2024,10467,10469,10471,10473,10475,10477,10479,10482,10484,10486],{"class":4882,"line":10468},42,[2024,10470,9877],{"class":5815},[2024,10472,60],{"class":5500},[2024,10474,9882],{"class":5826},[2024,10476,6009],{"class":9885},[2024,10478,5514],{"class":5519},[2024,10480,10481],{"class":5523},"sec",[2024,10483,5514],{"class":5519},[2024,10485,5597],{"class":5500},[2024,10487,5634],{"class":5500},[2024,10489,10491,10493,10495,10497,10499,10501],{"class":4882,"line":10490},43,[2024,10492,9901],{"class":5852},[2024,10494,2609],{"class":5500},[2024,10496,5520],{"class":5519},[2024,10498,9908],{"class":5523},[2024,10500,5514],{"class":5519},[2024,10502,5529],{"class":5500},[2024,10504,10506,10508,10510,10512,10514,10517,10519,10521,10523,10525,10527],{"class":4882,"line":10505},44,[2024,10507,9917],{"class":5852},[2024,10509,2609],{"class":5500},[2024,10511,5957],{"class":9885},[2024,10513,6012],{"class":5519},[2024,10515,10516],{"class":5523},"https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Fsec\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=",[2024,10518,6019],{"class":6018},[2024,10520,5880],{"class":6022},[2024,10522,6034],{"class":6018},[2024,10524,6012],{"class":5519},[2024,10526,5948],{"class":9885},[2024,10528,5529],{"class":5500},[2024,10530,10532,10534,10536,10539],{"class":4882,"line":10531},45,[2024,10533,9943],{"class":5852},[2024,10535,2609],{"class":5500},[2024,10537,10538],{"class":5944}," 9",[2024,10540,5529],{"class":5500},[2024,10542,10544,10546,10548],{"class":4882,"line":10543},46,[2024,10545,9955],{"class":5852},[2024,10547,2609],{"class":5500},[2024,10549,9960],{"class":5944},[2024,10551,10553,10555,10557],{"class":4882,"line":10552},47,[2024,10554,9965],{"class":5500},[2024,10556,5893],{"class":9885},[2024,10558,5896],{"class":5500},[2024,10560,10562],{"class":4882,"line":10561},48,[2024,10563,5901],{"emptyLinePlaceholder":289},[2024,10565,10567,10569,10571,10573,10575],{"class":4882,"line":10566},49,[2024,10568,9877],{"class":5815},[2024,10570,60],{"class":5500},[2024,10572,9982],{"class":5826},[2024,10574,6009],{"class":9885},[2024,10576,5501],{"class":5500},[2024,10578,10580,10582,10584,10586,10589,10591],{"class":4882,"line":10579},50,[2024,10581,9991],{"class":5852},[2024,10583,2609],{"class":5500},[2024,10585,5520],{"class":5519},[2024,10587,10588],{"class":5523},"ab_sec",[2024,10590,5514],{"class":5519},[2024,10592,5529],{"class":5500},[2024,10594,10596,10598,10600,10602,10604,10606],{"class":4882,"line":10595},51,[2024,10597,9901],{"class":5852},[2024,10599,2609],{"class":5500},[2024,10601,5520],{"class":5519},[2024,10603,4882],{"class":5523},[2024,10605,5514],{"class":5519},[2024,10607,5529],{"class":5500},[2024,10609,10611,10613,10615,10617,10619,10621],{"class":4882,"line":10610},52,[2024,10612,10021],{"class":5852},[2024,10614,2609],{"class":5500},[2024,10616,5520],{"class":5519},[2024,10618,10481],{"class":5523},[2024,10620,5514],{"class":5519},[2024,10622,5529],{"class":5500},[2024,10624,10626,10628,10630,10632,10634,10636,10638,10640],{"class":4882,"line":10625},53,[2024,10627,5548],{"class":5519},[2024,10629,10038],{"class":5862},[2024,10631,5514],{"class":5519},[2024,10633,2609],{"class":5500},[2024,10635,5520],{"class":5519},[2024,10637,10588],{"class":5523},[2024,10639,5514],{"class":5519},[2024,10641,5529],{"class":5500},[2024,10643,10645,10647,10649,10651],{"class":4882,"line":10644},54,[2024,10646,9943],{"class":5852},[2024,10648,2609],{"class":5500},[2024,10650,10072],{"class":5944},[2024,10652,5529],{"class":5500},[2024,10654,10656,10658,10660,10662],{"class":4882,"line":10655},55,[2024,10657,9955],{"class":5852},[2024,10659,2609],{"class":5500},[2024,10661,10384],{"class":5944},[2024,10663,5529],{"class":5500},[2024,10665,10667,10669,10671,10673,10675,10677,10679,10681,10683,10686,10688,10690,10692,10694,10696,10698,10701],{"class":4882,"line":10666},56,[2024,10668,10080],{"class":5852},[2024,10670,2609],{"class":5500},[2024,10672,5578],{"class":5500},[2024,10674,5520],{"class":5519},[2024,10676,10089],{"class":5862},[2024,10678,5514],{"class":5519},[2024,10680,2609],{"class":5500},[2024,10682,5520],{"class":5519},[2024,10684,10685],{"class":5523},"#4a7c59",[2024,10687,5514],{"class":5519},[2024,10689,5597],{"class":5500},[2024,10691,5520],{"class":5519},[2024,10693,10107],{"class":5862},[2024,10695,5514],{"class":5519},[2024,10697,2609],{"class":5500},[2024,10699,10700],{"class":5944}," 1",[2024,10702,5883],{"class":5500},[2024,10704,10706,10708,10710],{"class":4882,"line":10705},57,[2024,10707,9965],{"class":5500},[2024,10709,5893],{"class":9885},[2024,10711,5896],{"class":5500},[2024,10713,10715,10717,10719],{"class":4882,"line":10714},58,[2024,10716,6034],{"class":5500},[2024,10718,5893],{"class":5830},[2024,10720,5896],{"class":5500},[12,10722,10723,10724,10726,10727,10730,10731,10733,10734,10736],{},"Note that vector tile features expose a ",[65,10725,9824],{}," property for labels (e.g., ",[65,10728,10729],{},"\"TWP 24 RNG 1 W5\"","). This is the correct property to reference in ",[65,10732,10359],{}," expressions for label layers. The Search API response uses ",[65,10735,5663],{}," on features returned from coordinate lookup - a different field for a different purpose.",[12,10738,10739,10740,68,10743,10746,10747,10751],{},"To cover Saskatchewan and Manitoba, add layers using their source-layer names (",[65,10741,10742],{},"sk_twp",[65,10744,10745],{},"mb_sec",", etc.) from the same tile sources. See the ",[45,10748,10750],{"href":10749},"\u002Fguides\u002Fmaps-api-vector-tiles","Maps API vector tiles guide"," for the full list.",[24,10753,10755],{"id":10754},"searching-by-legal-land-description","Searching by legal land description",[12,10757,10758,10759,10762,10763,10766,10767,60],{},"Once the grid is on the map, users need a way to find specific locations. The Search API takes a legal land description string and returns a GeoJSON FeatureCollection with two features: the parcel boundary as a ",[65,10760,10761],{},"MultiPolygon",", and a centroid ",[65,10764,10765],{},"Point"," identified by ",[65,10768,10769],{},"shape: \"centroid\"",[1736,10771,10773],{"className":5802,"code":10772,"language":5804,"meta":274,"style":274},"async function searchAndFlyTo(query) {\n  const response = await fetch(\n    `https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=${encodeURIComponent(query)}`,\n    { headers: { \"X-API-Key\": TC_API_KEY } }\n  );\n\n  const data = await response.json();\n  if (!data.features || data.features.length === 0) return;\n\n  \u002F\u002F Identify the centroid and polygon features\n  const centroid = data.features.find((f) => f.properties.shape === \"centroid\");\n  const polygon = data.features.find((f) => f.geometry.type === \"MultiPolygon\");\n\n  if (!centroid) return;\n\n  const [lng, lat] = centroid.geometry.coordinates;\n\n  \u002F\u002F Fly to the location and place a marker\n  map.flyTo({ center: [lng, lat], zoom: 14, duration: 2000 });\n\n  new mapboxgl.Marker({ color: \"#2d5a47\" })\n    .setLngLat([lng, lat])\n    .setPopup(\n      new mapboxgl.Popup().setHTML(\n        `\u003Cstrong>${centroid.properties.legal_location}\u003C\u002Fstrong>\u003Cbr>` +\n          `${lat.toFixed(6)}, ${lng.toFixed(6)}`\n      )\n    )\n    .addTo(map);\n\n  \u002F\u002F Draw the parcel boundary\n  if (polygon) {\n    if (map.getSource(\"search-result\")) {\n      map.removeLayer(\"search-result-fill\");\n      map.removeLayer(\"search-result-outline\");\n      map.removeSource(\"search-result\");\n    }\n\n    map.addSource(\"search-result\", { type: \"geojson\", data: polygon });\n    map.addLayer({\n      id: \"search-result-fill\",\n      type: \"fill\",\n      source: \"search-result\",\n      paint: { \"fill-color\": \"#2d5a47\", \"fill-opacity\": 0.15 }\n    });\n    map.addLayer({\n      id: \"search-result-outline\",\n      type: \"line\",\n      source: \"search-result\",\n      paint: { \"line-color\": \"#2d5a47\", \"line-width\": 2 }\n    });\n  }\n}\n\n\u002F\u002F Find a quarter section in Alberta\nsearchAndFlyTo(\"NW-25-24-1-W5\");\n",[65,10774,10775,10795,10810,10835,10862,10869,10873,10893,10937,10941,10946,11002,11053,11057,11073,11077,11105,11109,11114,11167,11171,11203,11222,11231,11252,11282,11324,11329,11334,11349,11353,11358,11371,11399,11422,11443,11464,11468,11472,11519,11531,11546,11562,11577,11617,11626,11638,11652,11666,11680,11716,11724,11728,11732,11736,11741],{"__ignoreMap":274},[2024,10776,10777,10780,10783,10786,10788,10791,10793],{"class":4882,"line":4883},[2024,10778,10779],{"class":5811},"async",[2024,10781,10782],{"class":5811}," function",[2024,10784,10785],{"class":5826}," searchAndFlyTo",[2024,10787,6009],{"class":5500},[2024,10789,10790],{"class":6323},"query",[2024,10792,5893],{"class":5500},[2024,10794,5634],{"class":5500},[2024,10796,10797,10800,10802,10804,10806,10808],{"class":4882,"line":275},[2024,10798,10799],{"class":5811},"  const",[2024,10801,5816],{"class":5815},[2024,10803,5819],{"class":5500},[2024,10805,5823],{"class":5822},[2024,10807,5827],{"class":5826},[2024,10809,5831],{"class":9885},[2024,10811,10812,10815,10818,10820,10823,10825,10827,10829,10831,10833],{"class":4882,"line":498},[2024,10813,10814],{"class":5519},"    `",[2024,10816,10817],{"class":5523},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=",[2024,10819,6019],{"class":6018},[2024,10821,10822],{"class":5826},"encodeURIComponent",[2024,10824,6009],{"class":5830},[2024,10826,10790],{"class":6022},[2024,10828,5893],{"class":5830},[2024,10830,6034],{"class":6018},[2024,10832,6012],{"class":5519},[2024,10834,5529],{"class":5500},[2024,10836,10837,10840,10843,10845,10847,10849,10851,10853,10855,10858,10860],{"class":4882,"line":4899},[2024,10838,10839],{"class":5500},"    {",[2024,10841,10842],{"class":5852}," headers",[2024,10844,2609],{"class":5500},[2024,10846,5578],{"class":5500},[2024,10848,5520],{"class":5519},[2024,10850,5863],{"class":5862},[2024,10852,5514],{"class":5519},[2024,10854,2609],{"class":5500},[2024,10856,10857],{"class":5815}," TC_API_KEY",[2024,10859,6147],{"class":5500},[2024,10861,5883],{"class":5500},[2024,10863,10864,10867],{"class":4882,"line":4905},[2024,10865,10866],{"class":9885},"  )",[2024,10868,5896],{"class":5500},[2024,10870,10871],{"class":4882,"line":5622},[2024,10872,5901],{"emptyLinePlaceholder":289},[2024,10874,10875,10877,10879,10881,10883,10885,10887,10889,10891],{"class":4882,"line":5637},[2024,10876,10799],{"class":5811},[2024,10878,5908],{"class":5815},[2024,10880,5819],{"class":5500},[2024,10882,5823],{"class":5822},[2024,10884,5816],{"class":5815},[2024,10886,60],{"class":5500},[2024,10888,5493],{"class":5826},[2024,10890,5921],{"class":9885},[2024,10892,5896],{"class":5500},[2024,10894,10895,10898,10900,10903,10906,10908,10910,10913,10915,10917,10919,10921,10925,10928,10930,10932,10935],{"class":4882,"line":5658},[2024,10896,10897],{"class":5822},"  if",[2024,10899,527],{"class":9885},[2024,10901,10902],{"class":6175},"!",[2024,10904,10905],{"class":5815},"data",[2024,10907,60],{"class":5500},[2024,10909,5536],{"class":5815},[2024,10911,10912],{"class":6175}," ||",[2024,10914,5908],{"class":5815},[2024,10916,60],{"class":5500},[2024,10918,5536],{"class":5815},[2024,10920,60],{"class":5500},[2024,10922,10924],{"class":10923},"s131V","length",[2024,10926,10927],{"class":6175}," ===",[2024,10929,9948],{"class":5944},[2024,10931,5893],{"class":9885},[2024,10933,10934],{"class":5822}," return",[2024,10936,5896],{"class":5500},[2024,10938,10939],{"class":4882,"line":5678},[2024,10940,5901],{"emptyLinePlaceholder":289},[2024,10942,10943],{"class":4882,"line":5698},[2024,10944,10945],{"class":6494},"  \u002F\u002F Identify the centroid and polygon features\n",[2024,10947,10948,10950,10953,10955,10957,10959,10961,10963,10966,10968,10970,10973,10975,10977,10980,10982,10984,10986,10989,10991,10993,10996,10998,11000],{"class":4882,"line":5718},[2024,10949,10799],{"class":5811},[2024,10951,10952],{"class":5815}," centroid",[2024,10954,5819],{"class":5500},[2024,10956,5908],{"class":5815},[2024,10958,60],{"class":5500},[2024,10960,5536],{"class":5815},[2024,10962,60],{"class":5500},[2024,10964,10965],{"class":5826},"find",[2024,10967,6009],{"class":9885},[2024,10969,6009],{"class":5500},[2024,10971,10972],{"class":6323},"f",[2024,10974,5893],{"class":5500},[2024,10976,9865],{"class":9864},[2024,10978,10979],{"class":5815}," f",[2024,10981,60],{"class":5500},[2024,10983,5627],{"class":5815},[2024,10985,60],{"class":5500},[2024,10987,10988],{"class":5815},"shape",[2024,10990,10927],{"class":6175},[2024,10992,5520],{"class":5519},[2024,10994,10995],{"class":5523},"centroid",[2024,10997,5514],{"class":5519},[2024,10999,5893],{"class":9885},[2024,11001,5896],{"class":5500},[2024,11003,11004,11006,11009,11011,11013,11015,11017,11019,11021,11023,11025,11027,11029,11031,11033,11035,11037,11039,11041,11043,11045,11047,11049,11051],{"class":4882,"line":5737},[2024,11005,10799],{"class":5811},[2024,11007,11008],{"class":5815}," polygon",[2024,11010,5819],{"class":5500},[2024,11012,5908],{"class":5815},[2024,11014,60],{"class":5500},[2024,11016,5536],{"class":5815},[2024,11018,60],{"class":5500},[2024,11020,10965],{"class":5826},[2024,11022,6009],{"class":9885},[2024,11024,6009],{"class":5500},[2024,11026,10972],{"class":6323},[2024,11028,5893],{"class":5500},[2024,11030,9865],{"class":9864},[2024,11032,10979],{"class":5815},[2024,11034,60],{"class":5500},[2024,11036,5571],{"class":5815},[2024,11038,60],{"class":5500},[2024,11040,5511],{"class":5815},[2024,11042,10927],{"class":6175},[2024,11044,5520],{"class":5519},[2024,11046,10761],{"class":5523},[2024,11048,5514],{"class":5519},[2024,11050,5893],{"class":9885},[2024,11052,5896],{"class":5500},[2024,11054,11055],{"class":4882,"line":5743},[2024,11056,5901],{"emptyLinePlaceholder":289},[2024,11058,11059,11061,11063,11065,11067,11069,11071],{"class":4882,"line":5749},[2024,11060,10897],{"class":5822},[2024,11062,527],{"class":9885},[2024,11064,10902],{"class":6175},[2024,11066,10995],{"class":5815},[2024,11068,5893],{"class":9885},[2024,11070,10934],{"class":5822},[2024,11072,5896],{"class":5500},[2024,11074,11075],{"class":4882,"line":10053},[2024,11076,5901],{"emptyLinePlaceholder":289},[2024,11078,11079,11081,11083,11085,11087,11089,11091,11093,11095,11097,11099,11101,11103],{"class":4882,"line":10065},[2024,11080,10799],{"class":5811},[2024,11082,5957],{"class":5500},[2024,11084,5960],{"class":5815},[2024,11086,5597],{"class":5500},[2024,11088,5965],{"class":5815},[2024,11090,5948],{"class":5500},[2024,11092,5819],{"class":5500},[2024,11094,10952],{"class":5815},[2024,11096,60],{"class":5500},[2024,11098,5571],{"class":5815},[2024,11100,60],{"class":5500},[2024,11102,5602],{"class":5815},[2024,11104,5896],{"class":5500},[2024,11106,11107],{"class":4882,"line":10077},[2024,11108,5901],{"emptyLinePlaceholder":289},[2024,11110,11111],{"class":4882,"line":10119},[2024,11112,11113],{"class":6494},"  \u002F\u002F Fly to the location and place a marker\n",[2024,11115,11116,11118,11120,11123,11125,11127,11130,11132,11134,11136,11138,11140,11142,11144,11147,11149,11151,11153,11156,11158,11161,11163,11165],{"class":4882,"line":10128},[2024,11117,9877],{"class":5815},[2024,11119,60],{"class":5500},[2024,11121,11122],{"class":5826},"flyTo",[2024,11124,6009],{"class":9885},[2024,11126,6183],{"class":5500},[2024,11128,11129],{"class":5852}," center",[2024,11131,2609],{"class":5500},[2024,11133,5957],{"class":9885},[2024,11135,5960],{"class":5815},[2024,11137,5597],{"class":5500},[2024,11139,5965],{"class":5815},[2024,11141,5948],{"class":9885},[2024,11143,5597],{"class":5500},[2024,11145,11146],{"class":5852}," zoom",[2024,11148,2609],{"class":5500},[2024,11150,10384],{"class":5944},[2024,11152,5597],{"class":5500},[2024,11154,11155],{"class":5852}," duration",[2024,11157,2609],{"class":5500},[2024,11159,11160],{"class":5944}," 2000",[2024,11162,6147],{"class":5500},[2024,11164,5893],{"class":9885},[2024,11166,5896],{"class":5500},[2024,11168,11169],{"class":4882,"line":10133},[2024,11170,5901],{"emptyLinePlaceholder":289},[2024,11172,11173,11176,11179,11181,11184,11186,11188,11191,11193,11195,11197,11199,11201],{"class":4882,"line":10139},[2024,11174,11175],{"class":6175},"  new",[2024,11177,11178],{"class":5815}," mapboxgl",[2024,11180,60],{"class":5500},[2024,11182,11183],{"class":5826},"Marker",[2024,11185,6009],{"class":9885},[2024,11187,6183],{"class":5500},[2024,11189,11190],{"class":5852}," color",[2024,11192,2609],{"class":5500},[2024,11194,5520],{"class":5519},[2024,11196,10098],{"class":5523},[2024,11198,5514],{"class":5519},[2024,11200,6147],{"class":5500},[2024,11202,6370],{"class":9885},[2024,11204,11205,11208,11211,11214,11216,11218,11220],{"class":4882,"line":10161},[2024,11206,11207],{"class":5500},"    .",[2024,11209,11210],{"class":5826},"setLngLat",[2024,11212,11213],{"class":9885},"([",[2024,11215,5960],{"class":5815},[2024,11217,5597],{"class":5500},[2024,11219,5965],{"class":5815},[2024,11221,6346],{"class":9885},[2024,11223,11224,11226,11229],{"class":4882,"line":10176},[2024,11225,11207],{"class":5500},[2024,11227,11228],{"class":5826},"setPopup",[2024,11230,5831],{"class":9885},[2024,11232,11233,11236,11238,11240,11243,11245,11247,11250],{"class":4882,"line":10185},[2024,11234,11235],{"class":6175},"      new",[2024,11237,11178],{"class":5815},[2024,11239,60],{"class":5500},[2024,11241,11242],{"class":5826},"Popup",[2024,11244,5921],{"class":9885},[2024,11246,60],{"class":5500},[2024,11248,11249],{"class":5826},"setHTML",[2024,11251,5831],{"class":9885},[2024,11253,11254,11257,11260,11262,11264,11266,11268,11270,11272,11274,11277,11279],{"class":4882,"line":10203},[2024,11255,11256],{"class":5519},"        `",[2024,11258,11259],{"class":5523},"\u003Cstrong>",[2024,11261,6019],{"class":6018},[2024,11263,10995],{"class":6022},[2024,11265,60],{"class":5500},[2024,11267,5627],{"class":6022},[2024,11269,60],{"class":5500},[2024,11271,5663],{"class":6022},[2024,11273,6034],{"class":6018},[2024,11275,11276],{"class":5523},"\u003C\u002Fstrong>\u003Cbr>",[2024,11278,6012],{"class":5519},[2024,11280,11281],{"class":6175}," +\n",[2024,11283,11284,11287,11289,11291,11293,11296,11298,11300,11302,11304,11306,11308,11310,11312,11314,11316,11318,11320,11322],{"class":4882,"line":10211},[2024,11285,11286],{"class":5519},"          `",[2024,11288,6019],{"class":6018},[2024,11290,6060],{"class":6022},[2024,11292,60],{"class":5500},[2024,11294,11295],{"class":5826},"toFixed",[2024,11297,6009],{"class":5830},[2024,11299,2588],{"class":5944},[2024,11301,5893],{"class":5830},[2024,11303,6034],{"class":6018},[2024,11305,68],{"class":5523},[2024,11307,6019],{"class":6018},[2024,11309,5960],{"class":6022},[2024,11311,60],{"class":5500},[2024,11313,11295],{"class":5826},[2024,11315,6009],{"class":5830},[2024,11317,2588],{"class":5944},[2024,11319,5893],{"class":5830},[2024,11321,6034],{"class":6018},[2024,11323,10200],{"class":5519},[2024,11325,11326],{"class":4882,"line":10222},[2024,11327,11328],{"class":9885},"      )\n",[2024,11330,11331],{"class":4882,"line":10231},[2024,11332,11333],{"class":9885},"    )\n",[2024,11335,11336,11338,11341,11343,11345,11347],{"class":4882,"line":10240},[2024,11337,11207],{"class":5500},[2024,11339,11340],{"class":5826},"addTo",[2024,11342,6009],{"class":9885},[2024,11344,9842],{"class":5815},[2024,11346,5893],{"class":9885},[2024,11348,5896],{"class":5500},[2024,11350,11351],{"class":4882,"line":10245},[2024,11352,5901],{"emptyLinePlaceholder":289},[2024,11354,11355],{"class":4882,"line":10258},[2024,11356,11357],{"class":6494},"  \u002F\u002F Draw the parcel boundary\n",[2024,11359,11360,11362,11364,11367,11369],{"class":4882,"line":10274},[2024,11361,10897],{"class":5822},[2024,11363,527],{"class":9885},[2024,11365,11366],{"class":5815},"polygon",[2024,11368,5893],{"class":9885},[2024,11370,5634],{"class":5500},[2024,11372,11373,11376,11378,11380,11382,11385,11387,11389,11392,11394,11397],{"class":4882,"line":10290},[2024,11374,11375],{"class":5822},"    if",[2024,11377,527],{"class":9885},[2024,11379,9842],{"class":5815},[2024,11381,60],{"class":5500},[2024,11383,11384],{"class":5826},"getSource",[2024,11386,6009],{"class":9885},[2024,11388,5514],{"class":5519},[2024,11390,11391],{"class":5523},"search-result",[2024,11393,5514],{"class":5519},[2024,11395,11396],{"class":9885},"))",[2024,11398,5634],{"class":5500},[2024,11400,11401,11404,11406,11409,11411,11413,11416,11418,11420],{"class":4882,"line":10305},[2024,11402,11403],{"class":5815},"      map",[2024,11405,60],{"class":5500},[2024,11407,11408],{"class":5826},"removeLayer",[2024,11410,6009],{"class":9885},[2024,11412,5514],{"class":5519},[2024,11414,11415],{"class":5523},"search-result-fill",[2024,11417,5514],{"class":5519},[2024,11419,5893],{"class":9885},[2024,11421,5896],{"class":5500},[2024,11423,11424,11426,11428,11430,11432,11434,11437,11439,11441],{"class":4882,"line":10324},[2024,11425,11403],{"class":5815},[2024,11427,60],{"class":5500},[2024,11429,11408],{"class":5826},[2024,11431,6009],{"class":9885},[2024,11433,5514],{"class":5519},[2024,11435,11436],{"class":5523},"search-result-outline",[2024,11438,5514],{"class":5519},[2024,11440,5893],{"class":9885},[2024,11442,5896],{"class":5500},[2024,11444,11445,11447,11449,11452,11454,11456,11458,11460,11462],{"class":4882,"line":10336},[2024,11446,11403],{"class":5815},[2024,11448,60],{"class":5500},[2024,11450,11451],{"class":5826},"removeSource",[2024,11453,6009],{"class":9885},[2024,11455,5514],{"class":5519},[2024,11457,11391],{"class":5523},[2024,11459,5514],{"class":5519},[2024,11461,5893],{"class":9885},[2024,11463,5896],{"class":5500},[2024,11465,11466],{"class":4882,"line":10347},[2024,11467,5740],{"class":5500},[2024,11469,11470],{"class":4882,"line":10389},[2024,11471,5901],{"emptyLinePlaceholder":289},[2024,11473,11474,11477,11479,11481,11483,11485,11487,11489,11491,11493,11496,11498,11500,11503,11505,11507,11509,11511,11513,11515,11517],{"class":4882,"line":10448},[2024,11475,11476],{"class":5815},"    map",[2024,11478,60],{"class":5500},[2024,11480,9882],{"class":5826},[2024,11482,6009],{"class":9885},[2024,11484,5514],{"class":5519},[2024,11486,11391],{"class":5523},[2024,11488,5514],{"class":5519},[2024,11490,5597],{"class":5500},[2024,11492,5578],{"class":5500},[2024,11494,11495],{"class":5852}," type",[2024,11497,2609],{"class":5500},[2024,11499,5520],{"class":5519},[2024,11501,11502],{"class":5523},"geojson",[2024,11504,5514],{"class":5519},[2024,11506,5597],{"class":5500},[2024,11508,5908],{"class":5852},[2024,11510,2609],{"class":5500},[2024,11512,11008],{"class":5815},[2024,11514,6147],{"class":5500},[2024,11516,5893],{"class":9885},[2024,11518,5896],{"class":5500},[2024,11520,11521,11523,11525,11527,11529],{"class":4882,"line":10457},[2024,11522,11476],{"class":5815},[2024,11524,60],{"class":5500},[2024,11526,9982],{"class":5826},[2024,11528,6009],{"class":9885},[2024,11530,5501],{"class":5500},[2024,11532,11533,11536,11538,11540,11542,11544],{"class":4882,"line":10462},[2024,11534,11535],{"class":5852},"      id",[2024,11537,2609],{"class":5500},[2024,11539,5520],{"class":5519},[2024,11541,11415],{"class":5523},[2024,11543,5514],{"class":5519},[2024,11545,5529],{"class":5500},[2024,11547,11548,11551,11553,11555,11558,11560],{"class":4882,"line":10468},[2024,11549,11550],{"class":5852},"      type",[2024,11552,2609],{"class":5500},[2024,11554,5520],{"class":5519},[2024,11556,11557],{"class":5523},"fill",[2024,11559,5514],{"class":5519},[2024,11561,5529],{"class":5500},[2024,11563,11564,11567,11569,11571,11573,11575],{"class":4882,"line":10490},[2024,11565,11566],{"class":5852},"      source",[2024,11568,2609],{"class":5500},[2024,11570,5520],{"class":5519},[2024,11572,11391],{"class":5523},[2024,11574,5514],{"class":5519},[2024,11576,5529],{"class":5500},[2024,11578,11579,11582,11584,11586,11588,11591,11593,11595,11597,11599,11601,11603,11605,11608,11610,11612,11615],{"class":4882,"line":10505},[2024,11580,11581],{"class":5852},"      paint",[2024,11583,2609],{"class":5500},[2024,11585,5578],{"class":5500},[2024,11587,5520],{"class":5519},[2024,11589,11590],{"class":5862},"fill-color",[2024,11592,5514],{"class":5519},[2024,11594,2609],{"class":5500},[2024,11596,5520],{"class":5519},[2024,11598,10098],{"class":5523},[2024,11600,5514],{"class":5519},[2024,11602,5597],{"class":5500},[2024,11604,5520],{"class":5519},[2024,11606,11607],{"class":5862},"fill-opacity",[2024,11609,5514],{"class":5519},[2024,11611,2609],{"class":5500},[2024,11613,11614],{"class":5944}," 0.15",[2024,11616,5883],{"class":5500},[2024,11618,11619,11622,11624],{"class":4882,"line":10531},[2024,11620,11621],{"class":5500},"    }",[2024,11623,5893],{"class":9885},[2024,11625,5896],{"class":5500},[2024,11627,11628,11630,11632,11634,11636],{"class":4882,"line":10543},[2024,11629,11476],{"class":5815},[2024,11631,60],{"class":5500},[2024,11633,9982],{"class":5826},[2024,11635,6009],{"class":9885},[2024,11637,5501],{"class":5500},[2024,11639,11640,11642,11644,11646,11648,11650],{"class":4882,"line":10552},[2024,11641,11535],{"class":5852},[2024,11643,2609],{"class":5500},[2024,11645,5520],{"class":5519},[2024,11647,11436],{"class":5523},[2024,11649,5514],{"class":5519},[2024,11651,5529],{"class":5500},[2024,11653,11654,11656,11658,11660,11662,11664],{"class":4882,"line":10561},[2024,11655,11550],{"class":5852},[2024,11657,2609],{"class":5500},[2024,11659,5520],{"class":5519},[2024,11661,4882],{"class":5523},[2024,11663,5514],{"class":5519},[2024,11665,5529],{"class":5500},[2024,11667,11668,11670,11672,11674,11676,11678],{"class":4882,"line":10566},[2024,11669,11566],{"class":5852},[2024,11671,2609],{"class":5500},[2024,11673,5520],{"class":5519},[2024,11675,11391],{"class":5523},[2024,11677,5514],{"class":5519},[2024,11679,5529],{"class":5500},[2024,11681,11682,11684,11686,11688,11690,11692,11694,11696,11698,11700,11702,11704,11706,11708,11710,11712,11714],{"class":4882,"line":10579},[2024,11683,11581],{"class":5852},[2024,11685,2609],{"class":5500},[2024,11687,5578],{"class":5500},[2024,11689,5520],{"class":5519},[2024,11691,10089],{"class":5862},[2024,11693,5514],{"class":5519},[2024,11695,2609],{"class":5500},[2024,11697,5520],{"class":5519},[2024,11699,10098],{"class":5523},[2024,11701,5514],{"class":5519},[2024,11703,5597],{"class":5500},[2024,11705,5520],{"class":5519},[2024,11707,10107],{"class":5862},[2024,11709,5514],{"class":5519},[2024,11711,2609],{"class":5500},[2024,11713,10443],{"class":5944},[2024,11715,5883],{"class":5500},[2024,11717,11718,11720,11722],{"class":4882,"line":10595},[2024,11719,11621],{"class":5500},[2024,11721,5893],{"class":9885},[2024,11723,5896],{"class":5500},[2024,11725,11726],{"class":4882,"line":10610},[2024,11727,5888],{"class":5500},[2024,11729,11730],{"class":4882,"line":10625},[2024,11731,5752],{"class":5500},[2024,11733,11734],{"class":4882,"line":10644},[2024,11735,5901],{"emptyLinePlaceholder":289},[2024,11737,11738],{"class":4882,"line":10655},[2024,11739,11740],{"class":6494},"\u002F\u002F Find a quarter section in Alberta\n",[2024,11742,11743,11746,11748,11750,11752,11754,11756],{"class":4882,"line":10666},[2024,11744,11745],{"class":5826},"searchAndFlyTo",[2024,11747,6009],{"class":5830},[2024,11749,5514],{"class":5519},[2024,11751,8816],{"class":5523},[2024,11753,5514],{"class":5519},[2024,11755,5893],{"class":5830},[2024,11757,5896],{"class":5500},[12,11759,11760,11761,11764,11765,11768,11769,11772,11773,11776],{},"The API base URL is ",[65,11762,11763],{},"https:\u002F\u002Fdeveloper.townshipcanada.com"," and all requests require an ",[65,11766,11767],{},"X-API-Key: YOUR_API_KEY"," header. The search endpoint is ",[65,11770,11771],{},"\u002Fsearch\u002Flegal-location"," with a ",[65,11774,11775],{},"location"," query parameter.",[24,11778,11780],{"id":11779},"making-grid-cells-clickable","Making grid cells clickable",[12,11782,11783,11784,11786],{},"For the well site tracking use case, field staff also need to click any grid cell and see its legal land description. Add a click handler on the township layer to show a popup with the cell's ",[65,11785,9824],{}," from the vector tile feature properties:",[1736,11788,11790],{"className":5802,"code":11789,"language":5804,"meta":274,"style":274},"map.on(\"click\", \"ab_twp\", (e) => {\n  if (e.features.length === 0) return;\n\n  new mapboxgl.Popup()\n    .setLngLat(e.lngLat)\n    .setHTML(`\u003Cstrong>${e.features[0].properties.descriptor || \"Township\"}\u003C\u002Fstrong>`)\n    .addTo(map);\n});\n\nmap.on(\"mouseenter\", \"ab_twp\", () => (map.getCanvas().style.cursor = \"pointer\"));\nmap.on(\"mouseleave\", \"ab_twp\", () => (map.getCanvas().style.cursor = \"\"));\n",[65,11791,11792,11830,11856,11860,11873,11890,11943,11957,11965,11969,12033],{"__ignoreMap":274},[2024,11793,11794,11796,11798,11800,11802,11804,11807,11809,11811,11813,11815,11817,11819,11821,11824,11826,11828],{"class":4882,"line":4883},[2024,11795,9842],{"class":5815},[2024,11797,60],{"class":5500},[2024,11799,9847],{"class":5826},[2024,11801,6009],{"class":5830},[2024,11803,5514],{"class":5519},[2024,11805,11806],{"class":5523},"click",[2024,11808,5514],{"class":5519},[2024,11810,5597],{"class":5500},[2024,11812,5520],{"class":5519},[2024,11814,9998],{"class":5523},[2024,11816,5514],{"class":5519},[2024,11818,5597],{"class":5500},[2024,11820,527],{"class":5500},[2024,11822,11823],{"class":6323},"e",[2024,11825,5893],{"class":5500},[2024,11827,9865],{"class":9864},[2024,11829,5634],{"class":5500},[2024,11831,11832,11834,11836,11838,11840,11842,11844,11846,11848,11850,11852,11854],{"class":4882,"line":275},[2024,11833,10897],{"class":5822},[2024,11835,527],{"class":9885},[2024,11837,11823],{"class":5815},[2024,11839,60],{"class":5500},[2024,11841,5536],{"class":5815},[2024,11843,60],{"class":5500},[2024,11845,10924],{"class":10923},[2024,11847,10927],{"class":6175},[2024,11849,9948],{"class":5944},[2024,11851,5893],{"class":9885},[2024,11853,10934],{"class":5822},[2024,11855,5896],{"class":5500},[2024,11857,11858],{"class":4882,"line":498},[2024,11859,5901],{"emptyLinePlaceholder":289},[2024,11861,11862,11864,11866,11868,11870],{"class":4882,"line":4899},[2024,11863,11175],{"class":6175},[2024,11865,11178],{"class":5815},[2024,11867,60],{"class":5500},[2024,11869,11242],{"class":5826},[2024,11871,11872],{"class":9885},"()\n",[2024,11874,11875,11877,11879,11881,11883,11885,11888],{"class":4882,"line":4905},[2024,11876,11207],{"class":5500},[2024,11878,11210],{"class":5826},[2024,11880,6009],{"class":9885},[2024,11882,11823],{"class":5815},[2024,11884,60],{"class":5500},[2024,11886,11887],{"class":5815},"lngLat",[2024,11889,6370],{"class":9885},[2024,11891,11892,11894,11896,11898,11900,11902,11904,11906,11908,11910,11912,11914,11916,11918,11920,11922,11925,11928,11930,11932,11934,11936,11939,11941],{"class":4882,"line":5622},[2024,11893,11207],{"class":5500},[2024,11895,11249],{"class":5826},[2024,11897,6009],{"class":9885},[2024,11899,6012],{"class":5519},[2024,11901,11259],{"class":5523},[2024,11903,6019],{"class":6018},[2024,11905,11823],{"class":6022},[2024,11907,60],{"class":5500},[2024,11909,5536],{"class":6022},[2024,11911,5941],{"class":5830},[2024,11913,5945],{"class":5944},[2024,11915,5948],{"class":5830},[2024,11917,60],{"class":5500},[2024,11919,5627],{"class":6022},[2024,11921,60],{"class":5500},[2024,11923,11924],{"class":6022},"descriptor ",[2024,11926,11927],{"class":6175},"||",[2024,11929,5520],{"class":5519},[2024,11931,3730],{"class":5523},[2024,11933,5514],{"class":5519},[2024,11935,6034],{"class":6018},[2024,11937,11938],{"class":5523},"\u003C\u002Fstrong>",[2024,11940,6012],{"class":5519},[2024,11942,6370],{"class":9885},[2024,11944,11945,11947,11949,11951,11953,11955],{"class":4882,"line":5637},[2024,11946,11207],{"class":5500},[2024,11948,11340],{"class":5826},[2024,11950,6009],{"class":9885},[2024,11952,9842],{"class":5815},[2024,11954,5893],{"class":9885},[2024,11956,5896],{"class":5500},[2024,11958,11959,11961,11963],{"class":4882,"line":5658},[2024,11960,6034],{"class":5500},[2024,11962,5893],{"class":5830},[2024,11964,5896],{"class":5500},[2024,11966,11967],{"class":4882,"line":5678},[2024,11968,5901],{"emptyLinePlaceholder":289},[2024,11970,11971,11973,11975,11977,11979,11981,11984,11986,11988,11990,11992,11994,11996,11998,12000,12002,12004,12006,12009,12011,12013,12015,12017,12020,12022,12024,12027,12029,12031],{"class":4882,"line":5698},[2024,11972,9842],{"class":5815},[2024,11974,60],{"class":5500},[2024,11976,9847],{"class":5826},[2024,11978,6009],{"class":5830},[2024,11980,5514],{"class":5519},[2024,11982,11983],{"class":5523},"mouseenter",[2024,11985,5514],{"class":5519},[2024,11987,5597],{"class":5500},[2024,11989,5520],{"class":5519},[2024,11991,9998],{"class":5523},[2024,11993,5514],{"class":5519},[2024,11995,5597],{"class":5500},[2024,11997,9861],{"class":5500},[2024,11999,9865],{"class":9864},[2024,12001,527],{"class":5830},[2024,12003,9842],{"class":5815},[2024,12005,60],{"class":5500},[2024,12007,12008],{"class":5826},"getCanvas",[2024,12010,5921],{"class":5830},[2024,12012,60],{"class":5500},[2024,12014,4964],{"class":5815},[2024,12016,60],{"class":5500},[2024,12018,12019],{"class":5815},"cursor",[2024,12021,5819],{"class":5500},[2024,12023,5520],{"class":5519},[2024,12025,12026],{"class":5523},"pointer",[2024,12028,5514],{"class":5519},[2024,12030,11396],{"class":5830},[2024,12032,5896],{"class":5500},[2024,12034,12035,12037,12039,12041,12043,12045,12048,12050,12052,12054,12056,12058,12060,12062,12064,12066,12068,12070,12072,12074,12076,12078,12080,12082,12084,12087,12089],{"class":4882,"line":5718},[2024,12036,9842],{"class":5815},[2024,12038,60],{"class":5500},[2024,12040,9847],{"class":5826},[2024,12042,6009],{"class":5830},[2024,12044,5514],{"class":5519},[2024,12046,12047],{"class":5523},"mouseleave",[2024,12049,5514],{"class":5519},[2024,12051,5597],{"class":5500},[2024,12053,5520],{"class":5519},[2024,12055,9998],{"class":5523},[2024,12057,5514],{"class":5519},[2024,12059,5597],{"class":5500},[2024,12061,9861],{"class":5500},[2024,12063,9865],{"class":9864},[2024,12065,527],{"class":5830},[2024,12067,9842],{"class":5815},[2024,12069,60],{"class":5500},[2024,12071,12008],{"class":5826},[2024,12073,5921],{"class":5830},[2024,12075,60],{"class":5500},[2024,12077,4964],{"class":5815},[2024,12079,60],{"class":5500},[2024,12081,12019],{"class":5815},[2024,12083,5819],{"class":5500},[2024,12085,12086],{"class":5519}," \"\"",[2024,12088,11396],{"class":5830},[2024,12090,5896],{"class":5500},[12,12092,12093,12094,178,12096,12099],{},"Attach the same handler to ",[65,12095,10588],{},[65,12097,12098],{},"ab_lsd"," layers so the popup works at every zoom level.",[24,12101,12103],{"id":12102},"beyond-the-basics","Beyond the basics",[12,12105,12106],{},"The setup above covers the core pattern. From here you can extend the map in several directions:",[12,12108,12109,12112],{},[19,12110,12111],{},"Data layers"," - Township Canada also serves petroleum field boundaries, municipal boundaries, parks, water bodies, and road networks as vector tiles. Adding them follows the same source-and-layer pattern. A layer toggle panel lets users show and hide context layers without reloading anything.",[12,12114,12115,12118,12119,12122,12123,12126],{},[19,12116,12117],{},"Autocomplete search"," - The autocomplete endpoint at ",[65,12120,12121],{},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fautocomplete\u002Flegal-location"," returns matching legal land descriptions as the user types. Pass a ",[65,12124,12125],{},"proximity"," parameter with the map's current centre to bias results toward the visible area - useful when field staff are already zoomed into a specific region.",[12,12128,12129,12132,12133,12135],{},[19,12130,12131],{},"Batch plotting"," - If you need to drop hundreds of well sites on the map at once from a spreadsheet, the ",[45,12134,4395],{"href":6717}," can convert a list of legal land descriptions to coordinates in a single request.",[12,12137,12138,12141,12142,12144],{},[19,12139,12140],{},"NTS grids for BC"," - For work in British Columbia, the NTS (National Topographic System) tilesets cover the same use cases. The ",[45,12143,10750],{"href":10749}," has the full tileset list for both systems.",[24,12146,12148],{"id":12147},"next-step","Next step",[12,12150,368,12151,12154],{},[45,12152,12153],{"href":6726},"Mapbox integration guide"," has the complete working HTML file - search box, autocomplete, layer toggles, and all grid levels - with full code you can copy, drop in your API keys, and run directly in a browser. It's a good starting point before adapting the pattern to a framework like React or Vue.",[12,12156,12157,12158,12160,12161,12165],{},"Get your API key from the ",[45,12159,6707],{"href":9785}," and you can have a working survey grid map in under an hour. Questions about the API or specific use cases? The ",[45,12162,12164],{"href":12163},"\u002Fabout","About page"," has contact details, and our team is familiar with the oil and gas, agri, and land management workflows this kind of tool supports.",[24,12167,12169],{"id":12168},"related-guides","Related guides",[241,12171,12172,12178,12184,12190,12195],{},[244,12173,12174,12177],{},[45,12175,12176],{"href":6726},"Mapbox Integration Guide"," - Full working example with all grid levels, autocomplete, and layer toggles",[244,12179,12180,12183],{},[45,12181,12182],{"href":10749},"Maps API Vector Tiles"," - Complete tileset reference for DLS and NTS grids",[244,12185,12186,12189],{},[45,12187,12188],{"href":6717},"API Integration Guide"," - API endpoints, authentication, and key management",[244,12191,12192,12194],{},[45,12193,6707],{"href":9785}," - Subscribe to APIs and manage your keys",[244,12196,12197,12200],{},[45,12198,12199],{"href":12163},"What is a Legal Land Description?"," - Background on DLS, NTS, and how the survey systems work",[4964,12202,12203],{},"html pre.shiki code .sSC40, html code.shiki .sSC40{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sljsM, html code.shiki .sljsM{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .snCua, html code.shiki .snCua{--shiki-light:#90A4AE;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .sIOqK, html code.shiki .sIOqK{--shiki-light:#9C3EDA;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .s9Tkl, html code.shiki .s9Tkl{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#758575DD;--shiki-dark-font-style:inherit}html pre.shiki code .sLdnO, html code.shiki .sLdnO{--shiki-light:#E53935;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .suXOh, html code.shiki .suXOh{--shiki-light:#E53935;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s8XtY, html code.shiki .s8XtY{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .su_V2, html code.shiki .su_V2{--shiki-light:#90A4AE;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html pre.shiki code .sQtxO, html code.shiki .sQtxO{--shiki-light:#E53935;--shiki-default:#B56959;--shiki-dark:#C98A7D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sqOPj, html code.shiki .sqOPj{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#BD976A;--shiki-dark-font-style:inherit}html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .s131V, html code.shiki .s131V{--shiki-light:#90A4AE;--shiki-default:#998418;--shiki-dark:#B8A965}",{"title":274,"searchDepth":275,"depth":275,"links":12205},[12206,12207,12208,12209,12210,12211,12212],{"id":9767,"depth":275,"text":9768},{"id":9789,"depth":275,"text":9790},{"id":10754,"depth":275,"text":10755},{"id":11779,"depth":275,"text":11780},{"id":12102,"depth":275,"text":12103},{"id":12147,"depth":275,"text":12148},{"id":12168,"depth":275,"text":12169},"tutorial","https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-05\u002F9296eafa-5808-4321-9f4f-c4885c185b98.jpeg","Add DLS township, section, and LSD grid layers to a Mapbox GL JS map. Search legal land descriptions, display boundaries, and identify grid cells on click.",{},"\u002Fblog\u002Fusing-township-api-with-mapbox",{"title":9750,"description":12215},"blog\u002Fusing-township-api-with-mapbox",[6764,4990,12221,6762],"Mapbox","6VjdSII3rjl2DVcfoOJj02GWr5-fIbhIw6dGQvtWEv4",{"id":12224,"title":7911,"author":7,"body":12225,"category":503,"cover":12797,"date":12798,"description":12799,"extension":287,"meta":12800,"navigation":289,"path":433,"seo":12801,"stem":12802,"tags":12803,"__hash__":12804},"blog\u002Fblog\u002Farcgis-canadian-legal-land-description.md",{"type":9,"value":12226,"toc":12788},[12227,12230,12233,12237,12240,12243,12246,12250,12257,12274,12281,12284,12288,12292,12299,12302,12592,12598,12601,12605,12611,12622,12625,12629,12632,12658,12661,12664,12669,12673,12754,12761,12765,12768,12775,12785],[12,12228,12229],{},"You type \"NW-25-24-1-W5\" into the ArcGIS Pro Locate pane. Nothing. You try the geocoder. Still nothing. You double-check the format - it's a valid DLS quarter section in central Alberta. ArcGIS just doesn't recognize it.",[12,12231,12232],{},"This isn't a configuration issue. ArcGIS Pro - including version 3.7 with the NATRF2022 update - has no built-in geocoder for Canadian legal land descriptions. Not for DLS quarter sections, not for Legal Subdivisions, not for NTS grid references. If you work with well locations, pipeline crossings, mineral tenures, or rural land parcels in Western Canada, your GIS can't resolve the most common location format you encounter every day.",[24,12234,12236],{"id":12235},"why-arcgis-has-no-dls-or-nts-geocoder","Why ArcGIS Has No DLS or NTS Geocoder",[12,12238,12239],{},"Esri's geocoding services are built around street addresses and coordinate systems. The Esri World Geocoder handles US PLSS (Public Land Survey System) descriptions in some cases, but the Canadian Dominion Land Survey is a different system with different notation, different grid geometry, and different administrative boundaries.",[12,12241,12242],{},"The DLS covers Alberta, Saskatchewan, Manitoba, and BC's Peace River region. NTS covers all of British Columbia and is the standard for mining, forestry, and resource mapping across Canada. Together, these two systems account for the majority of land references in Canadian resource industries - and neither has ever been supported natively in ArcGIS.",[12,12244,12245],{},"ArcGIS Pro still has no native support for DLS or NTS lookups. WhiteStar Legal Mapper covers US PLSS only. That leaves GIS professionals in Canada with a gap: their location data is in one format, and their GIS speaks a different one.",[24,12247,12249],{"id":12248},"option-1-township-canada-arcgis-marketplace-plugin","Option 1: Township Canada ArcGIS Marketplace Plugin",[12,12251,12252,12253,12256],{},"Township Canada now ships an ",[45,12254,12255],{"href":3965},"ArcGIS integration"," published on the ArcGIS Marketplace. It adds native DLS and NTS search directly inside ArcGIS Pro.",[12,12258,12259,12260,527,12263,12265,12266,68,12268,12270,12271,12273],{},"The integration includes a ",[19,12261,12262],{},"Python toolbox",[65,12264,6997],{},") that installs as a standard ArcGIS Pro toolbox. Once configured with a Township Canada API key, it adds a DLS\u002FNTS locator to the ArcGIS Pro search bar. Type a legal land description - ",[65,12267,6466],{},[65,12269,8816],{},", or an NTS reference like ",[65,12272,5366],{}," - and it resolves to a point on your map, just like a street address would.",[12,12275,12276,12277,12280],{},"The toolbox also includes a ",[19,12278,12279],{},"batch geoprocessing tool",". Point it at a table or feature class column containing legal land descriptions, and it converts every row to a point feature class with GPS coordinates. It can also generate boundary polygons - one polygon per quarter section or LSD - so you get actual parcel geometry, not just center points.",[12,12282,12283],{},"For a GIS analyst working an environmental assessment with 200 well locations listed as LSDs, this means: load your well table, run the geoprocessing tool, and you have a point layer and a polygon layer ready for buffer analysis - all without leaving ArcGIS Pro.",[12,12285,12286],{},[128,12287],{"alt":8713,"src":3937},[24,12289,12291],{"id":12290},"option-2-python-geoprocessing-with-the-rest-api","Option 2: Python Geoprocessing with the REST API",[12,12293,12294,12295,12298],{},"If you prefer to build your own geoprocessing workflow - or need to customize the conversion logic for a specific project - the ",[45,12296,12297],{"href":3965},"Township Canada REST API"," works directly in ArcGIS Pro's Python window or in a custom script tool.",[12,12300,12301],{},"A basic conversion in arcpy looks like this:",[1736,12303,12305],{"className":6285,"code":12304,"language":6287,"meta":274,"style":274},"import requests\nimport arcpy\n\napi_key = \"your-api-key\"\nlld = \"NW-25-24-1-W5\"\n\nresponse = requests.get(\n    f\"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location={lld}\",\n    headers={\"X-API-Key\": api_key}\n)\nfeatures = response.json()[\"features\"]\ncentroid = next(f for f in features if f[\"properties\"][\"shape\"] == \"centroid\")\nlng, lat = centroid[\"geometry\"][\"coordinates\"]\n\n# Create a point feature class from the result\npoint = arcpy.PointGeometry(arcpy.Point(lng, lat), arcpy.SpatialReference(4326))\n",[65,12306,12307,12314,12321,12325,12339,12352,12356,12373,12392,12412,12416,12441,12502,12533,12537,12542],{"__ignoreMap":274},[2024,12308,12309,12311],{"class":4882,"line":4883},[2024,12310,6139],{"class":5822},[2024,12312,12313],{"class":6297}," requests\n",[2024,12315,12316,12318],{"class":4882,"line":275},[2024,12317,6139],{"class":5822},[2024,12319,12320],{"class":6297}," arcpy\n",[2024,12322,12323],{"class":4882,"line":498},[2024,12324,5901],{"emptyLinePlaceholder":289},[2024,12326,12327,12330,12332,12334,12337],{"class":4882,"line":4899},[2024,12328,12329],{"class":6297},"api_key ",[2024,12331,6315],{"class":5500},[2024,12333,5520],{"class":5519},[2024,12335,12336],{"class":5523},"your-api-key",[2024,12338,5734],{"class":5519},[2024,12340,12341,12344,12346,12348,12350],{"class":4882,"line":4905},[2024,12342,12343],{"class":6297},"lld ",[2024,12345,6315],{"class":5500},[2024,12347,5520],{"class":5519},[2024,12349,8816],{"class":5523},[2024,12351,5734],{"class":5519},[2024,12353,12354],{"class":4882,"line":5622},[2024,12355,5901],{"emptyLinePlaceholder":289},[2024,12357,12358,12361,12363,12366,12368,12371],{"class":4882,"line":5637},[2024,12359,12360],{"class":6297},"response ",[2024,12362,6315],{"class":5500},[2024,12364,12365],{"class":6297}," requests",[2024,12367,60],{"class":5500},[2024,12369,12370],{"class":6318},"get",[2024,12372,5831],{"class":5500},[2024,12374,12375,12378,12381,12384,12386,12388,12390],{"class":4882,"line":5658},[2024,12376,12377],{"class":5811},"    f",[2024,12379,12380],{"class":5523},"\"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=",[2024,12382,6183],{"class":12383},"s3h35",[2024,12385,2026],{"class":6318},[2024,12387,6034],{"class":12383},[2024,12389,5514],{"class":5523},[2024,12391,5529],{"class":5500},[2024,12393,12394,12396,12399,12401,12403,12405,12407,12410],{"class":4882,"line":5678},[2024,12395,5853],{"class":6323},[2024,12397,12398],{"class":5500},"={",[2024,12400,5514],{"class":5519},[2024,12402,5863],{"class":5523},[2024,12404,5514],{"class":5519},[2024,12406,2609],{"class":5500},[2024,12408,12409],{"class":6318}," api_key",[2024,12411,5752],{"class":5500},[2024,12413,12414],{"class":4882,"line":5698},[2024,12415,6370],{"class":5500},[2024,12417,12418,12421,12423,12425,12427,12429,12432,12434,12436,12438],{"class":4882,"line":5718},[2024,12419,12420],{"class":6297},"features ",[2024,12422,6315],{"class":5500},[2024,12424,5816],{"class":6297},[2024,12426,60],{"class":5500},[2024,12428,5493],{"class":6318},[2024,12430,12431],{"class":5500},"()[",[2024,12433,5514],{"class":5519},[2024,12435,5536],{"class":5523},[2024,12437,5514],{"class":5519},[2024,12439,12440],{"class":5500},"]\n",[2024,12442,12443,12446,12448,12451,12453,12456,12459,12462,12465,12468,12471,12473,12475,12477,12479,12481,12483,12485,12487,12489,12491,12494,12496,12498,12500],{"class":4882,"line":5737},[2024,12444,12445],{"class":6297},"centroid ",[2024,12447,6315],{"class":5500},[2024,12449,12450],{"class":6375}," next",[2024,12452,6009],{"class":5500},[2024,12454,12455],{"class":6318},"f ",[2024,12457,12458],{"class":5822},"for",[2024,12460,12461],{"class":6318}," f ",[2024,12463,12464],{"class":5822},"in",[2024,12466,12467],{"class":6318}," features ",[2024,12469,12470],{"class":5822},"if",[2024,12472,10979],{"class":6318},[2024,12474,5941],{"class":5500},[2024,12476,5514],{"class":5519},[2024,12478,5627],{"class":5523},[2024,12480,5514],{"class":5519},[2024,12482,5986],{"class":5500},[2024,12484,5514],{"class":5519},[2024,12486,10988],{"class":5523},[2024,12488,5514],{"class":5519},[2024,12490,5948],{"class":5500},[2024,12492,12493],{"class":6175}," ==",[2024,12495,5520],{"class":5519},[2024,12497,10995],{"class":5523},[2024,12499,5514],{"class":5519},[2024,12501,6370],{"class":5500},[2024,12503,12504,12506,12508,12511,12513,12515,12517,12519,12521,12523,12525,12527,12529,12531],{"class":4882,"line":5743},[2024,12505,5960],{"class":6297},[2024,12507,5597],{"class":5500},[2024,12509,12510],{"class":6297}," lat ",[2024,12512,6315],{"class":5500},[2024,12514,10952],{"class":6297},[2024,12516,5941],{"class":5500},[2024,12518,5514],{"class":5519},[2024,12520,5571],{"class":5523},[2024,12522,5514],{"class":5519},[2024,12524,5986],{"class":5500},[2024,12526,5514],{"class":5519},[2024,12528,5602],{"class":5523},[2024,12530,5514],{"class":5519},[2024,12532,12440],{"class":5500},[2024,12534,12535],{"class":4882,"line":5749},[2024,12536,5901],{"emptyLinePlaceholder":289},[2024,12538,12539],{"class":4882,"line":10053},[2024,12540,12541],{"class":6494},"# Create a point feature class from the result\n",[2024,12543,12544,12547,12549,12552,12554,12557,12559,12562,12564,12566,12568,12570,12572,12574,12577,12579,12581,12584,12586,12589],{"class":4882,"line":10065},[2024,12545,12546],{"class":6297},"point ",[2024,12548,6315],{"class":5500},[2024,12550,12551],{"class":6297}," arcpy",[2024,12553,60],{"class":5500},[2024,12555,12556],{"class":6318},"PointGeometry",[2024,12558,6009],{"class":5500},[2024,12560,12561],{"class":6318},"arcpy",[2024,12563,60],{"class":5500},[2024,12565,10765],{"class":6318},[2024,12567,6009],{"class":5500},[2024,12569,5960],{"class":6318},[2024,12571,5597],{"class":5500},[2024,12573,5965],{"class":6318},[2024,12575,12576],{"class":5500},"),",[2024,12578,12551],{"class":6318},[2024,12580,60],{"class":5500},[2024,12582,12583],{"class":6318},"SpatialReference",[2024,12585,6009],{"class":5500},[2024,12587,12588],{"class":5944},"4326",[2024,12590,12591],{"class":5500},"))\n",[12,12593,12594,12595,12597],{},"For batch work, the ",[45,12596,4395],{"href":4394}," accepts hundreds of descriptions per request. You can build a geoprocessing script that reads a column of legal descriptions from a feature class, sends them to the Batch API, and writes the coordinates back - all within a standard ArcGIS geoprocessing framework.",[12,12599,12600],{},"This approach gives you full control over error handling, coordinate system transformations, and output schema. GIS teams that already maintain custom Python toolboxes often prefer this route.",[24,12602,12604],{"id":12603},"option-3-arcgis-online-experience-builder-widget","Option 3: ArcGIS Online Experience Builder Widget",[12,12606,12607,12608,12610],{},"For teams using ArcGIS Online rather than ArcGIS Pro desktop, Township Canada provides an ",[19,12609,7904],{},". It adds a search panel to any ArcGIS Online web map experience with:",[241,12612,12613,12616,12619],{},[244,12614,12615],{},"Legal land description search with autocomplete (results appear as you type)",[244,12617,12618],{},"Reverse geocode by map click - click any point on the map and get the DLS or NTS reference for that location",[244,12620,12621],{},"Boundary polygon display - see the quarter section or LSD boundary drawn on the map",[12,12623,12624],{},"This is particularly useful for field teams who access maps through a browser or tablet rather than a full ArcGIS Pro installation. A pipeline integrity crew checking well locations against a web map can type an LSD and see it highlighted on the satellite basemap without needing desktop GIS software.",[24,12626,12628],{"id":12627},"export-workflow-batch-convert-and-load-as-an-arcgis-layer","Export Workflow: Batch Convert and Load as an ArcGIS Layer",[12,12630,12631],{},"If you don't need the ArcGIS Marketplace plugin - maybe you're on an older version of ArcGIS Pro, or you just need a one-time conversion - the fastest path is:",[1863,12633,12634,12643,12648],{},[244,12635,12636,12639,12640],{},[19,12637,12638],{},"Upload"," your list of legal land descriptions as a CSV to ",[45,12641,12642],{"href":3930},"Township Canada's batch converter",[244,12644,12645,12647],{},[19,12646,8707],{}," - the tool returns GPS coordinates for every row, flags descriptions that didn't resolve, and lets you review before exporting",[244,12649,12650,12653,12654,12657],{},[19,12651,12652],{},"Export as Shapefile"," - download the results from the ",[45,12655,12656],{"href":4424},"export panel"," as a Shapefile (.shp), GeoJSON, or KML",[12,12659,12660],{},"Load the Shapefile into ArcGIS Pro as a new layer. You now have a point feature class with every legal land description resolved to coordinates, ready for spatial analysis, buffer operations, or map production.",[12,12662,12663],{},"For a project with 500 well locations that need to go into an ArcGIS map for an environmental impact assessment, this three-step workflow takes under five minutes. No Python, no plugin installation - just upload, convert, and load.",[12,12665,12666],{},[128,12667],{"alt":12668,"src":3896},"Search results showing converted legal land descriptions",[24,12670,12672],{"id":12671},"arcgis-online-vs-arcgis-pro-which-integration-fits-your-workflow","ArcGIS Online vs. ArcGIS Pro: Which Integration Fits Your Workflow",[660,12674,12675,12688],{},[663,12676,12677],{},[666,12678,12679,12682,12685],{},[669,12680,12681],{},"Capability",[669,12683,12684],{},"ArcGIS Pro (Toolbox)",[669,12686,12687],{},"ArcGIS Online (Widget)",[681,12689,12690,12701,12712,12723,12733,12744],{},[666,12691,12692,12695,12698],{},[686,12693,12694],{},"Single LLD search",[686,12696,12697],{},"Search bar locator",[686,12699,12700],{},"Search panel with autocomplete",[666,12702,12703,12706,12709],{},[686,12704,12705],{},"Batch conversion",[686,12707,12708],{},"Geoprocessing tool (table → feature class)",[686,12710,12711],{},"Not available - use web batch converter",[666,12713,12714,12717,12720],{},[686,12715,12716],{},"Boundary polygons",[686,12718,12719],{},"Generated as polygon feature class",[686,12721,12722],{},"Displayed on map (not exportable)",[666,12724,12725,12727,12730],{},[686,12726,7114],{},[686,12728,12729],{},"Via Python script",[686,12731,12732],{},"Click-to-identify on map",[666,12734,12735,12738,12741],{},[686,12736,12737],{},"Offline use",[686,12739,12740],{},"Yes (with cached API responses)",[686,12742,12743],{},"No - requires internet",[666,12745,12746,12748,12751],{},[686,12747,754],{},[686,12749,12750],{},"Desktop GIS analysts, heavy spatial analysis",[686,12752,12753],{},"Field teams, web map viewers, quick lookups",[12,12755,12756,12757,12760],{},"Both require a Township Canada API key, available on any ",[45,12758,12759],{"href":3965},"API plan starting at $20\u002Fmonth",". The ArcGIS Pro toolbox requires ArcGIS Pro 3.x with arcpy. The Experience Builder widget requires ArcGIS Online with Experience Builder 1.14+.",[24,12762,12764],{"id":12763},"closing-the-gap","Closing the Gap",[12,12766,12767],{},"ArcGIS is the standard GIS platform for Canadian resource companies, government agencies, and consulting firms. Canadian legal land descriptions are the standard location format for those same organizations. The fact that one doesn't natively support the other has been a daily friction point for GIS professionals across the country.",[12,12769,12770,12771,12774],{},"Whether you install the ",[45,12772,12773],{"href":3965},"ArcGIS Marketplace plugin",", build a custom Python geoprocessing workflow, or batch convert and load a Shapefile, Township Canada gives you a way to get DLS and NTS descriptions into ArcGIS - where they should have been all along.",[12,12776,12777,12780,12781,12784],{},[45,12778,12779],{"href":4740},"Try the converter"," with a legal land description from your current project, or ",[45,12782,12783],{"href":2964},"see the API plans"," to connect your ArcGIS workflows directly.",[4964,12786,12787],{},"html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .sftqT, html code.shiki .sftqT{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .siWMO, html code.shiki .siWMO{--shiki-light:#6182B8;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .s3h35, html code.shiki .s3h35{--shiki-light:#F76D47;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sqOPj, html code.shiki .sqOPj{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#BD976A;--shiki-dark-font-style:inherit}html pre.shiki code .sJdAF, html code.shiki .sJdAF{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .s9Tkl, html code.shiki .s9Tkl{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#758575DD;--shiki-dark-font-style:inherit}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":274,"searchDepth":275,"depth":275,"links":12789},[12790,12791,12792,12793,12794,12795,12796],{"id":12235,"depth":275,"text":12236},{"id":12248,"depth":275,"text":12249},{"id":12290,"depth":275,"text":12291},{"id":12603,"depth":275,"text":12604},{"id":12627,"depth":275,"text":12628},{"id":12671,"depth":275,"text":12672},{"id":12763,"depth":275,"text":12764},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002F0c8671d6-1bac-48fd-9797-ba6c659f2d10.jpeg","2026-04-13","ArcGIS Pro has no native DLS or NTS geocoder. Learn three ways to search Canadian legal land descriptions inside ArcGIS using Township Canada.",{},{"title":7911,"description":12799},"blog\u002Farcgis-canadian-legal-land-description",[512,7263,300,511],"YGtFO_bsmBZP01uxwpr_uMr9iTv-HlGx3Q-5p5TYvys",{"id":12806,"title":12807,"author":7,"body":12808,"category":12213,"cover":13936,"date":13937,"description":13938,"extension":287,"meta":13939,"navigation":289,"path":13940,"seo":13941,"stem":13942,"tags":13943,"__hash__":13944},"blog\u002Fblog\u002Fusing-township-api-with-google-maps.md","Display Legal Land Descriptions on Google Maps",{"type":9,"value":12809,"toc":13927},[12810,12813,12816,12819,12821,12831,12844,12847,12873,12877,12880,13264,13271,13276,13280,13289,13460,13472,13479,13483,13492,13840,13843,13847,13853,13859,13867,13871,13874,13888,13891,13894,13898,13905,13911,13917,13924],[12,12811,12812],{},"A land agent in rural Alberta gets a request from a client: show me exactly where NW-25-24-1-W5 sits on a map. The client isn't a surveyor. They don't read DLS notation. They need a pin on a Google Map and a visible boundary so they can understand what they're looking at.",[12,12814,12815],{},"That's a common ask. Oil and gas companies need to show well sites and surface leases to non-technical stakeholders. Agricultural businesses want to display field boundaries for crop insurance and delivery permits. Municipal offices field calls from landowners who want to see their quarter section on a familiar map.",[12,12817,12818],{},"Google Maps is the default. Everyone knows how to use it. The Township Canada API speaks GeoJSON - which Google Maps reads natively. Connecting the two takes less code than you might expect.",[24,12820,5471],{"id":5470},[12,12822,12823,12824,12827,12828,12830],{},"When you call the ",[45,12825,12826],{"href":3965},"Township Canada search endpoint",", it returns a GeoJSON ",[65,12829,5524],{}," with two features:",[241,12832,12833,12839],{},[244,12834,12835,12836,12838],{},"A ",[65,12837,10765],{}," feature at the centroid of the location - for placing a marker",[244,12840,12835,12841,12843],{},[65,12842,10761],{}," feature with the boundary - for drawing the parcel outline",[12,12845,12846],{},"Both come back in a single request. No second call needed to get the polygon.",[12,12848,12849,12850,12852,12853,68,12855,68,12858,68,12861,68,12864,68,12867,82,12870,12872],{},"The properties on the ",[65,12851,10761],{}," feature include ",[65,12854,5663],{},[65,12856,12857],{},"quarter_section",[65,12859,12860],{},"section",[65,12862,12863],{},"township",[65,12865,12866],{},"range",[65,12868,12869],{},"meridian",[65,12871,5723],{}," - everything you need to populate an info window.",[24,12874,12876],{"id":12875},"searching-and-placing-a-marker","Searching and Placing a Marker",[12,12878,12879],{},"A basic search call looks like this:",[1736,12881,12883],{"className":5802,"code":12882,"language":5804,"meta":274,"style":274},"async function searchLocation(query) {\n  const response = await fetch(\n    `https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=${encodeURIComponent(query)}`,\n    {\n      headers: { \"X-API-Key\": \"YOUR_API_KEY\" }\n    }\n  );\n\n  const data = await response.json();\n\n  const centroid = data.features.find((f) => f.properties.shape === \"centroid\");\n\n  if (!centroid) return null;\n\n  const [lng, lat] = centroid.geometry.coordinates;\n\n  const marker = new google.maps.Marker({\n    position: { lat, lng },\n    map,\n    title: centroid.properties.legal_location\n  });\n\n  map.panTo({ lat, lng });\n  map.setZoom(13);\n\n  return { marker, data };\n}\n",[65,12884,12885,12902,12916,12938,12943,12969,12973,12979,12983,13003,13007,13057,13061,13080,13084,13112,13116,13143,13161,13167,13185,13193,13197,13222,13240,13244,13260],{"__ignoreMap":274},[2024,12886,12887,12889,12891,12894,12896,12898,12900],{"class":4882,"line":4883},[2024,12888,10779],{"class":5811},[2024,12890,10782],{"class":5811},[2024,12892,12893],{"class":5826}," searchLocation",[2024,12895,6009],{"class":5500},[2024,12897,10790],{"class":6323},[2024,12899,5893],{"class":5500},[2024,12901,5634],{"class":5500},[2024,12903,12904,12906,12908,12910,12912,12914],{"class":4882,"line":275},[2024,12905,10799],{"class":5811},[2024,12907,5816],{"class":5815},[2024,12909,5819],{"class":5500},[2024,12911,5823],{"class":5822},[2024,12913,5827],{"class":5826},[2024,12915,5831],{"class":9885},[2024,12917,12918,12920,12922,12924,12926,12928,12930,12932,12934,12936],{"class":4882,"line":498},[2024,12919,10814],{"class":5519},[2024,12921,10817],{"class":5523},[2024,12923,6019],{"class":6018},[2024,12925,10822],{"class":5826},[2024,12927,6009],{"class":5830},[2024,12929,10790],{"class":6022},[2024,12931,5893],{"class":5830},[2024,12933,6034],{"class":6018},[2024,12935,6012],{"class":5519},[2024,12937,5529],{"class":5500},[2024,12939,12940],{"class":4882,"line":4899},[2024,12941,12942],{"class":5500},"    {\n",[2024,12944,12945,12948,12950,12952,12954,12956,12958,12960,12962,12965,12967],{"class":4882,"line":4905},[2024,12946,12947],{"class":5852},"      headers",[2024,12949,2609],{"class":5500},[2024,12951,5578],{"class":5500},[2024,12953,5520],{"class":5519},[2024,12955,5863],{"class":5862},[2024,12957,5514],{"class":5519},[2024,12959,2609],{"class":5500},[2024,12961,5520],{"class":5519},[2024,12963,12964],{"class":5523},"YOUR_API_KEY",[2024,12966,5514],{"class":5519},[2024,12968,5883],{"class":5500},[2024,12970,12971],{"class":4882,"line":5622},[2024,12972,5740],{"class":5500},[2024,12974,12975,12977],{"class":4882,"line":5637},[2024,12976,10866],{"class":9885},[2024,12978,5896],{"class":5500},[2024,12980,12981],{"class":4882,"line":5658},[2024,12982,5901],{"emptyLinePlaceholder":289},[2024,12984,12985,12987,12989,12991,12993,12995,12997,12999,13001],{"class":4882,"line":5678},[2024,12986,10799],{"class":5811},[2024,12988,5908],{"class":5815},[2024,12990,5819],{"class":5500},[2024,12992,5823],{"class":5822},[2024,12994,5816],{"class":5815},[2024,12996,60],{"class":5500},[2024,12998,5493],{"class":5826},[2024,13000,5921],{"class":9885},[2024,13002,5896],{"class":5500},[2024,13004,13005],{"class":4882,"line":5698},[2024,13006,5901],{"emptyLinePlaceholder":289},[2024,13008,13009,13011,13013,13015,13017,13019,13021,13023,13025,13027,13029,13031,13033,13035,13037,13039,13041,13043,13045,13047,13049,13051,13053,13055],{"class":4882,"line":5718},[2024,13010,10799],{"class":5811},[2024,13012,10952],{"class":5815},[2024,13014,5819],{"class":5500},[2024,13016,5908],{"class":5815},[2024,13018,60],{"class":5500},[2024,13020,5536],{"class":5815},[2024,13022,60],{"class":5500},[2024,13024,10965],{"class":5826},[2024,13026,6009],{"class":9885},[2024,13028,6009],{"class":5500},[2024,13030,10972],{"class":6323},[2024,13032,5893],{"class":5500},[2024,13034,9865],{"class":9864},[2024,13036,10979],{"class":5815},[2024,13038,60],{"class":5500},[2024,13040,5627],{"class":5815},[2024,13042,60],{"class":5500},[2024,13044,10988],{"class":5815},[2024,13046,10927],{"class":6175},[2024,13048,5520],{"class":5519},[2024,13050,10995],{"class":5523},[2024,13052,5514],{"class":5519},[2024,13054,5893],{"class":9885},[2024,13056,5896],{"class":5500},[2024,13058,13059],{"class":4882,"line":5737},[2024,13060,5901],{"emptyLinePlaceholder":289},[2024,13062,13063,13065,13067,13069,13071,13073,13075,13078],{"class":4882,"line":5743},[2024,13064,10897],{"class":5822},[2024,13066,527],{"class":9885},[2024,13068,10902],{"class":6175},[2024,13070,10995],{"class":5815},[2024,13072,5893],{"class":9885},[2024,13074,10934],{"class":5822},[2024,13076,13077],{"class":6175}," null",[2024,13079,5896],{"class":5500},[2024,13081,13082],{"class":4882,"line":5749},[2024,13083,5901],{"emptyLinePlaceholder":289},[2024,13085,13086,13088,13090,13092,13094,13096,13098,13100,13102,13104,13106,13108,13110],{"class":4882,"line":10053},[2024,13087,10799],{"class":5811},[2024,13089,5957],{"class":5500},[2024,13091,5960],{"class":5815},[2024,13093,5597],{"class":5500},[2024,13095,5965],{"class":5815},[2024,13097,5948],{"class":5500},[2024,13099,5819],{"class":5500},[2024,13101,10952],{"class":5815},[2024,13103,60],{"class":5500},[2024,13105,5571],{"class":5815},[2024,13107,60],{"class":5500},[2024,13109,5602],{"class":5815},[2024,13111,5896],{"class":5500},[2024,13113,13114],{"class":4882,"line":10065},[2024,13115,5901],{"emptyLinePlaceholder":289},[2024,13117,13118,13120,13123,13125,13127,13130,13132,13135,13137,13139,13141],{"class":4882,"line":10077},[2024,13119,10799],{"class":5811},[2024,13121,13122],{"class":5815}," marker",[2024,13124,5819],{"class":5500},[2024,13126,6176],{"class":6175},[2024,13128,13129],{"class":5815}," google",[2024,13131,60],{"class":5500},[2024,13133,13134],{"class":5815},"maps",[2024,13136,60],{"class":5500},[2024,13138,11183],{"class":5826},[2024,13140,6009],{"class":9885},[2024,13142,5501],{"class":5500},[2024,13144,13145,13148,13150,13152,13154,13156,13159],{"class":4882,"line":10119},[2024,13146,13147],{"class":5852},"    position",[2024,13149,2609],{"class":5500},[2024,13151,5578],{"class":5500},[2024,13153,5965],{"class":5815},[2024,13155,5597],{"class":5500},[2024,13157,13158],{"class":5815}," lng",[2024,13160,5619],{"class":5500},[2024,13162,13163,13165],{"class":4882,"line":10128},[2024,13164,11476],{"class":5815},[2024,13166,5529],{"class":5500},[2024,13168,13169,13172,13174,13176,13178,13180,13182],{"class":4882,"line":10133},[2024,13170,13171],{"class":5852},"    title",[2024,13173,2609],{"class":5500},[2024,13175,10952],{"class":5815},[2024,13177,60],{"class":5500},[2024,13179,5627],{"class":5815},[2024,13181,60],{"class":5500},[2024,13183,13184],{"class":5815},"legal_location\n",[2024,13186,13187,13189,13191],{"class":4882,"line":10139},[2024,13188,9965],{"class":5500},[2024,13190,5893],{"class":9885},[2024,13192,5896],{"class":5500},[2024,13194,13195],{"class":4882,"line":10161},[2024,13196,5901],{"emptyLinePlaceholder":289},[2024,13198,13199,13201,13203,13206,13208,13210,13212,13214,13216,13218,13220],{"class":4882,"line":10176},[2024,13200,9877],{"class":5815},[2024,13202,60],{"class":5500},[2024,13204,13205],{"class":5826},"panTo",[2024,13207,6009],{"class":9885},[2024,13209,6183],{"class":5500},[2024,13211,5965],{"class":5815},[2024,13213,5597],{"class":5500},[2024,13215,13158],{"class":5815},[2024,13217,6147],{"class":5500},[2024,13219,5893],{"class":9885},[2024,13221,5896],{"class":5500},[2024,13223,13224,13226,13228,13231,13233,13236,13238],{"class":4882,"line":10185},[2024,13225,9877],{"class":5815},[2024,13227,60],{"class":5500},[2024,13229,13230],{"class":5826},"setZoom",[2024,13232,6009],{"class":9885},[2024,13234,13235],{"class":5944},"13",[2024,13237,5893],{"class":9885},[2024,13239,5896],{"class":5500},[2024,13241,13242],{"class":4882,"line":10203},[2024,13243,5901],{"emptyLinePlaceholder":289},[2024,13245,13246,13249,13251,13253,13255,13257],{"class":4882,"line":10211},[2024,13247,13248],{"class":5822},"  return",[2024,13250,5578],{"class":5500},[2024,13252,13122],{"class":5815},[2024,13254,5597],{"class":5500},[2024,13256,5908],{"class":5815},[2024,13258,13259],{"class":5500}," };\n",[2024,13261,13262],{"class":4882,"line":10222},[2024,13263,5752],{"class":5500},[12,13265,13266,13267,13270],{},"Call ",[65,13268,13269],{},"searchLocation(\"NW-25-24-1-W5\")"," and a pin lands on the northwest quarter of Section 25, Township 24, Range 1, West of the 5th Meridian in Alberta - roughly 50 km southeast of Edmonton.",[12,13272,368,13273,13275],{},[65,13274,5663],{}," property on the centroid feature gives you the canonical formatted description to use as the marker title or label.",[24,13277,13279],{"id":13278},"drawing-the-boundary","Drawing the Boundary",[12,13281,13282,13283,8849,13286,13288],{},"Google Maps supports GeoJSON directly through ",[65,13284,13285],{},"map.data.addGeoJson()",[65,13287,10761],{}," feature in the search response can be passed in the same call - no coordinate parsing required on your end:",[1736,13290,13292],{"className":5802,"code":13291,"language":5804,"meta":274,"style":274},"function drawBoundary(geojson) {\n  map.data.forEach((feature) => map.data.remove(feature));\n  map.data.addGeoJson(geojson);\n\n  map.data.setStyle({\n    fillColor: \"#1a6b3c\",\n    fillOpacity: 0.2,\n    strokeColor: \"#1a6b3c\",\n    strokeWeight: 2\n  });\n}\n",[65,13293,13294,13310,13353,13374,13378,13395,13411,13423,13438,13448,13456],{"__ignoreMap":274},[2024,13295,13296,13299,13302,13304,13306,13308],{"class":4882,"line":4883},[2024,13297,13298],{"class":5811},"function",[2024,13300,13301],{"class":5826}," drawBoundary",[2024,13303,6009],{"class":5500},[2024,13305,11502],{"class":6323},[2024,13307,5893],{"class":5500},[2024,13309,5634],{"class":5500},[2024,13311,13312,13314,13316,13318,13320,13323,13325,13327,13329,13331,13333,13336,13338,13340,13342,13345,13347,13349,13351],{"class":4882,"line":275},[2024,13313,9877],{"class":5815},[2024,13315,60],{"class":5500},[2024,13317,10905],{"class":5815},[2024,13319,60],{"class":5500},[2024,13321,13322],{"class":5826},"forEach",[2024,13324,6009],{"class":9885},[2024,13326,6009],{"class":5500},[2024,13328,6023],{"class":6323},[2024,13330,5893],{"class":5500},[2024,13332,9865],{"class":9864},[2024,13334,13335],{"class":5815}," map",[2024,13337,60],{"class":5500},[2024,13339,10905],{"class":5815},[2024,13341,60],{"class":5500},[2024,13343,13344],{"class":5826},"remove",[2024,13346,6009],{"class":9885},[2024,13348,6023],{"class":5815},[2024,13350,11396],{"class":9885},[2024,13352,5896],{"class":5500},[2024,13354,13355,13357,13359,13361,13363,13366,13368,13370,13372],{"class":4882,"line":498},[2024,13356,9877],{"class":5815},[2024,13358,60],{"class":5500},[2024,13360,10905],{"class":5815},[2024,13362,60],{"class":5500},[2024,13364,13365],{"class":5826},"addGeoJson",[2024,13367,6009],{"class":9885},[2024,13369,11502],{"class":5815},[2024,13371,5893],{"class":9885},[2024,13373,5896],{"class":5500},[2024,13375,13376],{"class":4882,"line":4899},[2024,13377,5901],{"emptyLinePlaceholder":289},[2024,13379,13380,13382,13384,13386,13388,13391,13393],{"class":4882,"line":4905},[2024,13381,9877],{"class":5815},[2024,13383,60],{"class":5500},[2024,13385,10905],{"class":5815},[2024,13387,60],{"class":5500},[2024,13389,13390],{"class":5826},"setStyle",[2024,13392,6009],{"class":9885},[2024,13394,5501],{"class":5500},[2024,13396,13397,13400,13402,13404,13407,13409],{"class":4882,"line":5622},[2024,13398,13399],{"class":5852},"    fillColor",[2024,13401,2609],{"class":5500},[2024,13403,5520],{"class":5519},[2024,13405,13406],{"class":5523},"#1a6b3c",[2024,13408,5514],{"class":5519},[2024,13410,5529],{"class":5500},[2024,13412,13413,13416,13418,13421],{"class":4882,"line":5637},[2024,13414,13415],{"class":5852},"    fillOpacity",[2024,13417,2609],{"class":5500},[2024,13419,13420],{"class":5944}," 0.2",[2024,13422,5529],{"class":5500},[2024,13424,13425,13428,13430,13432,13434,13436],{"class":4882,"line":5658},[2024,13426,13427],{"class":5852},"    strokeColor",[2024,13429,2609],{"class":5500},[2024,13431,5520],{"class":5519},[2024,13433,13406],{"class":5523},[2024,13435,5514],{"class":5519},[2024,13437,5529],{"class":5500},[2024,13439,13440,13443,13445],{"class":4882,"line":5678},[2024,13441,13442],{"class":5852},"    strokeWeight",[2024,13444,2609],{"class":5500},[2024,13446,13447],{"class":5944}," 2\n",[2024,13449,13450,13452,13454],{"class":4882,"line":5698},[2024,13451,9965],{"class":5500},[2024,13453,5893],{"class":9885},[2024,13455,5896],{"class":5500},[2024,13457,13458],{"class":4882,"line":5718},[2024,13459,5752],{"class":5500},[12,13461,13462,13463,13465,13466,13468,13469,13471],{},"Pass the full ",[65,13464,5524],{}," from the search response and Google Maps renders both the centroid point and the boundary polygon. The ",[65,13467,10905],{}," layer handles ",[65,13470,10761],{}," geometry without any special treatment.",[12,13473,13474,13475,13478],{},"If you need to highlight multiple parcels at once - say, a grid of sections across a lease block - call ",[65,13476,13477],{},"drawBoundary()"," for each one and the polygons stack on the map.",[24,13480,13482],{"id":13481},"showing-parcel-details-in-an-info-window","Showing Parcel Details in an Info Window",[12,13484,13485,13486,13488,13489,13491],{},"When a user clicks the marker, an info window with the parcel breakdown is the natural next step. Pull the details from the ",[65,13487,10761],{}," feature's ",[65,13490,5627],{}," object:",[1736,13493,13495],{"className":5802,"code":13494,"language":5804,"meta":274,"style":274},"function attachInfoWindow(marker, geojson) {\n  const polygon = geojson.features.find((f) => f.geometry.type === \"MultiPolygon\");\n\n  if (!polygon) return;\n\n  const p = polygon.properties;\n\n  const content = `\n    \u003Cdiv style=\"font-family: sans-serif; padding: 4px 8px;\">\n      \u003Cstrong>${p.legal_location}\u003C\u002Fstrong>\u003Cbr>\n      Quarter: ${p.quarter_section}\u003Cbr>\n      Section: ${p.section}\u003Cbr>\n      Township: ${p.township}\u003Cbr>\n      Range: ${p.range} ${p.meridian}\u003Cbr>\n      Province: ${p.province}\n    \u003C\u002Fdiv>\n  `;\n\n  const infoWindow = new google.maps.InfoWindow({ content });\n  marker.addListener(\"click\", () => infoWindow.open(map, marker));\n}\n",[65,13496,13497,13518,13568,13572,13588,13592,13609,13613,13625,13630,13648,13666,13683,13700,13728,13743,13748,13755,13759,13793,13836],{"__ignoreMap":274},[2024,13498,13499,13501,13504,13506,13509,13511,13514,13516],{"class":4882,"line":4883},[2024,13500,13298],{"class":5811},[2024,13502,13503],{"class":5826}," attachInfoWindow",[2024,13505,6009],{"class":5500},[2024,13507,13508],{"class":6323},"marker",[2024,13510,5597],{"class":5500},[2024,13512,13513],{"class":6323}," geojson",[2024,13515,5893],{"class":5500},[2024,13517,5634],{"class":5500},[2024,13519,13520,13522,13524,13526,13528,13530,13532,13534,13536,13538,13540,13542,13544,13546,13548,13550,13552,13554,13556,13558,13560,13562,13564,13566],{"class":4882,"line":275},[2024,13521,10799],{"class":5811},[2024,13523,11008],{"class":5815},[2024,13525,5819],{"class":5500},[2024,13527,13513],{"class":5815},[2024,13529,60],{"class":5500},[2024,13531,5536],{"class":5815},[2024,13533,60],{"class":5500},[2024,13535,10965],{"class":5826},[2024,13537,6009],{"class":9885},[2024,13539,6009],{"class":5500},[2024,13541,10972],{"class":6323},[2024,13543,5893],{"class":5500},[2024,13545,9865],{"class":9864},[2024,13547,10979],{"class":5815},[2024,13549,60],{"class":5500},[2024,13551,5571],{"class":5815},[2024,13553,60],{"class":5500},[2024,13555,5511],{"class":5815},[2024,13557,10927],{"class":6175},[2024,13559,5520],{"class":5519},[2024,13561,10761],{"class":5523},[2024,13563,5514],{"class":5519},[2024,13565,5893],{"class":9885},[2024,13567,5896],{"class":5500},[2024,13569,13570],{"class":4882,"line":498},[2024,13571,5901],{"emptyLinePlaceholder":289},[2024,13573,13574,13576,13578,13580,13582,13584,13586],{"class":4882,"line":4899},[2024,13575,10897],{"class":5822},[2024,13577,527],{"class":9885},[2024,13579,10902],{"class":6175},[2024,13581,11366],{"class":5815},[2024,13583,5893],{"class":9885},[2024,13585,10934],{"class":5822},[2024,13587,5896],{"class":5500},[2024,13589,13590],{"class":4882,"line":4905},[2024,13591,5901],{"emptyLinePlaceholder":289},[2024,13593,13594,13596,13599,13601,13603,13605,13607],{"class":4882,"line":5622},[2024,13595,10799],{"class":5811},[2024,13597,13598],{"class":5815}," p",[2024,13600,5819],{"class":5500},[2024,13602,11008],{"class":5815},[2024,13604,60],{"class":5500},[2024,13606,5627],{"class":5815},[2024,13608,5896],{"class":5500},[2024,13610,13611],{"class":4882,"line":5637},[2024,13612,5901],{"emptyLinePlaceholder":289},[2024,13614,13615,13617,13620,13622],{"class":4882,"line":5658},[2024,13616,10799],{"class":5811},[2024,13618,13619],{"class":5815}," content",[2024,13621,5819],{"class":5500},[2024,13623,13624],{"class":5519}," `\n",[2024,13626,13627],{"class":4882,"line":5678},[2024,13628,13629],{"class":5523},"    \u003Cdiv style=\"font-family: sans-serif; padding: 4px 8px;\">\n",[2024,13631,13632,13635,13637,13639,13641,13643,13645],{"class":4882,"line":5698},[2024,13633,13634],{"class":5523},"      \u003Cstrong>",[2024,13636,6019],{"class":6018},[2024,13638,12],{"class":6022},[2024,13640,60],{"class":5500},[2024,13642,5663],{"class":6022},[2024,13644,6034],{"class":6018},[2024,13646,13647],{"class":5523},"\u003C\u002Fstrong>\u003Cbr>\n",[2024,13649,13650,13653,13655,13657,13659,13661,13663],{"class":4882,"line":5718},[2024,13651,13652],{"class":5523},"      Quarter: ",[2024,13654,6019],{"class":6018},[2024,13656,12],{"class":6022},[2024,13658,60],{"class":5500},[2024,13660,12857],{"class":6022},[2024,13662,6034],{"class":6018},[2024,13664,13665],{"class":5523},"\u003Cbr>\n",[2024,13667,13668,13671,13673,13675,13677,13679,13681],{"class":4882,"line":5737},[2024,13669,13670],{"class":5523},"      Section: ",[2024,13672,6019],{"class":6018},[2024,13674,12],{"class":6022},[2024,13676,60],{"class":5500},[2024,13678,12860],{"class":6022},[2024,13680,6034],{"class":6018},[2024,13682,13665],{"class":5523},[2024,13684,13685,13688,13690,13692,13694,13696,13698],{"class":4882,"line":5743},[2024,13686,13687],{"class":5523},"      Township: ",[2024,13689,6019],{"class":6018},[2024,13691,12],{"class":6022},[2024,13693,60],{"class":5500},[2024,13695,12863],{"class":6022},[2024,13697,6034],{"class":6018},[2024,13699,13665],{"class":5523},[2024,13701,13702,13705,13707,13709,13711,13713,13715,13718,13720,13722,13724,13726],{"class":4882,"line":5749},[2024,13703,13704],{"class":5523},"      Range: ",[2024,13706,6019],{"class":6018},[2024,13708,12],{"class":6022},[2024,13710,60],{"class":5500},[2024,13712,12866],{"class":6022},[2024,13714,6034],{"class":6018},[2024,13716,13717],{"class":6018}," ${",[2024,13719,12],{"class":6022},[2024,13721,60],{"class":5500},[2024,13723,12869],{"class":6022},[2024,13725,6034],{"class":6018},[2024,13727,13665],{"class":5523},[2024,13729,13730,13733,13735,13737,13739,13741],{"class":4882,"line":10053},[2024,13731,13732],{"class":5523},"      Province: ",[2024,13734,6019],{"class":6018},[2024,13736,12],{"class":6022},[2024,13738,60],{"class":5500},[2024,13740,5723],{"class":6022},[2024,13742,5752],{"class":6018},[2024,13744,13745],{"class":4882,"line":10065},[2024,13746,13747],{"class":5523},"    \u003C\u002Fdiv>\n",[2024,13749,13750,13753],{"class":4882,"line":10077},[2024,13751,13752],{"class":5519},"  `",[2024,13754,5896],{"class":5500},[2024,13756,13757],{"class":4882,"line":10119},[2024,13758,5901],{"emptyLinePlaceholder":289},[2024,13760,13761,13763,13766,13768,13770,13772,13774,13776,13778,13781,13783,13785,13787,13789,13791],{"class":4882,"line":10128},[2024,13762,10799],{"class":5811},[2024,13764,13765],{"class":5815}," infoWindow",[2024,13767,5819],{"class":5500},[2024,13769,6176],{"class":6175},[2024,13771,13129],{"class":5815},[2024,13773,60],{"class":5500},[2024,13775,13134],{"class":5815},[2024,13777,60],{"class":5500},[2024,13779,13780],{"class":5826},"InfoWindow",[2024,13782,6009],{"class":9885},[2024,13784,6183],{"class":5500},[2024,13786,13619],{"class":5815},[2024,13788,6147],{"class":5500},[2024,13790,5893],{"class":9885},[2024,13792,5896],{"class":5500},[2024,13794,13795,13798,13800,13803,13805,13807,13809,13811,13813,13815,13817,13819,13821,13824,13826,13828,13830,13832,13834],{"class":4882,"line":10133},[2024,13796,13797],{"class":5815},"  marker",[2024,13799,60],{"class":5500},[2024,13801,13802],{"class":5826},"addListener",[2024,13804,6009],{"class":9885},[2024,13806,5514],{"class":5519},[2024,13808,11806],{"class":5523},[2024,13810,5514],{"class":5519},[2024,13812,5597],{"class":5500},[2024,13814,9861],{"class":5500},[2024,13816,9865],{"class":9864},[2024,13818,13765],{"class":5815},[2024,13820,60],{"class":5500},[2024,13822,13823],{"class":5826},"open",[2024,13825,6009],{"class":9885},[2024,13827,9842],{"class":5815},[2024,13829,5597],{"class":5500},[2024,13831,13122],{"class":5815},[2024,13833,11396],{"class":9885},[2024,13835,5896],{"class":5500},[2024,13837,13838],{"class":4882,"line":10139},[2024,13839,5752],{"class":5500},[12,13841,13842],{},"For a land agent showing a client their property, this gives them section-level detail without requiring them to interpret DLS notation. For an O&G field coordinator, it's a quick sanity check before dispatching a crew.",[24,13844,13846],{"id":13845},"authentication-and-getting-an-api-key","Authentication and Getting an API Key",[12,13848,13849,13850,13852],{},"Every request requires your API key in the ",[65,13851,5863],{}," header:",[1736,13854,13857],{"className":13855,"code":13856,"language":1741},[1739],"X-API-Key: YOUR_API_KEY\n",[65,13858,13856],{"__ignoreMap":274},[12,13860,13861,13862,8849,13864,13866],{},"You can get an API key from the ",[45,13863,6707],{"href":9785},[45,13865,6718],{"href":6717}," walks through authentication, rate limits, and error handling in detail - worth reading before you go to production.",[24,13868,13870],{"id":13869},"what-this-looks-like-in-practice","What This Looks Like in Practice",[12,13872,13873],{},"A surface lease coordinator at an energy company gets a list of 12 well locations from a regulatory filing - all in DLS format. They need to show the locations to a project manager who uses Google Maps. With the Township Canada API wired in, they can:",[1863,13875,13876,13879,13882,13885],{},[244,13877,13878],{},"Paste each legal land description into a search box",[244,13880,13881],{},"See the marker and boundary appear on the map",[244,13883,13884],{},"Click the marker to confirm the legal description, section, and province",[244,13886,13887],{},"Hand the map link to the project manager",[12,13889,13890],{},"The API handles the DLS-to-coordinates conversion. Google Maps handles the rendering. The coordinator doesn't need to export a shapefile or open GIS software.",[12,13892,13893],{},"The same pattern works for agriculture: a crop insurance adjuster confirming which quarter section a claim applies to, or a grain company verifying field locations before issuing a delivery permit.",[24,13895,13897],{"id":13896},"going-further","Going Further",[12,13899,13900,13901,13904],{},"This post covers the core pattern - search, marker, boundary, info window. The ",[45,13902,13903],{"href":6722},"full Google Maps integration guide"," goes deeper: autocomplete search as the user types, a complete single-file working example, and notes on what the API does and doesn't support with Google Maps (vector tiles, for instance, require a different approach).",[12,13906,13907,13908,13910],{},"If you're earlier in the process and haven't set up API access yet, start with the ",[45,13909,6718],{"href":6717},". It covers authentication, response formats, and how to handle errors cleanly before you build on top of it.",[12,13912,13913,13914,13916],{},"For ",[45,13915,1355],{"href":2964}," details - including the free tier and what's available at each plan level - the pricing page has the full breakdown.",[12,13918,13919,13920,13923],{},"The Township Canada API is a good fit if you work with Canadian land data and need accurate DLS boundaries in a mapping context. The ",[45,13921,13922],{"href":3965},"API reference"," covers all endpoints, query parameters, and response schemas.",[4964,13925,13926],{},"html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sljsM, html code.shiki .sljsM{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sqOPj, html code.shiki .sqOPj{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#BD976A;--shiki-dark-font-style:inherit}html pre.shiki code .sSC40, html code.shiki .sSC40{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .sLdnO, html code.shiki .sLdnO{--shiki-light:#E53935;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .s8XtY, html code.shiki .s8XtY{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .snCua, html code.shiki .snCua{--shiki-light:#90A4AE;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .su_V2, html code.shiki .su_V2{--shiki-light:#90A4AE;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .suXOh, html code.shiki .suXOh{--shiki-light:#E53935;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sQtxO, html code.shiki .sQtxO{--shiki-light:#E53935;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .sIOqK, html code.shiki .sIOqK{--shiki-light:#9C3EDA;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":274,"searchDepth":275,"depth":275,"links":13928},[13929,13930,13931,13932,13933,13934,13935],{"id":5470,"depth":275,"text":5471},{"id":12875,"depth":275,"text":12876},{"id":13278,"depth":275,"text":13279},{"id":13481,"depth":275,"text":13482},{"id":13845,"depth":275,"text":13846},{"id":13869,"depth":275,"text":13870},{"id":13896,"depth":275,"text":13897},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-05\u002F0ec3c43c-dc17-4d88-b57c-ada077ec1d74.jpeg","2026-04-10","Use the Township Canada API with Google Maps to search legal land descriptions, display boundaries, and build location tools for oil and gas, agriculture, and land management.",{},"\u002Fblog\u002Fusing-township-api-with-google-maps",{"title":12807,"description":13938},"blog\u002Fusing-township-api-with-google-maps",[6764,4990,6723,6762],"kpZDCw1FiLSley_wG5lFIxZ7ZB9qWbzsgdSGPVMiUQI",{"id":13946,"title":13947,"author":7,"body":13948,"category":4024,"cover":14168,"date":14169,"description":14170,"extension":287,"meta":14171,"navigation":289,"path":1601,"seo":14172,"stem":14173,"tags":14174,"__hash__":14176},"blog\u002Fblog\u002Fafsc-declared-acres-verify-alberta-quarter-sections.md","AFSC April 30 Declared Acres: How to Verify Your Alberta Quarter Sections Before Submitting",{"type":9,"value":13949,"toc":14159},[13950,13953,13956,13960,13968,13975,14004,14007,14011,14014,14026,14031,14034,14038,14041,14047,14051,14054,14058,14064,14070,14076,14080,14083,14096,14099,14119,14123,14126,14129,14132,14136,14148,14156],[12,13951,13952],{},"An Alberta farm manager with twelve insured quarter sections sits down to submit her AFSC declared acres before the April 30 deadline. She's been farming this land for six years - she knows the parcels. But when she cross-checks her form against the map, one description reads NE 08-039-26 W5M. Her field is west of Red Deer, sure, but that parcel is near Rocky Mountain House - about 80 kilometres from the quarter she actually farms, which is NE 08-039-26 W4M. One meridian digit. One wrong character in the AFSC declared acres legal land description, and 160 acres of coverage would apply to land on the wrong side of the province.",[12,13954,13955],{},"This happens more than you'd expect. The DLS grid that covers Alberta uses two primary meridians - the 4th and 5th - and they divide the province roughly along a north-south line near Red Deer. Transpose W4M and W5M, and your declared acres point to a completely different piece of land. AFSC doesn't have an easy appeal path after submission, so catching these errors before April 30 is the entire game.",[24,13957,13959],{"id":13958},"how-legal-land-descriptions-appear-on-afsc-declared-acres-forms","How Legal Land Descriptions Appear on AFSC Declared-Acres Forms",[12,13961,13962,13963,13967],{},"Every parcel on your AFSC policy is identified by a ",[45,13964,13966],{"href":13965},"\u002Flearn\u002Fhow-to\u002Flegal-land-description-for-crop-insurance","legal land description"," in Dominion Land Survey (DLS) format. Alberta farmland doesn't have street addresses - the quarter section notation is the only identifier that ties your coverage to a specific 160 acres.",[12,13969,13970,13971,13974],{},"A typical AFSC description looks like ",[19,13972,13973],{},"NE 08-039-26 W4M",". Here's what each part means:",[241,13976,13977,13982,13988,13993,13999],{},[244,13978,13979,13981],{},[19,13980,4077],{}," - the northeast quarter of the section",[244,13983,13984,13987],{},[19,13985,13986],{},"08"," - Section 8 within the township",[244,13989,13990,13992],{},[19,13991,8042],{}," - Township 39 (north-south row in the survey grid)",[244,13994,13995,13998],{},[19,13996,13997],{},"26"," - Range 26 (east-west column from the meridian)",[244,14000,14001,4099],{},[19,14002,14003],{},"W4M",[12,14005,14006],{},"That description identifies a specific 160-acre parcel east of Red Deer. Change the meridian to W5M and you're pointing at land near Nordegg - roughly 80 kilometres west. Change the range from 26 to 25, and the parcel shifts about 10 kilometres. Every digit matters.",[24,14008,14010],{"id":14009},"step-1-single-quarter-section-verification","Step 1: Single Quarter Section Verification",[12,14012,14013],{},"Start with the parcels you're least certain about - newly acquired land, parcels near a meridian boundary, or anything you haven't personally visited since last season.",[12,14015,14016,14017,14022,14023,14025],{},"Enter each legal land description into the ",[45,14018,14021],{"href":14019,"rel":14020},"https:\u002F\u002Fwww.townshipcanada.com\u002Falberta-legal-land-converter",[220],"Alberta legal land converter"," and confirm the map pin matches your field. If you type ",[19,14024,13973],{}," and the pin lands on land you've never farmed, the description on your form needs to be corrected before you submit.",[12,14027,14028],{},[128,14029],{"alt":14030,"src":3896},"Search for a quarter section and see it on the map",[12,14032,14033],{},"This takes about 15 seconds per parcel. For a typical Alberta mixed-grain operation with 6–15 insured quarter sections, you can verify the entire list in under five minutes.",[24,14035,14037],{"id":14036},"step-2-batch-verification-for-farms-with-multiple-parcels","Step 2: Batch Verification for Farms with Multiple Parcels",[12,14039,14040],{},"If you're managing a larger operation - or you're an AFSC agent processing declared acres for multiple producers - checking descriptions one at a time isn't practical.",[12,14042,3816,14043,14046],{},[45,14044,1543],{"href":402,"rel":14045},[220]," accepts a CSV list of quarter section descriptions and returns GPS coordinates for every parcel at once. Upload your list, get coordinates back in seconds, and review the results on a map. If one parcel shows up 80 kilometres from the rest of the operation, you've found the error before it becomes a claims problem.",[12,14048,14049],{},[128,14050],{"alt":3936,"src":3937},[12,14052,14053],{},"The batch workflow is especially useful for adjusters who process hundreds of declared-acres submissions each spring. A list that would take a full afternoon to verify manually runs through the converter in under a minute.",[24,14055,14057],{"id":14056},"google-sheets-workflow-verify-a-full-column-of-descriptions","Google Sheets Workflow: Verify a Full Column of Descriptions",[12,14059,14060,14061,14063],{},"If your declared-acres data lives in a spreadsheet - as it does for most farm managers and AFSC agents - the ",[45,14062,1637],{"href":3950}," converts an entire column of legal land descriptions to GPS coordinates without leaving the sheet.",[12,14065,3955,14066,14069],{},[65,14067,14068],{},"=TOWNSHIP(\"NE 08-039-26 W4M\")"," in a cell next to any quarter section and the add-on returns the GPS coordinates for that parcel. For a list of 15 insured quarters, copy the formula down the column and every description resolves to coordinates in under a minute. If a result lands 80 kilometres from the rest of your operation, the error is obvious at a glance.",[12,14071,14072,14073,14075],{},"The sidebar batch mode handles up to 200 descriptions at once - useful for agents processing declared acres across multiple producers. The add-on is free for 10 conversions per month; connect a ",[45,14074,3966],{"href":3965}," for unlimited use.",[24,14077,14079],{"id":14078},"the-most-common-error-transposed-range-or-meridian-number","The Most Common Error: Transposed Range or Meridian Number",[12,14081,14082],{},"The Alberta agricultural belt straddles the 4th and 5th Meridians. For farms near Red Deer, Lacombe, or Ponoka, some parcels fall on the W4M side and others on the W5M side. It's the single most common source of errors on AFSC declared-acres forms.",[12,14084,14085,14086,178,14088,14091,14092,14095],{},"Here's why it matters so much: ",[19,14087,13973],{},[19,14089,14090],{},"NE 08-039-26 W5M"," have identical township-range-section numbers. They look almost the same on paper. But they identify two parcels roughly 80 kilometres apart. The ",[45,14093,14094],{"href":3702},"DLS grid"," assigns every combination of township, range, and meridian to a unique location - there's no room for ambiguity, and no automatic correction.",[12,14097,14098],{},"Other frequent errors on AFSC forms:",[241,14100,14101,14107,14113],{},[244,14102,14103,14106],{},[19,14104,14105],{},"Transposed range and township"," - 039-26 vs. 026-39 puts coverage in a completely different part of the province",[244,14108,14109,14112],{},[19,14110,14111],{},"Wrong quarter"," - NE vs. NW is a 160-acre difference, and both quarters may exist within the same section",[244,14114,14115,14118],{},[19,14116,14117],{},"Stale descriptions"," - parcels you've sold, acquired, or changed lease arrangements on since last year's submission",[24,14120,14122],{"id":14121},"key-date-april-30-declared-acres-window-closes","Key Date: April 30 Declared-Acres Window Closes",[12,14124,14125],{},"The AFSC declared-acres deadline for the 2026 crop year is April 30, 2026. After that date, changes to your insured parcels require additional paperwork and may not be processed in time for coverage to apply.",[12,14127,14128],{},"If you submit an incorrect legal land description and discover the error after a hail storm or drought claim, the mismatch between your declared acres and your actual fields creates a problem that's much harder to fix than a pre-submission correction. AFSC adjusters verify locations during the claims process - if the legal land description on your policy doesn't match the field where the loss occurred, the claim gets complicated.",[12,14130,14131],{},"The verification process takes minutes. The consequences of skipping it can last an entire growing season.",[24,14133,14135],{"id":14134},"verify-now-not-april-29","Verify Now, Not April 29",[12,14137,14138,14139,14143,14144,14147],{},"Pull up your AFSC declared-acres form and check every quarter section against the ",[45,14140,14142],{"href":14019,"rel":14141},[220],"Alberta converter",". Pay special attention to parcels near the W4M\u002FW5M boundary. If you're running a large operation or processing submissions for multiple producers, the ",[45,14145,1543],{"href":402,"rel":14146},[220]," handles the entire list at once.",[12,14149,14150,14151,60],{},"For a full walkthrough of how crop insurance and legal land descriptions work together - including Saskatchewan's SCIC program and the March 31 deadline - see our ",[45,14152,14155],{"href":14153,"rel":14154},"https:\u002F\u002Fwww.townshipcanada.com\u002Fblog\u002Fcrop-insurance-legal-land-descriptions-march-deadline",[220],"guide to verifying crop insurance legal land descriptions",[12,14157,14158],{},"The April 30 deadline won't move. Make sure every description on your form points to the right 160 acres.",{"title":274,"searchDepth":275,"depth":275,"links":14160},[14161,14162,14163,14164,14165,14166,14167],{"id":13958,"depth":275,"text":13959},{"id":14009,"depth":275,"text":14010},{"id":14036,"depth":275,"text":14037},{"id":14056,"depth":275,"text":14057},{"id":14078,"depth":275,"text":14079},{"id":14121,"depth":275,"text":14122},{"id":14134,"depth":275,"text":14135},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002F7e1e0360-11e1-4e06-b0d8-4444cc3d98e1.jpeg","2026-04-07","AFSC declared acres legal land descriptions must match your actual fields. Here's how to verify every Alberta quarter section before the April 30 deadline.",{},{"title":13947,"description":14170},"blog\u002Fafsc-declared-acres-verify-alberta-quarter-sections",[541,2779,1658,14175,4032],"AFSC","C7Vp-xiTYaM-CHMl5i830kNwC26oroxg7Fqf1gTX0BI",{"id":14178,"title":14179,"author":7,"body":14180,"category":4024,"cover":15494,"date":15495,"description":15496,"extension":287,"meta":15497,"navigation":289,"path":8949,"seo":15498,"stem":15499,"tags":15500,"__hash__":15501},"blog\u002Fblog\u002Fenrich-snowflake-table-dls-gps-coordinates.md","How to Enrich a Snowflake Table with DLS GPS Coordinates",{"type":9,"value":14181,"toc":15484},[14182,14188,14195,14205,14208,14212,14215,14232,14238,14253,14257,14263,14298,14305,14309,14312,14321,14324,14330,14334,14337,14391,14394,14399,14406,14410,14413,14498,14501,14505,14508,15387,15396,15399,15403,15406,15436,15443,15445,15474,15481],[12,14183,14184,14185,14187],{},"Your AER wells table in Snowflake has 10,000 rows. Every row has a DLS legal land description like ",[65,14186,8816],{}," - but no latitude, no longitude. Your BI team wants those wells on a map. Your data scientists need spatial joins. Someone suggests exporting to CSV, running the conversions externally, and loading the results back. That process worked once, six months ago. It hasn't been re-run since.",[12,14189,14190,14191,14194],{},"There's a better approach: convert Snowflake DLS legal land descriptions to GPS coordinates directly in SQL, without leaving the warehouse. Township Canada's External Function lets you write ",[65,14192,14193],{},"SELECT TOWNSHIP_CONVERT(legal_desc) FROM wells"," and get coordinates back inline.",[12,14196,14197,14198,14201,14202,60],{},"If you are running the Snowflake Native App, use the app-provisioned function name ",[65,14199,14200],{},"TOWNSHIP_CANADA_CONVERT(...)"," instead of ",[65,14203,14204],{},"TOWNSHIP_CONVERT(...)",[12,14206,14207],{},"Here's how to set it up, run it, and scale it.",[24,14209,14211],{"id":14210},"prerequisites","Prerequisites",[12,14213,14214],{},"Before you start, you need two things:",[1863,14216,14217,14226],{},[244,14218,14219,14222,14223,14225],{},[19,14220,14221],{},"A Township Canada Batch API key"," - subscribe on the ",[45,14224,6707],{"href":9785},". Batch starts at $40\u002Fmo for 1,000 requests and is required for Snowflake table enrichment workflows.",[244,14227,14228,14231],{},[19,14229,14230],{},"Snowflake ACCOUNTADMIN or SYSADMIN access"," - creating External Functions requires privileges to set up API integrations and function objects.",[12,14233,368,14234,14237],{},[45,14235,14236],{"href":8852},"Snowflake External Function setup guide"," covers the full infrastructure: AWS Lambda deployment, API Gateway configuration, IAM roles, and Snowflake integration objects. Most data engineers complete the setup in under an hour.",[12,14239,14240,14241,68,14243,68,14245,14248,14249,14252],{},"Teams using the Snowflake Native App also get built-in no-key functions for validation and parsing (",[65,14242,9113],{},[65,14244,9125],{},[65,14246,14247],{},"CORE.STANDARDIZE_LLD",") plus ",[65,14250,14251],{},"DEMO.LOOKUP"," for sample coordinate lookups.",[24,14254,14256],{"id":14255},"step-1-create-the-external-function","Step 1: Create the External Function",[12,14258,14259,14260,14262],{},"Once the Lambda proxy and API Gateway are deployed (per the ",[45,14261,8853],{"href":8852},"), register the External Function in Snowflake:",[1736,14264,14266],{"className":4875,"code":14265,"language":4877,"meta":274,"style":274},"CREATE OR REPLACE EXTERNAL FUNCTION TOWNSHIP_CONVERT(lld VARCHAR)\n    RETURNS VARIANT\n    API_INTEGRATION = township_canada_integration\n    HEADERS = ('Content-Type' = 'application\u002Fjson')\n    MAX_BATCH_ROWS = 100\n    AS 'https:\u002F\u002FYOUR_API_ID.execute-api.us-west-2.amazonaws.com\u002Fprod\u002F';\n",[65,14267,14268,14273,14278,14283,14288,14293],{"__ignoreMap":274},[2024,14269,14270],{"class":4882,"line":4883},[2024,14271,14272],{},"CREATE OR REPLACE EXTERNAL FUNCTION TOWNSHIP_CONVERT(lld VARCHAR)\n",[2024,14274,14275],{"class":4882,"line":275},[2024,14276,14277],{},"    RETURNS VARIANT\n",[2024,14279,14280],{"class":4882,"line":498},[2024,14281,14282],{},"    API_INTEGRATION = township_canada_integration\n",[2024,14284,14285],{"class":4882,"line":4899},[2024,14286,14287],{},"    HEADERS = ('Content-Type' = 'application\u002Fjson')\n",[2024,14289,14290],{"class":4882,"line":4905},[2024,14291,14292],{},"    MAX_BATCH_ROWS = 100\n",[2024,14294,14295],{"class":4882,"line":5622},[2024,14296,14297],{},"    AS 'https:\u002F\u002FYOUR_API_ID.execute-api.us-west-2.amazonaws.com\u002Fprod\u002F';\n",[12,14299,14300,14301,178,14303,60],{},"This function accepts any Canadian legal land description string - DLS quarter sections, LSDs, NTS references - and returns a JSON object with ",[65,14302,6253],{},[65,14304,6262],{},[24,14306,14308],{"id":14307},"step-2-test-with-a-single-row","Step 2: Test with a Single Row",[12,14310,14311],{},"Before running against your full table, verify the function works:",[1736,14313,14315],{"className":4875,"code":14314,"language":4877,"meta":274,"style":274},"SELECT TOWNSHIP_CONVERT('NW-25-24-1-W5') AS result;\n",[65,14316,14317],{"__ignoreMap":274},[2024,14318,14319],{"class":4882,"line":4883},[2024,14320,14314],{},[12,14322,14323],{},"The result should return a JSON object with GPS coordinates for the northwest quarter of Section 25, Township 24, Range 1, West of the 5th Meridian.",[12,14325,14326,14327,14329],{},"If you see an error, check your API key configuration and Lambda proxy logs. The ",[45,14328,8853],{"href":8852}," includes a troubleshooting section for common issues.",[24,14331,14333],{"id":14332},"step-3-enrich-a-full-table","Step 3: Enrich a Full Table",[12,14335,14336],{},"With the function confirmed, run it against your wells data. Here's a practical example using an AER well inventory table:",[1736,14338,14340],{"className":4875,"code":14339,"language":4877,"meta":274,"style":274},"CREATE TABLE wells_enriched AS\nSELECT\n    w.well_id,\n    w.well_name,\n    w.uwi,\n    w.legal_land_description,\n    tc.result:latitude::FLOAT AS latitude,\n    tc.result:longitude::FLOAT AS longitude\nFROM aer_wells w,\nLATERAL (SELECT TOWNSHIP_CONVERT(w.legal_land_description) AS result) tc;\n",[65,14341,14342,14347,14351,14356,14361,14366,14371,14376,14381,14386],{"__ignoreMap":274},[2024,14343,14344],{"class":4882,"line":4883},[2024,14345,14346],{},"CREATE TABLE wells_enriched AS\n",[2024,14348,14349],{"class":4882,"line":275},[2024,14350,4886],{},[2024,14352,14353],{"class":4882,"line":498},[2024,14354,14355],{},"    w.well_id,\n",[2024,14357,14358],{"class":4882,"line":4899},[2024,14359,14360],{},"    w.well_name,\n",[2024,14362,14363],{"class":4882,"line":4905},[2024,14364,14365],{},"    w.uwi,\n",[2024,14367,14368],{"class":4882,"line":5622},[2024,14369,14370],{},"    w.legal_land_description,\n",[2024,14372,14373],{"class":4882,"line":5637},[2024,14374,14375],{},"    tc.result:latitude::FLOAT AS latitude,\n",[2024,14377,14378],{"class":4882,"line":5658},[2024,14379,14380],{},"    tc.result:longitude::FLOAT AS longitude\n",[2024,14382,14383],{"class":4882,"line":5678},[2024,14384,14385],{},"FROM aer_wells w,\n",[2024,14387,14388],{"class":4882,"line":5698},[2024,14389,14390],{},"LATERAL (SELECT TOWNSHIP_CONVERT(w.legal_land_description) AS result) tc;\n",[12,14392,14393],{},"Snowflake batches the API calls automatically - sending rows in groups of up to 100. A 10,000-row table typically processes in two to three minutes, depending on warehouse size and network latency.",[12,14395,14396],{},[128,14397],{"alt":14398,"src":3937},"Township Canada batch conversion interface",[12,14400,14401,14402,14405],{},"For teams already using Township Canada's web-based ",[45,14403,14404],{"href":3930},"batch conversion"," for CSV files, this SQL approach moves the same conversion into your warehouse where it can be scheduled and version-controlled.",[24,14407,14409],{"id":14408},"step-4-schedule-recurring-enrichment","Step 4: Schedule Recurring Enrichment",[12,14411,14412],{},"The real value of in-warehouse conversion is automation. If your wells table updates daily from AER filings, schedule the enrichment to run on the same cadence:",[1736,14414,14416],{"className":4875,"code":14415,"language":4877,"meta":274,"style":274},"CREATE OR REPLACE TASK enrich_wells_daily\n    WAREHOUSE = analytics_wh\n    SCHEDULE = 'USING CRON 0 6 * * * America\u002FEdmonton'\nAS\n    INSERT INTO wells_enriched\n    SELECT\n        w.well_id,\n        w.well_name,\n        w.uwi,\n        w.legal_land_description,\n        tc.result:latitude::FLOAT,\n        tc.result:longitude::FLOAT\n    FROM aer_wells w\n    LEFT JOIN wells_enriched e ON w.well_id = e.well_id\n    CROSS JOIN LATERAL (SELECT TOWNSHIP_CONVERT(w.legal_land_description) AS result) tc\n    WHERE e.well_id IS NULL;\n",[65,14417,14418,14423,14428,14433,14438,14443,14448,14453,14458,14463,14468,14473,14478,14483,14488,14493],{"__ignoreMap":274},[2024,14419,14420],{"class":4882,"line":4883},[2024,14421,14422],{},"CREATE OR REPLACE TASK enrich_wells_daily\n",[2024,14424,14425],{"class":4882,"line":275},[2024,14426,14427],{},"    WAREHOUSE = analytics_wh\n",[2024,14429,14430],{"class":4882,"line":498},[2024,14431,14432],{},"    SCHEDULE = 'USING CRON 0 6 * * * America\u002FEdmonton'\n",[2024,14434,14435],{"class":4882,"line":4899},[2024,14436,14437],{},"AS\n",[2024,14439,14440],{"class":4882,"line":4905},[2024,14441,14442],{},"    INSERT INTO wells_enriched\n",[2024,14444,14445],{"class":4882,"line":5622},[2024,14446,14447],{},"    SELECT\n",[2024,14449,14450],{"class":4882,"line":5637},[2024,14451,14452],{},"        w.well_id,\n",[2024,14454,14455],{"class":4882,"line":5658},[2024,14456,14457],{},"        w.well_name,\n",[2024,14459,14460],{"class":4882,"line":5678},[2024,14461,14462],{},"        w.uwi,\n",[2024,14464,14465],{"class":4882,"line":5698},[2024,14466,14467],{},"        w.legal_land_description,\n",[2024,14469,14470],{"class":4882,"line":5718},[2024,14471,14472],{},"        tc.result:latitude::FLOAT,\n",[2024,14474,14475],{"class":4882,"line":5737},[2024,14476,14477],{},"        tc.result:longitude::FLOAT\n",[2024,14479,14480],{"class":4882,"line":5743},[2024,14481,14482],{},"    FROM aer_wells w\n",[2024,14484,14485],{"class":4882,"line":5749},[2024,14486,14487],{},"    LEFT JOIN wells_enriched e ON w.well_id = e.well_id\n",[2024,14489,14490],{"class":4882,"line":10053},[2024,14491,14492],{},"    CROSS JOIN LATERAL (SELECT TOWNSHIP_CONVERT(w.legal_land_description) AS result) tc\n",[2024,14494,14495],{"class":4882,"line":10065},[2024,14496,14497],{},"    WHERE e.well_id IS NULL;\n",[12,14499,14500],{},"This task runs at 6 AM Mountain Time daily, converting only new rows that haven't been enriched yet. No manual re-runs, no stale data, no broken lineage.",[24,14502,14504],{"id":14503},"databricks-udf-variant","Databricks UDF Variant",[12,14506,14507],{},"If your team runs on Databricks instead of Snowflake, the same Township Canada API integrates through a Python UDF:",[1736,14509,14511],{"className":6285,"code":14510,"language":6287,"meta":274,"style":274},"from pyspark.sql.functions import pandas_udf\nfrom pyspark.sql.types import StructType, StructField, DoubleType\nimport pandas as pd\nimport requests\n\nTOWNSHIP_API_KEY = dbutils.secrets.get(scope=\"township\", key=\"api_key\")\nTOWNSHIP_API_URL = \"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fbatch\u002Flegal-location\"\nBATCH_SIZE = 100\n\ndef convert_lld_batch(llds):\n    response = requests.post(\n        TOWNSHIP_API_URL,\n        headers={\n            \"X-API-Key\": TOWNSHIP_API_KEY,\n            \"Content-Type\": \"application\u002Fjson\"\n        },\n        json=llds\n    )\n    response.raise_for_status()\n    result = response.json()\n\n    coords_map = {}\n    for feature in result.get(\"features\", []):\n        props = feature.get(\"properties\", {})\n        geom = feature.get(\"geometry\", {})\n        if props.get(\"shape\") == \"centroid\" and geom.get(\"type\") == \"Point\":\n            lon, lat = geom[\"coordinates\"]\n            coords_map[props[\"legal_location\"]] = (lat, lon)\n    return coords_map\n\n@pandas_udf(StructType([\n    StructField(\"latitude\", DoubleType()),\n    StructField(\"longitude\", DoubleType())\n]))\ndef township_convert(descriptions: pd.Series) -> pd.DataFrame:\n    llds = descriptions.tolist()\n    all_coords = {}\n\n    for i in range(0, len(llds), BATCH_SIZE):\n        chunk = llds[i:i + BATCH_SIZE]\n        all_coords.update(convert_lld_batch(chunk))\n\n    latitudes = []\n    longitudes = []\n    for lld in llds:\n        coord = all_coords.get(lld)\n        latitudes.append(coord[0] if coord else None)\n        longitudes.append(coord[1] if coord else None)\n\n    return pd.DataFrame({\"latitude\": latitudes, \"longitude\": longitudes})\n",[65,14512,14513,14534,14564,14577,14583,14587,14635,14649,14659,14663,14680,14696,14704,14712,14728,14746,14751,14761,14765,14777,14792,14796,14806,14835,14861,14886,14947,14970,15003,15011,15015,15031,15052,15071,15076,15112,15129,15138,15142,15174,15201,15223,15227,15237,15246,15259,15279,15314,15343,15347],{"__ignoreMap":274},[2024,14514,14515,14517,14520,14522,14524,14526,14529,14531],{"class":4882,"line":4883},[2024,14516,6294],{"class":5822},[2024,14518,14519],{"class":6297}," pyspark",[2024,14521,60],{"class":5500},[2024,14523,4877],{"class":6297},[2024,14525,60],{"class":5500},[2024,14527,14528],{"class":6297},"functions ",[2024,14530,6139],{"class":5822},[2024,14532,14533],{"class":6297}," pandas_udf\n",[2024,14535,14536,14538,14540,14542,14544,14546,14549,14551,14554,14556,14559,14561],{"class":4882,"line":275},[2024,14537,6294],{"class":5822},[2024,14539,14519],{"class":6297},[2024,14541,60],{"class":5500},[2024,14543,4877],{"class":6297},[2024,14545,60],{"class":5500},[2024,14547,14548],{"class":6297},"types ",[2024,14550,6139],{"class":5822},[2024,14552,14553],{"class":6297}," StructType",[2024,14555,5597],{"class":5500},[2024,14557,14558],{"class":6297}," StructField",[2024,14560,5597],{"class":5500},[2024,14562,14563],{"class":6297}," DoubleType\n",[2024,14565,14566,14568,14571,14574],{"class":4882,"line":498},[2024,14567,6139],{"class":5822},[2024,14569,14570],{"class":6297}," pandas ",[2024,14572,14573],{"class":5822},"as",[2024,14575,14576],{"class":6297}," pd\n",[2024,14578,14579,14581],{"class":4882,"line":4899},[2024,14580,6139],{"class":5822},[2024,14582,12313],{"class":6297},[2024,14584,14585],{"class":4882,"line":4905},[2024,14586,5901],{"emptyLinePlaceholder":289},[2024,14588,14589,14593,14595,14598,14600,14603,14605,14607,14609,14612,14614,14616,14618,14620,14622,14625,14627,14629,14631,14633],{"class":4882,"line":5622},[2024,14590,14592],{"class":14591},"se3Ec","TOWNSHIP_API_KEY",[2024,14594,5819],{"class":5500},[2024,14596,14597],{"class":6297}," dbutils",[2024,14599,60],{"class":5500},[2024,14601,14602],{"class":6334},"secrets",[2024,14604,60],{"class":5500},[2024,14606,12370],{"class":6318},[2024,14608,6009],{"class":5500},[2024,14610,14611],{"class":6323},"scope",[2024,14613,6315],{"class":5500},[2024,14615,5514],{"class":5519},[2024,14617,12863],{"class":5523},[2024,14619,5514],{"class":5519},[2024,14621,5597],{"class":5500},[2024,14623,14624],{"class":6323}," key",[2024,14626,6315],{"class":5500},[2024,14628,5514],{"class":5519},[2024,14630,6324],{"class":5523},[2024,14632,5514],{"class":5519},[2024,14634,6370],{"class":5500},[2024,14636,14637,14640,14642,14644,14647],{"class":4882,"line":5637},[2024,14638,14639],{"class":14591},"TOWNSHIP_API_URL",[2024,14641,5819],{"class":5500},[2024,14643,5520],{"class":5519},[2024,14645,14646],{"class":5523},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fbatch\u002Flegal-location",[2024,14648,5734],{"class":5519},[2024,14650,14651,14654,14656],{"class":4882,"line":5658},[2024,14652,14653],{"class":14591},"BATCH_SIZE",[2024,14655,5819],{"class":5500},[2024,14657,14658],{"class":5944}," 100\n",[2024,14660,14661],{"class":4882,"line":5678},[2024,14662,5901],{"emptyLinePlaceholder":289},[2024,14664,14665,14668,14671,14673,14677],{"class":4882,"line":5698},[2024,14666,14667],{"class":5811},"def",[2024,14669,14670],{"class":5826}," convert_lld_batch",[2024,14672,6009],{"class":5500},[2024,14674,14676],{"class":14675},"sCyAa","llds",[2024,14678,14679],{"class":5500},"):\n",[2024,14681,14682,14685,14687,14689,14691,14694],{"class":4882,"line":5718},[2024,14683,14684],{"class":6297},"    response ",[2024,14686,6315],{"class":5500},[2024,14688,12365],{"class":6297},[2024,14690,60],{"class":5500},[2024,14692,14693],{"class":6318},"post",[2024,14695,5831],{"class":5500},[2024,14697,14698,14702],{"class":4882,"line":5737},[2024,14699,14701],{"class":14700},"s6DHA","        TOWNSHIP_API_URL",[2024,14703,5529],{"class":5500},[2024,14705,14706,14709],{"class":4882,"line":5743},[2024,14707,14708],{"class":6323},"        headers",[2024,14710,14711],{"class":5500},"={\n",[2024,14713,14714,14717,14719,14721,14723,14726],{"class":4882,"line":5749},[2024,14715,14716],{"class":5519},"            \"",[2024,14718,5863],{"class":5523},[2024,14720,5514],{"class":5519},[2024,14722,2609],{"class":5500},[2024,14724,14725],{"class":14700}," TOWNSHIP_API_KEY",[2024,14727,5529],{"class":5500},[2024,14729,14730,14732,14735,14737,14739,14741,14744],{"class":4882,"line":10053},[2024,14731,14716],{"class":5519},[2024,14733,14734],{"class":5523},"Content-Type",[2024,14736,5514],{"class":5519},[2024,14738,2609],{"class":5500},[2024,14740,5520],{"class":5519},[2024,14742,14743],{"class":5523},"application\u002Fjson",[2024,14745,5734],{"class":5519},[2024,14747,14748],{"class":4882,"line":10065},[2024,14749,14750],{"class":5500},"        },\n",[2024,14752,14753,14756,14758],{"class":4882,"line":10077},[2024,14754,14755],{"class":6323},"        json",[2024,14757,6315],{"class":5500},[2024,14759,14760],{"class":6318},"llds\n",[2024,14762,14763],{"class":4882,"line":10119},[2024,14764,11333],{"class":5500},[2024,14766,14767,14770,14772,14775],{"class":4882,"line":10128},[2024,14768,14769],{"class":6297},"    response",[2024,14771,60],{"class":5500},[2024,14773,14774],{"class":6318},"raise_for_status",[2024,14776,11872],{"class":5500},[2024,14778,14779,14782,14784,14786,14788,14790],{"class":4882,"line":10133},[2024,14780,14781],{"class":6297},"    result ",[2024,14783,6315],{"class":5500},[2024,14785,5816],{"class":6297},[2024,14787,60],{"class":5500},[2024,14789,5493],{"class":6318},[2024,14791,11872],{"class":5500},[2024,14793,14794],{"class":4882,"line":10139},[2024,14795,5901],{"emptyLinePlaceholder":289},[2024,14797,14798,14801,14803],{"class":4882,"line":10161},[2024,14799,14800],{"class":6297},"    coords_map ",[2024,14802,6315],{"class":5500},[2024,14804,14805],{"class":5500}," {}\n",[2024,14807,14808,14811,14814,14816,14818,14820,14822,14824,14826,14828,14830,14832],{"class":4882,"line":10176},[2024,14809,14810],{"class":5822},"    for",[2024,14812,14813],{"class":6297}," feature ",[2024,14815,12464],{"class":5822},[2024,14817,6211],{"class":6297},[2024,14819,60],{"class":5500},[2024,14821,12370],{"class":6318},[2024,14823,6009],{"class":5500},[2024,14825,5514],{"class":5519},[2024,14827,5536],{"class":5523},[2024,14829,5514],{"class":5519},[2024,14831,5597],{"class":5500},[2024,14833,14834],{"class":5500}," []):\n",[2024,14836,14837,14840,14842,14844,14846,14848,14850,14852,14854,14856,14858],{"class":4882,"line":10185},[2024,14838,14839],{"class":6297},"        props ",[2024,14841,6315],{"class":5500},[2024,14843,5930],{"class":6297},[2024,14845,60],{"class":5500},[2024,14847,12370],{"class":6318},[2024,14849,6009],{"class":5500},[2024,14851,5514],{"class":5519},[2024,14853,5627],{"class":5523},[2024,14855,5514],{"class":5519},[2024,14857,5597],{"class":5500},[2024,14859,14860],{"class":5500}," {})\n",[2024,14862,14863,14866,14868,14870,14872,14874,14876,14878,14880,14882,14884],{"class":4882,"line":10203},[2024,14864,14865],{"class":6297},"        geom ",[2024,14867,6315],{"class":5500},[2024,14869,5930],{"class":6297},[2024,14871,60],{"class":5500},[2024,14873,12370],{"class":6318},[2024,14875,6009],{"class":5500},[2024,14877,5514],{"class":5519},[2024,14879,5571],{"class":5523},[2024,14881,5514],{"class":5519},[2024,14883,5597],{"class":5500},[2024,14885,14860],{"class":5500},[2024,14887,14888,14891,14894,14896,14898,14900,14902,14904,14906,14908,14910,14912,14914,14916,14919,14922,14924,14926,14928,14930,14932,14934,14936,14938,14940,14942,14944],{"class":4882,"line":10211},[2024,14889,14890],{"class":5822},"        if",[2024,14892,14893],{"class":6297}," props",[2024,14895,60],{"class":5500},[2024,14897,12370],{"class":6318},[2024,14899,6009],{"class":5500},[2024,14901,5514],{"class":5519},[2024,14903,10988],{"class":5523},[2024,14905,5514],{"class":5519},[2024,14907,5893],{"class":5500},[2024,14909,12493],{"class":6175},[2024,14911,5520],{"class":5519},[2024,14913,10995],{"class":5523},[2024,14915,5514],{"class":5519},[2024,14917,14918],{"class":6175}," and",[2024,14920,14921],{"class":6297}," geom",[2024,14923,60],{"class":5500},[2024,14925,12370],{"class":6318},[2024,14927,6009],{"class":5500},[2024,14929,5514],{"class":5519},[2024,14931,5511],{"class":5523},[2024,14933,5514],{"class":5519},[2024,14935,5893],{"class":5500},[2024,14937,12493],{"class":6175},[2024,14939,5520],{"class":5519},[2024,14941,10765],{"class":5523},[2024,14943,5514],{"class":5519},[2024,14945,14946],{"class":5500},":\n",[2024,14948,14949,14952,14954,14956,14958,14960,14962,14964,14966,14968],{"class":4882,"line":10222},[2024,14950,14951],{"class":6297},"            lon",[2024,14953,5597],{"class":5500},[2024,14955,12510],{"class":6297},[2024,14957,6315],{"class":5500},[2024,14959,14921],{"class":6297},[2024,14961,5941],{"class":5500},[2024,14963,5514],{"class":5519},[2024,14965,5602],{"class":5523},[2024,14967,5514],{"class":5519},[2024,14969,12440],{"class":5500},[2024,14971,14972,14975,14977,14980,14982,14984,14986,14988,14990,14992,14994,14996,14998,15001],{"class":4882,"line":10231},[2024,14973,14974],{"class":6297},"            coords_map",[2024,14976,5941],{"class":5500},[2024,14978,14979],{"class":6297},"props",[2024,14981,5941],{"class":5500},[2024,14983,5514],{"class":5519},[2024,14985,5663],{"class":5523},[2024,14987,5514],{"class":5519},[2024,14989,5616],{"class":5500},[2024,14991,5819],{"class":5500},[2024,14993,527],{"class":5500},[2024,14995,6060],{"class":6297},[2024,14997,5597],{"class":5500},[2024,14999,15000],{"class":6297}," lon",[2024,15002,6370],{"class":5500},[2024,15004,15005,15008],{"class":4882,"line":10240},[2024,15006,15007],{"class":5822},"    return",[2024,15009,15010],{"class":6297}," coords_map\n",[2024,15012,15013],{"class":4882,"line":10245},[2024,15014,5901],{"emptyLinePlaceholder":289},[2024,15016,15017,15020,15023,15025,15028],{"class":4882,"line":10258},[2024,15018,15019],{"class":5500},"@",[2024,15021,15022],{"class":5826},"pandas_udf",[2024,15024,6009],{"class":5500},[2024,15026,15027],{"class":6318},"StructType",[2024,15029,15030],{"class":5500},"([\n",[2024,15032,15033,15036,15038,15040,15042,15044,15046,15049],{"class":4882,"line":10274},[2024,15034,15035],{"class":6318},"    StructField",[2024,15037,6009],{"class":5500},[2024,15039,5514],{"class":5519},[2024,15041,6253],{"class":5523},[2024,15043,5514],{"class":5519},[2024,15045,5597],{"class":5500},[2024,15047,15048],{"class":6318}," DoubleType",[2024,15050,15051],{"class":5500},"()),\n",[2024,15053,15054,15056,15058,15060,15062,15064,15066,15068],{"class":4882,"line":10290},[2024,15055,15035],{"class":6318},[2024,15057,6009],{"class":5500},[2024,15059,5514],{"class":5519},[2024,15061,6262],{"class":5523},[2024,15063,5514],{"class":5519},[2024,15065,5597],{"class":5500},[2024,15067,15048],{"class":6318},[2024,15069,15070],{"class":5500},"())\n",[2024,15072,15073],{"class":4882,"line":10305},[2024,15074,15075],{"class":5500},"]))\n",[2024,15077,15078,15080,15083,15085,15088,15090,15093,15095,15098,15100,15103,15105,15107,15110],{"class":4882,"line":10324},[2024,15079,14667],{"class":5811},[2024,15081,15082],{"class":5826}," township_convert",[2024,15084,6009],{"class":5500},[2024,15086,15087],{"class":14675},"descriptions",[2024,15089,2609],{"class":5500},[2024,15091,15092],{"class":6297}," pd",[2024,15094,60],{"class":5500},[2024,15096,15097],{"class":6334},"Series",[2024,15099,5893],{"class":5500},[2024,15101,15102],{"class":5500}," ->",[2024,15104,15092],{"class":6297},[2024,15106,60],{"class":5500},[2024,15108,15109],{"class":6334},"DataFrame",[2024,15111,14946],{"class":5500},[2024,15113,15114,15117,15119,15122,15124,15127],{"class":4882,"line":10336},[2024,15115,15116],{"class":6297},"    llds ",[2024,15118,6315],{"class":5500},[2024,15120,15121],{"class":6297}," descriptions",[2024,15123,60],{"class":5500},[2024,15125,15126],{"class":6318},"tolist",[2024,15128,11872],{"class":5500},[2024,15130,15131,15134,15136],{"class":4882,"line":10347},[2024,15132,15133],{"class":6297},"    all_coords ",[2024,15135,6315],{"class":5500},[2024,15137,14805],{"class":5500},[2024,15139,15140],{"class":4882,"line":10389},[2024,15141,5901],{"emptyLinePlaceholder":289},[2024,15143,15144,15146,15149,15151,15154,15156,15158,15160,15163,15165,15167,15169,15172],{"class":4882,"line":10448},[2024,15145,14810],{"class":5822},[2024,15147,15148],{"class":6297}," i ",[2024,15150,12464],{"class":5822},[2024,15152,15153],{"class":6375}," range",[2024,15155,6009],{"class":5500},[2024,15157,5945],{"class":5944},[2024,15159,5597],{"class":5500},[2024,15161,15162],{"class":6375}," len",[2024,15164,6009],{"class":5500},[2024,15166,14676],{"class":6318},[2024,15168,12576],{"class":5500},[2024,15170,15171],{"class":14700}," BATCH_SIZE",[2024,15173,14679],{"class":5500},[2024,15175,15176,15179,15181,15184,15186,15189,15191,15194,15197,15199],{"class":4882,"line":10457},[2024,15177,15178],{"class":6297},"        chunk ",[2024,15180,6315],{"class":5500},[2024,15182,15183],{"class":6297}," llds",[2024,15185,5941],{"class":5500},[2024,15187,15188],{"class":6297},"i",[2024,15190,2609],{"class":5500},[2024,15192,15193],{"class":6297},"i ",[2024,15195,15196],{"class":6175},"+",[2024,15198,15171],{"class":14591},[2024,15200,12440],{"class":5500},[2024,15202,15203,15206,15208,15211,15213,15216,15218,15221],{"class":4882,"line":10462},[2024,15204,15205],{"class":6297},"        all_coords",[2024,15207,60],{"class":5500},[2024,15209,15210],{"class":6318},"update",[2024,15212,6009],{"class":5500},[2024,15214,15215],{"class":6318},"convert_lld_batch",[2024,15217,6009],{"class":5500},[2024,15219,15220],{"class":6318},"chunk",[2024,15222,12591],{"class":5500},[2024,15224,15225],{"class":4882,"line":10468},[2024,15226,5901],{"emptyLinePlaceholder":289},[2024,15228,15229,15232,15234],{"class":4882,"line":10490},[2024,15230,15231],{"class":6297},"    latitudes ",[2024,15233,6315],{"class":5500},[2024,15235,15236],{"class":5500}," []\n",[2024,15238,15239,15242,15244],{"class":4882,"line":10505},[2024,15240,15241],{"class":6297},"    longitudes ",[2024,15243,6315],{"class":5500},[2024,15245,15236],{"class":5500},[2024,15247,15248,15250,15253,15255,15257],{"class":4882,"line":10531},[2024,15249,14810],{"class":5822},[2024,15251,15252],{"class":6297}," lld ",[2024,15254,12464],{"class":5822},[2024,15256,15183],{"class":6297},[2024,15258,14946],{"class":5500},[2024,15260,15261,15264,15266,15269,15271,15273,15275,15277],{"class":4882,"line":10543},[2024,15262,15263],{"class":6297},"        coord ",[2024,15265,6315],{"class":5500},[2024,15267,15268],{"class":6297}," all_coords",[2024,15270,60],{"class":5500},[2024,15272,12370],{"class":6318},[2024,15274,6009],{"class":5500},[2024,15276,2026],{"class":6318},[2024,15278,6370],{"class":5500},[2024,15280,15281,15284,15286,15289,15291,15294,15296,15298,15300,15303,15306,15309,15312],{"class":4882,"line":10552},[2024,15282,15283],{"class":6297},"        latitudes",[2024,15285,60],{"class":5500},[2024,15287,15288],{"class":6318},"append",[2024,15290,6009],{"class":5500},[2024,15292,15293],{"class":6318},"coord",[2024,15295,5941],{"class":5500},[2024,15297,5945],{"class":5944},[2024,15299,5948],{"class":5500},[2024,15301,15302],{"class":5822}," if",[2024,15304,15305],{"class":6318}," coord ",[2024,15307,15308],{"class":5822},"else",[2024,15310,15311],{"class":6018}," None",[2024,15313,6370],{"class":5500},[2024,15315,15316,15319,15321,15323,15325,15327,15329,15331,15333,15335,15337,15339,15341],{"class":4882,"line":10561},[2024,15317,15318],{"class":6297},"        longitudes",[2024,15320,60],{"class":5500},[2024,15322,15288],{"class":6318},[2024,15324,6009],{"class":5500},[2024,15326,15293],{"class":6318},[2024,15328,5941],{"class":5500},[2024,15330,2558],{"class":5944},[2024,15332,5948],{"class":5500},[2024,15334,15302],{"class":5822},[2024,15336,15305],{"class":6318},[2024,15338,15308],{"class":5822},[2024,15340,15311],{"class":6018},[2024,15342,6370],{"class":5500},[2024,15344,15345],{"class":4882,"line":10566},[2024,15346,5901],{"emptyLinePlaceholder":289},[2024,15348,15349,15351,15353,15355,15357,15360,15362,15364,15366,15368,15371,15373,15375,15377,15379,15381,15384],{"class":4882,"line":10579},[2024,15350,15007],{"class":5822},[2024,15352,15092],{"class":6297},[2024,15354,60],{"class":5500},[2024,15356,15109],{"class":6318},[2024,15358,15359],{"class":5500},"({",[2024,15361,5514],{"class":5519},[2024,15363,6253],{"class":5523},[2024,15365,5514],{"class":5519},[2024,15367,2609],{"class":5500},[2024,15369,15370],{"class":6318}," latitudes",[2024,15372,5597],{"class":5500},[2024,15374,5520],{"class":5519},[2024,15376,6262],{"class":5523},[2024,15378,5514],{"class":5519},[2024,15380,2609],{"class":5500},[2024,15382,15383],{"class":6318}," longitudes",[2024,15385,15386],{"class":5500},"})\n",[12,15388,15389,15390,8849,15393,15395],{},"Apply it to a Delta table the same way: ",[65,15391,15392],{},"df.withColumn(\"coords\", township_convert(col(\"legal_land_description\")))",[45,15394,4421],{"href":4394}," covers request format, error handling, and rate limits in detail.",[12,15397,15398],{},"Township Canada also publishes DLS grid boundary polygons as a Delta Sharing dataset - useful for spatial joins against section and township boundaries without individual API calls.",[24,15400,15402],{"id":15401},"performance-and-cost-considerations","Performance and Cost Considerations",[12,15404,15405],{},"A few things to keep in mind at scale:",[241,15407,15408,15418,15424,15430],{},[244,15409,15410,15413,15414,15417],{},[19,15411,15412],{},"Batch size",": Snowflake sends rows in batches of up to 100 when ",[65,15415,15416],{},"MAX_BATCH_ROWS = 100",", which matches the Batch API record limit.",[244,15419,15420,15423],{},[19,15421,15422],{},"Rate limits",": Batch API limits are published as requests per second (Build: 1 req\u002Fsec, Scale: 5 req\u002Fsec, Enterprise: 25 req\u002Fsec). Keep that in mind when tuning warehouse concurrency.",[244,15425,15426,15429],{},[19,15427,15428],{},"One-time enrichment",": For stable source data, run enrichment with CTAS and store coordinates so you do not re-call the API on every dashboard query.",[244,15431,15432,15435],{},[19,15433,15434],{},"Cost planning",": Treat pricing as included monthly request volume by tier, not metered per-row billing.",[12,15437,15438,15439,15442],{},"For Canadian ",[45,15440,15441],{"href":6609},"oil and gas teams"," that already track well locations as DLS legal land descriptions, this turns a manual GIS step into a SQL query.",[24,15444,8758],{"id":8757},[1863,15446,15447,15457,15465],{},[244,15448,15449,15452,15453,15456],{},[19,15450,15451],{},"Sign up for a Batch API key"," at ",[45,15454,15455],{"href":3965},"townshipcanada.com\u002Fapi"," - starts at $40\u002Fmo",[244,15458,15459,15452,15462,15464],{},[19,15460,15461],{},"Follow the setup guide",[45,15463,8852],{"href":8852}," to deploy the Lambda proxy and register the External Function",[244,15466,15467,9137,15470,15473],{},[19,15468,15469],{},"Test it",[65,15471,15472],{},"SELECT TOWNSHIP_CONVERT('SE-36-42-3-W5')"," - you should see latitude\u002Flongitude in the returned JSON",[12,15475,15476,15477,60],{},"The guide includes Snowflake DDL, Lambda proxy code, Databricks UDF examples, and troubleshooting steps. If you hit a wall during setup, email ",[45,15478,15480],{"href":15479},"mailto:support@townshipcanada.com","support@townshipcanada.com",[4964,15482,15483],{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .sftqT, html code.shiki .sftqT{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .se3Ec, html code.shiki .se3Ec{--shiki-light:#90A4AE;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sBPpx, html code.shiki .sBPpx{--shiki-light:#E53935;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .siWMO, html code.shiki .siWMO{--shiki-light:#6182B8;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .sqOPj, html code.shiki .sqOPj{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#BD976A;--shiki-dark-font-style:inherit}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sljsM, html code.shiki .sljsM{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .sCyAa, html code.shiki .sCyAa{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#393A34;--shiki-default-font-style:inherit;--shiki-dark:#DBD7CAEE;--shiki-dark-font-style:inherit}html pre.shiki code .s6DHA, html code.shiki .s6DHA{--shiki-light:#6182B8;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sJdAF, html code.shiki .sJdAF{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s8XtY, html code.shiki .s8XtY{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#4D9375}",{"title":274,"searchDepth":275,"depth":275,"links":15485},[15486,15487,15488,15489,15490,15491,15492,15493],{"id":14210,"depth":275,"text":14211},{"id":14255,"depth":275,"text":14256},{"id":14307,"depth":275,"text":14308},{"id":14332,"depth":275,"text":14333},{"id":14408,"depth":275,"text":14409},{"id":14503,"depth":275,"text":14504},{"id":15401,"depth":275,"text":15402},{"id":8757,"depth":275,"text":8758},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-04\u002F5f236977-5b54-44eb-92f5-37e552cff792.jpeg","2026-04-01","Step-by-step guide to converting Snowflake DLS legal land description columns to GPS coordinates using Township Canada's External Function.",{},{"title":14179,"description":15496},"blog\u002Fenrich-snowflake-table-dls-gps-coordinates",[9340,4990,300,6762,6763],"3SJeb1QcINWMnrl-DWhpBbxpQ0U5WpsvhqRHNRqn8iA",{"id":15503,"title":15504,"author":7,"body":15505,"category":1168,"cover":15969,"date":15495,"description":15970,"extension":287,"meta":15971,"navigation":289,"path":15972,"seo":15973,"stem":15974,"tags":15975,"__hash__":15976},"blog\u002Fblog\u002Fproduct-update-q1-2026.md","Township Canada Product Update - Q1 2026",{"type":9,"value":15506,"toc":15957},[15507,15510,15512,15516,15524,15527,15532,15535,15537,15541,15564,15617,15619,15623,15630,15650,15656,15659,15661,15665,15675,15678,15680,15684,15689,15692,15697,15705,15709,15717,15722,15742,15747,15767,15771,15791,15794,15796,15800,15805,15830,15845,15853,15855,15859,15869,15875,15878,15880,15884,15890,15899,15901,15905,15911,15919,15945,15947,15951],[12,15508,15509],{},"Here's what shipped between January and March 2026. This quarter was defined by two things: a full platform rebuild, and a wave of integrations that put Township Canada inside the tools you already use - ArcGIS, Excel, Google Sheets, Snowflake, npm, PyPI, and the App Store and Google Play.",[1148,15511],{},[24,15513,15515],{"id":15514},"platform-rebuild","Platform Rebuild",[12,15517,15518,15519,15523],{},"We ",[45,15520,15522],{"href":15521},"\u002Fblog\u002Fthe-new-township-canada","rebuilt Township Canada from the ground up"," and launched in February. Not a reskin - a new codebase, new design system, and new capabilities across the entire product.",[12,15525,15526],{},"The rebuild replaced the legacy Vue 2 application with Nuxt 4, Nuxt UI, and Tailwind 4. Passwordless authentication replaced passwords. You now have unified search (DLS, NTS, FPS, coordinates, addresses, and place names with map-biased autocomplete), batch CSV conversion at scale, a multi-stop route planner, projects and saved places, team management for business accounts, an AI assistant, and unlimited named API keys with per-environment rotation.",[12,15528,15529],{},[128,15530],{"alt":15531,"src":3896},"Unified search with map-biased autocomplete across DLS, NTS, FPS, coordinates, addresses, and place names",[12,15533,15534],{},"If you had an existing account, your subscription and API keys carried over automatically.",[1148,15536],{},[24,15538,15540],{"id":15539},"guides-and-documentation","Guides and Documentation",[12,15542,15543,15544,15548,15549,68,15551,68,15555,68,15557,68,15559,82,15561,60],{},"We rewrote the documentation from scratch. ",[45,15545,15547],{"href":15546},"\u002Fguides","Guides"," now cover every major feature - search, batch conversion, route planner, projects, downloads, mobile app, AI assistant, and team management - plus developer guides for integrating the API with ",[45,15550,6727],{"href":6726},[45,15552,15554],{"href":15553},"\u002Fguides\u002Fmaplibre-integration","MapLibre",[45,15556,6735],{"href":6734},[45,15558,6731],{"href":6730},[45,15560,6723],{"href":6722},[45,15562,8798],{"href":15563},"\u002Fguides\u002Fgoogle-sheets-integration",[12,15565,368,15566,15570,15571,68,15575,68,15579,68,15583,68,15585,68,15587,68,15590,15593,15594,68,15597,68,15600,68,15602,68,15605,68,15609,82,15613,60],{},[45,15567,15569],{"href":15568},"\u002Flearn\u002Fhow-to","Learn hub"," has 25+ how-to guides covering specific workflows: ",[45,15572,15574],{"href":15573},"\u002Flearn\u002Fhow-to\u002Fdls-to-gps-converter","DLS to GPS",[45,15576,15578],{"href":15577},"\u002Flearn\u002Fhow-to\u002Fnts-to-gps-converter","NTS to GPS",[45,15580,15582],{"href":15581},"\u002Flearn\u002Fhow-to\u002Fgps-to-legal-land-description","GPS to legal description",[45,15584,8150],{"href":8149},[45,15586,1577],{"href":6636},[45,15588,15589],{"href":7569},"Ontario lot and concession lookup",[45,15591,15592],{"href":5184},"Manitoba river lots",", and industry-specific guides for ",[45,15595,15596],{"href":8401},"oil and gas",[45,15598,15599],{"href":13965},"agriculture",[45,15601,5265],{"href":7591},[45,15603,15604],{"href":7605},"surveying",[45,15606,15608],{"href":15607},"\u002Flearn\u002Fhow-to\u002Flegal-land-description-for-insurance","insurance",[45,15610,15612],{"href":15611},"\u002Flearn\u002Fhow-to\u002Flegal-land-description-for-renewable-energy","renewable energy",[45,15614,15616],{"href":15615},"\u002Flearn\u002Fhow-to\u002Fcarbon-credits-legal-land-descriptions","carbon credits",[1148,15618],{},[24,15620,15622],{"id":15621},"new-pricing","New Pricing",[12,15624,15625,15626,15629],{},"The rebuild also brought ",[45,15627,15628],{"href":2964},"new pricing"," with three plans:",[241,15631,15632,15638,15644],{},[244,15633,15634,15637],{},[19,15635,15636],{},"Starter ($10\u002Fmo)"," - 100 searches, street maps, measurement tool, turn-by-turn directions, 1 project, 20 quick saves, and AI assistant (30 messages\u002Fday).",[244,15639,15640,15643],{},[19,15641,15642],{},"Pro ($20\u002Fmo)"," - Unlimited searches, HD satellite imagery, 10 optimized routes\u002Fmonth, 5 projects, 100 quick saves, PDF export, and AI assistant (200 messages\u002Fday). Pro + Mobile bundle ($25\u002Fmo) adds the field app.",[244,15645,15646,15649],{},[19,15647,15648],{},"Business ($40\u002Fuser\u002Fmo)"," - Unlimited batch and CSV upload, unlimited projects, all export formats (PDF, CSV, KML, Shapefile, GeoJSON, DXF), team management with RBAC and SSO, mobile app included, priority support with SLA, and unlimited AI assistant.",[12,15651,15652,15655],{},[19,15653,15654],{},"Mobile app (any web tier):"," Standalone Mobile ($10\u002Fmo) for field-only use, or Pro + Mobile ($25\u002Fmo) if you want web Pro too. Business includes mobile at no extra cost.",[12,15657,15658],{},"All plans include a 30-day money-back guarantee.",[1148,15660],{},[24,15662,15664],{"id":15663},"new-data-bc-parcel-boundaries","New Data: BC Parcel Boundaries",[12,15666,15667,15669,15670,15674],{},[45,15668,5350],{"href":188}," is now integrated into the map. When you search an ",[45,15671,15673],{"href":15672},"\u002Flearn\u002Fprovinces\u002Fbritish-columbia","NTS or other supported legal land description"," in BC, you can see the actual parcel boundary from the provincial cadastre - not just a point.",[12,15676,15677],{},"If you do field work, land acquisition, or due diligence on BC parcels, this fills a gap that's been there since the platform launched.",[1148,15679],{},[24,15681,15683],{"id":15682},"data-layers","Data Layers",[12,15685,15686],{},[128,15687],{"alt":15688,"src":131},"Toggle 11 data layers - municipal boundaries, oil and gas fields, parks, soil, and more - over any basemap",[12,15690,15691],{},"The map now includes 11 toggleable data layers organized into five categories. You can turn each layer on independently and overlay it on any basemap style (street, satellite, light, dark).",[12,15693,15694],{},[19,15695,15696],{},"Administrative",[241,15698,15699],{},[244,15700,15701,15704],{},[19,15702,15703],{},"Municipal Boundaries"," - City, town, county, and municipal district boundaries across Canada. Useful for jurisdictional reference, permit routing, and regional planning.",[12,15706,15707],{},[19,15708,545],{},[241,15710,15711],{},[244,15712,15713,15716],{},[19,15714,15715],{},"Oil & Gas Fields"," - Field boundaries for BC, Alberta, Saskatchewan, and Manitoba. Relevant for well planning, lease mapping, and regulatory context.",[12,15718,15719],{},[19,15720,15721],{},"Natural",[241,15723,15724,15730,15736],{},[244,15725,15726,15729],{},[19,15727,15728],{},"Parks & Protected Areas"," - National and provincial parks, wildlife reserves, and conservation areas. Helps you identify land-use restrictions and setback requirements.",[244,15731,15732,15735],{},[19,15733,15734],{},"Water Bodies"," - Lakes, reservoirs, and major water features. Useful for environmental assessments, drainage context, and proximity analysis.",[244,15737,15738,15741],{},[19,15739,15740],{},"Watercourses"," - Rivers, streams, and waterways. Relevant for pipeline crossings, environmental buffers, and field access planning.",[12,15743,15744],{},[19,15745,15746],{},"Infrastructure",[241,15748,15749,15755,15761],{},[244,15750,15751,15754],{},[19,15752,15753],{},"Roads"," - Road networks across Canada. Helpful for field access planning and distance estimation when combined with the route planner.",[244,15756,15757,15760],{},[19,15758,15759],{},"Railways"," - Rail corridors. Important for right-of-way identification, crossing permits, and setback calculations.",[244,15762,15763,15766],{},[19,15764,15765],{},"Elevation"," - Contour lines showing terrain relief. Useful for grading assessments, drainage analysis, and site planning.",[12,15768,15769],{},[19,15770,4292],{},[241,15772,15773,15779,15785],{},[244,15774,15775,15778],{},[19,15776,15777],{},"Soil Landscapes"," - Canadian soil classification data. Essential for agriculture, environmental studies, and land capability assessment.",[244,15780,15781,15784],{},[19,15782,15783],{},"Aboriginal Lands"," - First Nations reserve boundaries. Supports consultation requirements, tenure overlap checks, and respectful land-use planning.",[244,15786,15787,15790],{},[19,15788,15789],{},"BC Parcels"," - ParcelMap BC property boundaries (see above). Shows titled parcel outlines for British Columbia.",[12,15792,15793],{},"Toggle layers from the map controls panel - each layer renders at the appropriate zoom level with labels.",[1148,15795],{},[24,15797,15799],{"id":15798},"developer-tools","Developer Tools",[12,15801,15802],{},[128,15803],{"alt":15804,"src":5761},"Generate unlimited named API keys with per-environment rotation from the API portal",[12,15806,15807,15810,15811,15817,15818,15820,15821,68,15824,82,15827,15829],{},[19,15808,15809],{},"TypeScript SDK"," - The ",[45,15812,15815],{"href":15813,"rel":15814},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ftownshipcanada",[220],[65,15816,6155],{}," npm package wraps the Township Canada API with a typed client. Install with ",[65,15819,6127],{},". If you're building in Node.js and want typed methods like ",[65,15822,15823],{},"search()",[65,15825,15826],{},"reverse()",[65,15828,6441],{}," instead of raw HTTP calls, this is the drop-in.",[12,15831,15832,15810,15835,15841,15842,15844],{},[19,15833,15834],{},"Python SDK",[45,15836,15839],{"href":15837,"rel":15838},"https:\u002F\u002Fpypi.org\u002Fproject\u002Ftownshipcanada\u002F",[220],[65,15840,6155],{}," PyPI package (v1.0.0) provides the same API surface in Python. Install with ",[65,15843,6282],{},". Built for GIS workflows, data pipelines, and anyone who reaches for Python before TypeScript.",[12,15846,15847,15810,15850,15852],{},[19,15848,15849],{},"API pricing",[45,15851,4990],{"href":3965}," now has three tiers across all four products (Search, Autocomplete, Batch, and Maps): Build ($20\u002Fmo, 1,000 requests), Scale ($100\u002Fmo, 10,000 requests), and Enterprise ($500\u002Fmo, 100,000 requests). Each tier includes unlimited API keys, and annual billing saves you two months.",[1148,15854],{},[24,15856,15858],{"id":15857},"spreadsheet-tools","Spreadsheet Tools",[12,15860,15861,15864,15865,15868],{},[19,15862,15863],{},"Google Sheets Add-On"," - Convert Canadian legal land descriptions directly in Google Sheets with ",[65,15866,15867],{},"=TOWNSHIP_CANADA()"," formulas. Available in the Google Workspace Marketplace.",[12,15870,15871,15874],{},[19,15872,15873],{},"Excel Add-In"," - The same conversion capability for Microsoft Excel. If you work primarily in Excel, this keeps you in your spreadsheet.",[12,15876,15877],{},"Both add-ins include built-in sample DLS locations so you can test offline without an API key.",[1148,15879],{},[24,15881,15883],{"id":15882},"enterprise-integrations","Enterprise Integrations",[12,15885,15886,15889],{},[19,15887,15888],{},"Esri ArcGIS Integration"," - An integration suite covering ArcGIS Pro toolbox, Experience Builder widget, and a Survey123 webhook pipeline. If your team manages Alberta or BC land data in Esri products, you can now run conversions without leaving ArcGIS.",[12,15891,15892,15894,15895,15898],{},[19,15893,8834],{}," - A setup wizard and reference bundle for ",[45,15896,15897],{"href":6585},"DLS conversion inside Snowflake",". If you maintain well inventories or land data in a cloud data warehouse, you can enrich records with coordinates in SQL.",[1148,15900],{},[24,15902,15904],{"id":15903},"mobile-apps","Mobile Apps",[12,15906,15907],{},[128,15908],{"alt":15909,"src":15910},"Township Canada native iOS and Android app - search, navigate, and overlay your GPS position on the DLS or NTS grid","\u002Fimages\u002Fguides\u002Fmobile-1.webp",[12,15912,15913,15914,15918],{},"Township Canada is now available as a native app on ",[45,15915,15917],{"href":15916},"\u002Fmobile","iOS and Android",". Search any LSD, section, township, or NTS grid reference. Get turn-by-turn navigation to the exact location. See your GPS position overlaid on the DLS or NTS grid. Purpose-built for field conditions - large touch targets, one-handed use, and optimized for low-signal areas.",[12,15920,15921,15922,15926,15927,15930,15931,15933,15934,9118,15939,15944],{},"Three ways to get it: ",[45,15923,15925],{"href":15924},"\u002Fpricing#mobile","Standalone Mobile ($10\u002Fmo)"," for field-only use, the ",[45,15928,15929],{"href":15924},"Pro + Mobile bundle ($25\u002Fmo)"," if you want web Pro too, or included with the ",[45,15932,8198],{"href":2964}," at no extra cost. Download from the ",[45,15935,15938],{"href":15936,"rel":15937},"https:\u002F\u002Fapps.apple.com\u002Fapp\u002Ftownship-canada\u002Fid6759103876",[220],"App Store",[45,15940,15943],{"href":15941,"rel":15942},"https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.mapsnapps.townshipcanada",[220],"Google Play",", then activate with your license key.",[1148,15946],{},[24,15948,15950],{"id":15949},"feedback","Feedback",[12,15952,15953,15954,15956],{},"Questions about any of these features, or something not working the way you'd expect? Reach out at ",[45,15955,1156],{"href":1155},". We read everything.",{"title":274,"searchDepth":275,"depth":275,"links":15958},[15959,15960,15961,15962,15963,15964,15965,15966,15967,15968],{"id":15514,"depth":275,"text":15515},{"id":15539,"depth":275,"text":15540},{"id":15621,"depth":275,"text":15622},{"id":15663,"depth":275,"text":15664},{"id":15682,"depth":275,"text":15683},{"id":15798,"depth":275,"text":15799},{"id":15857,"depth":275,"text":15858},{"id":15882,"depth":275,"text":15883},{"id":15903,"depth":275,"text":15904},{"id":15949,"depth":275,"text":15950},"\u002Fimages\u002Fblog\u002Fproduct-update-q1-2026\u002Fcover.webp","Q1 2026: platform rebuilt on Nuxt 4, ParcelMap BC boundaries, TypeScript and Python SDKs, Google Sheets and Excel add-ins, ArcGIS and Snowflake integrations, 11 data layers, and native iOS and Android apps.",{},"\u002Fblog\u002Fproduct-update-q1-2026",{"title":15504,"description":15970},"blog\u002Fproduct-update-q1-2026",[1176,1177],"yYuBIV7YlMgbLyXX0zXLMpe-l6tfbQHH4VTX85MnCcc",{"id":15978,"title":15979,"author":7,"body":15980,"category":503,"cover":16256,"date":16257,"description":16258,"extension":287,"meta":16259,"navigation":289,"path":16260,"seo":16261,"stem":16262,"tags":16263,"__hash__":16267},"blog\u002Fblog\u002Fwind-solar-site-selection-alberta-dls-quarter-sections.md","Wind and Solar Site Selection in Alberta: How to Use DLS Quarter Section Grids",{"type":9,"value":15981,"toc":16245},[15982,15986,15989,15992,15996,15999,16010,16013,16017,16021,16024,16027,16089,16092,16101,16105,16108,16115,16119,16123,16126,16129,16173,16176,16180,16190,16196,16200,16203,16206,16209,16212,16214,16225,16238],[15983,15984,15979],"h1",{"id":15985},"wind-and-solar-site-selection-in-alberta-how-to-use-dls-quarter-section-grids",[12,15987,15988],{},"A wind developer in southern Alberta has a 12-turbine project boundary defined as a list of quarter sections on a lease schedule. An environmental consultant needs GPS coordinates for every parcel to run an agricultural impact assessment on Class 1–3 soils. The Alberta Utilities Commission (AUC) application requires legal land descriptions for each affected parcel - and the field staking crew needs those same locations as GPS waypoints.",[12,15990,15991],{},"All of these tasks start with the same thing: converting DLS quarter section references to coordinates, accurately and in bulk. Renewable energy site selection in Alberta runs on the Dominion Land Survey grid, and if you work in wind or solar development, you already know the notation. The challenge is working with it efficiently at project scale.",[24,15993,15995],{"id":15994},"why-renewable-energy-projects-depend-on-dls-precision","Why Renewable Energy Projects Depend on DLS Precision",[12,15997,15998],{},"Alberta's provincial policy requires agricultural impact assessments for renewable energy projects on land classified as Class 1, 2, or 3 soil capability. The assessment identifies every affected parcel by its legal land description. A wind project spanning 30 quarter sections means 30 individual DLS references in the assessment - each one must be correct, because AUC filings and supporting land records rely on exact parcel references.",[12,16000,16001,16002,16005,16006,16009],{},"Private land leases reference quarter sections directly. A lease for ",[19,16003,16004],{},"NW-14-12-22-W4"," - northwest quarter, Section 14, Township 12, Range 22, West of the 4th Meridian - is enforceable because it maps to an exact 160-acre parcel near Vulcan, Alberta. A vague description like \"the field northwest of the county road\" is not registrable against a title. The ",[45,16007,16008],{"href":3702},"DLS system"," is the legal framework that makes these agreements precise.",[12,16011,16012],{},"Surface rights negotiations, setback calculations from occupied dwellings, and transmission interconnection applications all use the same notation. When the AUC reviews a project application under the Hydro and Electric Energy Act, the facility description identifies every affected parcel by DLS reference.",[24,16014,16016],{"id":16015},"how-wind-and-solar-developers-use-quarter-section-grids","How Wind and Solar Developers Use Quarter Section Grids",[347,16018,16020],{"id":16019},"defining-a-project-footprint","Defining a Project Footprint",[12,16022,16023],{},"A typical Alberta wind project covers portions of 20 to 60 quarter sections. Each turbine pad occupies a fraction of a quarter section, but the associated infrastructure - access roads, cable trenches, substation, and laydown areas - extends across adjacent parcels. The project footprint is the union of all affected quarter sections.",[12,16025,16026],{},"For a 12-turbine project near Claresholm in southern Alberta, the lease schedule might list:",[241,16028,16029,16034,16039,16044,16049,16054,16059,16064,16069,16074,16079,16084],{},[244,16030,16031],{},[19,16032,16033],{},"NE-16-10-26-W4",[244,16035,16036],{},[19,16037,16038],{},"NW-16-10-26-W4",[244,16040,16041],{},[19,16042,16043],{},"SE-21-10-26-W4",[244,16045,16046],{},[19,16047,16048],{},"SW-21-10-26-W4",[244,16050,16051],{},[19,16052,16053],{},"NE-20-10-26-W4",[244,16055,16056],{},[19,16057,16058],{},"SE-20-10-26-W4",[244,16060,16061],{},[19,16062,16063],{},"NW-15-10-26-W4",[244,16065,16066],{},[19,16067,16068],{},"NE-15-10-26-W4",[244,16070,16071],{},[19,16072,16073],{},"SW-22-10-26-W4",[244,16075,16076],{},[19,16077,16078],{},"SE-22-10-26-W4",[244,16080,16081],{},[19,16082,16083],{},"NW-22-10-26-W4",[244,16085,16086],{},[19,16087,16088],{},"NE-22-10-26-W4",[12,16090,16091],{},"That's 12 quarter sections across four contiguous DLS sections in Township 10, Range 26, West of the 4th Meridian - open prairie with strong, consistent winds. Converting all 12 to GPS coordinates confirms the project boundary and generates the waypoints needed for field surveys.",[12,16093,16094,16095,16097,16098,16100],{},"Enter these into ",[45,16096,12642],{"href":4389}," as a CSV list, and you get GPS coordinates for every parcel centre in seconds. Download the results as KML for Google Earth review or Shapefile for import into ArcGIS or QGIS. See the ",[45,16099,9432],{"href":4845}," for step-by-step instructions on processing bulk location files.",[347,16102,16104],{"id":16103},"setbacks-and-road-allowances","Setbacks and Road Allowances",[12,16106,16107],{},"Alberta's Rule 012 (Noise Control) and municipal setback bylaws require minimum distances between turbines and occupied dwellings. These distances are measured from the turbine pad - identified by its LSD or quarter section - to the nearest dwelling. Knowing the precise GPS coordinates for each quarter section centre helps engineers calculate setback compliance before finalizing turbine placement.",[12,16109,16110,16111,16114],{},"Road allowances in the DLS grid run along section lines (east-west) and range lines (north-south). These 66-foot-wide corridors affect access road planning and cable routing. The DLS grid map on ",[45,16112,16113],{"href":9461},"Township Canada's interactive map"," shows section boundaries overlaid on satellite imagery, making road allowances visible during the desktop screening phase.",[12,16116,16117],{},[128,16118],{"alt":8176,"src":131},[24,16120,16122],{"id":16121},"real-workflow-from-quarter-sections-to-gps-for-an-agricultural-impact-assessment","Real Workflow: From Quarter Sections to GPS for an Agricultural Impact Assessment",[12,16124,16125],{},"A solar developer in southern Alberta is preparing an agricultural impact assessment for a 200 MW project near Taber. The project area covers 34 quarter sections across Townships 11 and 12, Ranges 16 and 17, W4. The assessment must identify each parcel's soil classification, current agricultural use, and reclamation plan.",[12,16127,16128],{},"Here's the workflow:",[1863,16130,16131,16137,16145,16155,16161,16167],{},[244,16132,16133,16136],{},[19,16134,16135],{},"List all affected quarter sections"," from the lease schedule and project layout drawings",[244,16138,16139,16144],{},[19,16140,16141,16142],{},"Upload the list to the ",[45,16143,4551],{"href":4389}," - paste the 34 DLS descriptions into the batch input or upload a CSV file, then convert",[244,16146,16147,16150,16151,16154],{},[19,16148,16149],{},"Export to KML and Shapefile"," - download the results using Township Canada's ",[45,16152,16153],{"href":4424},"export tools"," on a Business plan",[244,16156,16157,16160],{},[19,16158,16159],{},"Import into GIS"," - load the KML into Google Earth for a quick visual check, and the Shapefile into ArcGIS for the formal soil classification overlay",[244,16162,16163,16166],{},[19,16164,16165],{},"Cross-reference with AGRASID"," - overlay the GPS-located parcels against Alberta's Agricultural Region of Alberta Soil Inventory Database to identify Class 1–3 soils",[244,16168,16169,16172],{},[19,16170,16171],{},"Generate the assessment map"," - the GIS output becomes the spatial component of the agricultural impact assessment submitted to the AUC",[12,16174,16175],{},"The entire conversion step - from a column of DLS references to GPS-located parcels in a GIS-ready format - takes under a minute with batch processing. Without it, each quarter section would need to be looked up individually, coordinates copied manually, and formatted for GIS import.",[24,16177,16179],{"id":16178},"using-the-township-canada-api-for-project-management-tools","Using the Township Canada API for Project Management Tools",[12,16181,16182,16183,16185,16186,16189],{},"For developers building internal project management or land acquisition tools, the ",[45,16184,6927],{"href":3965}," converts DLS descriptions to GPS coordinates programmatically. A ",[65,16187,16188],{},"POST"," to the Batch API endpoint converts up to 100 legal land descriptions per request, returning GeoJSON with coordinates and boundary polygons.",[12,16191,16192,16193,16195],{},"A wind developer's internal land tracking system can call the API to geocode every parcel in its database, keep coordinates current as new leases are signed, and generate map views for project managers - without manual conversion steps. Batch API plans start at $40\u002Fmonth for 1,000 requests. See the ",[45,16194,6718],{"href":6717}," for authentication and endpoint details.",[24,16197,16199],{"id":16198},"case-study-340-quarter-sections-for-an-agricultural-impact-assessment","Case Study: 340 Quarter Sections for an Agricultural Impact Assessment",[12,16201,16202],{},"A solar developer in the County of Forty Mile in southeastern Alberta was preparing an agricultural impact assessment for one of the province's largest proposed solar projects. The project area spanned 340 quarter sections across multiple townships - a mix of dryland crop, irrigated crop, and native grassland parcels.",[12,16204,16205],{},"The land team had a spreadsheet of DLS descriptions from signed lease agreements. The environmental consultant needed GPS coordinates for every parcel to run the soil classification analysis and generate the assessment maps for the AUC submission.",[12,16207,16208],{},"Using Township Canada's batch converter, the team uploaded all 340 descriptions in a single CSV file. The converter returned GPS coordinates and boundary data for every parcel. The results were exported as a Shapefile and imported directly into ArcGIS, where the consultant overlaid them against AGRASID soil data and Alberta Merged Wetland Inventory layers.",[12,16210,16211],{},"The conversion and export took less than two minutes. The alternative - looking up each quarter section individually and transcribing coordinates - would have taken the better part of a week.",[24,16213,7184],{"id":7183},[12,16215,16216,16217,16219,16220,8195,16222,16224],{},"If you're working on renewable energy site selection in Alberta, start with the ",[45,16218,9483],{"href":8363}," for individual quarter section lookups. For project-scale work with dozens or hundreds of parcels, the ",[45,16221,4551],{"href":4389},[45,16223,8198],{"href":2964}," handles the volume and provides KML, Shapefile, and GeoJSON exports for direct GIS import.",[12,16226,16227,16228,16231,16232,4391,16234,60],{},"For a deeper look at how the DLS grid works and why it matters for ",[45,16229,16230],{"href":15611},"renewable energy development",", see the ",[45,16233,5124],{"href":3702},[45,16235,16237],{"href":16236},"\u002Flearn\u002Findustries\u002Frenewable-energy","renewable energy industry page",[12,16239,141,16240,7241,16242,16244],{},[19,16241,16033],{},[45,16243,8170],{"href":4740}," to see a quarter section in southern Alberta's wind corridor near Claresholm - an area where many of the province's largest wind projects are sited.",{"title":274,"searchDepth":275,"depth":275,"links":16246},[16247,16248,16252,16253,16254,16255],{"id":15994,"depth":275,"text":15995},{"id":16015,"depth":275,"text":16016,"children":16249},[16250,16251],{"id":16019,"depth":498,"text":16020},{"id":16103,"depth":498,"text":16104},{"id":16121,"depth":275,"text":16122},{"id":16178,"depth":275,"text":16179},{"id":16198,"depth":275,"text":16199},{"id":7183,"depth":275,"text":7184},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002Fa38767d6-1cde-460b-abe6-d96dbf370f37.jpeg","2026-03-31","Alberta renewable energy developers use DLS quarter sections for site selection, agricultural impact assessments, and AUC submissions. Here's how to convert project footprints to GPS.",{},"\u002Fblog\u002Fwind-solar-site-selection-alberta-dls-quarter-sections",{"title":15979,"description":16258},"blog\u002Fwind-solar-site-selection-alberta-dls-quarter-sections",[15612,2779,4032,16264,16265,16266],"site selection","wind energy","solar energy","FEYnJe-Mrye7J6BgeYqHyhq8VV1yq0t_wNZU88ZeCgQ",{"id":16269,"title":16270,"author":7,"body":16271,"category":503,"cover":16447,"date":16448,"description":16449,"extension":287,"meta":16450,"navigation":289,"path":16451,"seo":16452,"stem":16453,"tags":16454,"__hash__":16456},"blog\u002Fblog\u002Fontario-lot-concession-property-searches.md","Ontario Uses Lot and Concession Instead of DLS - Here's What That Means for Property Searches",{"type":9,"value":16272,"toc":16439},[16273,16280,16286,16290,16293,16296,16303,16307,16312,16315,16335,16340,16344,16347,16350,16354,16360,16367,16372,16375,16379,16382,16420,16426,16430,16433],[12,16274,16275,16276,16279],{},"A Toronto-based real estate agent gets a referral for a rural property in Victoria County. The title reads ",[19,16277,16278],{},"Lot 14, Concession 3, Geographic Township of Ops",". No quarter section. No LSD. No W4M. If this agent has only ever worked with western Canadian land descriptions, the notation is completely unfamiliar - because Ontario uses a different survey system entirely.",[12,16281,16282,16283,16285],{},"This is the reality for anyone doing property searches in rural Ontario. The ",[45,16284,1484],{"href":5123}," that covers Alberta, Saskatchewan, and Manitoba does not apply here. Ontario was surveyed earlier, under a British colonial model, and its legal land descriptions follow a lot and concession format tied to named geographic townships. If you need to convert an Ontario lot concession to GPS coordinates, the first step is understanding what you're looking at.",[24,16287,16289],{"id":16288},"why-ontario-doesnt-use-the-dominion-land-survey","Why Ontario Doesn't Use the Dominion Land Survey",[12,16291,16292],{},"The DLS was established in the 1870s to organize the western prairies for settlement. It laid a uniform rectangular grid across the landscape, numbered from fixed meridians, dividing land into townships, sections, and quarter sections. That system works well on the flat, open prairie - but it was never applied to Ontario.",[12,16294,16295],{},"Ontario's surveys began decades earlier, in the 1780s, after the American Revolution. The British government needed to distribute land to Loyalist settlers arriving from the former colonies. Surveyors adapted to Ontario's terrain - its lakes, rivers, and dense forests - by creating named geographic townships and dividing them into concession strips and lots. Each township has its own internal grid, shaped by local geography rather than a single province-wide coordinate system.",[12,16297,16298,16299,16302],{},"The result: Ontario has hundreds of uniquely named geographic townships, each with its own lot-and-concession numbering. Unlike the DLS, where you can locate any parcel using a meridian, range, and township number, ",[45,16300,16301],{"href":7632},"Ontario's system"," requires you to know the township name to find anything.",[24,16304,16306],{"id":16305},"reading-an-ontario-lot-and-concession-description","Reading an Ontario Lot and Concession Description",[12,16308,16309,16310,60],{},"Take that Victoria County title: ",[19,16311,16278],{},[12,16313,16314],{},"Each component identifies a layer of the location:",[241,16316,16317,16323,16329],{},[244,16318,16319,16322],{},[19,16320,16321],{},"Geographic Township of Ops"," - the named survey township. Ops is a real township in what is now the City of Kawartha Lakes (formerly Victoria County). Township names in Ontario come from British colonial administrators, military figures, and local geography.",[244,16324,16325,16328],{},[19,16326,16327],{},"Concession 3"," - the third concession strip within Ops Township. Concessions are long, roughly rectangular bands of land running across the township, numbered outward from a baseline - usually a lake shore, river, or major road.",[244,16330,16331,16334],{},[19,16332,16333],{},"Lot 14"," - the fourteenth lot within that concession. Lots run perpendicular to the concession boundaries, numbered sequentially from one end of the township to the other.",[12,16336,16337,16338,60],{},"Together, these three components pinpoint a specific parcel. In most Ontario townships, a standard lot is around 100 acres - smaller than the 160-acre quarter section used in the western ",[45,16339,14094],{"href":7292},[24,16341,16343],{"id":16342},"how-concession-roads-define-ontarios-rural-grid","How Concession Roads Define Ontario's Rural Grid",[12,16345,16346],{},"If you've ever driven through rural Ontario, you've noticed the pattern: straight, evenly spaced roads running in a grid across farmland. Those roads follow the concession boundaries. The road between Concession 2 and Concession 3 is literally called the \"concession road.\" Side roads mark lot boundaries.",[12,16348,16349],{},"This grid is less uniform than the prairie DLS grid. Ontario townships were surveyed at different times, by different surveyors, with different baselines. Some townships have concessions running north-south, others run east-west or follow a river angle. Lot widths vary. The numbering direction changes between townships. This is why a lot-and-concession description without the township name is meaningless - Lot 14, Concession 3 could be in hundreds of different places across the province.",[24,16351,16353],{"id":16352},"how-to-convert-an-ontario-lot-and-concession-to-gps","How to Convert an Ontario Lot and Concession to GPS",[12,16355,16356,16357,16359],{},"The conversion process is the same one you'd use for any Canadian legal land description. Go to Township Canada's ",[45,16358,7355],{"href":7354}," and enter the description. Type the township name, concession number, and lot number, and the converter returns the GPS coordinates for the centre of that parcel.",[12,16361,16362,16363,16366],{},"For the Victoria County example: enter ",[19,16364,16365],{},"Lot 14, Concession 3, Ops"," and you get back a latitude and longitude near Lindsay, Ontario - approximately 44.35°N, 78.74°W. From there, you can view the parcel on satellite imagery, check road access, or export the coordinates for use in GIS software.",[12,16368,16369],{},[128,16370],{"alt":16371,"src":3896},"Township Canada search interface",[12,16373,16374],{},"The converter works for any of Ontario's geographic townships. Whether you're looking up a parcel in Adjala-Tosorontio near Barrie, a lot in Thurlow near Belleville, or a concession in the District of Algoma in northern Ontario, the process is the same: township name, concession, lot, GPS coordinates back in seconds.",[24,16376,16378],{"id":16377},"where-ontario-lot-and-concession-descriptions-appear","Where Ontario Lot and Concession Descriptions Appear",[12,16380,16381],{},"If you work with Ontario rural property, you'll encounter lot and concession descriptions in:",[241,16383,16384,16390,16396,16402,16408,16414],{},[244,16385,16386,16389],{},[19,16387,16388],{},"Land titles and deeds"," - every Ontario rural title registered before the modern parcel register system uses lot-concession-township as the primary identifier",[244,16391,16392,16395],{},[19,16393,16394],{},"Older mortgages and discharges"," - historical mortgage documents reference the lot and concession, not a civic address",[244,16397,16398,16401],{},[19,16399,16400],{},"Genealogical land records"," - Crown land patents going back to the early 1800s are filed by lot, concession, and township. Anyone researching family land history in Ontario will work with this format",[244,16403,16404,16407],{},[19,16405,16406],{},"Rural MLS listings"," - acreage and farmland listings in Ontario frequently include the lot and concession alongside (or instead of) a street address",[244,16409,16410,16413],{},[19,16411,16412],{},"Municipal planning applications"," - severance, rezoning, and building permit applications in rural municipalities reference the lot and concession description from the original survey",[244,16415,16416,16419],{},[19,16417,16418],{},"Title examinations"," - title searchers and real estate lawyers trace ownership chains through records organized by lot and concession",[12,16421,16422,16423,60],{},"For real estate agents, title examiners, and municipal planners working outside Toronto and Ottawa, lot-and-concession descriptions are part of the daily workflow - the same way ",[45,16424,16425],{"href":7591},"DLS descriptions are routine on the prairies",[24,16427,16429],{"id":16428},"from-notation-to-coordinates","From Notation to Coordinates",[12,16431,16432],{},"Ontario's lot and concession system is older and less uniform than the western DLS grid, but the core challenge is the same: you have a legal land description on a document and you need to know where it is on a map. The notation is different - township names instead of meridian references, concessions instead of ranges - but the conversion to GPS coordinates is straightforward.",[12,16434,16435,16436,16438],{},"Try the ",[45,16437,7355],{"href":7354}," with any lot-and-concession description. Free lookup, no account required.",{"title":274,"searchDepth":275,"depth":275,"links":16440},[16441,16442,16443,16444,16445,16446],{"id":16288,"depth":275,"text":16289},{"id":16305,"depth":275,"text":16306},{"id":16342,"depth":275,"text":16343},{"id":16352,"depth":275,"text":16353},{"id":16377,"depth":275,"text":16378},{"id":16428,"depth":275,"text":16429},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002F155b7f52-e4c8-41ed-b65c-1e1a682246df.jpeg","2026-03-30","Ontario lot concession to GPS explained. Why Ontario uses lots and concessions instead of the Dominion Land Survey, and how to convert them to coordinates.",{},"\u002Fblog\u002Fontario-lot-concession-property-searches",{"title":16270,"description":16449},"blog\u002Fontario-lot-concession-property-searches",[7400,7661,4291,16455],"Property Search","2iWNygYXDzcVE9fPzHv3uUehlKxrud7hkMeuhrRaA9g",{"id":16458,"title":16459,"author":7,"body":16460,"category":283,"cover":16659,"date":16660,"description":16661,"extension":287,"meta":16662,"navigation":289,"path":188,"seo":16663,"stem":16664,"tags":16665,"__hash__":16667},"blog\u002Fblog\u002Fparcelmap-bc-parcel-boundaries-map.md","ParcelMap BC Integration: BC Parcel Boundaries Now Live on Township Canada",{"type":9,"value":16461,"toc":16648},[16462,16465,16468,16475,16479,16482,16489,16492,16506,16509,16513,16521,16524,16545,16548,16562,16565,16570,16574,16578,16584,16588,16594,16598,16601,16605,16608,16627,16630,16634,16642],[15983,16463,16459],{"id":16464},"parcelmap-bc-integration-bc-parcel-boundaries-now-live-on-township-canada",[12,16466,16467],{},"You're looking at an NTS grid reference on a title - A-1-A\u002F92-O-3 - and you need to confirm the exact parcel boundary underneath it. Until now, that meant opening Township Canada to locate the NTS sheet, then switching to the LTSA's ParcelMap BC viewer to see where the property lines actually fall. Two tools, two tabs, and a lot of cross-referencing between them.",[12,16469,16470,16471,16474],{},"That changes today. Township Canada now shows ",[19,16472,16473],{},"ParcelMap BC parcel boundaries"," as a live map layer, sourced directly from the BC government's open data. Toggle it on alongside the NTS grid, and you can see both the survey reference and the property boundary in the same view - no tab-switching required.",[24,16476,16478],{"id":16477},"what-parcelmap-bc-adds-to-the-map","What ParcelMap BC Adds to the Map",[12,16480,16481],{},"ParcelMap BC is the official provincial dataset of property parcel boundaries in British Columbia, maintained by the Land Title and Survey Authority (LTSA). It contains the boundary polygons for every titled parcel in the province - rural acreages, urban lots, Crown parcels, and everything in between.",[12,16483,16484,16485,16488],{},"On Township Canada's ",[45,16486,16487],{"href":9461},"interactive map",", the ParcelMap BC layer renders these boundary polygons directly on top of the existing NTS grid and satellite imagery. You can toggle it on or off from the map layers panel, just like any other overlay.",[12,16490,16491],{},"This means a single map view now answers two questions that BC professionals have always had to answer separately:",[1863,16493,16494,16500],{},[244,16495,16496,16499],{},[19,16497,16498],{},"Where does the NTS grid reference place me?"," - the NTS overlay handles this",[244,16501,16502,16505],{},[19,16503,16504],{},"Where are the actual property lines?"," - ParcelMap BC handles this",[12,16507,16508],{},"For anyone who works with BC land records - real estate transactions, survey plans, environmental assessments, resource tenure - having both layers visible simultaneously removes a step from the daily workflow.",[24,16510,16512],{"id":16511},"a-real-world-example-williams-lake-area","A Real-World Example: Williams Lake Area",[12,16514,16515,16516,16520],{},"Say you're a real estate agent in the BC Interior working with a rural listing near Williams Lake. The title references ",[45,16517,16519],{"href":16518},"\u002Flearn\u002Fsystems\u002Fnts","NTS"," quarter unit A-1-A\u002F92-O-3, and the listing description mentions a 65-hectare parcel with highway frontage.",[12,16522,16523],{},"Here's what the workflow used to look like:",[1863,16525,16526,16533,16536,16539,16542],{},[244,16527,16528,16529,16532],{},"Open Township Canada, enter ",[65,16530,16531],{},"A-1-A\u002F92-O-3",", confirm the NTS quarter unit location near Williams Lake",[244,16534,16535],{},"Open the LTSA ParcelMap BC viewer in a separate tab",[244,16537,16538],{},"Zoom to approximately the same area",[244,16540,16541],{},"Visually match the parcel boundaries to the NTS reference",[244,16543,16544],{},"Cross-reference the two views to confirm you're looking at the right property",[12,16546,16547],{},"Now, with the ParcelMap BC layer enabled on Township Canada:",[1863,16549,16550,16556,16559],{},[244,16551,141,16552,100,16554],{},[65,16553,16531],{},[45,16555,48],{"href":47},[244,16557,16558],{},"Toggle on the ParcelMap BC layer",[244,16560,16561],{},"See the NTS quarter unit boundary and the individual parcel polygons in one view",[12,16563,16564],{},"The parcel boundaries show up in context with the NTS grid, satellite imagery, and roads. You can visually confirm the property extent, check access points, and verify the parcel aligns with the description on the title - all without leaving the map.",[12,16566,16567],{},[128,16568],{"alt":16569,"src":131},"Township Canada interactive map with layers",[24,16571,16573],{"id":16572},"who-this-is-built-for","Who This Is Built For",[347,16575,16577],{"id":16576},"bc-real-estate-agents","BC Real Estate Agents",[12,16579,16580,16581,16583],{},"Rural and semi-rural listings in ",[45,16582,295],{"href":15672}," often reference NTS grid codes rather than civic addresses. Confirming property boundaries against the survey grid is a routine part of listing preparation and buyer due diligence. With ParcelMap BC on the same map, agents can verify boundaries faster and show clients exactly what they're looking at on a single screen.",[347,16585,16587],{"id":16586},"land-surveyors","Land Surveyors",[12,16589,16590,16591,16593],{},"Pre-survey planning in BC requires knowing both the NTS reference and the cadastral parcel layout. Surveyors preparing for boundary work, subdivision surveys, or right-of-way plans can now see the parcel boundaries overlaid on the NTS grid without loading a separate GIS dataset. For teams converting NTS references to GPS coordinates in bulk, the ",[45,16592,1543],{"href":3930}," still handles that - the ParcelMap BC layer adds the visual context for verifying results on the map.",[347,16595,16597],{"id":16596},"resource-sector-professionals","Resource Sector Professionals",[12,16599,16600],{},"Forestry, mining, and oil and gas operations in BC all reference NTS grid codes for tenure and permit applications. Environmental consultants conducting baseline studies or impact assessments need to understand parcel ownership patterns within their study area. The ParcelMap BC layer shows who owns what land beneath the NTS grid - useful for landowner notification, access planning, and tenure overlap checks.",[24,16602,16604],{"id":16603},"how-to-access-the-parcelmap-bc-layer","How to Access the ParcelMap BC Layer",[12,16606,16607],{},"The ParcelMap BC layer is available on all Township Canada plans:",[1863,16609,16610,16616,16619,16624],{},[244,16611,16612,16613],{},"Open the Township Canada map at ",[45,16614,5771],{"href":218,"rel":16615},[220],[244,16617,16618],{},"Click the layers panel",[244,16620,16621,16622],{},"Toggle on ",[19,16623,5350],{},[244,16625,16626],{},"The parcel boundary polygons appear over the existing map",[12,16628,16629],{},"The layer works alongside all existing overlays - NTS grid, DLS grid (for the Peace River region), satellite imagery, and street maps. You can combine layers however you need them.",[24,16631,16633],{"id":16632},"whats-next","What's Next",[12,16635,16636,16637,16641],{},"ParcelMap BC is the first provincial parcel boundary dataset on Township Canada. We chose BC because it's the only province where ",[45,16638,16640],{"href":16639},"\u002Flearn\u002Fhow-to\u002Fbc-nts-grid-explained","NTS is the primary land description system",", making the gap between grid references and property boundaries a daily friction point for professionals across the province.",[12,16643,16644,16645,16647],{},"If you work with BC land data - titles, tenure, survey plans, or environmental assessments - toggle on the ParcelMap BC layer and see your NTS references in the context of actual property boundaries. Try it with ",[65,16646,16531],{}," near Williams Lake, or with any NTS reference in your current project.",{"title":274,"searchDepth":275,"depth":275,"links":16649},[16650,16651,16652,16657,16658],{"id":16477,"depth":275,"text":16478},{"id":16511,"depth":275,"text":16512},{"id":16572,"depth":275,"text":16573,"children":16653},[16654,16655,16656],{"id":16576,"depth":498,"text":16577},{"id":16586,"depth":498,"text":16587},{"id":16596,"depth":498,"text":16597},{"id":16603,"depth":275,"text":16604},{"id":16632,"depth":275,"text":16633},"\u002Fimages\u002Fblog\u002Fparcelmap-bc-parcel-boundaries-map\u002Fcover.webp","2026-03-26","Township Canada now shows ParcelMap BC parcel boundaries alongside the NTS grid. BC real estate agents and surveyors can confirm property lines and grid references in one view.",{},{"title":16459,"description":16661},"blog\u002Fparcelmap-bc-parcel-boundaries-map",[16666,295,16519,5350],"Feature Update","e8O4jA5JQfrMzxRZNYtT7eREP8OrGVb0k7aSCbiIGSM",{"id":16669,"title":16670,"author":7,"body":16671,"category":503,"cover":17017,"date":17018,"description":17019,"extension":287,"meta":17020,"navigation":289,"path":17021,"seo":17022,"stem":17023,"tags":17024,"__hash__":17026},"blog\u002Fblog\u002Fbatch-conversion-well-closure-regulatory-filings.md","Batch Conversion for Well Closure Regulatory Filings",{"type":9,"value":16672,"toc":17001},[16673,16676,16679,16683,16687,16690,16701,16704,16708,16711,16725,16728,16732,16735,16746,16749,16753,16757,16760,16766,16769,16773,16778,16784,16803,16806,16810,16816,16819,16852,16855,16859,16862,16867,16886,16891,16913,16916,16920,16923,16926,16946,16949,16953,16959,16965,16971,16977,16979,16987,16994],[12,16674,16675],{},"Every AER closure filing references a well by its legal land description. Directive 013 abandonment applications, Directive 079 reclamation certificates, environmental site assessments - they all require the site's LSD, GPS coordinates, and often a location map in KML or Shapefile format. For a single well, that's a few minutes of work. For a closure company processing 30 or 40 wells in a quarter, the conversion and export step becomes a bottleneck.",[12,16677,16678],{},"Batch conversion eliminates that bottleneck. Upload a CSV of closure site LSDs, get GPS coordinates and export files for the entire list, and move straight to filing.",[24,16680,16682],{"id":16681},"what-aer-filings-require","What AER Filings Require",[347,16684,16686],{"id":16685},"directive-013-suspension-and-abandonment","Directive 013: Suspension and Abandonment",[12,16688,16689],{},"A Directive 013 application requires:",[241,16691,16692,16695,16698],{},[244,16693,16694],{},"The well location in DLS notation (LSD-Section-Township-Range-Meridian)",[244,16696,16697],{},"GPS coordinates in the application form",[244,16699,16700],{},"A location map showing the well site relative to surrounding survey grid",[12,16702,16703],{},"For a single abandonment, the location data takes minutes to prepare. For a batch of 35 wells from an acquired licence portfolio, it takes most of a day if done manually - looking up each LSD individually, copying coordinates, generating a map for each site.",[347,16705,16707],{"id":16706},"directive-079-surface-reclamation","Directive 079: Surface Reclamation",[12,16709,16710],{},"A Directive 079 reclamation certificate application requires:",[241,16712,16713,16716,16719,16722],{},[244,16714,16715],{},"Site location in DLS notation",[244,16717,16718],{},"GPS coordinates",[244,16720,16721],{},"A site plan showing the reclaimed area (typically as KML or Shapefile)",[244,16723,16724],{},"Supporting maps for the vegetation assessment and soil analysis",[12,16726,16727],{},"The GIS deliverables are where the export step matters most. The environmental consultant needs the site boundary in a format their mapping software can import. Converting an LSD to a KML file or Shapefile one at a time is slow. Batch-converting the full project inventory and exporting all formats at once is fast.",[347,16729,16731],{"id":16730},"environmental-site-assessments","Environmental Site Assessments",[12,16733,16734],{},"Phase I and Phase II ESAs reference the site by LSD and include:",[241,16736,16737,16740,16743],{},[244,16738,16739],{},"GPS coordinates for the site centroid",[244,16741,16742],{},"A site location figure (often exported as PDF or KML)",[244,16744,16745],{},"Sampling locations within the site boundary",[12,16747,16748],{},"For a consulting firm managing 45 remediation sites, preparing the location data for each ESA report is a significant administrative task. Batch conversion produces the coordinates and export files for all 45 sites in one step.",[24,16750,16752],{"id":16751},"the-batch-conversion-workflow","The Batch Conversion Workflow",[347,16754,16756],{"id":16755},"step-1-prepare-the-input","Step 1: Prepare the Input",[12,16758,16759],{},"Start with a CSV or spreadsheet of closure site locations. Each row should contain a legal land description in standard DLS notation:",[1736,16761,16764],{"className":16762,"code":16763,"language":1741},[1739],"10-33-037-04W5\n06-18-039-05W5\n14-07-040-04W5\nNE-22-041-06W5\n02-31-038-05W5\n",[65,16765,16763],{"__ignoreMap":274},[12,16767,16768],{},"Township Canada accepts multiple DLS formats - LSD-Section-Township-Range-Meridian, Quarter-Section-Township-Range-Meridian, and UWI formats with or without slashes. The parser handles variations in spacing and separators.",[347,16770,16772],{"id":16771},"step-2-upload-and-convert","Step 2: Upload and Convert",[12,16774,16775],{},[128,16776],{"alt":16777,"src":3937},"Batch convert closure site LSDs from a CSV upload and review GPS coordinates with validation flags",[12,16779,16780,16781,16783],{},"Go to the ",[45,16782,4551],{"href":4389}," and upload the CSV. Township Canada processes the full list and returns:",[241,16785,16786,16791,16797],{},[244,16787,16788,16790],{},[19,16789,16718],{}," (latitude and longitude) for every valid entry",[244,16792,16793,16796],{},[19,16794,16795],{},"Validation flags"," for entries that don't resolve - wrong meridians, out-of-range townships, missing data",[244,16798,16799,16802],{},[19,16800,16801],{},"A map view"," showing all converted sites",[12,16804,16805],{},"For a list of 200 closure sites, processing takes seconds. The validation step alone justifies the batch approach: entries with data quality issues are identified before they propagate into regulatory filings.",[347,16807,16809],{"id":16808},"step-3-export","Step 3: Export",[12,16811,16812],{},[128,16813],{"alt":16814,"src":16815},"Download closure site results in CSV, KML, Shapefile, GeoJSON, DXF, or PDF formats for AER submission packages","\u002Fimages\u002Fguides\u002Fdownload-results.webp",[12,16817,16818],{},"Download the results in the formats your filings need:",[241,16820,16821,16826,16831,16836,16841,16846],{},[244,16822,16823,16825],{},[19,16824,446],{},": Coordinates for application forms and internal tracking",[244,16827,16828,16830],{},[19,16829,458],{},": Site maps for Google Earth and AER submission packages",[244,16832,16833,16835],{},[19,16834,429],{},": GIS layers for environmental consultants and engineering teams",[244,16837,16838,16840],{},[19,16839,452],{},": Web mapping and data analysis",[244,16842,16843,16845],{},[19,16844,440],{},": CAD engineering drawings",[244,16847,16848,16851],{},[19,16849,16850],{},"PDF",": Printed site plans for field binders and regulatory submissions",[12,16853,16854],{},"One conversion, six formats. No re-entering coordinates for each document type.",[24,16856,16858],{"id":16857},"real-world-example-35-well-abandonment-campaign","Real-World Example: 35-Well Abandonment Campaign",[12,16860,16861],{},"A closure company in Red Deer acquires 35 wells from an inactive licensee. The regulatory coordinator needs to prepare Directive 013 applications for all 35.",[12,16863,16864],{},[19,16865,16866],{},"Without batch conversion:",[1863,16868,16869,16872,16875,16878,16881],{},[244,16870,16871],{},"Look up each LSD individually - 5 minutes per site = 3 hours",[244,16873,16874],{},"Copy coordinates into each application form - 2 minutes per site = 1 hour",[244,16876,16877],{},"Generate a KML file for each site map - 3 minutes per site = 1.5 hours",[244,16879,16880],{},"Create Shapefiles for the environmental consultant - 3 minutes per site = 1.5 hours",[244,16882,16883],{},[19,16884,16885],{},"Total: ~7 hours of location data preparation",[12,16887,16888],{},[19,16889,16890],{},"With batch conversion:",[1863,16892,16893,16896,16899,16902,16905,16908],{},[244,16894,16895],{},"Upload CSV of 35 LSDs - 30 seconds",[244,16897,16898],{},"Review validation results, fix any flagged entries - 5 minutes",[244,16900,16901],{},"Download CSV export - coordinates for all 35 application forms - 10 seconds",[244,16903,16904],{},"Download KML export - site maps for all 35 submissions - 10 seconds",[244,16906,16907],{},"Download Shapefile export - GIS layers for the consultant - 10 seconds",[244,16909,16910],{},[19,16911,16912],{},"Total: ~6 minutes",[12,16914,16915],{},"The time difference is not incremental. It's a full working day reclaimed for every batch filing cycle.",[24,16917,16919],{"id":16918},"validation-catches-filing-errors","Validation Catches Filing Errors",[12,16921,16922],{},"The most expensive errors in AER filings are location errors. A wrong meridian, a transposed township number, or a missing LSD digit creates a discrepancy between the application and the actual well site. The AER's review process catches these - but the correction cycle adds weeks to the filing timeline.",[12,16924,16925],{},"Batch conversion with validation catches these errors at the data entry stage:",[241,16927,16928,16934,16940],{},[244,16929,16930,16933],{},[19,16931,16932],{},"Wrong meridian",": The converter flags LSDs where the meridian-range combination doesn't exist in the DLS grid",[244,16935,16936,16939],{},[19,16937,16938],{},"Out-of-range values",": Township numbers above the valid range for a given meridian, or LSD numbers outside 1-16",[244,16941,16942,16945],{},[19,16943,16944],{},"Incomplete entries",": Missing meridian designations, truncated township numbers, ambiguous formatting",[12,16947,16948],{},"Fixing data quality issues before filing is faster and cheaper than correcting them after the AER returns the application.",[24,16950,16952],{"id":16951},"who-benefits-most","Who Benefits Most",[12,16954,16955,16958],{},[19,16956,16957],{},"Closure companies"," processing batches of 10 to 200 wells per quarter. The time savings on location data preparation compound with every filing cycle.",[12,16960,16961,16964],{},[19,16962,16963],{},"Environmental consultants"," managing multi-site remediation programs. Batch conversion produces the coordinates and GIS files needed for Phase I\u002FII reports and reclamation applications.",[12,16966,16967,16970],{},[19,16968,16969],{},"OWA contractors"," handling orphan well work packages. The validation step is particularly valuable for legacy well data where location accuracy is often poor.",[12,16972,16973,16976],{},[19,16974,16975],{},"Land administrators"," maintaining well databases and preparing acquisition due diligence packages. Batch conversion verifies that every LSD in an acquisition spreadsheet resolves to a valid location.",[24,16978,7184],{"id":7183},[12,16980,16981,16982,16986],{},"Individual site lookups are free - ",[45,16983,16985],{"href":16984},"\u002F?utm_source=website&utm_medium=blog&utm_campaign=well-closure","enter any LSD"," and get GPS coordinates instantly.",[12,16988,16989,16990,16993],{},"Batch conversion, multi-format export, and team access are available on the ",[45,16991,8198],{"href":16992},"\u002Fpricing?utm_source=website&utm_medium=blog&utm_campaign=well-closure"," at $40 per user per month. No per-conversion fees, no export limits.",[12,16995,16996,16997,17000],{},"Upload your next closure inventory to the ",[45,16998,4551],{"href":16999},"\u002Fapp\u002Fbatch?utm_source=website&utm_medium=blog&utm_campaign=well-closure"," and measure the time difference yourself.",{"title":274,"searchDepth":275,"depth":275,"links":17002},[17003,17008,17013,17014,17015,17016],{"id":16681,"depth":275,"text":16682,"children":17004},[17005,17006,17007],{"id":16685,"depth":498,"text":16686},{"id":16706,"depth":498,"text":16707},{"id":16730,"depth":498,"text":16731},{"id":16751,"depth":275,"text":16752,"children":17009},[17010,17011,17012],{"id":16755,"depth":498,"text":16756},{"id":16771,"depth":498,"text":16772},{"id":16808,"depth":498,"text":16809},{"id":16857,"depth":275,"text":16858},{"id":16918,"depth":275,"text":16919},{"id":16951,"depth":275,"text":16952},{"id":7183,"depth":275,"text":7184},"\u002Fimages\u002Fblog\u002Fdls-tools-alberta-well-closure\u002Fcover.webp","2026-03-23","How to prepare Directive 013 and Directive 079 submissions faster with batch DLS-to-GPS conversion. Export closure site coordinates as CSV, KML, and Shapefile in one step.",{},"\u002Fblog\u002Fbatch-conversion-well-closure-regulatory-filings",{"title":16670,"description":17019},"blog\u002Fbatch-conversion-well-closure-regulatory-filings",[510,17025,1461,4991],"Well Closure","gQpih8Chw4y6y0BAu-5-V07JNzkGVu6GxrTayrfYGEE",{"id":17028,"title":4941,"author":7,"body":17029,"category":4024,"cover":17554,"date":17018,"description":17555,"extension":287,"meta":17556,"navigation":289,"path":4940,"seo":17557,"stem":17558,"tags":17559,"__hash__":17560},"blog\u002Fblog\u002Fbuilding-with-canadian-land-data-api.md",{"type":9,"value":17030,"toc":17542},[17031,17037,17044,17047,17051,17056,17061,17064,17070,17088,17320,17323,17341,17345,17348,17351,17357,17363,17373,17377,17384,17391,17393,17396,17399,17403,17406,17408,17413,17416,17444,17455,17457,17460,17504,17507,17513,17517,17539],[12,17032,17033,17034,17036],{},"An O&G software company in Calgary was building a field dispatch tool. The tool needed to show GPS-pinned well locations on a map so crews could navigate to job sites. The problem: every well address in their database was a DLS legal land description - not GPS coordinates. Thousands of locations like ",[65,17035,5460],{},", and not a single latitude or longitude.",[12,17038,17039,17040,17043],{},"They needed a legal land description API in Canada that could convert those locations to GPS coordinates programmatically, in real time, without manual lookups. One API call to the ",[45,17041,17042],{"href":3965},"Township Canada Search endpoint"," solved it - send the legal description, get back JSON with lat\u002Flng and the parcel boundary polygon.",[12,17045,17046],{},"That's the core of what Township Canada's API does. And field dispatch is just one of the use cases.",[24,17048,17050],{"id":17049},"what-the-township-canada-search-api-does","What the Township Canada Search API Does",[12,17052,17053],{},[128,17054],{"alt":17055,"src":3896},"Township Canada search resolving a legal land description to a GPS pin and parcel boundary on the interactive map",[12,17057,368,17058,17060],{},[45,17059,5375],{"href":5374}," converts Canadian legal land descriptions to GPS coordinates. It handles DLS, LSD, NTS, FPS, Ontario lot\u002Fconcession, and every other major Canadian survey system in a single endpoint.",[12,17062,17063],{},"A basic request looks like this:",[1736,17065,17068],{"className":17066,"code":17067,"language":1741},[1739],"GET \u002Fsearch?q=LSD+14-27-048-05W5\n",[65,17069,17067],{"__ignoreMap":274},[12,17071,17072,17073,17075,17076,17078,17079,68,17081,68,17083,82,17085,17087],{},"The response is a GeoJSON ",[65,17074,5524],{}," containing a ",[65,17077,5592],{}," feature with the parcel boundary coordinates and metadata properties including ",[65,17080,5663],{},[65,17082,5683],{},[65,17084,5703],{},[65,17086,5723],{},". Everything a downstream application needs to display, store, or route to that location.",[1736,17089,17091],{"className":5491,"code":17090,"language":5493,"meta":274,"style":274},"{\n  \"type\": \"FeatureCollection\",\n  \"features\": [{\n    \"type\": \"Feature\",\n    \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [...] },\n    \"properties\": {\n      \"shape\": \"grid\",\n      \"search_term\": \"NW-25-24-1-W5\",\n      \"legal_location\": \"NW-25-24-1-W5\",\n      \"unit\": \"Quarter Section\",\n      \"survey_system\": \"DLS\",\n      \"province\": \"Alberta\"\n    }\n  }]\n}\n",[65,17092,17093,17097,17115,17127,17145,17189,17201,17220,17238,17256,17274,17292,17308,17312,17316],{"__ignoreMap":274},[2024,17094,17095],{"class":4882,"line":4883},[2024,17096,5501],{"class":5500},[2024,17098,17099,17101,17103,17105,17107,17109,17111,17113],{"class":4882,"line":275},[2024,17100,5507],{"class":5506},[2024,17102,5511],{"class":5510},[2024,17104,5514],{"class":5506},[2024,17106,2609],{"class":5500},[2024,17108,5520],{"class":5519},[2024,17110,5524],{"class":5523},[2024,17112,5514],{"class":5519},[2024,17114,5529],{"class":5500},[2024,17116,17117,17119,17121,17123,17125],{"class":4882,"line":498},[2024,17118,5507],{"class":5506},[2024,17120,5536],{"class":5510},[2024,17122,5514],{"class":5506},[2024,17124,2609],{"class":5500},[2024,17126,5543],{"class":5500},[2024,17128,17129,17131,17133,17135,17137,17139,17141,17143],{"class":4882,"line":4899},[2024,17130,5548],{"class":5506},[2024,17132,5511],{"class":5551},[2024,17134,5514],{"class":5506},[2024,17136,2609],{"class":5500},[2024,17138,5520],{"class":5519},[2024,17140,5560],{"class":5523},[2024,17142,5514],{"class":5519},[2024,17144,5529],{"class":5500},[2024,17146,17147,17149,17151,17153,17155,17157,17159,17161,17163,17165,17167,17169,17171,17173,17175,17177,17179,17181,17183,17185,17187],{"class":4882,"line":4905},[2024,17148,5548],{"class":5506},[2024,17150,5571],{"class":5551},[2024,17152,5514],{"class":5506},[2024,17154,2609],{"class":5500},[2024,17156,5578],{"class":5500},[2024,17158,5520],{"class":5506},[2024,17160,5511],{"class":5583},[2024,17162,5514],{"class":5506},[2024,17164,2609],{"class":5500},[2024,17166,5520],{"class":5519},[2024,17168,5592],{"class":5523},[2024,17170,5514],{"class":5519},[2024,17172,5597],{"class":5500},[2024,17174,5520],{"class":5506},[2024,17176,5602],{"class":5583},[2024,17178,5514],{"class":5506},[2024,17180,2609],{"class":5500},[2024,17182,5957],{"class":5500},[2024,17184,5613],{"class":5612},[2024,17186,5948],{"class":5500},[2024,17188,5619],{"class":5500},[2024,17190,17191,17193,17195,17197,17199],{"class":4882,"line":5622},[2024,17192,5548],{"class":5506},[2024,17194,5627],{"class":5551},[2024,17196,5514],{"class":5506},[2024,17198,2609],{"class":5500},[2024,17200,5634],{"class":5500},[2024,17202,17203,17205,17207,17209,17211,17213,17216,17218],{"class":4882,"line":5637},[2024,17204,5640],{"class":5506},[2024,17206,10988],{"class":5583},[2024,17208,5514],{"class":5506},[2024,17210,2609],{"class":5500},[2024,17212,5520],{"class":5519},[2024,17214,17215],{"class":5523},"grid",[2024,17217,5514],{"class":5519},[2024,17219,5529],{"class":5500},[2024,17221,17222,17224,17226,17228,17230,17232,17234,17236],{"class":4882,"line":5658},[2024,17223,5640],{"class":5506},[2024,17225,5643],{"class":5583},[2024,17227,5514],{"class":5506},[2024,17229,2609],{"class":5500},[2024,17231,5520],{"class":5519},[2024,17233,8816],{"class":5523},[2024,17235,5514],{"class":5519},[2024,17237,5529],{"class":5500},[2024,17239,17240,17242,17244,17246,17248,17250,17252,17254],{"class":4882,"line":5678},[2024,17241,5640],{"class":5506},[2024,17243,5663],{"class":5583},[2024,17245,5514],{"class":5506},[2024,17247,2609],{"class":5500},[2024,17249,5520],{"class":5519},[2024,17251,8816],{"class":5523},[2024,17253,5514],{"class":5519},[2024,17255,5529],{"class":5500},[2024,17257,17258,17260,17262,17264,17266,17268,17270,17272],{"class":4882,"line":5698},[2024,17259,5640],{"class":5506},[2024,17261,5683],{"class":5583},[2024,17263,5514],{"class":5506},[2024,17265,2609],{"class":5500},[2024,17267,5520],{"class":5519},[2024,17269,9711],{"class":5523},[2024,17271,5514],{"class":5519},[2024,17273,5529],{"class":5500},[2024,17275,17276,17278,17280,17282,17284,17286,17288,17290],{"class":4882,"line":5718},[2024,17277,5640],{"class":5506},[2024,17279,5703],{"class":5583},[2024,17281,5514],{"class":5506},[2024,17283,2609],{"class":5500},[2024,17285,5520],{"class":5519},[2024,17287,4032],{"class":5523},[2024,17289,5514],{"class":5519},[2024,17291,5529],{"class":5500},[2024,17293,17294,17296,17298,17300,17302,17304,17306],{"class":4882,"line":5737},[2024,17295,5640],{"class":5506},[2024,17297,5723],{"class":5583},[2024,17299,5514],{"class":5506},[2024,17301,2609],{"class":5500},[2024,17303,5520],{"class":5519},[2024,17305,2779],{"class":5523},[2024,17307,5734],{"class":5519},[2024,17309,17310],{"class":4882,"line":5743},[2024,17311,5740],{"class":5500},[2024,17313,17314],{"class":4882,"line":5749},[2024,17315,5746],{"class":5500},[2024,17317,17318],{"class":4882,"line":10053},[2024,17319,5752],{"class":5500},[12,17321,17322],{},"Beyond single lookups, the API includes two other key capabilities:",[241,17324,17325,17333],{},[244,17326,17327,17332],{},[19,17328,17329],{},[45,17330,17331],{"href":6415},"Autocomplete"," - returns suggestions as users type partial descriptions, so you can build typeahead search into your application",[244,17334,17335,17340],{},[19,17336,17337],{},[45,17338,17339],{"href":4394},"Batch processing"," - submit hundreds or thousands of descriptions in a single request and get coordinates back in bulk",[24,17342,17344],{"id":17343},"who-builds-with-it","Who Builds with It",[12,17346,17347],{},"The legal land description API in Canada serves four main industries. Each has a distinct workflow, but the underlying need is the same: turn a legal description into coordinates a computer can use.",[347,17349,300],{"id":17350},"oil-and-gas",[12,17352,17353,17354,17356],{},"O&G is the largest use case. Every well licence, pipeline crossing, and surface lease in Alberta and Saskatchewan is recorded as a legal land description. The AER's Unique Well Identifier (UWI) embeds the DLS location directly - ",[65,17355,6797],{}," maps to LSD 6, Section 32, Township 48, Range 7, West of the 5th Meridian.",[12,17358,17359,17360,60],{},"Field dispatch tools resolve UWI locations to GPS for crew navigation. Production databases convert well locations for map-based dashboards. Regulatory filing systems attach coordinates schedules generated from legal descriptions. Companies like SCADALink have charged $325\u002Fmonth minimum for this kind of lookup - Township Canada's ",[45,17361,17362],{"href":2964},"Search Build plan starts at $20\u002Fmonth",[12,17364,17365,17366,17368,17369,17372],{},"For a deeper look at how the energy industry works with legal descriptions, see ",[45,17367,6768],{"href":6609},". GIS teams using Esri tools can also connect the API directly to ArcGIS Pro - see ",[45,17370,17371],{"href":433},"ArcGIS Doesn't Support Canadian Legal Land Descriptions"," for the full integration guide.",[347,17374,17376],{"id":17375},"rural-property-and-proptech","Rural Property and Proptech",[12,17378,17379,17380,17383],{},"Rural property platforms need to show listings on a map. In western Canada, rural addresses are legal land descriptions - not street addresses. A listing for \"NW 14-032-21 W4M\" means nothing to a buyer scrolling a map. Convert it to ",[65,17381,17382],{},"51.2°N, 112.8°W"," with a boundary polygon, and now the listing has a pin and a visible quarter-section outline.",[12,17385,17386,17387,17390],{},"Proptech companies integrate the API to add map views to listing databases, calculate distances between properties, and generate printable location reports. The ",[45,17388,17389],{"href":6722},"Google Maps integration guide"," shows how to display boundaries on a familiar map interface.",[347,17392,541],{"id":15599},[12,17394,17395],{},"Crop insurance applications, grain delivery permits, and farmland lease agreements all reference quarter sections. Agricultural software needs to verify that the legal description on a policy matches the actual field location - and display it on a map for the adjuster or agent reviewing the claim.",[12,17397,17398],{},"The batch endpoint is especially useful here. A crop insurance provider processing 2,000 policy applications before a coverage deadline can convert every quarter section in one API call instead of looking them up individually.",[347,17400,17402],{"id":17401},"surveying-and-geomatics","Surveying and Geomatics",[12,17404,17405],{},"Survey management platforms build DLS-to-GPS round trips: convert a legal description to coordinates for field navigation, then convert field-collected GPS coordinates back to a legal description for the final survey report. The API handles both directions - forward lookup and reverse geocoding.",[24,17407,7184],{"id":7183},[12,17409,17410],{},[128,17411],{"alt":17412,"src":5761},"Generate API keys for dev, staging, and production from the Township Canada API portal",[12,17414,17415],{},"Setting up takes less than five minutes:",[1863,17417,17418,17425,17434],{},[244,17419,17420,15452,17423],{},[19,17421,17422],{},"Create an account",[45,17424,5771],{"href":4740},[244,17426,17427,17430,17431,17433],{},[19,17428,17429],{},"Generate an API key"," from your ",[45,17432,5776],{"href":5775}," - you can create separate keys for dev, staging, and production",[244,17435,17436,17439,17440,17443],{},[19,17437,17438],{},"Make your first request"," - a single ",[65,17441,17442],{},"GET"," call with your legal description as the query parameter",[12,17445,17446,17447,68,17449,68,17451,82,17453,60],{},"The API returns standard GeoJSON, which means it works with any mapping library. Township Canada provides integration guides for ",[45,17448,6723],{"href":6722},[45,17450,6731],{"href":6730},[45,17452,6727],{"href":6726},[45,17454,6735],{"href":6734},[24,17456,1356],{"id":1355},[12,17458,17459],{},"API plans are straightforward and usage-based:",[660,17461,17462,17472],{},[663,17463,17464],{},[666,17465,17466,17468,17470],{},[669,17467,6660],{},[669,17469,6663],{},[669,17471,6666],{},[681,17473,17474,17484,17494],{},[666,17475,17476,17479,17481],{},[686,17477,17478],{},"Search Build",[686,17480,6676],{},[686,17482,17483],{},"1,000 requests",[666,17485,17486,17489,17491],{},[686,17487,17488],{},"Search Scale",[686,17490,6687],{},[686,17492,17493],{},"10,000 requests",[666,17495,17496,17499,17501],{},[686,17497,17498],{},"Search Enterprise",[686,17500,6698],{},[686,17502,17503],{},"100,000 requests",[12,17505,17506],{},"For comparison, SCADALink's equivalent API access starts at $325\u002Fmonth - over 16x more expensive for basic legal land description lookups.",[12,17508,17509,17510,17512],{},"Autocomplete, Batch, and Maps APIs are available as separate subscriptions. Pricing current as of March 2026 - see the ",[45,17511,7084],{"href":2964}," for the latest rates.",[24,17514,17516],{"id":17515},"start-building","Start Building",[12,17518,17519,17520,17523,17524,17530,17531,17534,17535,17538],{},"If your application works with Canadian land data - well locations, rural properties, field boundaries, survey parcels - the Township Canada API handles the conversion layer so you don't have to build it yourself. For a step-by-step walkthrough from API key to first request, see ",[45,17521,17522],{"href":6758},"How to Integrate Canadian Legal Land Descriptions into Your Application",". If you're working in TypeScript or Node.js, the ",[45,17525,17527,17529],{"href":17526},"\u002Fblog\u002Ftownshipcanada-sdk-typescript-npm-package",[65,17528,6155],{}," npm package"," wraps all of these endpoints with typed methods - install one package instead of writing fetch calls from scratch. For data warehouse teams, see ",[45,17532,17533],{"href":8949},"how to enrich a Snowflake table with DLS GPS coordinates"," using the same API as a SQL External Function. Check the ",[45,17536,17537],{"href":3965},"API documentation"," to see the full endpoint reference, or generate a key and run your first query now.",[4964,17540,17541],{},"html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .s4Jsk, html code.shiki .s4Jsk{--shiki-light:#39ADB5;--shiki-default:#99841877;--shiki-dark:#B8A96577}html pre.shiki code .sLorS, html code.shiki .sLorS{--shiki-light:#9C3EDA;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .sa2tF, html code.shiki .sa2tF{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .skNjk, html code.shiki .skNjk{--shiki-light:#F76D47;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .srjyR, html code.shiki .srjyR{--shiki-light:#90A4AE;--shiki-light-font-style:inherit;--shiki-default:#B31D28;--shiki-default-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":274,"searchDepth":275,"depth":275,"links":17543},[17544,17545,17551,17552,17553],{"id":17049,"depth":275,"text":17050},{"id":17343,"depth":275,"text":17344,"children":17546},[17547,17548,17549,17550],{"id":17350,"depth":498,"text":300},{"id":17375,"depth":498,"text":17376},{"id":15599,"depth":498,"text":541},{"id":17401,"depth":498,"text":17402},{"id":7183,"depth":275,"text":7184},{"id":1355,"depth":275,"text":1356},{"id":17515,"depth":275,"text":17516},"\u002Fimages\u002Fblog\u002Fbuilding-with-canadian-land-data-api\u002Fcover.webp","The Township Canada API converts legal land descriptions to GPS coordinates in real time. See how developers in O&G, proptech, agriculture, and surveying build with it.",{},{"title":4941,"description":17555},"blog\u002Fbuilding-with-canadian-land-data-api",[6762,4990,300,541],"EY22-NdXYpoF6JRq5bgNzAM_Wk-ufG_3zDYibYKXxZE",{"id":17562,"title":17563,"author":7,"body":17564,"category":503,"cover":17017,"date":17018,"description":17761,"extension":287,"meta":17762,"navigation":289,"path":17763,"seo":17764,"stem":17765,"tags":17766,"__hash__":17767},"blog\u002Fblog\u002Forphan-well-cleanup-dls-tools.md","Orphan Well Cleanup: How DLS Tools Speed Up Site Location",{"type":9,"value":17565,"toc":17749},[17566,17569,17572,17576,17579,17582,17596,17599,17603,17606,17616,17619,17622,17626,17630,17635,17641,17644,17648,17651,17654,17658,17664,17670,17673,17677,17680,17683,17687,17690,17693,17696,17700,17703,17734,17739],[12,17567,17568],{},"Alberta's orphan well inventory keeps growing. The Orphan Well Association (OWA) manages the cleanup of wells where the original licensee no longer exists or can't pay for closure. The total liability exceeds $1 billion. Thousands of sites are in active assessment, abandonment, or reclamation - and every one of them is identified by an LSD in the AER's well database.",[12,17570,17571],{},"For the contractors, environmental consultants, and project managers working on orphan well cleanup, the workflow starts the same way every time: a list of LSDs that need to become GPS coordinates.",[24,17573,17575],{"id":17574},"the-scale-of-orphan-well-cleanup","The Scale of Orphan Well Cleanup",[12,17577,17578],{},"The OWA's mandate covers wells across Alberta - from the deep gas wells in the foothills to shallow oil wells in the east-central plains. The geographic spread is enormous: orphan sites can be found in any township in the province.",[12,17580,17581],{},"A typical OWA contractor might receive a work package of 20 to 50 wells in a region. The package arrives as a spreadsheet of well licences, each identified by a UWI that encodes the DLS address. Before any field work begins, the contractor needs to:",[241,17583,17584,17587,17590,17593],{},[244,17585,17586],{},"Convert every LSD to GPS coordinates for crew dispatch",[244,17588,17589],{},"Map the full set to identify geographic clusters and plan mobilization",[244,17591,17592],{},"Verify each LSD resolves to a valid parcel in the expected area",[244,17594,17595],{},"Plan efficient driving routes across multiple sites",[12,17597,17598],{},"That's the same workflow whether the package contains 10 wells or 100. The only variable is how long it takes.",[24,17600,17602],{"id":17601},"why-lsd-errors-are-expensive-in-orphan-well-work","Why LSD Errors Are Expensive in Orphan Well Work",[12,17604,17605],{},"Orphan well sites are, by definition, poorly maintained. Surface markers may be missing. Access roads may be overgrown. The well licence file might be decades old, with location data entered in legacy formats.",[12,17607,17608,17609,17612,17613,17615],{},"A wrong meridian is the most common and most expensive error. ",[19,17610,17611],{},"LSD 10-33-037-04W5"," is a parcel near Sundre, in a region with significant OWA activity. The same LSD at ",[19,17614,4098],{}," is near Hanna, 200 kilometres to the east. A field crew dispatched to the wrong meridian loses an entire day - plus the rig mobilization, fuel, and accommodation costs.",[12,17617,17618],{},"For an environmental consultant conducting Phase I assessments at orphan sites, a transposed township number means the desktop review is based on satellite imagery and land use records for the wrong location. The error may not surface until the field visit, at which point the assessment needs to be redone from scratch.",[12,17620,17621],{},"Validating every LSD in the work package before dispatching crews is a basic quality step that prevents these errors. Batch conversion with automatic validation catches the problems - wrong meridians, out-of-range townships, missing data - before anyone drives to a site.",[24,17623,17625],{"id":17624},"how-dls-tools-fit-the-owa-workflow","How DLS Tools Fit the OWA Workflow",[347,17627,17629],{"id":17628},"step-1-verify-the-work-package","Step 1: Verify the Work Package",[12,17631,17632],{},[128,17633],{"alt":17634,"src":3937},"Batch-convert an OWA work package and flag LSDs that fail to resolve before dispatching crews",[12,17636,17637,17638,17640],{},"The OWA contractor receives a spreadsheet of well licences. Upload the full list to Township Canada's ",[45,17639,4551],{"href":4389},". The converter returns GPS coordinates for every valid entry and flags any that don't resolve. Entries with data quality issues - missing meridians, impossible township-range combinations - are identified immediately.",[12,17642,17643],{},"This validation step takes seconds for 50 wells. Done manually, it takes hours - and still misses errors that a programmatic check would catch.",[347,17645,17647],{"id":17646},"step-2-map-and-cluster","Step 2: Map and Cluster",[12,17649,17650],{},"With coordinates for all sites, the contractor maps the full work package. Orphan wells in the same township or range can be grouped for a single mobilization. Sites that are geographic outliers can be scheduled separately or combined with another contractor's campaign in that area.",[12,17652,17653],{},"Export the coordinates as KML and load them into Google Earth or any GIS platform to visualize the project footprint. The geographic clustering that informs the mobilization plan is visible at a glance.",[347,17655,17657],{"id":17656},"step-3-route-the-field-crew","Step 3: Route the Field Crew",[12,17659,17660],{},[128,17661],{"alt":17662,"src":17663},"Route planner sequencing orphan well inspections across multiple townships into one efficient drive","\u002Fimages\u002Fguides\u002Froute-planner.webp",[12,17665,17666,17667,17669],{},"For a week of field inspections covering 12 orphan sites across Townships 42 to 45, Range 2-4 W5M, enter the LSDs into the ",[45,17668,1549],{"href":6902},". The tool calculates the most efficient driving sequence and provides turn-by-turn directions on range roads and township roads. Export the route to a mobile device for real-time navigation.",[12,17671,17672],{},"An optimized route across 12 sites in a 50-kilometre radius can save two to three hours of driving compared to visiting sites in spreadsheet order. Over a season of orphan well inspections, that time adds up.",[347,17674,17676],{"id":17675},"step-4-export-for-owa-reporting","Step 4: Export for OWA Reporting",[12,17678,17679],{},"OWA contractors report on completed work using location data in multiple formats. The abandonment report references the well by LSD. The environmental assessment includes GPS coordinates and GIS files. The reclamation certificate application needs site boundaries.",[12,17681,17682],{},"Convert the project sites once, export as CSV, KML, Shapefile, and PDF, and the reporting package has consistent location data across every document.",[24,17684,17686],{"id":17685},"batch-conversion-vs-one-at-a-time","Batch Conversion vs. One-at-a-Time",[12,17688,17689],{},"A single orphan well lookup is straightforward - enter the LSD, get coordinates. But orphan well work rarely involves a single site. The typical scope is 20 to 100 sites per project.",[12,17691,17692],{},"At five minutes per manual conversion (including verification), a 50-site project takes four hours of LSD lookup work. That's half a workday spent on data entry before any field planning begins.",[12,17694,17695],{},"Batch conversion reduces that to minutes. Upload the CSV, download the results, move on to field planning. The time savings are immediate and measurable from the first project.",[24,17697,17699],{"id":17698},"what-you-need-from-a-dls-tool-for-orphan-well-work","What You Need from a DLS Tool for Orphan Well Work",[12,17701,17702],{},"The requirements are specific to the workflow:",[241,17704,17705,17710,17716,17722,17728],{},[244,17706,17707,17709],{},[19,17708,17339],{},": 50 to 200 LSDs at a time, not one-by-one",[244,17711,17712,17715],{},[19,17713,17714],{},"Validation",": Flag entries that don't resolve - the data quality in orphan well files is often poor",[244,17717,17718,17721],{},[19,17719,17720],{},"Route planning",": Multi-site campaigns need optimized driving sequences",[244,17723,17724,17727],{},[19,17725,17726],{},"Multi-format export",": CSV for project management, KML for visualization, Shapefile for GIS",[244,17729,17730,17733],{},[19,17731,17732],{},"Team access",": Multiple crew coordinators on the same account",[12,17735,3816,17736,17738],{},[45,17737,8198],{"href":2964}," covers all of these at $40 per user per month. For contractors managing OWA work packages, the batch converter and route planner pay for themselves on the first project.",[12,17740,17741,17742,17745,17746,17748],{},"Start with a ",[45,17743,17744],{"href":16984},"free conversion"," to see how it works, then move to the ",[45,17747,8198],{"href":16992}," when you're ready to process a full work package.",{"title":274,"searchDepth":275,"depth":275,"links":17750},[17751,17752,17753,17759,17760],{"id":17574,"depth":275,"text":17575},{"id":17601,"depth":275,"text":17602},{"id":17624,"depth":275,"text":17625,"children":17754},[17755,17756,17757,17758],{"id":17628,"depth":498,"text":17629},{"id":17646,"depth":498,"text":17647},{"id":17656,"depth":498,"text":17657},{"id":17675,"depth":498,"text":17676},{"id":17685,"depth":275,"text":17686},{"id":17698,"depth":275,"text":17699},"Alberta's Orphan Well Association manages thousands of well sites for cleanup. Every one is identified by an LSD. Here's how DLS conversion tools fit into the orphan well workflow.",{},"\u002Fblog\u002Forphan-well-cleanup-dls-tools",{"title":17563,"description":17761},"blog\u002Forphan-well-cleanup-dls-tools",[510,17025,1966,1461],"C3PYglbWVI9ZGMFpKHF6fKxzFJzIBGKnftj8bdiXi6I",{"id":17769,"title":17770,"author":7,"body":17771,"category":1168,"cover":17944,"date":17945,"description":17946,"extension":287,"meta":17947,"navigation":289,"path":17948,"seo":17949,"stem":17950,"tags":17951,"__hash__":17952},"blog\u002Fblog\u002Funlimited-api-keys.md","Unlimited API Keys - Separate Dev, Staging, and Production",{"type":9,"value":17772,"toc":17936},[17773,17776,17779,17783,17786,17806,17809,17813,17820,17826,17829,17833,17836,17842,17848,17858,17864,17868,17873,17899,17905,17909,17917,17919],[12,17774,17775],{},"You're building an internal tool that converts legal land descriptions using Township Canada's API. You've been developing locally with the same API key that runs in production. It works - until your staging environment runs a batch test that burns through your monthly quota, or until a developer accidentally commits the key to a public repository and you have to regenerate it. Regenerating breaks production immediately because both environments use the same key.",[12,17777,17778],{},"This is the kind of problem a single API key creates. The new Township Canada gives you unlimited keys.",[24,17780,17782],{"id":17781},"one-key-per-environment","One Key Per Environment",[12,17784,17785],{},"With unlimited API keys, you create a separate key for each environment in your stack:",[241,17787,17788,17794,17800],{},[244,17789,17790,17793],{},[19,17791,17792],{},"Development"," - A key for local development that you can reset freely without affecting anything else",[244,17795,17796,17799],{},[19,17797,17798],{},"Staging"," - A key for your test environment, where integration tests can run batch conversions without touching production quotas",[244,17801,17802,17805],{},[19,17803,17804],{},"Production"," - Your live key, protected and monitored, used only by your deployed application",[12,17807,17808],{},"If a key is compromised, you revoke that one key. Your other environments keep running.",[24,17810,17812],{"id":17811},"how-it-works","How It Works",[12,17814,17815,17816,17819],{},"Open your ",[45,17817,5776],{"href":17818},"\u002Fguides\u002Faccount-management"," and go to the API keys section. Create a new key, give it a name like \"Production - Well Mapper App\" or \"Dev - Local Testing\", and copy the key into your environment variables. Each key shows its creation date and last-used timestamp, so you can see at a glance which keys are active and which haven't been used in months.",[12,17821,17822],{},[128,17823],{"alt":17824,"src":17825},"API key management interface","\u002Fimages\u002Fblog\u002Funlimited-api-keys\u002Fkey-management.webp",[12,17827,17828],{},"Keys are created instantly. There's no approval process, no waiting period, and no limit on how many you can create. Need a key for a quick prototype? Create one, test your idea, delete the key when you're done.",[24,17830,17832],{"id":17831},"key-management-best-practices","Key Management Best Practices",[12,17834,17835],{},"A few patterns that work well for teams building on the Township Canada API:",[12,17837,17838,17841],{},[19,17839,17840],{},"Name keys descriptively."," \"Key 1\" and \"Key 2\" tell you nothing six months from now. \"Production - Pipeline Tracker v2\" and \"Staging - Pipeline Tracker v2\" make it obvious which key is which.",[12,17843,17844,17847],{},[19,17845,17846],{},"Rotate keys periodically."," Create a new production key, update your deployment, confirm it works, then revoke the old key. This limits the window of exposure if a key was ever leaked.",[12,17849,17850,17853,17854,17857],{},[19,17851,17852],{},"Use environment variables."," Never hardcode API keys in source code. Store them in ",[65,17855,17856],{},".env"," files (excluded from version control), CI\u002FCD secrets, or your cloud provider's secret manager.",[12,17859,17860,17863],{},[19,17861,17862],{},"Delete unused keys."," If a project is decommissioned or a developer leaves the team, revoke their keys. Fewer active keys means a smaller surface area to monitor.",[24,17865,17867],{"id":17866},"what-you-can-build","What You Can Build",[12,17869,368,17870,17872],{},[45,17871,6927],{"href":3965}," includes four main endpoints:",[241,17874,17875,17883,17888,17893],{},[244,17876,17877,17879,17880,17882],{},[19,17878,5375],{}," - Convert a single ",[45,17881,13966],{"href":12163}," to GPS coordinates, or reverse-geocode coordinates to a legal land description",[244,17884,17885,17887],{},[19,17886,6416],{}," - Get real-time suggestions as users type legal land descriptions or place names",[244,17889,17890,17892],{},[19,17891,4395],{}," - Submit hundreds or thousands of legal land descriptions and get coordinates back in bulk",[244,17894,17895,17898],{},[19,17896,17897],{},"Maps API"," - Access vector tile layers for Canadian survey grids (township, section, quarter section, LSD) to display on Mapbox, MapLibre, OpenLayers, or other mapping libraries",[12,17900,17901,17902,60],{},"Each key works across all endpoints. There's no per-endpoint key restriction. For a walkthrough of what each endpoint does and who uses it, see ",[45,17903,17904],{"href":4940},"Building with Canadian Land Data",[24,17906,17908],{"id":17907},"for-teams","For Teams",[12,17910,17911,17912,17916],{},"On Business plans with ",[45,17913,17915],{"href":17914},"\u002Fguides\u002Fteams","team management",", API keys are visible to team administrators. A team lead can see all keys created by team members, monitor usage, and revoke keys if needed. This gives organizations control over how their API access is managed without requiring every developer to share credentials.",[24,17918,7184],{"id":7183},[12,17920,17921,17922,17924,17925,17927,17928,17932,17933,60],{},"API keys are available on all paid plans. Create your first key in your ",[45,17923,5776],{"href":17818},", and follow the ",[45,17926,6718],{"href":6717}," to make your first call. If you're building in TypeScript, the ",[45,17929,17930,17529],{"href":17526},[65,17931,6155],{}," takes your API key in the constructor and handles the rest. Full API reference and code examples are on the ",[45,17934,17935],{"href":3965},"API documentation page",{"title":274,"searchDepth":275,"depth":275,"links":17937},[17938,17939,17940,17941,17942,17943],{"id":17781,"depth":275,"text":17782},{"id":17811,"depth":275,"text":17812},{"id":17831,"depth":275,"text":17832},{"id":17866,"depth":275,"text":17867},{"id":17907,"depth":275,"text":17908},{"id":7183,"depth":275,"text":7184},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002Fd59d74f9-102b-4c0c-bc0d-30583f2e4898.webp","2026-03-20","Create multiple API keys for different environments and applications. Name them, monitor usage, and revoke them individually.",{},"\u002Fblog\u002Funlimited-api-keys",{"title":17770,"description":17946},"blog\u002Funlimited-api-keys",[1177,4990,6762],"Oe_RZvNHamkMTaJJ1OASUi7lD0d_9rZEi403Pwmlh0o",{"id":17954,"title":17955,"author":7,"body":17956,"category":4024,"cover":18251,"date":18252,"description":18253,"extension":287,"meta":18254,"navigation":289,"path":4828,"seo":18255,"stem":18256,"tags":18257,"__hash__":18263},"blog\u002Fblog\u002Fbc-nts-grid-references-convert-gps-field-work.md","BC NTS Grid References: How to Read Them and Convert to GPS for Field Work",{"type":9,"value":17957,"toc":18240},[17958,17961,17968,17971,17974,17978,17984,17987,17990,17994,17997,18001,18007,18017,18026,18030,18033,18053,18059,18065,18069,18075,18086,18092,18096,18106,18116,18122,18126,18137,18143,18156,18162,18166,18180,18186,18200,18209,18213,18216,18224,18234],[15983,17959,17955],{"id":17960},"bc-nts-grid-references-how-to-read-them-and-convert-to-gps-for-field-work",[12,17962,17963,17964,17967],{},"You're heading into the field north of Prince George with a stack of mineral claim documents, and every location is written as something like ",[65,17965,17966],{},"094G\u002F04",". No latitude, no longitude - just an alphanumeric code that references a paper map series from the 1950s. If you can't convert that BC NTS grid reference to GPS coordinates your crew can actually use, you're navigating blind.",[12,17969,17970],{},"British Columbia's resource industries - mining, forestry, oil and gas - rely on the National Topographic System (NTS) to describe locations across the province's rugged terrain. Unlike the Dominion Land Survey grid that covers Alberta and Saskatchewan's prairies, the NTS was built for mountainous country where rectangular sections don't fit. If you work with BC land records, mineral claims, or forestry tenure, reading NTS references is a daily task.",[12,17972,17973],{},"Here's how the system works, what each part of an NTS reference means, and how to get GPS coordinates from any NTS code in seconds.",[24,17975,17977],{"id":17976},"why-bc-uses-nts-instead-of-dls","Why BC Uses NTS Instead of DLS",[12,17979,17980,17981,17983],{},"The prairies were surveyed in the 1870s–1880s under the ",[45,17982,7381],{"href":3702},", which divides land into a neat grid of townships, sections, and quarter sections. That system assumes flat terrain where surveyors can run straight lines across the landscape.",[12,17985,17986],{},"British Columbia's Coast Mountains, Rocky Mountains, and deeply carved river valleys made that approach impractical. Instead, the federal government mapped BC using the National Topographic System - a hierarchy of map sheets originally produced for the 1:50,000 and 1:250,000 national mapping program. Over time, NTS map sheet references became the standard way to describe locations for mining claims, forestry cutblocks, and Crown land applications across most of the province.",[12,17988,17989],{},"The one exception: BC's Peace River region in the northeast (around Fort St. John and Dawson Creek) was flat enough to survey under DLS, so it uses the same township-range-meridian system as Alberta.",[24,17991,17993],{"id":17992},"how-to-read-a-bc-nts-grid-reference","How to Read a BC NTS Grid Reference",[12,17995,17996],{},"An NTS reference is a nested address. Each level subdivides the level above it, zooming in from a continent-scale map area down to a parcel small enough for field work.",[347,17998,18000],{"id":17999},"the-three-main-scale-levels","The Three Main Scale Levels",[12,18002,18003,18006],{},[19,18004,18005],{},"1. Map Series (1:1,000,000)"," - The broadest level. A two- or three-digit number identifying a large block of the country. BC falls mainly within series 082 through 104. Series 094, for example, covers a wide area of northeastern BC including the Liard Basin and parts of the Rocky Mountain Foothills.",[12,18008,18009,18012,18013,18016],{},[19,18010,18011],{},"2. Map Area (1:250,000)"," - Each series divides into 16 lettered areas (A through P, skipping I and O). Adding the letter narrows the location significantly. ",[65,18014,18015],{},"094G"," identifies a specific 1:250,000 map area within series 094 - north of Prince George, in the McGregor Plateau region.",[12,18018,18019,18022,18023,18025],{},[19,18020,18021],{},"3. Map Sheet (1:50,000)"," - Each area divides into 16 numbered sheets (01 through 16). These correspond to the standard 1:50,000 topographic maps published by Natural Resources Canada. ",[65,18024,17966],{}," pinpoints a single map sheet - roughly 30 km across - within area 094G.",[347,18027,18029],{"id":18028},"below-the-sheet-blocks-units-and-quarter-units","Below the Sheet: Blocks, Units, and Quarter Units",[12,18031,18032],{},"For finer precision, NTS goes deeper:",[241,18034,18035,18041,18047],{},[244,18036,18037,18040],{},[19,18038,18039],{},"Block"," (A through L) - Each sheet divides into 12 blocks",[244,18042,18043,18046],{},[19,18044,18045],{},"Unit"," (1 through 100) - Each block contains a 10×10 grid of units",[244,18048,18049,18052],{},[19,18050,18051],{},"Quarter Unit"," (A, B, C, D) - Each unit splits into four quarters (SW, SE, NE, NW)",[12,18054,18055,18056,18058],{},"A full NTS reference might look like ",[65,18057,5370],{}," - Quarter Unit A, Unit 2, Block F, within map sheet 93-P-8. That's specific enough to locate a drill site or a cutblock boundary.",[12,18060,18061,18062,60],{},"For a detailed breakdown of every NTS level, see the ",[45,18063,18064],{"href":16639},"BC NTS grid explained guide",[24,18066,18068],{"id":18067},"converting-a-bc-nts-grid-reference-to-gps-coordinates","Converting a BC NTS Grid Reference to GPS Coordinates",[12,18070,18071,18072,18074],{},"Let's walk through a real conversion using ",[65,18073,17966],{}," - a map sheet reference north of Prince George in central BC.",[12,18076,18077,18082,18083,18085],{},[19,18078,18079,18080],{},"Step 1: Open the ",[45,18081,48],{"href":47}," and type ",[65,18084,17966],{}," into the search bar.",[12,18087,18088,18091],{},[19,18089,18090],{},"Step 2: Review the result."," The converter returns the centre-point GPS coordinates for that map sheet and shows the sheet boundary on the map. You'll see the sheet placed in context within the broader 094G area.",[12,18093,18094],{},[128,18095],{"alt":16371,"src":3896},[12,18097,18098,18101,18102,18105],{},[19,18099,18100],{},"Step 3: Export or navigate."," Copy the coordinates directly for your GPS device, or export to KML for use in GIS software. If you need turn-by-turn directions to the sheet centre from your current location, the ",[45,18103,18104],{"href":8108},"directions feature"," handles that too.",[12,18107,18108,18111,18112,18115],{},[19,18109,18110],{},"Step 4: For higher precision,"," add the block, unit, and quarter unit. Enter ",[65,18113,18114],{},"A-2-F\u002F094-G-04"," to drill down to a specific quarter unit within that sheet. The map zooms in and the coordinates narrow to a much smaller area - useful for locating a specific mineral claim cell or a cutblock.",[12,18117,18118,18119,18121],{},"For batch work - converting dozens of NTS references from a tenure database or field report - upload a CSV through the ",[45,18120,1543],{"href":3930}," and get GPS coordinates for every row at once.",[24,18123,18125],{"id":18124},"where-bc-nts-references-show-up-in-practice","Where BC NTS References Show Up in Practice",[12,18127,18128,18131,18132,18136],{},[19,18129,18130],{},"Mining claims on BC Mineral Titles Online."," When you stake a mineral claim in BC, the system requires NTS map sheet references. A prospector targeting copper-gold in the Golden Triangle files claims referencing sheets within the 104 series. Converting those references to GPS is how the field crew actually finds the ground. See the ",[45,18133,18135],{"href":18134},"\u002Flearn\u002Findustries\u002Fmining","mining industry guide"," for more on how NTS fits into the full claim lifecycle.",[12,18138,18139,18142],{},[19,18140,18141],{},"Forestry tenure and cutblock planning."," BC's forest tenure system - timber supply areas, tree farm licences, community forest agreements - uses NTS references to define management boundaries. A logging planner working in the Prince George Timber Supply Area needs to convert NTS block references to GPS coordinates for road layout and harvest planning.",[12,18144,18145,18148,18149,18152,18153,60],{},[19,18146,18147],{},"Northeast BC oil and gas."," The Montney and Liard formations straddle both NTS and DLS territory. A landman working the BC side of the Montney outside the Peace River DLS block encounters NTS references for well licences issued by the BC Energy Regulator. For a full picture of how ",[45,18150,18151],{"href":16518},"BC's NTS system"," intersects with the province's resource tenure, see the ",[45,18154,18155],{"href":15672},"British Columbia legal land description guide",[12,18157,18158,18161],{},[19,18159,18160],{},"Pipeline corridor surveys."," Linear infrastructure projects - pipelines, transmission lines, highways - crossing NTS territory need GPS coordinates for every crossing point, valve station, and environmental monitoring location along the route.",[24,18163,18165],{"id":18164},"common-mistakes-reading-bc-nts-references","Common Mistakes Reading BC NTS References",[12,18167,18168,2291,18171,18173,18174,18176,18177,18179],{},[19,18169,18170],{},"Confusing the 1:250,000 area with the 1:50,000 sheet.",[65,18172,18015],{}," is a map area covering thousands of square kilometres. ",[65,18175,17966],{}," is a specific sheet within it. Citing just ",[65,18178,18015],{}," when you mean a specific sheet leaves your location vague by a factor of 16.",[12,18181,18182,18185],{},[19,18183,18184],{},"Misreading the alphanumeric sheet identifier."," The letters within an NTS area run in a serpentine pattern, not straight alphabetical order. Sheet A is at the southeast, and the pattern reverses direction on each row heading north. Assuming alphabetical left-to-right order will land you in the wrong part of the area.",[12,18187,18188,18191,18192,18195,18196,18199],{},[19,18189,18190],{},"Mixing up NTS and DLS in northeast BC."," The Peace River region uses both systems. If your reference includes a township, range, and meridian (like ",[65,18193,18194],{},"Twp 84 Rge 14 W6M","), that's DLS - use a ",[45,18197,18198],{"href":15573},"DLS converter"," instead. If it has a series number and letter code, it's NTS.",[12,18201,18202,18205,18206,18208],{},[19,18203,18204],{},"Dropping precision levels."," A sheet-level reference (",[65,18207,17966],{},") covers roughly 900 square kilometres. For field navigation, you typically need the block and unit as well. Always check whether the source document includes sub-sheet precision before heading into the field with only a sheet-level coordinate.",[24,18210,18212],{"id":18211},"from-grid-reference-to-gps-in-seconds","From Grid Reference to GPS in Seconds",[12,18214,18215],{},"BC's NTS system is well designed for what it was built to do: organize a massive, mountainous province into a consistent reference grid. The challenge is that GPS devices, mobile apps, and GIS software all speak in latitude and longitude - not map sheet codes.",[12,18217,3816,18218,18220,18221,18223],{},[45,18219,48],{"href":47}," bridges that gap. Enter any NTS reference - from a broad map area down to a specific quarter unit - and get the GPS coordinates, a boundary polygon on the map, and export options for your field tools. For teams processing large NTS datasets, the ",[45,18222,4551],{"href":3930}," handles CSV uploads with thousands of references in a single pass.",[12,18225,18226,18227,18229,18230,18233],{},"Try it with ",[65,18228,17966],{}," - paste the reference into the ",[45,18231,18232],{"href":47},"converter"," and see where it lands on the map.",[12,18235,18236,18237,18239],{},"If you also need to see property boundaries alongside your NTS references, Township Canada now shows ",[45,18238,16473],{"href":188}," as a toggleable map layer - NTS grid and property lines in one view.",{"title":274,"searchDepth":275,"depth":275,"links":18241},[18242,18243,18247,18248,18249,18250],{"id":17976,"depth":275,"text":17977},{"id":17992,"depth":275,"text":17993,"children":18244},[18245,18246],{"id":17999,"depth":498,"text":18000},{"id":18028,"depth":498,"text":18029},{"id":18067,"depth":275,"text":18068},{"id":18124,"depth":275,"text":18125},{"id":18164,"depth":275,"text":18165},{"id":18211,"depth":275,"text":18212},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002Ff120de64-cc1c-44fd-92f7-161b4ad71e3d.webp","2026-03-18","Learn how to read BC NTS grid references and convert them to GPS coordinates. A practical guide for surveyors, mining crews, and forestry teams in British Columbia.",{},{"title":17955,"description":18253},"blog\u002Fbc-nts-grid-references-convert-gps-field-work",[18258,18259,18260,18261,18262],"nts","british columbia","gps conversion","mining","forestry","rk6e_HDaSx8ibnpGD5S5cO4RjAWWWbwrHlDKNpNie-Y",{"id":18265,"title":18266,"author":7,"body":18267,"category":1168,"cover":18450,"date":18451,"description":18452,"extension":287,"meta":18453,"navigation":289,"path":18454,"seo":18455,"stem":18456,"tags":18457,"__hash__":18459},"blog\u002Fblog\u002Fprojects-and-saved-places.md","Organize Your Locations with Projects and Saved Places",{"type":9,"value":18268,"toc":18441},[18269,18272,18278,18282,18292,18298,18301,18305,18308,18311,18314,18334,18340,18343,18347,18369,18372,18376,18381,18384,18388,18395,18399,18430,18432],[12,18270,18271],{},"You've spent the morning converting 30 well locations for a pipeline route assessment. You've got the coordinates, you've seen them on the map. But tomorrow you need those same 30 locations again - plus 10 more that the client added overnight. Without a way to save your work, you're starting from scratch.",[12,18273,18274,18275,60],{},"The previous version of Township Canada had no save feature. Every search was a one-time lookup. The new platform changes that with ",[45,18276,18277],{"href":9692},"saved places and projects",[24,18279,18281],{"id":18280},"quick-saves","Quick Saves",[12,18283,18284,18285,18288,18289,18291],{},"Any search result on Township Canada can be saved with one click. Search for ",[65,18286,18287],{},"NE 14-032-21 W2M",", and a save button appears next to the result. Click it, and that location is added to your saved places - coordinates, ",[45,18290,13966],{"href":12163},", and map position included.",[12,18293,18294],{},[128,18295],{"alt":18296,"src":18297},"Saving a location with one click","\u002Fimages\u002Fblog\u002Fprojects-and-saved-places\u002Fquick-save.webp",[12,18299,18300],{},"Your saved places list lives in your account. Come back tomorrow, next week, or next month, and every saved location is still there. Click any saved place to jump to it on the map.",[24,18302,18304],{"id":18303},"projects","Projects",[12,18306,18307],{},"Saved places work well for bookmarking individual locations. But when you're working on something bigger - a pipeline route survey, a portfolio of lease locations, a crop insurance coverage area - you need a way to group related locations together.",[12,18309,18310],{},"Projects do that. Create a project, give it a name and an optional description, and start adding locations to it. A project can hold as many locations as you need. Each location keeps its legal land description, coordinates, and any notes you add.",[12,18312,18313],{},"You might have:",[241,18315,18316,18322,18328],{},[244,18317,12835,18318,18321],{},[19,18319,18320],{},"Pipeline Route Assessment"," project with 80 crossing points and facility locations from Red Deer to Drayton Valley",[244,18323,12835,18324,18327],{},[19,18325,18326],{},"Q3 Insurance Claims"," project with 45 quarter sections across southern Saskatchewan that need field verification",[244,18329,12835,18330,18333],{},[19,18331,18332],{},"Land Acquisition - Sturgeon County"," project with 12 parcels your client is evaluating north of Edmonton",[12,18335,18336],{},[128,18337],{"alt":18338,"src":18339},"Project with categorized locations","\u002Fimages\u002Fblog\u002Fprojects-and-saved-places\u002Fproject-view.webp",[12,18341,18342],{},"Each project keeps its locations separate. Work on one project without seeing the others.",[24,18344,18346],{"id":18345},"categories","Categories",[12,18348,18349,18350,68,18353,82,18356,18359,18360,68,18363,82,18366,60],{},"Within a project, categories let you group locations further. A pipeline project might have categories for ",[19,18351,18352],{},"Crossing Points",[19,18354,18355],{},"Facility Sites",[19,18357,18358],{},"Access Roads",". A land acquisition project might sort parcels by ",[19,18361,18362],{},"Priority",[19,18364,18365],{},"Under Negotiation",[19,18367,18368],{},"Closed",[12,18370,18371],{},"Categories are flexible - you define the names that match your workflow. Each location in a project belongs to one category, making it easy to filter and focus on a subset of locations.",[24,18373,18375],{"id":18374},"team-sharing","Team Sharing",[12,18377,17911,18378,18380],{},[45,18379,17915],{"href":17914},", projects can be shared with team members. A project owner can invite editors (who can add, edit, and remove locations) and viewers (who can see locations and export data but not change anything).",[12,18382,18383],{},"This means a project manager can set up a project with the initial locations, share it with field crew, and everyone works from the same list. When a field technician adds a note to a location after visiting it, the project manager sees that note immediately.",[24,18385,18387],{"id":18386},"export-your-projects","Export Your Projects",[12,18389,18390,18391,18394],{},"Everything in a project can be ",[45,18392,18393],{"href":4424},"exported",". Download all locations as CSV for spreadsheet analysis, KML for Google Earth, Shapefile for GIS, or any of the other supported formats. Exports include the legal land description, GPS coordinates, category, and notes for each location.",[24,18396,18398],{"id":18397},"who-uses-projects","Who Uses Projects",[241,18400,18401,18407,18413,18419,18425],{},[244,18402,18403,18406],{},[19,18404,18405],{},"Pipeline and energy companies"," tracking well sites, pipeline crossings, and facility locations for regulatory submissions",[244,18408,18409,18412],{},[19,18410,18411],{},"Land agents and brokers"," managing rural property portfolios for clients across multiple transactions",[244,18414,18415,18418],{},[19,18416,18417],{},"Crop insurance adjusters"," organizing insured parcels by policy or coverage period",[244,18420,18421,18424],{},[19,18422,18423],{},"Municipal planners"," grouping land parcels for development projects or infrastructure planning",[244,18426,18427,18429],{},[19,18428,16963],{}," tracking assessment sites across multiple projects and clients",[24,18431,7184],{"id":7183},[12,18433,18434,18435,18438,18439,5311],{},"Saved places are available to all registered users. Projects with categories and team sharing are available on paid plans. See the ",[45,18436,18437],{"href":9692},"projects guide"," for a full walkthrough, or check ",[45,18440,1355],{"href":2964},{"title":274,"searchDepth":275,"depth":275,"links":18442},[18443,18444,18445,18446,18447,18448,18449],{"id":18280,"depth":275,"text":18281},{"id":18303,"depth":275,"text":18304},{"id":18345,"depth":275,"text":18346},{"id":18374,"depth":275,"text":18375},{"id":18386,"depth":275,"text":18387},{"id":18397,"depth":275,"text":18398},{"id":7183,"depth":275,"text":7184},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002F5018d61d-4347-4e9d-97cd-7f42af61ed01.webp","2026-03-17","Save any location with one click. Group saved locations into projects with categories and notes. Share projects with your team.",{},"\u002Fblog\u002Fprojects-and-saved-places",{"title":18266,"description":18452},"blog\u002Fprojects-and-saved-places",[1177,18304,18458],"Saved Places","U3-Q8tQx3Lma3SRWusjYXVx59AshEmF2iz2LRRtGhcQ",{"id":18461,"title":18462,"author":7,"body":18463,"category":283,"cover":19379,"date":19380,"description":19381,"extension":287,"meta":19382,"navigation":289,"path":17526,"seo":19383,"stem":19384,"tags":19385,"__hash__":19388},"blog\u002Fblog\u002Ftownshipcanada-sdk-typescript-npm-package.md","townshipcanada: A TypeScript SDK for Canadian Legal Land Descriptions",{"type":9,"value":18464,"toc":19372},[18465,18472,18484,18488,18497,18500,18598,18601,18606,18610,18613,18697,18700,18708,18712,18718,18721,18942,18961,18964,18968,18971,19148,19171,19173,19178,19181,19199,19218,19225,19347,19350,19363,19369],[12,18466,18467,18468,18471],{},"You're building an internal tool that needs to convert Canadian legal land descriptions to GPS coordinates. You've read the ",[45,18469,18470],{"href":3965},"API docs",", and the REST endpoints are straightforward - but now you're writing fetch wrappers, parsing GeoJSON responses, handling rate limits, and defining types for every response shape. It's the same boilerplate every developer writes before they can do the actual work.",[12,18473,18474,18476,18477,68,18479,82,18481,18483],{},[65,18475,6155],{}," removes that layer. Install one npm package, pass your API key, and call typed methods like ",[65,18478,15823],{},[65,18480,15826],{},[65,18482,6441],{},". The SDK handles HTTP calls, error handling, response parsing, and TypeScript types - so you can focus on the application you're actually building.",[24,18485,18487],{"id":18486},"what-the-sdk-does","What the SDK Does",[12,18489,368,18490,18492,18493,18496],{},[65,18491,6155],{}," package wraps the Township Canada REST API with a clean TypeScript client. It ships as a dual ESM\u002FCJS build with full ",[65,18494,18495],{},".d.ts"," type definitions, so it works in any modern Node.js project (>=18) regardless of your module system.",[12,18498,18499],{},"Here's what a basic setup looks like:",[1736,18501,18503],{"className":6130,"code":18502,"language":6132,"meta":274,"style":274},"import { TownshipClient } from \"townshipcanada\";\n\nconst client = new TownshipClient({ apiKey: \"your-api-key\" });\n\nconst result = await client.search(\"LSD 14-27-048-05W5\");\n\u002F\u002F { latitude: 53.12, longitude: -116.84, province: \"Alberta\", ... }\n",[65,18504,18505,18525,18529,18561,18565,18593],{"__ignoreMap":274},[2024,18506,18507,18509,18511,18513,18515,18517,18519,18521,18523],{"class":4882,"line":4883},[2024,18508,6139],{"class":5822},[2024,18510,5578],{"class":5500},[2024,18512,6144],{"class":5815},[2024,18514,6147],{"class":5500},[2024,18516,6150],{"class":5822},[2024,18518,5520],{"class":5519},[2024,18520,6155],{"class":5523},[2024,18522,5514],{"class":5519},[2024,18524,5896],{"class":5500},[2024,18526,18527],{"class":4882,"line":275},[2024,18528,5901],{"emptyLinePlaceholder":289},[2024,18530,18531,18533,18535,18537,18539,18541,18543,18545,18547,18549,18551,18553,18555,18557,18559],{"class":4882,"line":498},[2024,18532,5812],{"class":5811},[2024,18534,6170],{"class":5815},[2024,18536,5819],{"class":5500},[2024,18538,6176],{"class":6175},[2024,18540,6144],{"class":5826},[2024,18542,6009],{"class":5830},[2024,18544,6183],{"class":5500},[2024,18546,6186],{"class":5852},[2024,18548,2609],{"class":5500},[2024,18550,5520],{"class":5519},[2024,18552,12336],{"class":5523},[2024,18554,5514],{"class":5519},[2024,18556,6147],{"class":5500},[2024,18558,5893],{"class":5830},[2024,18560,5896],{"class":5500},[2024,18562,18563],{"class":4882,"line":4899},[2024,18564,5901],{"emptyLinePlaceholder":289},[2024,18566,18567,18569,18571,18573,18575,18577,18579,18581,18583,18585,18587,18589,18591],{"class":4882,"line":4905},[2024,18568,5812],{"class":5811},[2024,18570,6211],{"class":5815},[2024,18572,5819],{"class":5500},[2024,18574,5823],{"class":5822},[2024,18576,6170],{"class":5815},[2024,18578,60],{"class":5500},[2024,18580,6222],{"class":5826},[2024,18582,6009],{"class":5830},[2024,18584,5514],{"class":5519},[2024,18586,5460],{"class":5523},[2024,18588,5514],{"class":5519},[2024,18590,5893],{"class":5830},[2024,18592,5896],{"class":5500},[2024,18594,18595],{"class":4882,"line":5622},[2024,18596,18597],{"class":6494},"\u002F\u002F { latitude: 53.12, longitude: -116.84, province: \"Alberta\", ... }\n",[12,18599,18600],{},"One import, one constructor, one method call. The response comes back typed - no manual GeoJSON parsing, no checking for undefined properties.",[12,18602,18603],{},[128,18604],{"alt":18605,"src":3896},"Search a legal land description and return the same GPS coordinates the SDK exposes via the search() method",[24,18607,18609],{"id":18608},"available-methods","Available Methods",[12,18611,18612],{},"The SDK covers the full Township Canada API surface:",[660,18614,18615,18625],{},[663,18616,18617],{},[666,18618,18619,18622],{},[669,18620,18621],{},"Method",[669,18623,18624],{},"What It Does",[681,18626,18627,18637,18647,18657,18667,18677,18687],{},[666,18628,18629,18634],{},[686,18630,18631],{},[65,18632,18633],{},"search(location)",[686,18635,18636],{},"Convert a legal land description to GPS coordinates",[666,18638,18639,18644],{},[686,18640,18641],{},[65,18642,18643],{},"reverse(lng, lat)",[686,18645,18646],{},"Reverse geocode GPS coordinates to a legal land description",[666,18648,18649,18654],{},[686,18650,18651],{},[65,18652,18653],{},"autocomplete(query)",[686,18655,18656],{},"Get search-as-you-type suggestions for partial descriptions",[666,18658,18659,18664],{},[686,18660,18661],{},[65,18662,18663],{},"batchSearch(locations)",[686,18665,18666],{},"Convert up to 100 legal land descriptions in one call",[666,18668,18669,18674],{},[686,18670,18671],{},[65,18672,18673],{},"batchReverse(coordinates)",[686,18675,18676],{},"Batch reverse geocode up to 100 coordinate pairs",[666,18678,18679,18684],{},[686,18680,18681],{},[65,18682,18683],{},"boundary(location)",[686,18685,18686],{},"Get the GeoJSON boundary polygon for a parcel",[666,18688,18689,18694],{},[686,18690,18691],{},[65,18692,18693],{},"raw(location)",[686,18695,18696],{},"Get the full GeoJSON FeatureCollection response",[12,18698,18699],{},"Every method returns typed responses. Your editor knows the shape of the data before you run the code.",[12,18701,18702,18703,9118,18705,18707],{},"For developers already using the ",[45,18704,6416],{"href":6415},[45,18706,4395],{"href":4394},", the SDK methods map directly to the same endpoints - same inputs, same outputs, less code.",[24,18709,18711],{"id":18710},"real-world-example-oil-and-gas-well-site-dashboard","Real-World Example: Oil and Gas Well-Site Dashboard",[12,18713,18714,18715,18717],{},"A land tech team in Calgary is building an internal dashboard that maps well-site locations. Their database has 500 DLS legal land descriptions like ",[65,18716,6466],{}," - but the mapping library needs GPS coordinates.",[12,18719,18720],{},"Without the SDK, they'd write a loop with fetch calls, handle rate limiting, parse GeoJSON, and manage retries. With the SDK:",[1736,18722,18724],{"className":6130,"code":18723,"language":6132,"meta":274,"style":274},"import { TownshipClient } from \"townshipcanada\";\n\nconst client = new TownshipClient({ apiKey: process.env.TC_API_KEY });\n\nconst locations = [\n  \"LSD 06-32-048-07W5\",\n  \"NE-14-032-21W4\",\n  \"NW-25-024-01W5\"\n  \u002F\u002F ... 497 more\n];\n\nconst batch = await client.batchSearch(locations);\n\u002F\u002F batch.total → 500, batch.success → 500, batch.failed → 0\n\nfor (const result of batch.results) {\n  console.log(result.legalLocation, result.latitude, result.longitude);\n}\n",[65,18725,18726,18746,18750,18786,18790,18800,18810,18820,18828,18833,18839,18843,18867,18872,18876,18900,18938],{"__ignoreMap":274},[2024,18727,18728,18730,18732,18734,18736,18738,18740,18742,18744],{"class":4882,"line":4883},[2024,18729,6139],{"class":5822},[2024,18731,5578],{"class":5500},[2024,18733,6144],{"class":5815},[2024,18735,6147],{"class":5500},[2024,18737,6150],{"class":5822},[2024,18739,5520],{"class":5519},[2024,18741,6155],{"class":5523},[2024,18743,5514],{"class":5519},[2024,18745,5896],{"class":5500},[2024,18747,18748],{"class":4882,"line":275},[2024,18749,5901],{"emptyLinePlaceholder":289},[2024,18751,18752,18754,18756,18758,18760,18762,18764,18766,18768,18770,18772,18774,18776,18778,18780,18782,18784],{"class":4882,"line":498},[2024,18753,5812],{"class":5811},[2024,18755,6170],{"class":5815},[2024,18757,5819],{"class":5500},[2024,18759,6176],{"class":6175},[2024,18761,6144],{"class":5826},[2024,18763,6009],{"class":5830},[2024,18765,6183],{"class":5500},[2024,18767,6186],{"class":5852},[2024,18769,2609],{"class":5500},[2024,18771,5870],{"class":5815},[2024,18773,60],{"class":5500},[2024,18775,5875],{"class":5815},[2024,18777,60],{"class":5500},[2024,18779,5880],{"class":5815},[2024,18781,6147],{"class":5500},[2024,18783,5893],{"class":5830},[2024,18785,5896],{"class":5500},[2024,18787,18788],{"class":4882,"line":4899},[2024,18789,5901],{"emptyLinePlaceholder":289},[2024,18791,18792,18794,18796,18798],{"class":4882,"line":4905},[2024,18793,5812],{"class":5811},[2024,18795,6454],{"class":5815},[2024,18797,5819],{"class":5500},[2024,18799,6459],{"class":5830},[2024,18801,18802,18804,18806,18808],{"class":4882,"line":5622},[2024,18803,5507],{"class":5519},[2024,18805,6466],{"class":5523},[2024,18807,5514],{"class":5519},[2024,18809,5529],{"class":5500},[2024,18811,18812,18814,18816,18818],{"class":4882,"line":5637},[2024,18813,5507],{"class":5519},[2024,18815,6477],{"class":5523},[2024,18817,5514],{"class":5519},[2024,18819,5529],{"class":5500},[2024,18821,18822,18824,18826],{"class":4882,"line":5658},[2024,18823,5507],{"class":5519},[2024,18825,6229],{"class":5523},[2024,18827,5734],{"class":5519},[2024,18829,18830],{"class":4882,"line":5678},[2024,18831,18832],{"class":6494},"  \u002F\u002F ... 497 more\n",[2024,18834,18835,18837],{"class":4882,"line":5698},[2024,18836,5948],{"class":5830},[2024,18838,5896],{"class":5500},[2024,18840,18841],{"class":4882,"line":5718},[2024,18842,5901],{"emptyLinePlaceholder":289},[2024,18844,18845,18847,18849,18851,18853,18855,18857,18859,18861,18863,18865],{"class":4882,"line":5737},[2024,18846,5812],{"class":5811},[2024,18848,6512],{"class":5815},[2024,18850,5819],{"class":5500},[2024,18852,5823],{"class":5822},[2024,18854,6170],{"class":5815},[2024,18856,60],{"class":5500},[2024,18858,6523],{"class":5826},[2024,18860,6009],{"class":5830},[2024,18862,6528],{"class":5815},[2024,18864,5893],{"class":5830},[2024,18866,5896],{"class":5500},[2024,18868,18869],{"class":4882,"line":5743},[2024,18870,18871],{"class":6494},"\u002F\u002F batch.total → 500, batch.success → 500, batch.failed → 0\n",[2024,18873,18874],{"class":4882,"line":5749},[2024,18875,5901],{"emptyLinePlaceholder":289},[2024,18877,18878,18880,18882,18884,18886,18889,18891,18893,18896,18898],{"class":4882,"line":10053},[2024,18879,12458],{"class":5822},[2024,18881,527],{"class":5830},[2024,18883,5812],{"class":5811},[2024,18885,6211],{"class":5815},[2024,18887,18888],{"class":6175}," of",[2024,18890,6512],{"class":5815},[2024,18892,60],{"class":5500},[2024,18894,18895],{"class":5815},"results",[2024,18897,5893],{"class":5830},[2024,18899,5634],{"class":5500},[2024,18901,18902,18905,18907,18909,18911,18913,18915,18918,18920,18922,18924,18926,18928,18930,18932,18934,18936],{"class":4882,"line":10065},[2024,18903,18904],{"class":5815},"  console",[2024,18906,60],{"class":5500},[2024,18908,6006],{"class":5826},[2024,18910,6009],{"class":9885},[2024,18912,6248],{"class":5815},[2024,18914,60],{"class":5500},[2024,18916,18917],{"class":5815},"legalLocation",[2024,18919,5597],{"class":5500},[2024,18921,6211],{"class":5815},[2024,18923,60],{"class":5500},[2024,18925,6253],{"class":5815},[2024,18927,5597],{"class":5500},[2024,18929,6211],{"class":5815},[2024,18931,60],{"class":5500},[2024,18933,6262],{"class":5815},[2024,18935,5893],{"class":9885},[2024,18937,5896],{"class":5500},[2024,18939,18940],{"class":4882,"line":10077},[2024,18941,5752],{"class":5500},[12,18943,368,18944,18946,18947,18950,18951,68,18953,68,18955,82,18957,18960],{},[65,18945,6441],{}," method automatically splits the 500 locations into chunks of 100, sends them in sequence, and returns a ",[65,18948,18949],{},"BatchResult"," with ",[65,18952,18895],{},[65,18954,6571],{},[65,18956,6557],{},[65,18958,18959],{},"failed"," counts. No manual pagination - the SDK handles the chunking.",[12,18962,18963],{},"Each result comes back with coordinates, province, survey system, and unit type. The team feeds these directly into their map component without any transformation step.",[24,18965,18967],{"id":18966},"typed-error-handling","Typed Error Handling",[12,18969,18970],{},"API errors are first-class in the SDK. Instead of checking HTTP status codes, you catch specific error classes:",[1736,18972,18974],{"className":6130,"code":18973,"language":6132,"meta":274,"style":274},"import { TownshipClient, AuthenticationError, NotFoundError, RateLimitError } from \"townshipcanada\";\n\ntry {\n  const result = await client.search(\"LSD 14-27-048-05W5\");\n} catch (error) {\n  if (error instanceof NotFoundError) {\n    \u002F\u002F Invalid or unrecognized legal land description\n  } else if (error instanceof RateLimitError) {\n    \u002F\u002F Too many requests - back off and retry\n  } else if (error instanceof AuthenticationError) {\n    \u002F\u002F Bad or expired API key\n  }\n}\n",[65,18975,18976,19011,19015,19022,19050,19066,19084,19089,19110,19115,19135,19140,19144],{"__ignoreMap":274},[2024,18977,18978,18980,18982,18984,18986,18989,18991,18994,18996,18999,19001,19003,19005,19007,19009],{"class":4882,"line":4883},[2024,18979,6139],{"class":5822},[2024,18981,5578],{"class":5500},[2024,18983,6144],{"class":5815},[2024,18985,5597],{"class":5500},[2024,18987,18988],{"class":5815}," AuthenticationError",[2024,18990,5597],{"class":5500},[2024,18992,18993],{"class":5815}," NotFoundError",[2024,18995,5597],{"class":5500},[2024,18997,18998],{"class":5815}," RateLimitError",[2024,19000,6147],{"class":5500},[2024,19002,6150],{"class":5822},[2024,19004,5520],{"class":5519},[2024,19006,6155],{"class":5523},[2024,19008,5514],{"class":5519},[2024,19010,5896],{"class":5500},[2024,19012,19013],{"class":4882,"line":275},[2024,19014,5901],{"emptyLinePlaceholder":289},[2024,19016,19017,19020],{"class":4882,"line":498},[2024,19018,19019],{"class":5822},"try",[2024,19021,5634],{"class":5500},[2024,19023,19024,19026,19028,19030,19032,19034,19036,19038,19040,19042,19044,19046,19048],{"class":4882,"line":4899},[2024,19025,10799],{"class":5811},[2024,19027,6211],{"class":5815},[2024,19029,5819],{"class":5500},[2024,19031,5823],{"class":5822},[2024,19033,6170],{"class":5815},[2024,19035,60],{"class":5500},[2024,19037,6222],{"class":5826},[2024,19039,6009],{"class":9885},[2024,19041,5514],{"class":5519},[2024,19043,5460],{"class":5523},[2024,19045,5514],{"class":5519},[2024,19047,5893],{"class":9885},[2024,19049,5896],{"class":5500},[2024,19051,19052,19054,19057,19059,19062,19064],{"class":4882,"line":4905},[2024,19053,6034],{"class":5500},[2024,19055,19056],{"class":5822}," catch",[2024,19058,527],{"class":5830},[2024,19060,19061],{"class":5815},"error",[2024,19063,5893],{"class":5830},[2024,19065,5634],{"class":5500},[2024,19067,19068,19070,19072,19074,19077,19080,19082],{"class":4882,"line":5622},[2024,19069,10897],{"class":5822},[2024,19071,527],{"class":9885},[2024,19073,19061],{"class":5815},[2024,19075,19076],{"class":6175}," instanceof",[2024,19078,18993],{"class":19079},"sD-vU",[2024,19081,5893],{"class":9885},[2024,19083,5634],{"class":5500},[2024,19085,19086],{"class":4882,"line":5637},[2024,19087,19088],{"class":6494},"    \u002F\u002F Invalid or unrecognized legal land description\n",[2024,19090,19091,19093,19096,19098,19100,19102,19104,19106,19108],{"class":4882,"line":5658},[2024,19092,9965],{"class":5500},[2024,19094,19095],{"class":5822}," else",[2024,19097,15302],{"class":5822},[2024,19099,527],{"class":9885},[2024,19101,19061],{"class":5815},[2024,19103,19076],{"class":6175},[2024,19105,18998],{"class":19079},[2024,19107,5893],{"class":9885},[2024,19109,5634],{"class":5500},[2024,19111,19112],{"class":4882,"line":5678},[2024,19113,19114],{"class":6494},"    \u002F\u002F Too many requests - back off and retry\n",[2024,19116,19117,19119,19121,19123,19125,19127,19129,19131,19133],{"class":4882,"line":5698},[2024,19118,9965],{"class":5500},[2024,19120,19095],{"class":5822},[2024,19122,15302],{"class":5822},[2024,19124,527],{"class":9885},[2024,19126,19061],{"class":5815},[2024,19128,19076],{"class":6175},[2024,19130,18988],{"class":19079},[2024,19132,5893],{"class":9885},[2024,19134,5634],{"class":5500},[2024,19136,19137],{"class":4882,"line":5718},[2024,19138,19139],{"class":6494},"    \u002F\u002F Bad or expired API key\n",[2024,19141,19142],{"class":4882,"line":5737},[2024,19143,5888],{"class":5500},[2024,19145,19146],{"class":4882,"line":5743},[2024,19147,5752],{"class":5500},[12,19149,19150,19151,19154,19155,19158,19159,19162,19163,19166,19167,19170],{},"Five error classes cover the full range: ",[65,19152,19153],{},"AuthenticationError"," (401), ",[65,19156,19157],{},"ValidationError"," (400), ",[65,19160,19161],{},"NotFoundError"," (404), ",[65,19164,19165],{},"RateLimitError"," (429), and ",[65,19168,19169],{},"PayloadTooLargeError"," (413). Each carries the HTTP status and response message, so debugging is straightforward.",[24,19172,7184],{"id":7183},[12,19174,19175],{},[128,19176],{"alt":19177,"src":5761},"Generate dev, staging, and production API keys for your SDK clients from the Township Canada API portal",[12,19179,19180],{},"Setup takes about two minutes:",[1863,19182,19183,19194],{},[244,19184,19185,19187,19188,19190,19191,19193],{},[19,19186,7194],{}," - Sign up at ",[45,19189,15455],{"href":3965}," and create a key from your ",[45,19192,5776],{"href":5775},". The Search Build plan starts at $20\u002Fmonth.",[244,19195,19196,2609],{},[19,19197,19198],{},"Install the package",[1736,19200,19204],{"className":19201,"code":19202,"language":19203,"meta":274,"style":274},"language-bash shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","npm install townshipcanada\n","bash",[65,19205,19206],{"__ignoreMap":274},[2024,19207,19208,19212,19215],{"class":4882,"line":4883},[2024,19209,19211],{"class":19210},"sYn-s","npm",[2024,19213,19214],{"class":5523}," install",[2024,19216,19217],{"class":5523}," townshipcanada\n",[1863,19219,19220],{"start":498},[244,19221,19222,2609],{},[19,19223,19224],{},"Write your first query",[1736,19226,19228],{"className":6130,"code":19227,"language":6132,"meta":274,"style":274},"import { TownshipClient } from \"townshipcanada\";\n\nconst client = new TownshipClient({ apiKey: \"your-api-key\" });\nconst result = await client.search(\"NW-25-024-01W5\");\nconsole.log(result.latitude, result.longitude);\n\u002F\u002F GPS coordinates for this quarter section in Alberta\n",[65,19229,19230,19250,19254,19286,19314,19342],{"__ignoreMap":274},[2024,19231,19232,19234,19236,19238,19240,19242,19244,19246,19248],{"class":4882,"line":4883},[2024,19233,6139],{"class":5822},[2024,19235,5578],{"class":5500},[2024,19237,6144],{"class":5815},[2024,19239,6147],{"class":5500},[2024,19241,6150],{"class":5822},[2024,19243,5520],{"class":5519},[2024,19245,6155],{"class":5523},[2024,19247,5514],{"class":5519},[2024,19249,5896],{"class":5500},[2024,19251,19252],{"class":4882,"line":275},[2024,19253,5901],{"emptyLinePlaceholder":289},[2024,19255,19256,19258,19260,19262,19264,19266,19268,19270,19272,19274,19276,19278,19280,19282,19284],{"class":4882,"line":498},[2024,19257,5812],{"class":5811},[2024,19259,6170],{"class":5815},[2024,19261,5819],{"class":5500},[2024,19263,6176],{"class":6175},[2024,19265,6144],{"class":5826},[2024,19267,6009],{"class":5830},[2024,19269,6183],{"class":5500},[2024,19271,6186],{"class":5852},[2024,19273,2609],{"class":5500},[2024,19275,5520],{"class":5519},[2024,19277,12336],{"class":5523},[2024,19279,5514],{"class":5519},[2024,19281,6147],{"class":5500},[2024,19283,5893],{"class":5830},[2024,19285,5896],{"class":5500},[2024,19287,19288,19290,19292,19294,19296,19298,19300,19302,19304,19306,19308,19310,19312],{"class":4882,"line":4899},[2024,19289,5812],{"class":5811},[2024,19291,6211],{"class":5815},[2024,19293,5819],{"class":5500},[2024,19295,5823],{"class":5822},[2024,19297,6170],{"class":5815},[2024,19299,60],{"class":5500},[2024,19301,6222],{"class":5826},[2024,19303,6009],{"class":5830},[2024,19305,5514],{"class":5519},[2024,19307,6229],{"class":5523},[2024,19309,5514],{"class":5519},[2024,19311,5893],{"class":5830},[2024,19313,5896],{"class":5500},[2024,19315,19316,19318,19320,19322,19324,19326,19328,19330,19332,19334,19336,19338,19340],{"class":4882,"line":4905},[2024,19317,6001],{"class":5815},[2024,19319,60],{"class":5500},[2024,19321,6006],{"class":5826},[2024,19323,6009],{"class":5830},[2024,19325,6248],{"class":5815},[2024,19327,60],{"class":5500},[2024,19329,6253],{"class":5815},[2024,19331,5597],{"class":5500},[2024,19333,6211],{"class":5815},[2024,19335,60],{"class":5500},[2024,19337,6262],{"class":5815},[2024,19339,5893],{"class":5830},[2024,19341,5896],{"class":5500},[2024,19343,19344],{"class":4882,"line":5622},[2024,19345,19346],{"class":6494},"\u002F\u002F GPS coordinates for this quarter section in Alberta\n",[12,19348,19349],{},"The SDK is MIT licensed and the source is on GitHub. If you're already building on the Township Canada API with raw HTTP calls, the SDK is a drop-in replacement - same endpoints, same data, typed responses and error handling included.",[12,19351,19352,19353,19355,19356,19358,19359,19362],{},"For a broader overview of what the API offers and who builds with it, see ",[45,19354,17904],{"href":4940},". For a hands-on integration tutorial with code examples for search, autocomplete, and batch endpoints, see ",[45,19357,17522],{"href":6758},". If you're managing multiple environments, the ",[45,19360,19361],{"href":17948},"unlimited API keys"," feature lets you separate dev, staging, and production keys for your SDK instances.",[12,19364,19365,19366,19368],{},"Check the ",[45,19367,6718],{"href":6717}," for endpoint details, or install the package and run your first conversion now.",[4964,19370,19371],{},"html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sSC40, html code.shiki .sSC40{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sljsM, html code.shiki .sljsM{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .snCua, html code.shiki .snCua{--shiki-light:#90A4AE;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .suXOh, html code.shiki .suXOh{--shiki-light:#E53935;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s9Tkl, html code.shiki .s9Tkl{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#758575DD;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sLdnO, html code.shiki .sLdnO{--shiki-light:#E53935;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sD-vU, html code.shiki .sD-vU{--shiki-light:#E2931D;--shiki-default:#2E8F82;--shiki-dark:#5DA994}html pre.shiki code .sYn-s, html code.shiki .sYn-s{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#80A665}",{"title":274,"searchDepth":275,"depth":275,"links":19373},[19374,19375,19376,19377,19378],{"id":18486,"depth":275,"text":18487},{"id":18608,"depth":275,"text":18609},{"id":18710,"depth":275,"text":18711},{"id":18966,"depth":275,"text":18967},{"id":7183,"depth":275,"text":7184},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002Fe1cf5b96-82fe-4ccf-8717-41575237d4da.jpeg","2026-03-16","The townshipcanada npm package gives developers a typed TypeScript client for converting Canadian legal land descriptions to GPS coordinates.",{},{"title":18462,"description":19381},"blog\u002Ftownshipcanada-sdk-typescript-npm-package",[6762,4990,19386,19387,19211],"TypeScript","SDK","S7CGqSwb2FWdgefZ9svB6VmaJykp3puvKsTaT5Uu_iE",{"id":19390,"title":19391,"author":7,"body":19392,"category":283,"cover":19637,"date":19638,"description":19639,"extension":287,"meta":19640,"navigation":289,"path":3950,"seo":19641,"stem":19642,"tags":19643,"__hash__":19644},"blog\u002Fblog\u002Fgoogle-sheets-add-on-convert-legal-land-descriptions.md","Google Sheets Add-On: Convert Legal Land Descriptions Without Leaving Your Spreadsheet",{"type":9,"value":19393,"toc":19628},[19394,19397,19404,19406,19409,19443,19450,19453,19457,19460,19471,19477,19485,19489,19493,19499,19507,19511,19514,19520,19523,19526,19532,19550,19562,19566,19595,19602,19609,19613,19619],[12,19395,19396],{},"You have 80 quarter section descriptions in a spreadsheet. Each one needs GPS coordinates for a crop insurance report, a field visit plan, or a regulatory filing. Right now, that means copying a description from column A, switching to a browser tab, pasting it into a converter, copying the coordinates back, and repeating - 80 times. It takes the better part of an afternoon, and one missed paste means a wrong coordinate in your report.",[12,19398,19399,19400,19403],{},"Township Canada's new Google Sheets add-on removes the tab-switching entirely. Type ",[65,19401,19402],{},"=TOWNSHIP_CANADA(\"NW-25-24-1-W5\")"," in any cell, and the GPS coordinates appear right there in your spreadsheet. Need to convert an entire column? The sidebar batch converter handles up to 200 descriptions at once. If you work with legal land descriptions in Google Sheets - and a lot of landmen, agronomists, and crop insurance adjusters do - the add-on keeps the conversion inside the tool you're already using.",[24,19405,17812],{"id":17811},[12,19407,19408],{},"The add-on installs from the Google Workspace Marketplace in one click. No IT approval, no desktop software, no configuration files. Once installed, you get four custom functions:",[241,19410,19411,19419,19427,19435],{},[244,19412,19413,19418],{},[19,19414,19415],{},[65,19416,19417],{},"=TOWNSHIP_CANADA(\"LLD\")"," - returns full GPS coordinates (latitude, longitude) for any Canadian legal land description",[244,19420,19421,19426],{},[19,19422,19423],{},[65,19424,19425],{},"=TOWNSHIP_CANADA_LAT(\"LLD\")"," - returns just the latitude",[244,19428,19429,19434],{},[19,19430,19431],{},[65,19432,19433],{},"=TOWNSHIP_CANADA_LNG(\"LLD\")"," - returns just the longitude",[244,19436,19437,19442],{},[19,19438,19439],{},[65,19440,19441],{},"=TOWNSHIP_CANADA_PROVINCE(\"LLD\")"," - returns the province name",[12,19444,19445,19446,19449],{},"These work like any other spreadsheet formula. Reference a cell instead of typing the description directly - ",[65,19447,19448],{},"=TOWNSHIP_CANADA(A2)"," - and drag it down the column to convert your entire list. The results update automatically if the source cell changes.",[12,19451,19452],{},"The add-on supports every Canadian survey system Township Canada handles: DLS, NTS, LSD, Geographic Townships, River Lots, UWI, and FPS Grid. A column with mixed formats - DLS quarter sections alongside Ontario lot-and-concession descriptions - converts without any special configuration.",[24,19454,19456],{"id":19455},"real-world-example-crop-insurance-report","Real-World Example: Crop Insurance Report",[12,19458,19459],{},"An agronomist in central Saskatchewan is preparing a crop insurance report for a producer with 80 insured quarter sections spread across three townships. The descriptions are already in a Google Sheet - NW-14-032-21W3, SE-07-048-22W3, NE-22-041-19W3, and so on - pulled from the SCIC policy renewal.",[12,19461,19462,19463,19466,19467,19470],{},"Before the add-on, this meant either converting each description individually through the ",[45,19464,19465],{"href":4740},"Township Canada web app"," or setting up a ",[45,19468,19469],{"href":15563},"custom Apps Script"," with API calls. Both approaches work, but the first is slow and the second requires writing code.",[12,19472,19473,19474,19476],{},"With the add-on, the agronomist types ",[65,19475,19448],{}," in cell B2, drags the formula down to B81, and has GPS coordinates for all 80 quarter sections in under a minute. No copy-paste. No code. The coordinates sit right next to the original descriptions, ready to be used in the report or exported for field navigation.",[12,19478,19479,19480,19484],{},"For adjusters handling ",[45,19481,19483],{"href":19482},"\u002Fblog\u002Fcrop-insurance-legal-land-descriptions-march-deadline","crop insurance claims at scale",", the sidebar batch converter is even faster - select the column range, click convert, and the add-on processes up to 200 descriptions in a single pass with a progress indicator showing how far along it is.",[12,19486,19487],{},[128,19488],{"alt":8713,"src":3937},[24,19490,19492],{"id":19491},"the-sidebar-batch-converter","The Sidebar Batch Converter",[12,19494,19495,19496,19498],{},"For larger lists, the add-on includes a sidebar panel that handles batch conversions without formulas. Open it from the Township Canada menu, select a range of cells containing legal land descriptions, and click ",[19,19497,8707],{},". The sidebar processes each description and writes the coordinates to adjacent columns.",[12,19500,19501,19502,178,19504,19506],{},"The batch converter handles up to 200 items at a time, with a progress bar so you can see exactly where it stands. For lists longer than 200, run it in batches - or if your workflow regularly involves thousands of records, the ",[45,19503,8719],{"href":3930},[45,19505,4395],{"href":4394}," handle larger volumes.",[24,19508,19510],{"id":19509},"api-access-and-sample-data","API Access and Sample Data",[12,19512,19513],{},"The add-on includes built-in sample DLS locations that work instantly without an API key, so you can test the workflow right away. For legal land descriptions beyond the sample set, connect your Township Canada API key.",[12,19515,19516,19517,19519],{},"For unlimited conversions, connect your Township Canada API key in the add-on's Settings dialog. If you already have an ",[45,19518,8480],{"href":3965},", there's no additional cost - your existing plan covers the add-on usage. API plans start at $20\u002Fmonth for 1,000 requests.",[12,19521,19522],{},"This setup means you can install the add-on, test it immediately with sample data, and then connect your API key when you are ready to run full production lists.",[24,19524,19525],{"id":2909},"Who This Is For",[12,19527,19528,19531],{},[19,19529,19530],{},"Landmen"," managing well licence data, surface lease inventories, or mineral rights records in spreadsheets. Instead of exporting to convert locations and importing the results back, the coordinates stay in the same sheet as the rest of your data.",[12,19533,19534,19537,19538,19541,19542,19545,19546,19549],{},[19,19535,19536],{},"Agronomists and crop insurance adjusters"," who already track quarter sections in Google Sheets for AFSC or SCIC reporting. If you're verifying declared acres before a deadline, the ",[65,19539,19540],{},"=TOWNSHIP()"," formula flags wrong-meridian errors instantly - see our ",[45,19543,19544],{"href":1601},"AFSC April 30 declared-acres verification guide"," for the full workflow. The add-on fits directly into the ",[45,19547,19548],{"href":1654},"agricultural workflows"," that already rely on spreadsheet-based quarter section lists.",[12,19551,19552,19555,19556,19559,19560,60],{},[19,19553,19554],{},"Anyone who works with legal land descriptions in spreadsheets"," and doesn't want to learn an API or switch to a different tool. If you can write ",[65,19557,19558],{},"=SUM()",", you can write ",[65,19561,15867],{},[24,19563,19565],{"id":19564},"how-to-install","How to Install",[1863,19567,19568,19571,19576,19583,19589],{},[244,19569,19570],{},"Open Google Sheets",[244,19572,895,19573],{},[19,19574,19575],{},"Extensions > Add-ons > Get add-ons",[244,19577,19578,19579,19582],{},"Search for ",[19,19580,19581],{},"\"Township Canada\""," in the Google Workspace Marketplace",[244,19584,19585,19586,19588],{},"Click ",[19,19587,8469],{}," - the add-on requests permission to run custom functions and make network calls",[244,19590,19591,19592,19594],{},"Start using ",[65,19593,15867],{}," in any cell",[12,19596,19597,19598,19601],{},"The entire process takes about 30 seconds. If you have an API key, open the add-on settings (from the ",[19,19599,19600],{},"Extensions > Township Canada"," menu) and paste it in to unlock full conversion access beyond the built-in samples.",[12,19603,19604,19605,19608],{},"Already building custom integrations? The existing ",[45,19606,19607],{"href":15563},"Google Sheets API guide"," covers Apps Script integration for more advanced workflows - scheduled conversions, custom menus, and direct Batch API calls.",[24,19610,19612],{"id":19611},"try-it-now","Try It Now",[12,19614,19615,19616,19618],{},"Install the Township Canada add-on from the Google Workspace Marketplace and convert your first legal land description without leaving your spreadsheet. Type ",[65,19617,19402],{}," and see the GPS coordinates appear in seconds.",[12,19620,19621,19622,19624,19625,19627],{},"For teams processing large volumes of legal land descriptions, check the ",[45,19623,7084],{"href":3965}," to connect your key and get unlimited conversions. Or explore the ",[45,19626,9432],{"href":4845}," if your workflow needs go beyond what a spreadsheet can handle.",{"title":274,"searchDepth":275,"depth":275,"links":19629},[19630,19631,19632,19633,19634,19635,19636],{"id":17811,"depth":275,"text":17812},{"id":19455,"depth":275,"text":19456},{"id":19491,"depth":275,"text":19492},{"id":19509,"depth":275,"text":19510},{"id":2909,"depth":275,"text":19525},{"id":19564,"depth":275,"text":19565},{"id":19611,"depth":275,"text":19612},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002F4a00b70b-0034-4551-bad1-5db1d6e0da11.jpeg","2026-03-13","Convert DLS, NTS, and LSD legal land descriptions to GPS coordinates directly in Google Sheets with Township Canada's new add-on.",{},{"title":19391,"description":19639},"blog\u002Fgoogle-sheets-add-on-convert-legal-land-descriptions",[8798,6763,4991,4990],"5f5h_IWjV5RM7mZRFAz0kcP4z4LWYfSmLhXbjs6uIqQ",{"id":19646,"title":19647,"author":7,"body":19648,"category":1168,"cover":19835,"date":19638,"description":19836,"extension":287,"meta":19837,"navigation":289,"path":19838,"seo":19839,"stem":19840,"tags":19841,"__hash__":19844},"blog\u002Fblog\u002Froute-planner-multi-stop.md","Plan Multi-Stop Field Routes with Township Canada",{"type":9,"value":19649,"toc":19826},[19650,19661,19666,19668,19674,19680,19683,19687,19690,19693,19697,19704,19707,19711,19714,19717,19746,19749,19755,19758,19762,19768,19776,19780,19811,19813],[12,19651,19652,19653,68,19655,68,19657,19660],{},"A wellsite inspector in central Alberta has 12 locations to visit today. They're spread across four townships west of Rocky Mountain House, and the inspector needs to hit every one before sundown. The locations are listed as LSDs on a work order: ",[65,19654,4724],{},[65,19656,7146],{},[65,19658,19659],{},"03-33-047-06W5",", and nine more. The question isn't where these locations are - it's what order to visit them in, and which rural roads connect them.",[12,19662,368,19663,19665],{},[45,19664,1549],{"href":6902}," on Township Canada answers both questions.",[24,19667,17812],{"id":17811},[12,19669,19670,19671,19673],{},"Open the route planner and add stops. Each stop can be entered as a ",[45,19672,13966],{"href":12163}," (DLS, LSD, NTS), GPS coordinates, an address, or a place name. The planner converts each entry to coordinates and places it on the map.",[12,19675,19676],{},[128,19677],{"alt":19678,"src":19679},"Multi-stop route on the survey grid map","\u002Fimages\u002Fblog\u002Froute-planner-multi-stop\u002Froute-map.webp",[12,19681,19682],{},"Add all 12 LSDs from the work order. The planner shows them as numbered markers on the survey grid map, connected by the driving route between them. The route follows actual roads - highways, range roads, and township roads - not straight lines.",[24,19684,19686],{"id":19685},"optimizing-stop-order","Optimizing Stop Order",[12,19688,19689],{},"When your stops are scattered across a region, the order you visit them matters. Driving from the northernmost site to the southernmost and back again wastes fuel and daylight. The route planner can reorder your stops to minimize total driving distance or time.",[12,19691,19692],{},"You can also drag stops to reorder them manually if your day has constraints - maybe the first two stops need to happen before noon for a regulatory inspection window, or the last stop is closest to home.",[24,19694,19696],{"id":19695},"driving-directions-and-time-estimates","Driving Directions and Time Estimates",[12,19698,19699,19700,19703],{},"Each leg of the route includes turn-by-turn ",[45,19701,19702],{"href":8108},"driving directions"," and estimated travel time. The planner accounts for road types - you'll drive faster on Highway 11 than on Range Road 75 - and gives realistic estimates for rural prairie driving.",[12,19705,19706],{},"The total trip summary shows the full distance, total driving time, and estimated arrival at each stop. This is useful for scheduling field work and knowing whether a 12-stop day is realistic or if you need to split it across two days.",[24,19708,19710],{"id":19709},"a-practical-example","A Practical Example",[12,19712,19713],{},"Say you're planning a day of site inspections in Township 48, Range 5–7, West of the 5th Meridian - an area in the foothills west of Rocky Mountain House, Alberta.",[12,19715,19716],{},"Your work order lists these 6 LSDs:",[241,19718,19719,19723,19727,19731,19736,19741],{},[244,19720,19721],{},[65,19722,4724],{},[244,19724,19725],{},[65,19726,7146],{},[244,19728,19729],{},[65,19730,19659],{},[244,19732,19733],{},[65,19734,19735],{},"09-04-049-07W5",[244,19737,19738],{},[65,19739,19740],{},"16-21-048-06W5",[244,19742,19743],{},[65,19744,19745],{},"01-15-047-05W5",[12,19747,19748],{},"Enter each one into the route planner. The map shows your six stops spread across roughly 30 kilometres of foothills terrain. Without optimization, visiting them in the order listed means doubling back twice, adding 45 minutes of unnecessary driving. The optimizer reorders them into a loop that saves that time and keeps you moving in one direction.",[12,19750,19751],{},[128,19752],{"alt":19753,"src":19754},"Optimized route order with time estimates","\u002Fimages\u002Fblog\u002Froute-planner-multi-stop\u002Foptimized-route.webp",[12,19756,19757],{},"The total optimized route is approximately 85 kilometres with an estimated driving time of 1 hour 40 minutes, plus whatever time you spend at each site.",[24,19759,19761],{"id":19760},"from-legal-land-to-turn-by-turn","From Legal Land to Turn-by-Turn",[12,19763,19764,19765,19767],{},"The route planner connects directly to Township Canada's search and directions features. You don't need to convert legal land descriptions to GPS coordinates first, then paste those coordinates into a separate navigation tool. Enter ",[65,19766,7146],{}," as a stop, and the planner handles the conversion, mapping, and routing in one step.",[12,19769,19770,19771,19775],{},"When you're ready to drive, you can hand off the route to Google Maps on your phone for real-time navigation. If you're using the ",[45,19772,19774],{"href":19773},"\u002Fguides\u002Fmobile","Township Canada mobile app",", the route is available there too.",[24,19777,19779],{"id":19778},"who-uses-the-route-planner","Who Uses the Route Planner",[241,19781,19782,19788,19793,19799,19805],{},[244,19783,19784,19787],{},[19,19785,19786],{},"Wellsite inspectors and pipeline operators"," planning daily field visits across multiple lease locations",[244,19789,19790,19792],{},[19,19791,18417],{}," visiting insured quarter sections during growing season assessments",[244,19794,19795,19798],{},[19,19796,19797],{},"Land surveyors"," planning survey crew deployments to multiple sites in a region",[244,19800,19801,19804],{},[19,19802,19803],{},"Real estate agents"," showing rural properties to clients in a logical driving order",[244,19806,19807,19810],{},[19,19808,19809],{},"Environmental field crews"," collecting samples or conducting site assessments at regulated locations",[24,19812,7184],{"id":7183},[12,19814,19815,19816,19818,19819,19822,19823,19825],{},"The route planner is available on paid plans. Open the ",[45,19817,1549],{"href":6902},", add your stops, and start planning. For full details on navigation features, see the ",[45,19820,19821],{"href":8108},"directions guide",". Check ",[45,19824,1355],{"href":2964}," for plan options.",{"title":274,"searchDepth":275,"depth":275,"links":19827},[19828,19829,19830,19831,19832,19833,19834],{"id":17811,"depth":275,"text":17812},{"id":19685,"depth":275,"text":19686},{"id":19695,"depth":275,"text":19696},{"id":19709,"depth":275,"text":19710},{"id":19760,"depth":275,"text":19761},{"id":19778,"depth":275,"text":19779},{"id":7183,"depth":275,"text":7184},"\u002Fimages\u002Fblog\u002Froute-planner-multi-stop\u002Fcover.webp","Add stops using legal land descriptions, optimize driving order, and get turn-by-turn directions across rural Alberta, Saskatchewan, and Manitoba.",{},"\u002Fblog\u002Froute-planner-multi-stop",{"title":19647,"description":19836},"blog\u002Froute-planner-multi-stop",[1177,19842,19843],"Route Planner","Navigation","ty-LABmJmlZTDt3qSo7_nrfw90NF5uzI5ViwqdlRGzA",{"id":19846,"title":19847,"author":7,"body":19848,"category":283,"cover":20384,"date":20385,"description":20386,"extension":287,"meta":20387,"navigation":289,"path":6585,"seo":20388,"stem":20389,"tags":20390,"__hash__":20391},"blog\u002Fblog\u002Fsnowflake-dls-enrichment.md","Snowflake DLS Enrichment: Convert Canadian Well Locations to GPS in SQL",{"type":9,"value":19849,"toc":20373},[19850,19853,19856,19864,19868,19871,19874,19894,19904,19908,19915,19934,19937,19980,19983,19988,19999,20004,20008,20017,20031,20034,20068,20071,20077,20082,20086,20089,20203,20209,20213,20219,20222,20233,20237,20240,20242,20245,20292,20300,20305,20309,20339,20341,20366,20371],[12,19851,19852],{},"Your wells table has 50,000 rows of DLS legal land descriptions. Your analytics team needs GPS coordinates to plot those wells on a map, calculate spacing between sites, or join against geospatial datasets. Right now, someone exports the data to CSV, runs it through a conversion tool, and pastes the results back. That round-trip breaks every time the source data updates - and it breaks data lineage in your warehouse workflows.",[12,19854,19855],{},"Township Canada now runs directly inside Snowflake SQL. One function call, coordinates back inline, no export step.",[12,19857,19858,19859,19861,19862,60],{},"In direct external-function setups this appears as ",[65,19860,14204],{},". In the Snowflake Native App, the live external function is ",[65,19863,14200],{},[24,19865,19867],{"id":19866},"the-export-and-reimport-problem","The Export-and-Reimport Problem",[12,19869,19870],{},"Every Canadian energy company on Snowflake has some version of this workflow: legal land descriptions live in the warehouse, but converting them to GPS coordinates happens outside the warehouse. Someone writes a Python script, or downloads a CSV and runs it through a desktop tool, or emails a list to someone in GIS.",[12,19872,19873],{},"The problems multiply at scale:",[241,19875,19876,19882,19888],{},[244,19877,19878,19881],{},[19,19879,19880],{},"Broken lineage",": The moment data leaves Snowflake, you lose tracking. Where did those coordinates come from? When were they last refreshed? Which version of the source table was used?",[244,19883,19884,19887],{},[19,19885,19886],{},"Manual re-runs",": If the wells table updates daily from AER filings, someone has to re-run the conversion daily. That never actually happens - the enriched table drifts from the source.",[244,19889,19890,19893],{},[19,19891,19892],{},"Error isolation",": When 200 of 50,000 records fail to convert, diagnosing those failures in a disconnected workflow means context-switching between tools.",[12,19895,19896,19897,19900,19901,60],{},"Data engineers know the pain. The DLS location ",[65,19898,19899],{},"NE-7-102-19-W4"," is precise for regulatory purposes but useless for spatial analysis until it becomes ",[65,19902,19903],{},"52.454928, -114.648933",[24,19905,19907],{"id":19906},"how-snowflake-dls-enrichment-works","How Snowflake DLS Enrichment Works",[12,19909,19910,19911,19914],{},"The Township Canada Snowflake integration uses an External Function backed by an AWS Lambda proxy and API Gateway. When you call ",[65,19912,19913],{},"TOWNSHIP_CONVERT()"," in a SQL query, Snowflake:",[1863,19916,19917,19920,19923,19928,19931],{},[244,19918,19919],{},"Collects rows into batches of up to 100",[244,19921,19922],{},"Sends each batch through an API Gateway endpoint",[244,19924,19925,19926],{},"The Lambda function forwards it to the Township Canada ",[45,19927,4395],{"href":4394},[244,19929,19930],{},"GPS coordinates come back as structured JSON",[244,19932,19933],{},"Snowflake maps the results back to the original rows",[12,19935,19936],{},"From the analyst's perspective, it looks like any other SQL function:",[1736,19938,19940],{"className":4875,"code":19939,"language":4877,"meta":274,"style":274},"SELECT\n    well_id,\n    well_name,\n    uwi_location,\n    TOWNSHIP_CONVERT(uwi_location):latitude::FLOAT AS latitude,\n    TOWNSHIP_CONVERT(uwi_location):longitude::FLOAT AS longitude\nFROM aer_wells\nWHERE formation = 'Cardium';\n",[65,19941,19942,19946,19950,19955,19960,19965,19970,19975],{"__ignoreMap":274},[2024,19943,19944],{"class":4882,"line":4883},[2024,19945,4886],{},[2024,19947,19948],{"class":4882,"line":275},[2024,19949,8918],{},[2024,19951,19952],{"class":4882,"line":498},[2024,19953,19954],{},"    well_name,\n",[2024,19956,19957],{"class":4882,"line":4899},[2024,19958,19959],{},"    uwi_location,\n",[2024,19961,19962],{"class":4882,"line":4905},[2024,19963,19964],{},"    TOWNSHIP_CONVERT(uwi_location):latitude::FLOAT AS latitude,\n",[2024,19966,19967],{"class":4882,"line":5622},[2024,19968,19969],{},"    TOWNSHIP_CONVERT(uwi_location):longitude::FLOAT AS longitude\n",[2024,19971,19972],{"class":4882,"line":5637},[2024,19973,19974],{},"FROM aer_wells\n",[2024,19976,19977],{"class":4882,"line":5658},[2024,19978,19979],{},"WHERE formation = 'Cardium';\n",[12,19981,19982],{},"No Python notebook. No CSV download. No separate ETL pipeline. The conversion happens where the data lives.",[12,19984,368,19985,19987],{},[45,19986,14236],{"href":8852}," walks through every step: Lambda deployment, API Gateway configuration, IAM roles, and Snowflake integration objects. A data engineer can have it running in under an hour.",[12,19989,19990,19991,68,19993,68,19995,82,19997,60],{},"The Snowflake Native App also includes built-in functions that work immediately after install: ",[65,19992,9113],{},[65,19994,9125],{},[65,19996,14247],{},[65,19998,14251],{},[12,20000,20001],{},[128,20002],{"alt":20003,"src":3937},"Batch-convert thousands of DLS legal land descriptions in one operation - the same engine that powers Snowflake enrichment",[24,20005,20007],{"id":20006},"real-world-example-alberta-well-location-enrichment","Real-World Example: Alberta Well Location Enrichment",[12,20009,20010,20011,20013,20014,20016],{},"An Alberta operator maintains a wells table with 12,000 records from AER public data. Each row has a UWI-format legal land description like ",[65,20012,7020],{}," - a quarter section reference in the ",[45,20015,16008],{"href":3702},". The production analytics team needs GPS coordinates to:",[241,20018,20019,20022,20025,20028],{},[244,20020,20021],{},"Plot all active wells on a map dashboard",[244,20023,20024],{},"Calculate distances between wellpads and processing facilities",[244,20026,20027],{},"Join well locations against pipeline right-of-way geometries",[244,20029,20030],{},"Run proximity analysis for new drilling applications",[12,20032,20033],{},"Before the Snowflake integration, enriching the full table meant a weekly Python job that pulled data out, called the API, and loaded results back in. With Snowflake DLS enrichment, the team runs a single CTAS query:",[1736,20035,20037],{"className":4875,"code":20036,"language":4877,"meta":274,"style":274},"CREATE TABLE wells_with_gps AS\nSELECT\n    w.*,\n    TOWNSHIP_CONVERT(w.legal_land_description):latitude::FLOAT AS latitude,\n    TOWNSHIP_CONVERT(w.legal_land_description):longitude::FLOAT AS longitude\nFROM wells w;\n",[65,20038,20039,20044,20048,20053,20058,20063],{"__ignoreMap":274},[2024,20040,20041],{"class":4882,"line":4883},[2024,20042,20043],{},"CREATE TABLE wells_with_gps AS\n",[2024,20045,20046],{"class":4882,"line":275},[2024,20047,4886],{},[2024,20049,20050],{"class":4882,"line":498},[2024,20051,20052],{},"    w.*,\n",[2024,20054,20055],{"class":4882,"line":4899},[2024,20056,20057],{},"    TOWNSHIP_CONVERT(w.legal_land_description):latitude::FLOAT AS latitude,\n",[2024,20059,20060],{"class":4882,"line":4905},[2024,20061,20062],{},"    TOWNSHIP_CONVERT(w.legal_land_description):longitude::FLOAT AS longitude\n",[2024,20064,20065],{"class":4882,"line":5622},[2024,20066,20067],{},"FROM wells w;\n",[12,20069,20070],{},"12,000 rows process in about two minutes. The enriched table stays in Snowflake, linked to the source, and the conversion runs again whenever the source updates - on schedule, in SQL, with full lineage.",[12,20072,20073,20074,20076],{},"For companies already doing ",[45,20075,14404],{"href":4845}," through the web app, the Snowflake integration moves that same capability into the data warehouse where it can be automated and version-controlled.",[12,20078,20079],{},[128,20080],{"alt":20081,"src":131},"Verify Snowflake-converted coordinates against the Township Canada interactive map with parcel boundaries",[24,20083,20085],{"id":20084},"spatial-analysis-without-leaving-snowflake","Spatial Analysis Without Leaving Snowflake",[12,20087,20088],{},"Once you have GPS coordinates, Snowflake's built-in geospatial functions open up analysis that previously required exporting to a GIS tool:",[1736,20090,20092],{"className":4875,"code":20091,"language":4877,"meta":274,"style":274},"-- Find all Cardium wells within 10 km of a compressor station\nWITH well_coords AS (\n    SELECT\n        well_id,\n        legal_land_description,\n        TOWNSHIP_CONVERT(legal_land_description):latitude::FLOAT AS lat,\n        TOWNSHIP_CONVERT(legal_land_description):longitude::FLOAT AS lon\n    FROM aer_wells\n    WHERE formation = 'Cardium'\n)\nSELECT\n    well_id,\n    legal_land_description,\n    ST_DISTANCE(\n        TO_GEOGRAPHY(ST_MAKEPOINT(lon, lat)),\n        TO_GEOGRAPHY(ST_MAKEPOINT(-114.0719, 51.0447))\n    ) \u002F 1000 AS distance_km\nFROM well_coords\nWHERE ST_DISTANCE(\n        TO_GEOGRAPHY(ST_MAKEPOINT(lon, lat)),\n        TO_GEOGRAPHY(ST_MAKEPOINT(-114.0719, 51.0447))\n    ) \u002F 1000 \u003C 10\nORDER BY distance_km;\n",[65,20093,20094,20099,20104,20108,20113,20118,20123,20128,20133,20138,20142,20146,20150,20155,20160,20165,20170,20175,20180,20185,20189,20193,20198],{"__ignoreMap":274},[2024,20095,20096],{"class":4882,"line":4883},[2024,20097,20098],{},"-- Find all Cardium wells within 10 km of a compressor station\n",[2024,20100,20101],{"class":4882,"line":275},[2024,20102,20103],{},"WITH well_coords AS (\n",[2024,20105,20106],{"class":4882,"line":498},[2024,20107,14447],{},[2024,20109,20110],{"class":4882,"line":4899},[2024,20111,20112],{},"        well_id,\n",[2024,20114,20115],{"class":4882,"line":4905},[2024,20116,20117],{},"        legal_land_description,\n",[2024,20119,20120],{"class":4882,"line":5622},[2024,20121,20122],{},"        TOWNSHIP_CONVERT(legal_land_description):latitude::FLOAT AS lat,\n",[2024,20124,20125],{"class":4882,"line":5637},[2024,20126,20127],{},"        TOWNSHIP_CONVERT(legal_land_description):longitude::FLOAT AS lon\n",[2024,20129,20130],{"class":4882,"line":5658},[2024,20131,20132],{},"    FROM aer_wells\n",[2024,20134,20135],{"class":4882,"line":5678},[2024,20136,20137],{},"    WHERE formation = 'Cardium'\n",[2024,20139,20140],{"class":4882,"line":5698},[2024,20141,6370],{},[2024,20143,20144],{"class":4882,"line":5718},[2024,20145,4886],{},[2024,20147,20148],{"class":4882,"line":5737},[2024,20149,8918],{},[2024,20151,20152],{"class":4882,"line":5743},[2024,20153,20154],{},"    legal_land_description,\n",[2024,20156,20157],{"class":4882,"line":5749},[2024,20158,20159],{},"    ST_DISTANCE(\n",[2024,20161,20162],{"class":4882,"line":10053},[2024,20163,20164],{},"        TO_GEOGRAPHY(ST_MAKEPOINT(lon, lat)),\n",[2024,20166,20167],{"class":4882,"line":10065},[2024,20168,20169],{},"        TO_GEOGRAPHY(ST_MAKEPOINT(-114.0719, 51.0447))\n",[2024,20171,20172],{"class":4882,"line":10077},[2024,20173,20174],{},"    ) \u002F 1000 AS distance_km\n",[2024,20176,20177],{"class":4882,"line":10119},[2024,20178,20179],{},"FROM well_coords\n",[2024,20181,20182],{"class":4882,"line":10128},[2024,20183,20184],{},"WHERE ST_DISTANCE(\n",[2024,20186,20187],{"class":4882,"line":10133},[2024,20188,20164],{},[2024,20190,20191],{"class":4882,"line":10139},[2024,20192,20169],{},[2024,20194,20195],{"class":4882,"line":10161},[2024,20196,20197],{},"    ) \u002F 1000 \u003C 10\n",[2024,20199,20200],{"class":4882,"line":10176},[2024,20201,20202],{},"ORDER BY distance_km;\n",[12,20204,20205,20206,20208],{},"Proximity searches, clustering analysis, and geofencing queries all become SQL operations. No round-trip to ArcGIS or QGIS required. (For teams that do need the results in ArcGIS, the ",[45,20207,6938],{"href":433}," adds a native DLS\u002FNTS locator directly inside ArcGIS Pro and ArcGIS Online.)",[24,20210,20212],{"id":20211},"databricks-alternative","Databricks Alternative",[12,20214,20215,20216,20218],{},"If your data platform runs on Databricks, the same Township Canada API integrates through a Python UDF. The Databricks approach uses a ",[65,20217,15022],{}," that calls the Batch API in chunks of 100 rows - functionally identical to the Snowflake External Function, just written in Python instead of SQL.",[12,20220,20221],{},"Township Canada also publishes DLS grid boundary polygons as a Delta Sharing dataset. This enables spatial joins against section and township boundaries directly in Databricks or Snowflake, without individual API calls for each row.",[12,20223,20224,20225,20227,20228,60],{},"Both the Databricks UDF code and Delta Sharing access details are covered in the ",[45,20226,8853],{"href":8852},". For Node.js applications that need the same conversions outside the warehouse, see the ",[45,20229,20230,20232],{"href":17526},[65,20231,6155],{}," TypeScript package",[24,20234,20236],{"id":20235},"the-only-dls-conversion-on-snowflake","The Only DLS Conversion on Snowflake",[12,20238,20239],{},"As of March 2026, Township Canada is the only DLS and NTS conversion available natively on Snowflake or Databricks. CARTO offers geospatial analytics on Snowflake but has no support for Canadian survey grid systems. Desktop tools like SCADALink don't integrate with modern data warehouses at all - and at $1,200 per seat, they cost significantly more. If your warehouse data references DLS locations, this is currently the only way to enrich it without leaving Snowflake.",[24,20241,1356],{"id":1355},[12,20243,20244],{},"The External Function uses the Township Canada Batch API. Pricing scales with monthly volume:",[660,20246,20247,20260],{},[663,20248,20249],{},[666,20250,20251,20254,20257],{},[669,20252,20253],{},"Monthly Rows Converted",[669,20255,20256],{},"API Tier",[669,20258,20259],{},"Price",[681,20261,20262,20272,20282],{},[666,20263,20264,20267,20269],{},[686,20265,20266],{},"Up to 1,000",[686,20268,6673],{},[686,20270,20271],{},"$40\u002Fmo",[666,20273,20274,20277,20279],{},[686,20275,20276],{},"Up to 10,000",[686,20278,6684],{},[686,20280,20281],{},"$200\u002Fmo",[666,20283,20284,20287,20289],{},[686,20285,20286],{},"Up to 100,000",[686,20288,6695],{},[686,20290,20291],{},"$1,000\u002Fmo",[12,20293,20294,20295,20299],{},"For companies already running ",[45,20296,20298],{"href":20297},"\u002Flearn\u002Findustries\u002Foil-and-gas","oil and gas data workflows"," through Township Canada's web app, the API integration adds warehouse-native conversion without changing existing subscriptions.",[12,20301,20302,20303,60],{},"Full API pricing and tier details are on the ",[45,20304,6707],{"href":3965},[24,20306,20308],{"id":20307},"related-resources","Related Resources",[241,20310,20311,20316,20321,20327,20333],{},[244,20312,20313,20315],{},[45,20314,8804],{"href":4871}," - SQL patterns for conversion: mixed LLD formats, Native App validation functions, dbt model integration",[244,20317,20318,20320],{},[45,20319,14179],{"href":8949}," - Step-by-step walkthrough with SQL examples and scheduling",[244,20322,20323,20326],{},[45,20324,20325],{"href":8852},"Snowflake External Function Guide"," - Step-by-step setup instructions",[244,20328,20329,20332],{},[45,20330,20331],{"href":4394},"Batch API Guide"," - Detailed API documentation",[244,20334,20335,20338],{},[45,20336,20337],{"href":3965},"API Documentation"," - Pricing and interactive API explorer",[24,20340,8758],{"id":8757},[1863,20342,20343,20351,20358],{},[244,20344,20345,7050,20348,20350],{},[19,20346,20347],{},"Get a Batch API key",[45,20349,7198],{"href":9785}," - starts at $40\u002Fmonth",[244,20352,20353,15452,20355,20357],{},[19,20354,15461],{},[45,20356,8852],{"href":8852}," - covers Lambda, API Gateway, IAM, and Snowflake configuration",[244,20359,20360,18950,20362,20365],{},[19,20361,15469],{},[65,20363,20364],{},"SELECT TOWNSHIP_CONVERT('NW-36-42-3-W5')"," and see coordinates come back in your Snowflake worksheet",[12,20367,20368,20369,60],{},"The guide includes working code for both Snowflake and Databricks, cost estimation tables, and troubleshooting tips. If you run into issues, reach out at ",[45,20370,15480],{"href":15479},[4964,20372,4966],{},{"title":274,"searchDepth":275,"depth":275,"links":20374},[20375,20376,20377,20378,20379,20380,20381,20382,20383],{"id":19866,"depth":275,"text":19867},{"id":19906,"depth":275,"text":19907},{"id":20006,"depth":275,"text":20007},{"id":20084,"depth":275,"text":20085},{"id":20211,"depth":275,"text":20212},{"id":20235,"depth":275,"text":20236},{"id":1355,"depth":275,"text":1356},{"id":20307,"depth":275,"text":20308},{"id":8757,"depth":275,"text":8758},"https:\u002F\u002Fb9bukyyl5yuyveqq.public.blob.vercel-storage.com\u002Fimages\u002Fblog\u002F2026-03\u002F32783e38-925f-46ca-8fc2-0231e9611c84.jpeg","2026-03-12","Convert DLS legal land descriptions to GPS coordinates directly inside Snowflake SQL. No exports, no Python scripts - just one function call.",{},{"title":19847,"description":20386},"blog\u002Fsnowflake-dls-enrichment",[4990,9340,6763,300,6695],"I7GM1RfmYoKWmqPGxez-iHLhVhHulvAbQpKxXUlWvTs",{"id":20393,"title":20394,"author":7,"body":20395,"category":1168,"cover":20593,"date":20594,"description":20595,"extension":287,"meta":20596,"navigation":289,"path":20597,"seo":20598,"stem":20599,"tags":20600,"__hash__":20601},"blog\u002Fblog\u002Fbatch-conversion-csv-upload.md","Batch Conversion and CSV Upload - Convert Thousands of Locations at Once",{"type":9,"value":20396,"toc":20584},[20397,20400,20405,20409,20412,20416,20448,20456,20460,20463,20466,20470,20477,20481,20487,20493,20531,20535,20538,20567,20573,20575],[12,20398,20399],{},"A pipeline company needs GPS coordinates for 2,000 well locations listed in a regulatory filing. A crop insurance adjuster has 500 quarter sections to verify before planting season. A land broker is building a property portfolio with 300 rural parcels across three provinces. Converting these one at a time - typing each legal land description into a search box, copying the coordinates, pasting them into a spreadsheet - takes hours. For 2,000 records, it takes days.",[12,20401,3816,20402,20404],{},[45,20403,1543],{"href":3930}," does the same job in minutes.",[24,20406,20408],{"id":20407},"upload-a-csv-get-coordinates-back","Upload a CSV, Get Coordinates Back",[12,20410,20411],{},"The process starts with a CSV file. If your data lives in Excel, Google Sheets, or any database that exports to CSV, that file is your input. Upload it to Township Canada's batch converter, and the tool reads your column headers and previews the first few rows so you can confirm the data looks right.",[24,20413,20415],{"id":20414},"automatic-column-detection","Automatic Column Detection",[12,20417,20418,20419,20421,20422,68,20425,68,20427,68,20430,5057,20432,20435,20436,4740,20438,178,20440,4740,20442,4740,20444,20447],{},"The batch tool automatically detects your input columns by matching common header names. For ",[45,20420,5266],{"href":12163},", it recognizes headers like ",[65,20423,20424],{},"legal_land_description",[65,20426,2026],{},[65,20428,20429],{},"legal",[65,20431,11775],{},[65,20433,20434],{},"description",". For reverse conversion (GPS to legal), it looks for ",[65,20437,6253],{},[65,20439,6060],{},[65,20441,6262],{},[65,20443,5960],{},[65,20445,20446],{},"lon"," columns. The tool auto-detects which direction to convert based on what it finds.",[12,20449,20450,20451,9118,20453,20455],{},"Your legal land descriptions should be in a single column using the standard combined format - for example, ",[65,20452,7146],{},[65,20454,7020],{},". Any extra columns in your CSV (well name, operator, notes) are preserved and included in the Enhanced CSV export.",[24,20457,20459],{"id":20458},"error-handling","Error Handling",[12,20461,20462],{},"Not every row converts successfully. A typo in a legal land description, an invalid range number, or a section that doesn't exist in a particular township - these are common in large datasets. The batch tool doesn't stop at the first error. It processes every row, marks the ones that failed, and tells you why each one failed.",[12,20464,20465],{},"After the batch completes, you see a summary: 1,847 of 2,000 converted successfully, 153 failed. You can filter the results table to show only errors, review the specific reason each row failed, and fix the issues in your spreadsheet before re-uploading.",[24,20467,20469],{"id":20468},"processing-speed","Processing Speed",[12,20471,20472,20473,20476],{},"Batch conversion runs server-side - your browser uploads the file, and Township Canada processes each row against its coordinate database. A file with 1,000 ",[45,20474,4032],{"href":20475},"\u002Fglossary"," locations typically completes in under 30 seconds. Larger files (up to the 5,000-row limit) take a few minutes depending on the mix of survey systems.",[24,20478,20480],{"id":20479},"export-to-every-format-you-need","Export to Every Format You Need",[12,20482,20483],{},[128,20484],{"alt":20485,"src":20486},"Batch conversion results with error summary","\u002Fimages\u002Fblog\u002Fbatch-conversion-csv-upload\u002Fresults.webp",[12,20488,20489,20490,2609],{},"Once conversion is complete, results are available in ",[45,20491,20492],{"href":4424},"multiple export formats",[241,20494,20495,20501,20506,20511,20516,20521,20526],{},[244,20496,20497,20500],{},[19,20498,20499],{},"Enhanced CSV"," - Your original CSV with all existing columns preserved, plus latitude, longitude, province, municipality, and status columns appended. Open it in Excel or import it into any database.",[244,20502,20503,20505],{},[19,20504,446],{}," - A clean spreadsheet with inputs, coordinates, and conversion status.",[244,20507,20508,20510],{},[19,20509,458],{}," - For Google Earth. Each converted location appears as a placemark you can browse on the globe.",[244,20512,20513,20515],{},[19,20514,429],{}," - For ArcGIS, QGIS, and other GIS platforms. The standard format for spatial data in the geomatics industry.",[244,20517,20518,20520],{},[19,20519,440],{}," - For AutoCAD. Import converted locations directly into CAD drawings for site plans and engineering work.",[244,20522,20523,20525],{},[19,20524,452],{}," - For web mapping applications. Drop the file into Mapbox, Leaflet, or any JavaScript mapping library.",[244,20527,20528,20530],{},[19,20529,16850],{}," - A formatted report with all converted locations, coordinates, and a map overview.",[24,20532,20534],{"id":20533},"who-uses-batch-conversion","Who Uses Batch Conversion",[12,20536,20537],{},"Batch conversion is built for anyone processing more than a handful of locations at a time:",[241,20539,20540,20546,20551,20557,20562],{},[244,20541,20542,20545],{},[19,20543,20544],{},"Oil and gas companies"," processing well licence locations, pipeline crossings, and facility coordinates from AER or other regulatory filings",[244,20547,20548,20550],{},[19,20549,18417],{}," verifying quarter section locations across hundreds of policy applications before a coverage deadline",[244,20552,20553,20556],{},[19,20554,20555],{},"Land brokers and real estate firms"," building databases of rural properties with GPS coordinates for mapping and analysis",[244,20558,20559,20561],{},[19,20560,18423],{}," converting parcel inventories from legal land descriptions to spatial data for GIS projects",[244,20563,20564,20566],{},[19,20565,16963],{}," mapping assessment sites from legal descriptions provided in regulatory permits",[12,20568,20569,20570,20572],{},"For development teams integrating conversions directly into production systems, the ",[45,20571,6927],{"href":4940}," provides programmatic access with real-time lookups, autocomplete, and batch endpoints.",[24,20574,7184],{"id":7183},[12,20576,20577,20578,20581,20582,60],{},"Batch conversion is available on the Business plan. Upload your first CSV on the ",[45,20579,20580],{"href":3930},"batch conversion page"," and run the conversion. For details on plan limits and export options, see ",[45,20583,1355],{"href":2964},{"title":274,"searchDepth":275,"depth":275,"links":20585},[20586,20587,20588,20589,20590,20591,20592],{"id":20407,"depth":275,"text":20408},{"id":20414,"depth":275,"text":20415},{"id":20458,"depth":275,"text":20459},{"id":20468,"depth":275,"text":20469},{"id":20479,"depth":275,"text":20480},{"id":20533,"depth":275,"text":20534},{"id":7183,"depth":275,"text":7184},"\u002Fimages\u002Fblog\u002Fbatch-conversion-csv-upload\u002Fcover.webp","2026-03-10","Upload a CSV with thousands of legal land descriptions and get GPS coordinates back for every row. Catch errors and export to Enhanced CSV, KML, Shapefile, DXF, GeoJSON, or PDF.",{},"\u002Fblog\u002Fbatch-conversion-csv-upload",{"title":20394,"description":20595},"blog\u002Fbatch-conversion-csv-upload",[1177,4991,1176],"CAzJnHoabI5OcG3I_NtLYxKz3rNZQcUVss4yASYvCv0",{"id":20603,"title":20604,"author":7,"body":20605,"category":503,"cover":17017,"date":20594,"description":20797,"extension":287,"meta":20798,"navigation":289,"path":9475,"seo":20799,"stem":20800,"tags":20801,"__hash__":20802},"blog\u002Fblog\u002Fdls-tools-alberta-well-closure.md","DLS Tools for Alberta Well Closure Professionals",{"type":9,"value":20606,"toc":20783},[20607,20610,20613,20616,20620,20623,20626,20630,20634,20645,20651,20655,20658,20665,20671,20675,20678,20681,20683,20687,20692,20698,20701,20705,20710,20716,20720,20725,20732,20736,20739,20767,20776],[12,20608,20609],{},"A closure company in Red Deer picks up a contract to abandon and remediate 40 wells from an inactive licensee. The acquisition package arrives as a spreadsheet - 40 rows of UWIs, each encoding a legal land description. Before anyone drives to a site, the project coordinator needs GPS coordinates for every well, a map showing the geographic spread, and a route plan for the field crews who will perform the downhole work.",[12,20611,20612],{},"Converting 40 LSDs by hand takes most of a morning. It also carries risk: a transposed range number or a wrong meridian puts coordinates kilometres from the actual well. In a $750 million industry where the AER tracks every closure against a specific LSD, that kind of error creates delays in regulatory filings and wasted days in the field.",[12,20614,20615],{},"This is the daily reality for Alberta's well closure sector - an industry where every job starts with a legal land description and every mistake in conversion has a cost.",[24,20617,20619],{"id":20618},"albertas-closure-mandate-and-the-scale-of-the-problem","Alberta's Closure Mandate and the Scale of the Problem",[12,20621,20622],{},"The AER mandates over $750 million in industry-wide closure spending for 2026, up from $700 million the year before. Alberta has 466,000 total wells on record. The Orphan Well Association manages thousands of additional sites where the original licensee no longer exists. Every one of those wells is identified by a DLS location - Legal Subdivision, Section, Township, Range, and Meridian.",[12,20624,20625],{},"For closure companies, the DLS system isn't optional. It's the addressing system for every well licence, every Directive 013 abandonment application, every environmental site assessment, and every reclamation certificate. The volume of DLS-to-GPS conversions happening across the industry every day is large, and it's growing as closure obligations increase.",[24,20627,20629],{"id":20628},"where-dls-conversion-fits-in-the-closure-workflow","Where DLS Conversion Fits in the Closure Workflow",[347,20631,20633],{"id":20632},"inventory-verification","Inventory Verification",[12,20635,20636,20637,20640,20641,20644],{},"When a closure company acquires a portfolio of wells, the first step is verifying that every LSD in the acquisition data resolves to a valid location. A UWI like ",[65,20638,20639],{},"100\u002F10-33-037-04W5\u002F00"," encodes an LSD - ",[19,20642,20643],{},"10-33-037-04W5"," - that should place the well near Sundre. If the data has a typo (the township reads 037 when it should be 038), the coordinates point to a different section. Catching that before it enters the project database prevents downstream errors in work orders and AER filings.",[12,20646,20647,20648,20650],{},"Upload the full UWI list to a ",[45,20649,4551],{"href":4389}," and the output flags any entries that don't resolve to a valid parcel. The validation step that used to happen manually - one LSD at a time - takes seconds for the entire inventory.",[347,20652,20654],{"id":20653},"field-crew-dispatch","Field Crew Dispatch",[12,20656,20657],{},"Closure work is physical. Abandonment rigs, environmental sampling crews, and reclamation teams all need to drive to specific well sites on rural range roads. The work order lists the site as an LSD; the truck's GPS needs latitude and longitude.",[12,20659,20660,20661,20664],{},"A wrong meridian is the most expensive conversion error in the field. ",[19,20662,20663],{},"LSD 06-18-039-05W5"," is near Nordegg in west-central Alberta. The same LSD at W4 is near Consort, roughly 250 kilometres east. A rig crew dispatched to the wrong meridian loses a full day of mobilization time - plus the fuel, accommodation, and scheduling costs of rerouting.",[12,20666,20667,20668,20670],{},"For multi-site campaigns, a ",[45,20669,1549],{"href":6902}," that accepts LSDs directly avoids the manual step of converting each site individually. Enter the closure site LSDs, get an optimized driving sequence with turn-by-turn directions on township and range roads.",[347,20672,20674],{"id":20673},"regulatory-filings","Regulatory Filings",[12,20676,20677],{},"Every AER closure filing - Directive 013 for abandonment, Directive 079 for reclamation - references the well by its legal land description and includes location coordinates. The filing needs to be consistent: the LSD on the application must match the coordinates on the location map. Using the same conversion source for both the field dispatch and the regulatory submission eliminates discrepancies.",[12,20679,20680],{},"Results that export to multiple formats (CSV for the application form, KML for the location map, Shapefile for GIS analysis) mean the filing team doesn't need to re-convert or reformat location data for each document in the submission package.",[24,20682,1532],{"id":1531},[347,20684,20686],{"id":20685},"_1-batch-convert-a-closure-inventory","1. Batch-Convert a Closure Inventory",[12,20688,20689],{},[128,20690],{"alt":20691,"src":3937},"Upload a CSV of closure site UWIs and convert hundreds of LSDs to GPS coordinates in seconds",[12,20693,20694,20695,20697],{},"A remediation company managing 200 sites across central Alberta needs GPS coordinates for the full inventory. Upload the CSV to Township Canada's ",[45,20696,4551],{"href":4389},". Every row gets coordinates and validation in seconds. The output includes a downloadable CSV with lat\u002Flng columns and a KML file that shows the entire project footprint in Google Earth.",[12,20699,20700],{},"The alternative - converting 200 LSDs one at a time - takes a full working day and introduces manual transcription risk at every row.",[347,20702,20704],{"id":20703},"_2-plan-a-multi-site-field-day","2. Plan a Multi-Site Field Day",[12,20706,20707],{},[128,20708],{"alt":20709,"src":17663},"Multi-stop route planner sequencing closure sites across rural townships and ranges",[12,20711,20712,20713,20715],{},"An inspector visiting eight orphan well sites across Townships 42-45, Range 2-4 W5M, enters the LSDs into the ",[45,20714,1549],{"href":6902},". The tool converts each LSD to coordinates and calculates the most efficient driving order. Eight stops, optimized sequence, turn-by-turn directions on rural roads. What used to be 30 minutes of manual planning and route guessing takes five minutes.",[347,20717,20719],{"id":20718},"_3-export-for-an-aer-filing-package","3. Export for an AER Filing Package",[12,20721,20722],{},[128,20723],{"alt":20724,"src":16815},"Export closure site coordinates as CSV, KML, Shapefile, GeoJSON, DXF, or PDF for AER submissions",[12,20726,20727,20728,20731],{},"After completing downhole abandonment at ",[19,20729,20730],{},"LSD 14-07-040-04W5",", the closure company needs to submit the completion report. The filing requires the site location in the application form (coordinates), a site map (KML), and a GIS layer for the environmental assessment (Shapefile). Convert the LSD once in Township Canada, export in all three formats, and attach them to the filing. One conversion produces every format the AER needs.",[24,20733,20735],{"id":20734},"what-to-look-for-in-a-dls-tool","What to Look For in a DLS Tool",[12,20737,20738],{},"Closure companies deal with DLS data at a scale that makes manual conversion impractical. The right tool needs to handle:",[241,20740,20741,20746,20751,20757,20762],{},[244,20742,20743,20745],{},[19,20744,17339],{},": Hundreds of LSDs at once, not one at a time",[244,20747,20748,20750],{},[19,20749,17714],{},": Flag entries that don't resolve - wrong meridians, out-of-range townships, missing data",[244,20752,20753,20756],{},[19,20754,20755],{},"Multiple export formats",": CSV, KML, Shapefile, GeoJSON, DXF, PDF - the formats that AER submissions, GIS platforms, and CAD software expect",[244,20758,20759,20761],{},[19,20760,17720],{},": Convert LSDs to an optimized driving sequence for field crews",[244,20763,20764,20766],{},[19,20765,17732],{},": Multiple users on the same account with shared project data",[12,20768,3816,20769,20771,20772,20775],{},[45,20770,8198],{"href":2964}," covers all of these for $20 per user per month. Individual consultants doing occasional lookups can start with a ",[45,20773,20774],{"href":4740},"free account"," - no credit card required. For teams processing closure inventories, running field operations, or filing AER applications, the Business plan fits the workflow.",[12,20777,20778,20779,20782],{},"If your closure company is converting LSDs manually, ",[45,20780,20781],{"href":4389},"try the batch converter"," with your next project list. The time difference is measurable from the first upload.",{"title":274,"searchDepth":275,"depth":275,"links":20784},[20785,20786,20791,20796],{"id":20618,"depth":275,"text":20619},{"id":20628,"depth":275,"text":20629,"children":20787},[20788,20789,20790],{"id":20632,"depth":498,"text":20633},{"id":20653,"depth":498,"text":20654},{"id":20673,"depth":498,"text":20674},{"id":1531,"depth":275,"text":1532,"children":20792},[20793,20794,20795],{"id":20685,"depth":498,"text":20686},{"id":20703,"depth":498,"text":20704},{"id":20718,"depth":498,"text":20719},{"id":20734,"depth":275,"text":20735},"How well closure companies use DLS conversion tools to locate closure sites, batch-process AER filings, and dispatch field crews across Alberta's 466,000 wells.",{},{"title":20604,"description":20797},"blog\u002Fdls-tools-alberta-well-closure",[510,17025,300,1461],"bm-_tuWZhRSYVSCiXjnKHVwLORvASC949L8ze_jJACA",{"id":20804,"title":20805,"author":7,"body":20806,"category":1168,"cover":21011,"date":21012,"description":21013,"extension":287,"meta":21014,"navigation":289,"path":21015,"seo":21016,"stem":21017,"tags":21018,"__hash__":21020},"blog\u002Fblog\u002Fnew-search-experience.md","The New Search Experience on Township Canada",{"type":9,"value":20807,"toc":21003},[20808,20811,20815,20818,20875,20880,20886,20890,20893,20899,20902,20906,20912,20919,20923,20926,20964,20972,20976,20982,20987,20996,20998],[12,20809,20810],{},"A land technician types \"NE 14-032-21 W2M\" into a search box. A surveyor enters \"52.3725, -114.7983\". A field supervisor searches for \"Rocky Mountain House\". On the old Township Canada, each of these required a different page or a different input mode. On the new platform, they all go into the same search box.",[24,20812,20814],{"id":20813},"one-search-box-every-format","One Search Box, Every Format",[12,20816,20817],{},"The rebuilt search on Township Canada accepts every input type the platform supports:",[241,20819,20820,20839,20851,20857,20869],{},[244,20821,20822,20825,20826,20828,20829,20832,20833,20836,20837,5893],{},[19,20823,20824],{},"DLS legal land descriptions"," - Quarter sections (",[65,20827,18287],{},"), sections (",[65,20830,20831],{},"32-021-04 W4M","), townships (",[65,20834,20835],{},"021-04 W4M","), and LSDs (",[65,20838,4724],{},[244,20840,20841,20844,20845,20847,20848,20850],{},[19,20842,20843],{},"NTS references"," - Quarter units (",[65,20846,5370],{},"), units, blocks, and map sheets used in ",[45,20849,295],{"href":47}," and parts of northern Canada",[244,20852,20853,20856],{},[19,20854,20855],{},"FPS grid references"," - Federal Permit System codes used in the Northwest Territories, Nunavut, and offshore areas",[244,20858,20859,20861,20862,20865,20866,5893],{},[19,20860,16718],{}," - Decimal degrees (",[65,20863,20864],{},"52.3725, -114.7983",") or degrees-minutes-seconds (",[65,20867,20868],{},"52°22'21\"N, 114°47'54\"W",[244,20870,20871,20874],{},[19,20872,20873],{},"Addresses and place names"," - Street addresses, city names, landmarks, and rural municipality names",[12,20876,20877],{},[128,20878],{"alt":20879,"src":3896},"Township Canada unified search box",[12,20881,20882,20883,20885],{},"The search identifies what you've entered and returns the corresponding location with its coordinates, ",[45,20884,13966],{"href":12163},", and position on the survey grid map.",[24,20887,20889],{"id":20888},"autocomplete-that-knows-canadian-land","Autocomplete That Knows Canadian Land",[12,20891,20892],{},"Start typing and suggestions appear. The autocomplete is tuned for Canadian legal land descriptions - it recognizes partial DLS notation, NTS references, and geographic names. If you type \"32-21 W\", it suggests townships matching that pattern. If you type \"Leduc\", it returns the town and surrounding legal land references.",[12,20894,20895],{},[128,20896],{"alt":20897,"src":20898},"Autocomplete suggestions as you type","\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Fautocomplete.webp",[12,20900,20901],{},"Results are proximity-biased. If your map is centred on central Alberta, suggestions prioritize locations in that area. Pan to Saskatchewan, and the same partial query returns Saskatchewan results first. This matters when you're working in a specific region and don't want to scroll through matches from three provinces away.",[24,20903,20905],{"id":20904},"reverse-geocoding-coordinates-to-legal-land","Reverse Geocoding: Coordinates to Legal Land",[12,20907,20908,20909,20911],{},"Enter GPS coordinates and Township Canada returns the legal land description for that point. This is reverse geocoding - going from lat\u002Flng back to the ",[45,20910,4032],{"href":20475}," or NTS reference.",[12,20913,20914,20915,20918],{},"This is useful when you have coordinates from a GPS device, a Google Maps pin, or a GIS dataset, and you need to know which quarter section, section, township, or NTS block those coordinates fall in. Enter ",[65,20916,20917],{},"51.0447, -114.0719"," and Township Canada tells you it's in the SE quarter of Section 14, Township 24, Range 1, West of the 5th Meridian - a location in southeast Calgary.",[24,20920,20922],{"id":20921},"multi-system-support","Multi-System Support",[12,20924,20925],{},"Canada uses several survey systems depending on the province:",[241,20927,20928,20936,20944,20952,20958],{},[244,20929,20930,9137,20933,20935],{},[19,20931,20932],{},"Alberta, Saskatchewan, Manitoba",[45,20934,1484],{"href":12163}," with townships, ranges, sections, quarter sections, and LSDs",[244,20937,20938,9137,20940,20943],{},[19,20939,295],{},[45,20941,20942],{"href":47},"National Topographic System (NTS)"," for most of the province, with DLS in the Peace River region",[244,20945,20946,9137,20948,20951],{},[19,20947,7400],{},[45,20949,20950],{"href":7354},"Geographic Townships"," with concessions and lots",[244,20953,20954,20957],{},[19,20955,20956],{},"Manitoba (near Winnipeg)",": River lots and parish lots along the Red and Assiniboine Rivers",[244,20959,20960,20963],{},[19,20961,20962],{},"Northern Canada and offshore",": Federal Permit System (FPS)",[12,20965,20966,20967,20971],{},"The new search handles all of these in a single input field. You don't need to select a province first or go to a province-specific converter page (though those ",[45,20968,20970],{"href":20969},"\u002Flegal-land-converter","dedicated converters"," still exist if you prefer them).",[24,20973,20975],{"id":20974},"search-results-on-the-map","Search Results on the Map",[12,20977,20978,20979,20981],{},"Every search result places a marker on the ",[45,20980,16487],{"href":9461}," and highlights the corresponding survey grid boundary. Search for a quarter section and you see its 160-acre outline. Search for a township and the full 36-section grid appears. Click on any highlighted grid cell to see its legal land description, area, and coordinates.",[12,20983,20984],{},[128,20985],{"alt":20986,"src":131},"Search results highlighted on the interactive map with survey grid boundaries",[12,20988,20989,20990,20993,20994,60],{},"You can save any search result directly to your ",[45,20991,20992],{"href":9692},"saved places"," for later reference, or add it as a stop in the ",[45,20995,1549],{"href":6902},[24,20997,7184],{"id":7183},[12,20999,21000,21001,5311],{},"The search is available immediately when you open Township Canada - no account required for basic lookups. Sign up for a free account to get more searches per month and access to saved places, batch conversion, and more. See ",[45,21002,1355],{"href":2964},{"title":274,"searchDepth":275,"depth":275,"links":21004},[21005,21006,21007,21008,21009,21010],{"id":20813,"depth":275,"text":20814},{"id":20888,"depth":275,"text":20889},{"id":20904,"depth":275,"text":20905},{"id":20921,"depth":275,"text":20922},{"id":20974,"depth":275,"text":20975},{"id":7183,"depth":275,"text":7184},"\u002Fimages\u002Fblog\u002Fnew-search-experience\u002Fcover.webp","2026-03-06","One search box that handles legal land descriptions, GPS coordinates, addresses, and place names. Autocomplete, reverse geocoding, and support for every Canadian survey system.",{},"\u002Fblog\u002Fnew-search-experience",{"title":20805,"description":21013},"blog\u002Fnew-search-experience",[1177,21019,1176],"Search","r7-cMCpjFAfCEq3KsNYipALpnosrlI-oy3o3SBlpF_g",{"id":21022,"title":21023,"author":7,"body":21024,"category":4024,"cover":21247,"date":21248,"description":21249,"extension":287,"meta":21250,"navigation":289,"path":19482,"seo":21251,"stem":21252,"tags":21253,"__hash__":21254},"blog\u002Fblog\u002Fcrop-insurance-legal-land-descriptions-march-deadline.md","How to Verify Crop Insurance Legal Land Descriptions Before the March 31 Deadline",{"type":9,"value":21025,"toc":21238},[21026,21029,21032,21036,21044,21051,21054,21058,21064,21091,21094,21102,21106,21109,21115,21125,21129,21135,21149,21155,21159,21162,21168,21172,21175,21179,21182,21195,21202,21206,21214,21217,21221,21224,21235],[12,21027,21028],{},"A Saskatchewan grain farmer with eight insured quarter sections pulls up his SCIC policy renewal to review before the March 31 deadline. Seven descriptions match perfectly. The eighth reads NW 22-032-21 W3M - but that's the quarter he sold last fall. The quarter he's actually farming this year is NW 22-032-21 W2M, one meridian east. A single wrong character in the crop insurance legal land description, and 160 acres of coverage would apply to land he no longer owns.",[12,21030,21031],{},"This kind of mismatch happens more often than you'd think. Crop insurance legal land descriptions are the foundation of every SCIC and AFSC policy, and the March 31 deadline for Saskatchewan - and April 30 for Alberta - doesn't leave much room for corrections discovered at the last minute.",[24,21033,21035],{"id":21034},"why-crop-insurance-policies-use-legal-land-descriptions","Why Crop Insurance Policies Use Legal Land Descriptions",[12,21037,21038,21039,21043],{},"Prairie crop insurance doesn't use addresses. Most farmland doesn't have one. Instead, every insured parcel is identified by its legal land description - the quarter section notation from the ",[45,21040,21042],{"href":1482,"rel":21041},[220],"Dominion Land Survey (DLS) system"," that has divided Western Canada into a precise grid since 1871.",[12,21045,21046,21047,21050],{},"A quarter section is 160 acres: one-fourth of a 640-acre section. When SCIC or AFSC issues a policy, each insured parcel is listed as a specific quarter section. The description ",[1235,21048,21049],{},"is"," the policy. If the legal land description is wrong, the coverage is on the wrong land.",[12,21052,21053],{},"This is different from a home insurance policy where an address and a property description both point to the same building. On the prairies, a quarter section description is the only identifier. NW 14-032-21 W3M and NW 14-032-21 W2M are two parcels roughly 50 kilometres apart - and the only difference is a single digit in the meridian.",[24,21055,21057],{"id":21056},"how-to-read-a-quarter-section-on-your-policy","How to Read a Quarter Section on Your Policy",[12,21059,21060,21061,21063],{},"If you're looking at your SCIC or AFSC policy and see a description like ",[19,21062,3752],{},", here's what each part means:",[241,21065,21066,21071,21076,21081,21086],{},[244,21067,21068,21070],{},[19,21069,3762],{}," - the northwest quarter of the section (NE, SE, SW are the other three)",[244,21072,21073,21075],{},[19,21074,3768],{}," - Section 14 within the township",[244,21077,21078,21080],{},[19,21079,3774],{}," - Township 32 (north-south position in the survey grid)",[244,21082,21083,21085],{},[19,21084,3780],{}," - Range 21 (east-west position from the meridian)",[244,21087,21088,21090],{},[19,21089,3786],{}," - West of the 3rd Meridian (the reference line for central Saskatchewan)",[12,21092,21093],{},"That description identifies a specific 160-acre parcel approximately 20 kilometres south of Moose Jaw. Every quarter section in the DLS grid is unique - change any one of those numbers and you're pointing at a different piece of land.",[12,21095,21096,21097,21101],{},"You can enter any quarter section into the ",[45,21098,104],{"href":21099,"rel":21100},"https:\u002F\u002Fwww.townshipcanada.com\u002Fsaskatchewan-legal-land-converter",[220]," to see exactly where it sits on the map. If the location doesn't match the field you're farming, the description on your policy needs to be corrected before the deadline.",[24,21103,21105],{"id":21104},"verifying-your-insured-parcels-step-by-step","Verifying Your Insured Parcels Step by Step",[12,21107,21108],{},"With the SCIC deadline on March 31, 2026, here's a practical process for checking every crop insurance legal land description on your policy:",[12,21110,21111,21114],{},[19,21112,21113],{},"1. List every quarter section on your policy."," Pull out your SCIC (or AFSC) renewal and write down each legal land description. Most producers with mixed-grain operations insure 4–12 quarter sections.",[12,21116,21117,21120,21121,21124],{},[19,21118,21119],{},"2. Look up each one."," Enter each description into the ",[45,21122,1577],{"href":1575,"rel":21123},[220]," and confirm the location on the map. Does NE 07-048-22 W3M actually show the field north of the correction line that you seeded last spring? Or does it show a quarter section you've never farmed?",[12,21126,21127],{},[128,21128],{"alt":14030,"src":3896},[12,21130,21131,21134],{},[19,21132,21133],{},"3. Check for common errors."," The most frequent mistakes on crop insurance policies are:",[241,21136,21137,21140,21143,21146],{},[244,21138,21139],{},"Transposed range and township numbers (032-21 vs. 021-32)",[244,21141,21142],{},"Wrong meridian (W3M vs. W2M in Saskatchewan, W4M vs. W5M in Alberta)",[244,21144,21145],{},"Wrong quarter (NW vs. NE - a 160-acre difference)",[244,21147,21148],{},"Parcels you've sold, acquired, or changed lease status on since the last renewal",[12,21150,21151,21154],{},[19,21152,21153],{},"4. Contact your SCIC or AFSC office."," If anything doesn't match, call your local office or agent to correct the description before the deadline. These changes take time to process - don't wait until March 30.",[24,21156,21158],{"id":21157},"batch-verification-for-large-operations-and-adjusters","Batch Verification for Large Operations and Adjusters",[12,21160,21161],{},"If you're a crop insurance adjuster processing renewals for dozens of producers, or a large farming operation with 20+ insured quarter sections, checking descriptions one at a time isn't practical.",[12,21163,3816,21164,21167],{},[45,21165,1543],{"href":402,"rel":21166},[220]," takes a CSV list of quarter section descriptions and returns GPS coordinates for every parcel at once. Upload your list, get coordinates back in seconds, and review the results on a map. If any location looks wrong - a parcel 100 kilometres from the rest of the operation, for example - you've caught the error before it becomes a claims problem later in the season.",[12,21169,21170],{},[128,21171],{"alt":3936,"src":3937},[12,21173,21174],{},"For adjusters handling post-hail inspections, the same batch workflow converts a week's worth of loss reports into GPS waypoints for field visits. But the pre-season verification step - confirming that every policy description actually matches the right land - is where the biggest headaches get prevented.",[24,21176,21178],{"id":21177},"alberta-farmers-afsc-and-the-april-30-deadline","Alberta Farmers: AFSC and the April 30 Deadline",[12,21180,21181],{},"Alberta's crop insurance program through AFSC follows the same logic. Every insured parcel is identified by a legal land description in DLS format, but with different meridians - W4M for most of the agricultural belt, W5M for parcels west of roughly Red Deer.",[12,21183,21184,21185,21189,21190,60],{},"The AFSC declared-acres deadline typically falls around April 30, 2026. The verification process is identical: list every quarter section on your policy, ",[45,21186,21188],{"href":14019,"rel":21187},[220],"look each one up on the Alberta converter",", and confirm the map matches the field you're actually farming. For a detailed walkthrough of the AFSC process - including the most common meridian errors and batch verification for large operations - see ",[45,21191,21194],{"href":21192,"rel":21193},"https:\u002F\u002Fwww.townshipcanada.com\u002Fblog\u002Fafsc-declared-acres-verify-alberta-quarter-sections",[220],"how to verify your Alberta quarter sections before the AFSC April 30 deadline",[12,21196,21197,21198,21201],{},"Alberta descriptions look like ",[19,21199,21200],{},"SE 14-042-04 W4M"," - southeast quarter of Section 14, Township 42, Range 4, West of the 4th Meridian. That's about 160 acres east of Lacombe. If your policy says W5M instead of W4M, the coverage is pointing at land on the other side of the province.",[24,21203,21205],{"id":21204},"saskatchewans-satellite-forage-insurance-makes-accuracy-even-more-critical","Saskatchewan's Satellite Forage Insurance Makes Accuracy Even More Critical",[12,21207,21208,21209,21213],{},"For producers with forage coverage, SCIC's ",[45,21210,21212],{"href":1556,"rel":21211},[220],"new satellite-based forage insurance program"," calculates payouts at the township level using remote sensing data instead of rain gauges. Two quarter sections in the same township share the same satellite-derived coverage assessment, but a quarter section in the next township over could have a different premium and trigger.",[12,21215,21216],{},"If your forage policy lists a quarter section in the wrong township - even one township off - the coverage parameters could be calculated against satellite data for the wrong area entirely. Getting the legal land description right on forage policies is more consequential under the new program than it was under the old rainfall-based model.",[24,21218,21220],{"id":21219},"before-march-31","Before March 31",[12,21222,21223],{},"Review your SCIC policy now. Check every legal land description against the actual land you're farming this year. If you've bought, sold, or changed leases since last renewal, make sure the descriptions have been updated.",[12,21225,368,21226,21230,21231,21234],{},[45,21227,6913],{"href":21228,"rel":21229},"https:\u002F\u002Fwww.townshipcanada.com\u002Flsd-converter",[220]," handles all DLS formats for Saskatchewan and Alberta - quarter sections, legal subdivisions, sections, and full townships. For operations with a long list of parcels, the ",[45,21232,9432],{"href":402,"rel":21233},[220]," walks through the CSV upload process step by step.",[12,21236,21237],{},"The deadline won't move. The legal land descriptions on your policy should match the land under your feet.",{"title":274,"searchDepth":275,"depth":275,"links":21239},[21240,21241,21242,21243,21244,21245,21246],{"id":21034,"depth":275,"text":21035},{"id":21056,"depth":275,"text":21057},{"id":21104,"depth":275,"text":21105},{"id":21157,"depth":275,"text":21158},{"id":21177,"depth":275,"text":21178},{"id":21204,"depth":275,"text":21205},{"id":21219,"depth":275,"text":21220},"\u002Fimages\u002Fblog\u002Fcrop-insurance-legal-land-descriptions-march-deadline\u002Fcover.webp","2026-03-03","Crop insurance legal land descriptions must match your actual fields. Here's how to verify every quarter section on your SCIC or AFSC policy before the deadline.",{},{"title":21023,"description":21249},"blog\u002Fcrop-insurance-legal-land-descriptions-march-deadline",[541,294,1658,2779],"ws5DzdHCZQ28xsd_WEWf--EE55_fG1-BPk83AeNd8Ss",{"id":21256,"title":21257,"author":7,"body":21258,"category":503,"cover":21503,"date":21504,"description":21505,"extension":287,"meta":21506,"navigation":289,"path":8320,"seo":21507,"stem":21508,"tags":21509,"__hash__":21511},"blog\u002Fblog\u002Falberta-well-licence-legal-land-description.md","Every Alberta Well Licence Has a Legal Land Description - Here's How to Convert It",{"type":9,"value":21259,"toc":21496},[21260,21263,21270,21274,21277,21282,21285,21323,21334,21337,21341,21354,21357,21376,21379,21384,21387,21391,21394,21397,21417,21424,21429,21433,21440,21467,21470,21475,21479,21482,21485],[12,21261,21262],{},"A new AER well licence lands on your desk: licence number 0548321, surface location LSD 14-27-048-05W5. The field crew is heading out this afternoon for an initial site assessment, and they need GPS coordinates for their navigation system. The licence lists the location as a legal land description - a string of numbers that means nothing to a handheld GPS.",[12,21264,21265,21266,21269],{},"This is a routine scenario for anyone working in Alberta oil and gas. Every well licence issued by the Alberta Energy Regulator includes an ",[19,21267,21268],{},"alberta well licence legal land description"," as the official surface location. That location is also embedded inside the Unique Well Identifier (UWI) that follows the well through its entire lifecycle - from application to abandonment. Knowing how to read it and convert it to coordinates you can actually use in the field is a basic but critical skill.",[24,21271,21273],{"id":21272},"how-the-legal-land-description-sits-inside-a-uwi","How the Legal Land Description Sits Inside a UWI",[12,21275,21276],{},"Alberta's UWI format follows a standard pattern. A typical UWI looks like this:",[12,21278,21279],{},[19,21280,21281],{},"100\u002F14-27-048-05W5\u002F0",[12,21283,21284],{},"Breaking it down:",[241,21286,21287,21292,21297,21302,21307,21313,21318],{},[244,21288,21289,21291],{},[19,21290,4652],{}," - Location exception code (100 means bottom-hole at surface location)",[244,21293,21294,21296],{},[19,21295,3768],{}," - Legal Subdivision (LSD)",[244,21298,21299,21301],{},[19,21300,8036],{}," - Section",[244,21303,21304,21306],{},[19,21305,4683],{}," - Township",[244,21308,21309,21312],{},[19,21310,21311],{},"05"," - Range",[244,21314,21315,21317],{},[19,21316,4704],{}," - West of the 5th Meridian",[244,21319,21320,21322],{},[19,21321,5945],{}," - Event sequence number",[12,21324,4721,21325,21327,21328,21333],{},[19,21326,7146],{}," - is a standard ",[45,21329,21332],{"href":21330,"rel":21331},"https:\u002F\u002Fwww.townshipcanada.com\u002Fglossary",[220],"DLS (Dominion Land Survey) legal land description",". It identifies a specific 40-acre parcel: Legal Subdivision 14 of Section 27, Township 48, Range 5, West of the 5th Meridian. That's a piece of land roughly 20 kilometres west of Rocky Mountain House in west-central Alberta.",[12,21335,21336],{},"Every alberta well licence legal land description follows this same structure. Once you can read the UWI, you can pull the location out of any well licence, drilling spacing unit order, or AER compliance document.",[24,21338,21340],{"id":21339},"converting-a-well-licence-lsd-to-gps-coordinates","Converting a Well Licence LSD to GPS Coordinates",[12,21342,21343,21344,4107,21346,21350,21351,21353],{},"If you enter ",[19,21345,7146],{},[45,21347,21349],{"href":21228,"rel":21348},[220],"Township Canada's LSD converter",", you get back the centre-point GPS coordinates for that legal subdivision - approximately ",[19,21352,20864],{},". That's a lat\u002Flng pair you can drop directly into Google Maps, a Garmin unit, or any GIS application.",[12,21355,21356],{},"Here's what happens in practice:",[1863,21358,21359,21364,21370,21373],{},[244,21360,21361,21362],{},"Pull the LSD from the well licence or UWI: ",[19,21363,7146],{},[244,21365,21366,21367],{},"Enter it into ",[45,21368,6889],{"href":14019,"rel":21369},[220],[244,21371,21372],{},"Get back the GPS coordinates and see the parcel on the map",[244,21374,21375],{},"Copy the coordinates to your navigation device or field report",[12,21377,21378],{},"The coordinates are calculated from official survey data, accurate to the parcel centre. For a 40-acre LSD, that puts you within roughly 200 metres of any point within the parcel - close enough to find the access road and confirm the staked location.",[12,21380,21381],{},[128,21382],{"alt":21383,"src":3896},"Enter a legal land description and see it on the map with GPS coordinates",[12,21385,21386],{},"You can also go the other direction. If you're standing at a well site with GPS coordinates from a field visit, enter the lat\u002Flng to get back the corresponding legal land description. This is useful when verifying that a well is drilled at the licensed location or when recording GPS observations against the correct LSD in your field notes.",[24,21388,21390],{"id":21389},"when-one-location-becomes-hundreds","When One Location Becomes Hundreds",[12,21392,21393],{},"A single well licence is straightforward. But Alberta oil and gas companies rarely deal with just one location at a time.",[12,21395,21396],{},"Consider these real scenarios:",[241,21398,21399,21405,21411],{},[244,21400,21401,21404],{},[19,21402,21403],{},"Lease block review",": A company holds mineral rights across 24 sections in the Pembina field. That's up to 384 LSDs that need mapping for a development plan.",[244,21406,21407,21410],{},[19,21408,21409],{},"Pipeline corridor",": A proposed gathering system runs from LSD 03-15-042-04W5 to LSD 09-22-043-04W5, crossing roughly 40 quarter sections. Environmental assessment requires GPS coordinates for every parcel along the route.",[244,21412,21413,21416],{},[19,21414,21415],{},"Quarterly AER filings",": A mid-size producer reports on 150+ active wells each quarter. Verifying that each well's reported location matches its licence means processing 150 legal land descriptions.",[12,21418,21419,21420,21423],{},"Doing these conversions one at a time in a spreadsheet is tedious and error-prone - a transposed range number or wrong meridian sends a crew to the wrong location. Township Canada's ",[45,21421,1543],{"href":402,"rel":21422},[220]," handles this by accepting a CSV file of legal land descriptions and returning GPS coordinates for all of them at once. Upload 500 LSDs, get 500 coordinate pairs back in seconds. The output includes a processing report that flags any descriptions that didn't match, so you can catch data entry errors before they reach the field.",[12,21425,21426],{},[128,21427],{"alt":21428,"src":3937},"Upload a CSV of well licence locations and convert them all at once",[24,21430,21432],{"id":21431},"export-formats-for-aer-reporting-and-gis","Export Formats for AER Reporting and GIS",[12,21434,21435,21436,2609],{},"Once you've converted your locations, you need the results in a format your downstream systems can use. Township Canada supports multiple ",[45,21437,21439],{"href":421,"rel":21438},[220],"export formats",[241,21441,21442,21447,21452,21457,21462],{},[244,21443,21444,21446],{},[19,21445,446],{}," - Import directly into Excel, Access databases, or custom reporting tools used for AER submissions",[244,21448,21449,21451],{},[19,21450,458],{}," - Open in Google Earth to visualize well locations and lease blocks on satellite imagery",[244,21453,21454,21456],{},[19,21455,429],{}," - Load into ArcGIS, QGIS, or other GIS platforms for spatial analysis and mapping",[244,21458,21459,21461],{},[19,21460,452],{}," - Use in web-based mapping applications and custom dashboards",[244,21463,21464,21466],{},[19,21465,440],{}," - Import into AutoCAD for engineering drawings and site plans",[12,21468,21469],{},"For AER regulatory work, CSV is the most common choice - it integrates directly with the spreadsheets and databases most land departments already use. For field operations, KML files let supervisors see every well location plotted on a satellite map before dispatching crews.",[12,21471,21472],{},[128,21473],{"alt":21474,"src":16815},"Export conversion results in CSV, KML, Shapefile, GeoJSON, or DXF",[24,21476,21478],{"id":21477},"getting-the-alberta-well-licence-legal-land-description-right","Getting the Alberta Well Licence Legal Land Description Right",[12,21480,21481],{},"Accuracy matters. A wrong LSD on a well licence application can delay AER approval. A transposed township number in a field dispatch can waste an entire day of crew time. And a mismatched location in an environmental assessment creates compliance risk.",[12,21483,21484],{},"The DLS system has been the foundation of land administration in Alberta since the original survey in the 1880s. It isn't going anywhere - every new AER well licence, every surface lease agreement, and every mineral rights transaction still references a legal land description. Having a reliable way to move between those descriptions and GPS coordinates is part of the job.",[12,21486,21487,21488,21491,21492,491],{},"If you need to convert a single LSD from a well licence, ",[45,21489,1631],{"href":478,"rel":21490},[220]," does it in seconds. If you're processing hundreds of locations for a lease review or regulatory filing, the batch tool and CSV export will save you the manual work. ",[45,21493,21495],{"href":488,"rel":21494},[220],"See pricing and plan options",{"title":274,"searchDepth":275,"depth":275,"links":21497},[21498,21499,21500,21501,21502],{"id":21272,"depth":275,"text":21273},{"id":21339,"depth":275,"text":21340},{"id":21389,"depth":275,"text":21390},{"id":21431,"depth":275,"text":21432},{"id":21477,"depth":275,"text":21478},"\u002Fimages\u002Fblog\u002Falberta-well-licence-legal-land-description\u002Fcover.webp","2026-02-24","Alberta well licence legal land descriptions are embedded in every UWI. Learn how to read the location component and convert it to GPS coordinates.",{},{"title":21257,"description":21505},"blog\u002Falberta-well-licence-legal-land-description",[4988,2779,1461,21510],"Well Licence","4j909QoVhJiYonf1OFeMf3TJ2XoRJFXnFNWEO7VrX2s",{"id":21513,"title":21514,"author":7,"body":21515,"category":503,"cover":21674,"date":21675,"description":21676,"extension":287,"meta":21677,"navigation":289,"path":21678,"seo":21679,"stem":21680,"tags":21681,"__hash__":21682},"blog\u002Fblog\u002Fsaskatchewan-satellite-crop-insurance-legal-land-descriptions.md","How Saskatchewan's New Satellite Crop Insurance Uses Legal Land Descriptions",{"type":9,"value":21516,"toc":21666},[21517,21520,21527,21531,21534,21537,21541,21551,21558,21561,21565,21572,21580,21583,21588,21592,21595,21621,21625,21634,21637,21641,21647,21658,21663],[12,21518,21519],{},"If you run cattle or grow hay in Saskatchewan, you probably know the old Forage Rainfall Insurance Program (FRIP) had a problem: a rain gauge 30 kilometres from your pasture doesn't tell you much about what actually fell on your land. For 2026, Saskatchewan Crop Insurance Corporation (SCIC) replaced FRIP with a new satellite-based forage insurance program - and the way coverage is calculated ties directly to legal land descriptions and the township grid.",[12,21521,21522,21523,21526],{},"Applications close ",[19,21524,21525],{},"March 31, 2026",". Here's what producers and crop insurance adjusters need to know.",[24,21528,21530],{"id":21529},"what-changed-satellites-replace-rain-gauges","What Changed: Satellites Replace Rain Gauges",[12,21532,21533],{},"Under the old FRIP model, payouts were triggered when rainfall at a designated weather station dropped below a threshold. The problem was obvious to anyone who's worked in agriculture on the prairies: rain doesn't fall evenly. A thunderstorm could drench one township and miss the next one entirely, but if both shared the same reference station, they got the same payout - or lack of one.",[12,21535,21536],{},"The new satellite forage insurance program uses remote sensing data to measure actual soil moisture and vegetation conditions across Saskatchewan. Instead of relying on a single ground measurement, satellite imagery captures conditions across entire areas, giving a more accurate picture of forage growing conditions on a township-by-township basis.",[24,21538,21540],{"id":21539},"why-townships-matter-for-your-coverage","Why Townships Matter for Your Coverage",[12,21542,21543,21544,21547,21548,60],{},"Here's where ",[45,21545,5266],{"href":1482,"rel":21546},[220]," come in. Under the new program, coverage parameters - including the premium rate and payout triggers - are calculated at the ",[19,21549,21550],{},"township level",[12,21552,21553,21554,21557],{},"In the ",[45,21555,21042],{"href":21330,"rel":21556},[220]," that covers Saskatchewan, a township is a 6-by-6 grid of sections, totalling 36 sections or roughly 23,000 acres. Each township is identified by its township number (north-south position) and range number (east-west position from a meridian). For example, Township 32, Range 21, West of the 2nd Meridian (Twp 32-Rg 21-W2M) covers an area southwest of Yorkton.",[12,21559,21560],{},"That means two quarter sections in the same township get the same satellite-derived coverage assessment, but a quarter section one mile north - if it falls in a different township - could have a different premium and trigger point. Knowing exactly which township your forage land sits in matters more than it used to.",[24,21562,21564],{"id":21563},"how-to-check-which-township-your-land-is-in","How to Check Which Township Your Land Is In",[12,21566,21567,21568,21571],{},"Most Saskatchewan producers know their quarter section by heart. The format looks like this: ",[19,21569,21570],{},"NW 14-032-21 W2M"," - the northwest quarter of Section 14, Township 32, Range 21, West of the 2nd Meridian. The township number is already embedded in that description (032 in this example).",[12,21573,21574,21575,21579],{},"But if you're buying or leasing new pasture, or if you're a crop insurance adjuster processing applications across dozens of parcels, confirming township boundaries for unfamiliar land takes time. You can enter any ",[45,21576,21578],{"href":21099,"rel":21577},[220],"Saskatchewan legal land description"," into Township Canada's converter and see exactly where it sits on the map - including which township it belongs to and the boundaries of that township on the DLS grid overlay.",[12,21581,21582],{},"For example, entering \"NW 14-032-21 W2M\" returns GPS coordinates (approximately 51.25, -103.27) and shows the parcel on the survey grid map. You can visually confirm which township the parcel falls in, see neighbouring townships, and check if parcels on either side of a township line end up in different coverage zones.",[12,21584,21585],{},[128,21586],{"alt":21587,"src":131},"Search results showing a quarter section on the interactive map with DLS grid overlay",[24,21589,21591],{"id":21590},"what-this-means-for-producers","What This Means for Producers",[12,21593,21594],{},"A few practical points for the 2026 application season:",[241,21596,21597,21603,21609,21615],{},[244,21598,21599,21602],{},[19,21600,21601],{},"Check every parcel separately."," If you have forage on quarter sections that span two townships, they may fall under different coverage calculations. Don't assume uniform coverage across your operation.",[244,21604,21605,21608],{},[19,21606,21607],{},"New land, new township."," If you're leasing additional pasture for 2026, confirm which township it falls in before assuming the same coverage terms as your home quarter.",[244,21610,21611,21614],{},[19,21612,21613],{},"Keep records organized."," SCIC requires legal land descriptions on every application. Having accurate quarter section descriptions ready - and knowing which township each one belongs to - speeds up the process.",[244,21616,21617,21620],{},[19,21618,21619],{},"Coverage is for tame and native forage."," The satellite program covers hay and pasture land. Annual crops are handled separately under Saskatchewan's multi-peril crop insurance.",[24,21622,21624],{"id":21623},"manitoba-is-watching-too","Manitoba Is Watching Too",[12,21626,21627,21628,21633],{},"Saskatchewan isn't alone in moving toward satellite-based insurance. Manitoba Agricultural Services Corporation (MASC) has been piloting a similar satellite-based forage program for the 2026 crop year. Manitoba also uses the DLS system, so the same township-level logic applies - though Manitoba adds the complexity of ",[45,21629,21632],{"href":21630,"rel":21631},"https:\u002F\u002Fwww.townshipcanada.com\u002Fmanitoba-legal-land-converter",[220],"river lots and parish lots"," near Winnipeg and along the Red and Assiniboine Rivers.",[12,21635,21636],{},"If you operate in both provinces, tracking which survey system applies to each parcel becomes even more relevant.",[24,21638,21640],{"id":21639},"the-march-31-deadline","The March 31 Deadline",[12,21642,21643,21644,21646],{},"Applications for Saskatchewan's satellite forage insurance close on ",[19,21645,21525],{},". If you haven't applied yet, you'll need the legal land description for every forage quarter section you want to insure. Contact your local SCIC office or visit their website to start the application.",[12,21648,21649,21650,21653,21654,21657],{},"If you need to look up or verify legal land descriptions for your forage land, ",[45,21651,1631],{"href":478,"rel":21652},[220]," handles all Saskatchewan DLS formats - quarter sections, LSDs, sections, and full townships. You can also use the ",[45,21655,1543],{"href":402,"rel":21656},[220]," if you're processing multiple parcels at once, which is especially useful for adjusters and agencies handling applications across a wide area.",[12,21659,21660],{},[128,21661],{"alt":21662,"src":3937},"Batch convert a list of legal land descriptions to GPS coordinates at once",[12,21664,21665],{},"Satellite technology is making forage insurance more accurate. The township grid that Saskatchewan producers have used for generations is the framework that ties it all together.",{"title":274,"searchDepth":275,"depth":275,"links":21667},[21668,21669,21670,21671,21672,21673],{"id":21529,"depth":275,"text":21530},{"id":21539,"depth":275,"text":21540},{"id":21563,"depth":275,"text":21564},{"id":21590,"depth":275,"text":21591},{"id":21623,"depth":275,"text":21624},{"id":21639,"depth":275,"text":21640},"\u002Fimages\u002Fblog\u002Fsaskatchewan-satellite-crop-insurance-legal-land-descriptions\u002Fcover.webp","2026-02-21","Saskatchewan's satellite forage insurance replaces rainfall gauges with satellite data. Coverage is set at the township level - here's what that means for producers.",{},"\u002Fblog\u002Fsaskatchewan-satellite-crop-insurance-legal-land-descriptions",{"title":21514,"description":21676},"blog\u002Fsaskatchewan-satellite-crop-insurance-legal-land-descriptions",[541,294,1658],"N6zLvF80f8jkJJ-CgFzidu72suwxIVHbyOTNnY6UCbc",{"id":21684,"title":21685,"author":7,"body":21686,"category":1168,"cover":21702,"date":21928,"description":21929,"extension":287,"meta":21930,"navigation":289,"path":15521,"seo":21931,"stem":21932,"tags":21933,"__hash__":21934},"blog\u002Fblog\u002Fthe-new-township-canada.md","Introducing the New Township Canada - Rebuilt for 2026",{"type":9,"value":21687,"toc":21917},[21688,21691,21694,21697,21703,21707,21710,21763,21767,21780,21784,21790,21793,21797,21802,21809,21816,21820,21826,21832,21836,21841,21848,21852,21858,21874,21876,21882,21888,21892,21895,21903,21907,21910],[12,21689,21690],{},"Township Canada has been converting legal land descriptions to GPS coordinates since 2017. In that time, the platform has processed millions of conversions for land agents, pipeline engineers, surveyors, real estate professionals, crop insurance adjusters, and dozens of other roles across the Canadian land industry.",[12,21692,21693],{},"The original platform did its job well. But after nine years, the underlying technology had limits. Adding new features meant working around old constraints. The search couldn't handle all input formats. Batch processing topped out at a few hundred records. There was no way to save locations or plan routes. The API had a single key per account.",[12,21695,21696],{},"So we rebuilt it. Not a redesign - a full rebuild from the foundation up.",[12,21698,21699],{},[128,21700],{"alt":21701,"src":21702},"The new Township Canada platform","\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Fcover.webp",[24,21704,21706],{"id":21705},"whats-new","What's New",[12,21708,21709],{},"Here's what the new Township Canada includes:",[241,21711,21712,21721,21727,21733,21739,21745,21751,21757],{},[244,21713,21714,21717,21718,21720],{},[19,21715,21716],{},"Unified search"," - One search box that accepts legal land descriptions (",[45,21719,4032],{"href":20475},", NTS, FPS), GPS coordinates, addresses, and place names. Autocomplete suggestions appear as you type.",[244,21722,21723,21726],{},[19,21724,21725],{},"Batch conversion with CSV upload"," - Upload a spreadsheet of legal land descriptions and get coordinates back for every row. Map columns, handle errors, and export results to CSV, KML, Shapefile, DXF, GeoJSON, or PDF.",[244,21728,21729,21732],{},[19,21730,21731],{},"Route planner"," - Add multiple stops using legal land descriptions or coordinates, optimize the order, and get driving directions. Built for field visits across rural Alberta, Saskatchewan, and Manitoba.",[244,21734,21735,21738],{},[19,21736,21737],{},"Projects and saved places"," - Save any location with one click. Organize saves into projects with custom categories. Share projects with your team.",[244,21740,21741,21744],{},[19,21742,21743],{},"Unlimited API keys"," - Create separate keys for development, staging, and production. Name them, rotate them, revoke them individually.",[244,21746,21747,21750],{},[19,21748,21749],{},"AI assistant"," - Ask questions in plain language. \"Find all sections in Township 32, Range 21, West of the 2nd Meridian\" works.",[244,21752,21753,21756],{},[19,21754,21755],{},"New export formats"," - Download results as PDF, CSV, KML, Shapefile, DXF, or GeoJSON depending on your workflow.",[244,21758,21759,21762],{},[19,21760,21761],{},"Passwordless login"," - No more passwords. Sign in with a magic link sent to your email.",[24,21764,21766],{"id":21765},"a-faster-search","A Faster Search",[12,21768,368,21769,21773,21774,21776,21777,21779],{},[45,21770,21772],{"href":21771},"\u002Fguides\u002Fsearch","new search"," accepts every input format Township Canada supports. Type an LSD like ",[65,21775,7146],{}," and it resolves instantly. Type an NTS reference like ",[65,21778,5370],{}," and it handles that too. Enter GPS coordinates, a street address, or a place name - the same search box figures out what you mean.",[12,21781,21782],{},[128,21783],{"alt":20897,"src":20898},[12,21785,21786],{},[128,21787],{"alt":21788,"src":21789},"Unified search with autocomplete suggestions","\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Fsearch.webp",[12,21791,21792],{},"Autocomplete now suggests locations as you type, with results biased toward your current map view. If you're zoomed into central Alberta, typing \"32-21\" prioritizes townships in that area rather than returning every possible match across the prairies.",[24,21794,21796],{"id":21795},"batch-processing-at-scale","Batch Processing at Scale",[12,21798,21799],{},[128,21800],{"alt":21725,"src":21801},"\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Fbatch.webp",[12,21803,21804,21805,21808],{},"The original batch tool accepted a few hundred records. The ",[45,21806,21807],{"href":3930},"new batch converter"," handles thousands. Upload a CSV, map your columns to the fields Township Canada expects, and get coordinates back for every valid row. Rows that can't be converted are flagged with specific error messages so you can fix and re-run them.",[12,21810,21811,21812,21815],{},"Results export to ",[45,21813,21814],{"href":4424},"multiple formats"," - CSV for spreadsheets, KML for Google Earth, Shapefile for ArcGIS, DXF for AutoCAD, GeoJSON for web mapping, and PDF for reports.",[24,21817,21819],{"id":21818},"route-planning-for-field-work","Route Planning for Field Work",[12,21821,21822],{},[128,21823],{"alt":21824,"src":21825},"Route planner for field work","\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Froute-planning.webp",[12,21827,21828,21829,21831],{},"If you've ever planned a day of wellsite inspections by manually looking up 10 locations on separate maps and guessing the best order, the ",[45,21830,1549],{"href":6902}," replaces that process. Add your stops using legal land descriptions or coordinates, and the planner calculates driving routes with estimated travel times. Reorder stops to minimize driving, or let the optimizer suggest an order.",[24,21833,21835],{"id":21834},"projects-for-organized-work","Projects for Organized Work",[12,21837,21838],{},[128,21839],{"alt":21737,"src":21840},"\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Fprojects.webp",[12,21842,21843,21844,21847],{},"Before the rebuild, Township Canada had no way to save your work. You'd convert a location, copy the coordinates, and move on. The new ",[45,21845,21846],{"href":9692},"projects feature"," changes that. Save any location with one click, group locations into projects, add categories and notes, and share entire projects with team members. A pipeline engineer can save every crossing point for a route survey in one project. A land agent can organize quarter sections by client.",[24,21849,21851],{"id":21850},"for-developers","For Developers",[12,21853,21854],{},[128,21855],{"alt":21856,"src":21857},"API keys in the developer dashboard","\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Fapi.webp",[12,21859,368,21860,21862,21863,21867,21868,21870,21871,60],{},[45,21861,6927],{"href":3965}," now supports unlimited API keys per account. If you're building an application that calls our Search, Autocomplete, Batch, or Maps API, you can create separate keys for each environment - development, staging, and production. Each key can be named, monitored, and revoked independently. Node.js developers can also use the ",[45,21864,21865,17529],{"href":17526},[65,21866,6155],{}," for typed TypeScript methods instead of raw HTTP calls. Check the ",[45,21869,6718],{"href":6717}," for setup details. For a hands-on walkthrough from API key to first request, see ",[45,21872,21873],{"href":6758},"How to Integrate Legal Land Descriptions into Your Application",[24,21875,17908],{"id":17907},[12,21877,21878],{},[128,21879],{"alt":21880,"src":21881},"Team management for business accounts","\u002Fimages\u002Fblog\u002Fthe-new-township-canada\u002Fteams.webp",[12,21883,21884,21885,21887],{},"Business accounts now include ",[45,21886,17915],{"href":17914},". Add team members, assign roles, share projects, and manage API keys across your organization. Team members share a subscription, so there's no per-seat licensing complexity.",[24,21889,21891],{"id":21890},"what-stays-the-same","What Stays the Same",[12,21893,21894],{},"The core data hasn't changed. Township Canada still calculates coordinates from official survey data - the same DLS, NTS, and FPS grid coordinates that have been accurate since launch. If you've bookmarked a converter page or built an integration against our API, the underlying data quality is the same.",[12,21896,21897,21898,21902],{},"Support is the same too. ",[45,21899,21901],{"href":21900},"\u002Fcontact-us","Reach out"," with questions about your account, the API, or anything else.",[24,21904,21906],{"id":21905},"for-existing-users","For Existing Users",[12,21908,21909],{},"If you had an account on the previous Township Canada, your login works on the new platform. Your subscription carries over. The first time you sign in, you'll see the new interface, but your account, plan, and API key are all intact.",[12,21911,21912,21913,21916],{},"Check out the full ",[45,21914,21915],{"href":2964},"pricing and plans"," to see what's included at each tier.",{"title":274,"searchDepth":275,"depth":275,"links":21918},[21919,21920,21921,21922,21923,21924,21925,21926,21927],{"id":21705,"depth":275,"text":21706},{"id":21765,"depth":275,"text":21766},{"id":21795,"depth":275,"text":21796},{"id":21818,"depth":275,"text":21819},{"id":21834,"depth":275,"text":21835},{"id":21850,"depth":275,"text":21851},{"id":17907,"depth":275,"text":17908},{"id":21890,"depth":275,"text":21891},{"id":21905,"depth":275,"text":21906},"2026-02-15","After nine years and millions of conversions, we've rebuilt Township Canada from the ground up. New search, batch CSV upload, route planner, projects, API keys, and more.",{},{"title":21685,"description":21929},"blog\u002Fthe-new-township-canada",[1177,1176],"iI3XKmvohqRYIGvSZnfCRPQcG36XEvF8LarbRFAmoBg",{"id":21936,"title":21937,"author":21938,"body":21939,"category":851,"cover":22087,"date":22088,"description":22089,"extension":287,"meta":22090,"navigation":289,"path":22091,"seo":22092,"stem":22093,"tags":22094,"__hash__":22096},"blog\u002Fblog\u002Flaunching-township-canada-mobile-app.md","Township Canada Mobile App Now Available on Android","Abraham Poorazizi",{"type":9,"value":21940,"toc":22081},[21941,21944,21949,21953,21956,21988,21992,21995,22008,22014,22037,22041,22044,22051,22055],[12,21942,21943],{},"We’re excited to announce the release of the Township Canada Mobile App, now available for Android devices! This powerful new tool brings the full capabilities of Township Canada to your mobile device, allowing you to search, map, and navigate with ease, whether you’re in the field, on the road, or exploring new areas.",[12,21945,21946],{},[128,21947],{"alt":21948,"src":1107},"Township Canada Mobile App",[24,21950,21952],{"id":21951},"key-features","Key features",[12,21954,21955],{},"The Township Canada Mobile App is designed with you in mind, offering a seamless experience that integrates all the key features of our platform:",[241,21957,21958,21964,21970,21976,21982],{},[244,21959,21960,21963],{},[19,21961,21962],{},"Detailed Canadian survey grid maps",": Browse DLS and NTS grids to understand land boundaries and divisions clearly.",[244,21965,21966,21969],{},[19,21967,21968],{},"High-resolution satellite imagery and street maps",": Get a precise view of your surroundings.",[244,21971,21972,21975],{},[19,21973,21974],{},"Powerful search functionality",": Easily find legal land descriptions, GPS coordinates, addresses, and places.",[244,21977,21978,21981],{},[19,21979,21980],{},"Real-Time GPS navigation",": Navigate confidently with real-time guidance and turn-by-turn directions.",[244,21983,21984,21987],{},[19,21985,21986],{},"Accurate ETAs and live traffic updates",": Plan your journeys efficiently and avoid congestion.",[24,21989,21991],{"id":21990},"get-started-today","Get started today",[12,21993,21994],{},"Getting started with the Township Canada Mobile App is simple:",[241,21996,21997],{},[244,21998,21999,22002,22003,22007],{},[19,22000,22001],{},"Download the App",": Download the app from the Google Play Store either by clicking on ",[45,22004,22006],{"href":15941,"rel":22005},[220],"this link"," or scanning the QR code below.",[12,22009,22010],{},[128,22011],{"alt":22012,"src":1111,"style":22013},"Township Canada Mobile App QR Code","width: 150px;",[241,22015,22016,22031],{},[244,22017,22018,22021,22022,22026,22027,22030],{},[19,22019,22020],{},"Get Your License Key",": After downloading, ",[45,22023,22025],{"href":218,"rel":22024},[220],"purchase a license key"," from our website to unlock all features. Follow our ",[45,22028,22029],{"href":19773},"step-by-step guide"," to set up your app in minutes.",[244,22032,22033,22036],{},[19,22034,22035],{},"Explore and Navigate",": Once installed, start searching, mapping, and navigating with ease using the app’s intuitive interface.",[24,22038,22040],{"id":22039},"we-want-to-hear-from-you","We want to hear from you",[12,22042,22043],{},"We've designed this app to make your work more efficient and effective, whether you're in agriculture, oil and gas, real estate, or any other industry that relies on accurate land information.",[12,22045,22046,22047,22050],{},"Your feedback is essential to us, and we're committed to continuously improving the Township Canada Mobile App. If you have any suggestions, questions, or concerns, please don't hesitate to ",[45,22048,22049],{"href":21900},"contact us",". We look forward to hearing from you and helping you make the most of our new mobile app!",[24,22052,22054],{"id":22053},"related-tools","Related Tools",[241,22056,22057,22063,22069,22075],{},[244,22058,22059,22062],{},[45,22060,22061],{"href":19773},"Mobile App Guide"," - Set up and use the Township Canada mobile app",[244,22064,22065,22068],{},[45,22066,22067],{"href":8381},"LSD Converter"," - Convert legal land descriptions online",[244,22070,22071,22074],{},[45,22072,22073],{"href":15924},"Pricing & Plans"," - Standalone Mobile, Pro + Mobile bundle, and Business options",[244,22076,22077,22080],{},[45,22078,22079],{"href":8363},"Alberta Legal Land Converter"," - Alberta DLS and LSD converter",{"title":274,"searchDepth":275,"depth":275,"links":22082},[22083,22084,22085,22086],{"id":21951,"depth":275,"text":21952},{"id":21990,"depth":275,"text":21991},{"id":22039,"depth":275,"text":22040},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Flaunching-township-canada-mobile-app\u002Fcover.webp","2024-09-02T10:00:00Z","Find legal land descriptions, addresses, and GPS coordinates, and get real-time traffic updates and turn-by-turn navigation on your mobile device.",{},"\u002Fblog\u002Flaunching-township-canada-mobile-app",{"title":21937,"description":22089},"blog\u002Flaunching-township-canada-mobile-app",[1177,22095],"Mobile","V2FBzR7phhQLOhzOnvXIrIPXYQLqe9mt5iM8JEn6ynY",{"id":22098,"title":22099,"author":21938,"body":22100,"category":851,"cover":22199,"date":22200,"description":22201,"extension":287,"meta":22202,"navigation":289,"path":22203,"seo":22204,"stem":22205,"tags":22206,"__hash__":22208},"blog\u002Fblog\u002Fenhanced-team-management-features.md","Introducing Enhanced Team Management Features at Township Canada",{"type":9,"value":22101,"toc":22193},[22102,22105,22111,22114,22117,22137,22141,22144,22147,22151,22154,22168,22171,22174,22176],[12,22103,22104],{},"We're excited to announce a significant update to the team management capabilities within Township Canada, designed to empower business account holders with more flexibility and control over their organizational settings. As of today, users can now invite team members as either \"Members\", \"Admins\", or retain the \"Owner\" role, each with distinct access levels tailored to their responsibilities. This new functionality is part of our ongoing commitment to improve user experience and streamline operations for all our business clients.",[12,22106,22107],{},[128,22108],{"alt":22109,"src":22110},"Enhanced Team Management Features at Township Canada","\u002Fimages\u002Fblog\u002Fenhanced-team-management-features\u002Foverview.webp",[24,22112,22113],{"id":21705},"What’s new?",[12,22115,22116],{},"In response to feedback from our community and the ever-evolving needs of our users, we have expanded the roles within team management to include three distinct access levels:",[1863,22118,22119,22125,22131],{},[244,22120,22121,22124],{},[19,22122,22123],{},"Members"," - Ideal for day-to-day users who need to access the full suite of tools offered in the Business plan but do not require administrative privileges. Members can fully engage with our platform's capabilities but cannot alter account settings or view sensitive billing information.",[244,22126,22127,22130],{},[19,22128,22129],{},"Admins"," - Admins carry all the abilities of Members, with added administrative privileges. This includes accessing invoices, updating payment information, managing API subscriptions, and modifying the billing cycle. This role is perfect for those who manage the operational aspects of the account but do not need full ownership rights.",[244,22132,22133,22136],{},[19,22134,22135],{},"Owners"," - Owners retain complete control over the account, with the ability to manage roles, invite new users, and make any necessary changes across the board. This role is reserved for those who need overarching access to manage the team and account settings effectively.",[24,22138,22140],{"id":22139},"why-these-changes","Why these changes?",[12,22142,22143],{},"Our goal at Township Canada is to provide a robust and flexible platform that meets the specific needs of all our users. By distinguishing these roles, we can offer more tailored access that aligns with various job functions within an organization, enhancing both security and efficiency.",[12,22145,22146],{},"We understand that different team members require different levels of access based on their responsibilities. By implementing these new roles, we aim to facilitate smoother operations, prevent unauthorized changes, and ensure that sensitive information remains secure while providing all users the tools they need to be successful.",[24,22148,22150],{"id":22149},"how-to-get-started","How to get started",[12,22152,22153],{},"Getting started with these new features is simple:",[241,22155,22156,22162],{},[244,22157,22158,22161],{},[19,22159,22160],{},"Existing Business account holders"," can log in to their account, navigate to the \"My Account\" section, and start inviting team members under the new roles immediately.",[244,22163,22164,22167],{},[19,22165,22166],{},"New users"," interested in leveraging these capabilities can sign up for a Business account and begin setting up their organization straight away.",[12,22169,22170],{},"We believe these changes will make a significant positive impact on how teams operate within Township Canada. We're eager to see how our business users will utilize these new features to streamline their workflows and enhance productivity.",[12,22172,22173],{},"Stay tuned for more updates as we continue to enhance our platform to better serve your needs!",[24,22175,22054],{"id":22053},[241,22177,22178,22183,22188],{},[244,22179,22180,22182],{},[45,22181,22073],{"href":2964}," - Compare Starter, Pro, and Business plans",[244,22184,22185,22187],{},[45,22186,22079],{"href":8363}," - Convert DLS and LSD to GPS coordinates",[244,22189,22190,22192],{},[45,22191,15547],{"href":15546}," - Step-by-step tutorials for all features",{"title":274,"searchDepth":275,"depth":275,"links":22194},[22195,22196,22197,22198],{"id":21705,"depth":275,"text":22113},{"id":22139,"depth":275,"text":22140},{"id":22149,"depth":275,"text":22150},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Fenhanced-team-management-features\u002Fcover.webp","2024-04-19T10:00:00Z","Explore enhanced team functionalities with our new structured roles - perfect for every level of your organization.",{},"\u002Fblog\u002Fenhanced-team-management-features",{"title":22099,"description":22201},"blog\u002Fenhanced-team-management-features",[22207,16666],"Web App","jTtfmuqIKSfAAekEMoKECXKgQENEbSxlea5A8gHFxII",{"id":22210,"title":22211,"author":21938,"body":22212,"category":851,"cover":22347,"date":22348,"description":22349,"extension":287,"meta":22350,"navigation":289,"path":22351,"seo":22352,"stem":22353,"tags":22354,"__hash__":22355},"blog\u002Fblog\u002Fenhancing-batch-conversion-tool-township-canada.md","Enhancing the Batch Conversion Tool in Township Canada",{"type":9,"value":22213,"toc":22341},[22214,22217,22223,22227,22230,22235,22238,22252,22255,22259,22262,22267,22270,22285,22288,22303,22306,22310,22313,22316,22318],[12,22215,22216],{},"In our mission to continually improve Township Canada, we've implemented key updates to our Batch Conversion tool based on your invaluable feedback. These enhancements are designed to not only increase the tool's accuracy and transparency but also to simplify user interaction.",[12,22218,22219],{},[128,22220],{"alt":22221,"src":22222},"Township Canada's updated Batch Conversion Tool with data processing report and 'N\u002FA' placeholders for unmatched records","\u002Fimages\u002Fblog\u002Fenhancing-batch-conversion-tool-township-canada\u002Foverview.webp",[24,22224,22226],{"id":22225},"introducing-data-processing-report","Introducing data processing report",[12,22228,22229],{},"Understanding the need for clear data tracking, we've added data processing report to the Batch Conversion tool. This feature provides an instant overview of your data processing activities, including the total number of input records, failure rate, processing time, and any records that were skipped or encountered issues during conversion. With this report, you can quickly assess the conversion results and identify any potential problems that may require further investigation.",[12,22231,22232],{},[19,22233,22234],{},"Real-world application of data processing report:",[12,22236,22237],{},"Consider a scenario where you convert a batch of legal land descriptions to geographic coordinates. The tool now presents a succinct report:",[241,22239,22240,22243,22246,22249],{},[244,22241,22242],{},"Total Records Processed: 5",[244,22244,22245],{},"Processing time: 0.008 seconds",[244,22247,22248],{},"Failed conversions: 2",[244,22250,22251],{},"Records with issues: \"12-7-2\", \"NW-26-13-2\"",[12,22253,22254],{},"This immediate feedback is invaluable for identifying and addressing any data anomalies or errors quickly.",[24,22256,22258],{"id":22257},"improved-handling-of-unmatched-records","Improved handling of unmatched records",[12,22260,22261],{},"In the past, our method of omitting non-matching records resulted in discrepancies between the number of input and output records. With this update, we've introduced a more robust approach to handling unmatched records. The tool now includes an \"N\u002FA\" placeholder for each failed conversion, ensuring a one-to-one correspondence between input and output records. This addition enhances the tool's consistency and clarity, making it easier to track and manage your data.",[12,22263,22264],{},[19,22265,22266],{},"Enhanced output consistency in action:",[12,22268,22269],{},"Let's consider a scenario where you convert geographic coordinates to legal land descriptions. The input consists of two records, one of which is problematic.",[241,22271,22272],{},[244,22273,22274,22277],{},[19,22275,22276],{},"Input Examples:",[241,22278,22279,22282],{},[244,22280,22281],{},"-114.231241, 5.321248",[244,22283,22284],{},"-110.024126, 53.756331",[12,22286,22287],{},"The tool processes the data and generates the following output:",[241,22289,22290],{},[244,22291,22292,22295],{},[19,22293,22294],{},"Output Examples:",[241,22296,22297,22300],{},[244,22298,22299],{},"N\u002FA, N\u002FA, N\u002FA, N\u002FA",[244,22301,22302],{},"13-13-55-1-W4, -110.024126, 53.756331, Alberta",[12,22304,22305],{},"Despite being a valid pair of geographic coordinates, the first record did not convert successfully as it indicates a location outside Canada. The tool now inserts an \"N\u002FA\" placeholder for such records, simplifying the process of identifying and addressing these issues.",[24,22307,22309],{"id":22308},"conclusion","Conclusion",[12,22311,22312],{},"The latest enhancements to Township Canada's Batch Conversion tool aim to elevate your data processing experience. With the data processing report and improved handling of unmatched records, you can now track your data more effectively and address any issues more quickly and efficiently.",[12,22314,22315],{},"We value your feedback as it drives our innovation. If you have any suggestions or questions about the Batch Conversion tool or any other feature in Township Canada, please don't hesitate to reach out to us.",[24,22317,22054],{"id":22053},[241,22319,22320,22326,22331,22335],{},[244,22321,22322,22325],{},[45,22323,22324],{"href":3930},"Batch Conversion Guide"," - Step-by-step batch conversion tutorial",[244,22327,22328,22330],{},[45,22329,22067],{"href":8381}," - Convert individual legal land descriptions",[244,22332,22333,22080],{},[45,22334,22079],{"href":8363},[244,22336,22337,22340],{},[45,22338,22339],{"href":103},"Saskatchewan Legal Land Converter"," - Saskatchewan DLS converter",{"title":274,"searchDepth":275,"depth":275,"links":22342},[22343,22344,22345,22346],{"id":22225,"depth":275,"text":22226},{"id":22257,"depth":275,"text":22258},{"id":22308,"depth":275,"text":22309},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Fenhancing-batch-conversion-tool-township-canada\u002Fcover.webp","2024-04-09T10:00:00Z","Discover Township Canada's updated Batch Conversion Tool with data processing report and 'N\u002FA' placeholders for unmatched records.",{},"\u002Fblog\u002Fenhancing-batch-conversion-tool-township-canada",{"title":22211,"description":22349},"blog\u002Fenhancing-batch-conversion-tool-township-canada",[22207,16666],"IXIqYK8K-IPKOFj8S_GPWVzgwjn5bWBop-lmdapDB2k",{"id":22357,"title":22358,"author":21938,"body":22359,"category":851,"cover":22483,"date":22484,"description":22485,"extension":287,"meta":22486,"navigation":289,"path":22487,"seo":22488,"stem":22489,"tags":22490,"__hash__":22491},"blog\u002Fblog\u002Ftownship-canada-app-adds-polygon-measurement-tool.md","Introducing the new area measurement tool in Township Canada App",{"type":9,"value":22360,"toc":22473},[22361,22364,22370,22374,22377,22397,22401,22404,22408,22428,22432,22439,22443,22450,22452],[12,22362,22363],{},"We're thrilled to unveil a highly requested feature in the Township Canada app: an easy-to-use measurement tool that allows users to measure areas on the map by drawing polygons. This tool is a game-changer for anyone needing precise area calculations on the map, right from their browser.",[12,22365,22366],{},[128,22367],{"alt":22368,"src":22369},"Area measurement tool in Township Canada app","\u002Fimages\u002Fblog\u002Ftownship-canada-app-adds-polygon-measurement-tool\u002Foverview.webp",[24,22371,22373],{"id":22372},"discover-the-new-measurement-tool","Discover the new measurement tool",[12,22375,22376],{},"Our new measurement tool comes with a user-friendly drawing toolbar located at the top-right corner of the map, equipped with three main buttons:",[1863,22378,22379,22385,22391],{},[244,22380,22381,22384],{},[19,22382,22383],{},"Square Icon (Draw Polygon)",": Easily draw polygons by clicking to create vertices. To complete and close a polygon, click on the last vertex.",[244,22386,22387,22390],{},[19,22388,22389],{},"Pencil Icon (Edit Polygon)",": This button enables you to edit the polygon. You can move the entire shape, adjust its vertices, or add new ones for more accuracy.",[244,22392,22393,22396],{},[19,22394,22395],{},"Trash Bin Icon (Delete Drawings)",": With one click, you can delete all your drawings from the map.",[347,22398,22400],{"id":22399},"area-calculation-in-multiple-units","Area calculation in multiple units",[12,22402,22403],{},"As you draw your polygons, an information box at the top-right corner of the map displays the calculated area. This feature supports various units including acres, hectares (ha), square meters, and square feet. If you have more than one polygon, the tool calculates and displays the total area of all polygons combined. Note that closing the information box will also remove all drawings from the map.",[24,22405,22407],{"id":22406},"important-considerations","Important considerations",[241,22409,22410,22416,22422],{},[244,22411,22412,22415],{},[19,22413,22414],{},"Base Map Switching",": If you switch base maps while having polygons drawn, the data will be lost. We recommend setting your preferred base map, such as the satellite view with its high-resolution imagery, before you start drawing.",[244,22417,22418,22421],{},[19,22419,22420],{},"Privacy and Data Security",": All operations are performed in your browser. Nothing is communicated to our web servers, ensuring that your data remains private and is not stored on our end.",[244,22423,22424,22427],{},[19,22425,22426],{},"Device Compatibility",": This tool is optimized for large screens, such as desktops and tablets. It is not available on mobile devices to ensure the best user experience.",[24,22429,22431],{"id":22430},"we-value-your-feedback","We value your feedback",[12,22433,22434,22435,22438],{},"We understand the importance of evolving our app to meet your needs. If there’s a feature you’d love to see or if you have any thoughts on how we can improve, please don't hesitate to ",[45,22436,22437],{"href":21900},"get in touch",". Every piece of feedback is a step towards creating a better and more user-friendly app.",[347,22440,22442],{"id":22441},"ready-to-explore","Ready to explore?",[12,22444,22445,22446,22449],{},"Visit ",[45,22447,7],{"href":218,"rel":22448},[220]," now to try out our new measurement tool. See how it simplifies your area calculations on the map. We can't wait to hear what you think!",[24,22451,22054],{"id":22053},[241,22453,22454,22459,22463,22468],{},[244,22455,22456,22458],{},[45,22457,22067],{"href":8381}," - Convert legal land descriptions to GPS",[244,22460,22461,22080],{},[45,22462,22079],{"href":8363},[244,22464,22465,22467],{},[45,22466,22324],{"href":3930}," - Convert multiple descriptions at once",[244,22469,22470,22472],{},[45,22471,20337],{"href":3965}," - Integrate Township Canada into your workflows",{"title":274,"searchDepth":275,"depth":275,"links":22474},[22475,22478,22479,22482],{"id":22372,"depth":275,"text":22373,"children":22476},[22477],{"id":22399,"depth":498,"text":22400},{"id":22406,"depth":275,"text":22407},{"id":22430,"depth":275,"text":22431,"children":22480},[22481],{"id":22441,"depth":498,"text":22442},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Ftownship-canada-app-adds-polygon-measurement-tool\u002Fcover.webp","2024-02-12T10:00:00Z","Township Canada app now includes a polygon drawing tool for area measurement on maps, enhancing user experience with precision and ease.",{},"\u002Fblog\u002Ftownship-canada-app-adds-polygon-measurement-tool",{"title":22358,"description":22485},"blog\u002Ftownship-canada-app-adds-polygon-measurement-tool",[22207,16666],"Rn_4Q3IGSYHJvxa2t8OG7XH1S8SaSPtd--iUvFonu98",{"id":22493,"title":22494,"author":21938,"body":22495,"category":851,"cover":23589,"date":23661,"description":23662,"extension":287,"meta":23663,"navigation":289,"path":23664,"seo":23665,"stem":23666,"tags":23667,"__hash__":23668},"blog\u002Fblog\u002Ftownship-canada-introduces-proximity-based-autocomplete-api.md","Enhance your search with the new proximity-based Autocomplete API",{"type":9,"value":22496,"toc":23653},[22497,22500,22504,22507,22511,22514,22556,22561,23067,23070,23074,23574,23578,23581,23585,23591,23595,23600,23603,23614,23617,23622,23624,23650],[12,22498,22499],{},"We are excited to announce a significant enhancement to the Township Canada API: the addition of the proximity-based suggestion capability in our Autocomplete API. This new feature is set to improve how you search for legal land descriptions, offering results tailored to a specific geographic area.",[24,22501,22503],{"id":22502},"proximity-parameter-bringing-precision-to-your-searches","Proximity parameter: bringing precision to your searches",[12,22505,22506],{},"The newly introduced 'proximity' parameter allows you to bias search results towards a specific location. This means that when you search for a legal land description, the Autocomplete API will prioritize results closest to the coordinates you provide, enhancing the relevance and efficiency of your searches.",[347,22508,22510],{"id":22509},"how-to-leverage-the-new-parameter","How to leverage the new parameter",[12,22512,22513],{},"Incorporating this new feature is straightforward. Here’s an example using cURL to demonstrate how you can use the proximity parameter:",[1736,22515,22517],{"className":19201,"code":22516,"language":19203,"meta":274,"style":274},"curl -X GET 'https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fautocomplete\u002Flegal-location?location=NW-2&proximity=-114.2312,51.2131' \\\n-H 'x-api-key: 1234567890abcdefghij'\n",[65,22518,22519,22543],{"__ignoreMap":274},[2024,22520,22521,22524,22528,22531,22534,22537,22540],{"class":4882,"line":4883},[2024,22522,22523],{"class":19210},"curl",[2024,22525,22527],{"class":22526},"sz9Cv"," -X",[2024,22529,22530],{"class":5523}," GET",[2024,22532,22533],{"class":5519}," '",[2024,22535,22536],{"class":5523},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fautocomplete\u002Flegal-location?location=NW-2&proximity=-114.2312,51.2131",[2024,22538,22539],{"class":5519},"'",[2024,22541,22542],{"class":14591}," \\\n",[2024,22544,22545,22548,22550,22553],{"class":4882,"line":275},[2024,22546,22547],{"class":6297},"-H ",[2024,22549,22539],{"class":5519},[2024,22551,22552],{"class":5523},"x-api-key: 1234567890abcdefghij",[2024,22554,22555],{"class":5519},"'\n",[22557,22558,22560],"h4",{"id":22559},"response-with-proximity-parameter","Response with proximity parameter",[1736,22562,22564],{"className":5491,"code":22563,"language":5493,"meta":274,"style":274},"{\n  \"type\": \"FeatureCollection\",\n  \"features\": [\n    {\n      \"type\": \"Feature\",\n      \"geometry\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-114.228309197, 51.237681192]\n      },\n      \"properties\": {\n        \"shape\": \"centroid\",\n        \"search_term\": \"NW-2\",\n        \"legal_location\": \"NW-21-26-2-W5\"\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"geometry\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-114.251564546, 51.237667258]\n      },\n      \"properties\": {\n        \"shape\": \"centroid\",\n        \"search_term\": \"NW-2\",\n        \"legal_location\": \"NW-20-26-2-W5\"\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"geometry\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-114.20510579, 51.23767145]\n      },\n      \"properties\": {\n        \"shape\": \"centroid\",\n        \"search_term\": \"NW-2\",\n        \"legal_location\": \"NW-22-26-2-W5\"\n      }\n    }\n  ]\n}\n",[65,22565,22566,22570,22588,22600,22604,22622,22634,22653,22675,22680,22692,22710,22729,22746,22751,22756,22760,22778,22790,22808,22830,22834,22846,22864,22882,22899,22903,22907,22911,22929,22941,22959,22981,22985,22997,23015,23033,23050,23054,23058,23063],{"__ignoreMap":274},[2024,22567,22568],{"class":4882,"line":4883},[2024,22569,5501],{"class":5500},[2024,22571,22572,22574,22576,22578,22580,22582,22584,22586],{"class":4882,"line":275},[2024,22573,5507],{"class":5506},[2024,22575,5511],{"class":5510},[2024,22577,5514],{"class":5506},[2024,22579,2609],{"class":5500},[2024,22581,5520],{"class":5519},[2024,22583,5524],{"class":5523},[2024,22585,5514],{"class":5519},[2024,22587,5529],{"class":5500},[2024,22589,22590,22592,22594,22596,22598],{"class":4882,"line":498},[2024,22591,5507],{"class":5506},[2024,22593,5536],{"class":5510},[2024,22595,5514],{"class":5506},[2024,22597,2609],{"class":5500},[2024,22599,6459],{"class":5500},[2024,22601,22602],{"class":4882,"line":4899},[2024,22603,12942],{"class":5500},[2024,22605,22606,22608,22610,22612,22614,22616,22618,22620],{"class":4882,"line":4905},[2024,22607,5640],{"class":5506},[2024,22609,5511],{"class":5551},[2024,22611,5514],{"class":5506},[2024,22613,2609],{"class":5500},[2024,22615,5520],{"class":5519},[2024,22617,5560],{"class":5523},[2024,22619,5514],{"class":5519},[2024,22621,5529],{"class":5500},[2024,22623,22624,22626,22628,22630,22632],{"class":4882,"line":5622},[2024,22625,5640],{"class":5506},[2024,22627,5571],{"class":5551},[2024,22629,5514],{"class":5506},[2024,22631,2609],{"class":5500},[2024,22633,5634],{"class":5500},[2024,22635,22636,22639,22641,22643,22645,22647,22649,22651],{"class":4882,"line":5637},[2024,22637,22638],{"class":5506},"        \"",[2024,22640,5511],{"class":5583},[2024,22642,5514],{"class":5506},[2024,22644,2609],{"class":5500},[2024,22646,5520],{"class":5519},[2024,22648,10765],{"class":5523},[2024,22650,5514],{"class":5519},[2024,22652,5529],{"class":5500},[2024,22654,22655,22657,22659,22661,22663,22665,22668,22670,22673],{"class":4882,"line":5658},[2024,22656,22638],{"class":5506},[2024,22658,5602],{"class":5583},[2024,22660,5514],{"class":5506},[2024,22662,2609],{"class":5500},[2024,22664,5957],{"class":5500},[2024,22666,22667],{"class":5944},"-114.228309197",[2024,22669,5597],{"class":5500},[2024,22671,22672],{"class":5944}," 51.237681192",[2024,22674,12440],{"class":5500},[2024,22676,22677],{"class":4882,"line":5678},[2024,22678,22679],{"class":5500},"      },\n",[2024,22681,22682,22684,22686,22688,22690],{"class":4882,"line":5698},[2024,22683,5640],{"class":5506},[2024,22685,5627],{"class":5551},[2024,22687,5514],{"class":5506},[2024,22689,2609],{"class":5500},[2024,22691,5634],{"class":5500},[2024,22693,22694,22696,22698,22700,22702,22704,22706,22708],{"class":4882,"line":5718},[2024,22695,22638],{"class":5506},[2024,22697,10988],{"class":5583},[2024,22699,5514],{"class":5506},[2024,22701,2609],{"class":5500},[2024,22703,5520],{"class":5519},[2024,22705,10995],{"class":5523},[2024,22707,5514],{"class":5519},[2024,22709,5529],{"class":5500},[2024,22711,22712,22714,22716,22718,22720,22722,22725,22727],{"class":4882,"line":5737},[2024,22713,22638],{"class":5506},[2024,22715,5643],{"class":5583},[2024,22717,5514],{"class":5506},[2024,22719,2609],{"class":5500},[2024,22721,5520],{"class":5519},[2024,22723,22724],{"class":5523},"NW-2",[2024,22726,5514],{"class":5519},[2024,22728,5529],{"class":5500},[2024,22730,22731,22733,22735,22737,22739,22741,22744],{"class":4882,"line":5743},[2024,22732,22638],{"class":5506},[2024,22734,5663],{"class":5583},[2024,22736,5514],{"class":5506},[2024,22738,2609],{"class":5500},[2024,22740,5520],{"class":5519},[2024,22742,22743],{"class":5523},"NW-21-26-2-W5",[2024,22745,5734],{"class":5519},[2024,22747,22748],{"class":4882,"line":5749},[2024,22749,22750],{"class":5500},"      }\n",[2024,22752,22753],{"class":4882,"line":10053},[2024,22754,22755],{"class":5500},"    },\n",[2024,22757,22758],{"class":4882,"line":10065},[2024,22759,12942],{"class":5500},[2024,22761,22762,22764,22766,22768,22770,22772,22774,22776],{"class":4882,"line":10077},[2024,22763,5640],{"class":5506},[2024,22765,5511],{"class":5551},[2024,22767,5514],{"class":5506},[2024,22769,2609],{"class":5500},[2024,22771,5520],{"class":5519},[2024,22773,5560],{"class":5523},[2024,22775,5514],{"class":5519},[2024,22777,5529],{"class":5500},[2024,22779,22780,22782,22784,22786,22788],{"class":4882,"line":10119},[2024,22781,5640],{"class":5506},[2024,22783,5571],{"class":5551},[2024,22785,5514],{"class":5506},[2024,22787,2609],{"class":5500},[2024,22789,5634],{"class":5500},[2024,22791,22792,22794,22796,22798,22800,22802,22804,22806],{"class":4882,"line":10128},[2024,22793,22638],{"class":5506},[2024,22795,5511],{"class":5583},[2024,22797,5514],{"class":5506},[2024,22799,2609],{"class":5500},[2024,22801,5520],{"class":5519},[2024,22803,10765],{"class":5523},[2024,22805,5514],{"class":5519},[2024,22807,5529],{"class":5500},[2024,22809,22810,22812,22814,22816,22818,22820,22823,22825,22828],{"class":4882,"line":10133},[2024,22811,22638],{"class":5506},[2024,22813,5602],{"class":5583},[2024,22815,5514],{"class":5506},[2024,22817,2609],{"class":5500},[2024,22819,5957],{"class":5500},[2024,22821,22822],{"class":5944},"-114.251564546",[2024,22824,5597],{"class":5500},[2024,22826,22827],{"class":5944}," 51.237667258",[2024,22829,12440],{"class":5500},[2024,22831,22832],{"class":4882,"line":10139},[2024,22833,22679],{"class":5500},[2024,22835,22836,22838,22840,22842,22844],{"class":4882,"line":10161},[2024,22837,5640],{"class":5506},[2024,22839,5627],{"class":5551},[2024,22841,5514],{"class":5506},[2024,22843,2609],{"class":5500},[2024,22845,5634],{"class":5500},[2024,22847,22848,22850,22852,22854,22856,22858,22860,22862],{"class":4882,"line":10176},[2024,22849,22638],{"class":5506},[2024,22851,10988],{"class":5583},[2024,22853,5514],{"class":5506},[2024,22855,2609],{"class":5500},[2024,22857,5520],{"class":5519},[2024,22859,10995],{"class":5523},[2024,22861,5514],{"class":5519},[2024,22863,5529],{"class":5500},[2024,22865,22866,22868,22870,22872,22874,22876,22878,22880],{"class":4882,"line":10185},[2024,22867,22638],{"class":5506},[2024,22869,5643],{"class":5583},[2024,22871,5514],{"class":5506},[2024,22873,2609],{"class":5500},[2024,22875,5520],{"class":5519},[2024,22877,22724],{"class":5523},[2024,22879,5514],{"class":5519},[2024,22881,5529],{"class":5500},[2024,22883,22884,22886,22888,22890,22892,22894,22897],{"class":4882,"line":10203},[2024,22885,22638],{"class":5506},[2024,22887,5663],{"class":5583},[2024,22889,5514],{"class":5506},[2024,22891,2609],{"class":5500},[2024,22893,5520],{"class":5519},[2024,22895,22896],{"class":5523},"NW-20-26-2-W5",[2024,22898,5734],{"class":5519},[2024,22900,22901],{"class":4882,"line":10211},[2024,22902,22750],{"class":5500},[2024,22904,22905],{"class":4882,"line":10222},[2024,22906,22755],{"class":5500},[2024,22908,22909],{"class":4882,"line":10231},[2024,22910,12942],{"class":5500},[2024,22912,22913,22915,22917,22919,22921,22923,22925,22927],{"class":4882,"line":10240},[2024,22914,5640],{"class":5506},[2024,22916,5511],{"class":5551},[2024,22918,5514],{"class":5506},[2024,22920,2609],{"class":5500},[2024,22922,5520],{"class":5519},[2024,22924,5560],{"class":5523},[2024,22926,5514],{"class":5519},[2024,22928,5529],{"class":5500},[2024,22930,22931,22933,22935,22937,22939],{"class":4882,"line":10245},[2024,22932,5640],{"class":5506},[2024,22934,5571],{"class":5551},[2024,22936,5514],{"class":5506},[2024,22938,2609],{"class":5500},[2024,22940,5634],{"class":5500},[2024,22942,22943,22945,22947,22949,22951,22953,22955,22957],{"class":4882,"line":10258},[2024,22944,22638],{"class":5506},[2024,22946,5511],{"class":5583},[2024,22948,5514],{"class":5506},[2024,22950,2609],{"class":5500},[2024,22952,5520],{"class":5519},[2024,22954,10765],{"class":5523},[2024,22956,5514],{"class":5519},[2024,22958,5529],{"class":5500},[2024,22960,22961,22963,22965,22967,22969,22971,22974,22976,22979],{"class":4882,"line":10274},[2024,22962,22638],{"class":5506},[2024,22964,5602],{"class":5583},[2024,22966,5514],{"class":5506},[2024,22968,2609],{"class":5500},[2024,22970,5957],{"class":5500},[2024,22972,22973],{"class":5944},"-114.20510579",[2024,22975,5597],{"class":5500},[2024,22977,22978],{"class":5944}," 51.23767145",[2024,22980,12440],{"class":5500},[2024,22982,22983],{"class":4882,"line":10290},[2024,22984,22679],{"class":5500},[2024,22986,22987,22989,22991,22993,22995],{"class":4882,"line":10305},[2024,22988,5640],{"class":5506},[2024,22990,5627],{"class":5551},[2024,22992,5514],{"class":5506},[2024,22994,2609],{"class":5500},[2024,22996,5634],{"class":5500},[2024,22998,22999,23001,23003,23005,23007,23009,23011,23013],{"class":4882,"line":10324},[2024,23000,22638],{"class":5506},[2024,23002,10988],{"class":5583},[2024,23004,5514],{"class":5506},[2024,23006,2609],{"class":5500},[2024,23008,5520],{"class":5519},[2024,23010,10995],{"class":5523},[2024,23012,5514],{"class":5519},[2024,23014,5529],{"class":5500},[2024,23016,23017,23019,23021,23023,23025,23027,23029,23031],{"class":4882,"line":10336},[2024,23018,22638],{"class":5506},[2024,23020,5643],{"class":5583},[2024,23022,5514],{"class":5506},[2024,23024,2609],{"class":5500},[2024,23026,5520],{"class":5519},[2024,23028,22724],{"class":5523},[2024,23030,5514],{"class":5519},[2024,23032,5529],{"class":5500},[2024,23034,23035,23037,23039,23041,23043,23045,23048],{"class":4882,"line":10347},[2024,23036,22638],{"class":5506},[2024,23038,5663],{"class":5583},[2024,23040,5514],{"class":5506},[2024,23042,2609],{"class":5500},[2024,23044,5520],{"class":5519},[2024,23046,23047],{"class":5523},"NW-22-26-2-W5",[2024,23049,5734],{"class":5519},[2024,23051,23052],{"class":4882,"line":10389},[2024,23053,22750],{"class":5500},[2024,23055,23056],{"class":4882,"line":10448},[2024,23057,5740],{"class":5500},[2024,23059,23060],{"class":4882,"line":10457},[2024,23061,23062],{"class":5500},"  ]\n",[2024,23064,23065],{"class":4882,"line":10462},[2024,23066,5752],{"class":5500},[12,23068,23069],{},"To illustrate the effectiveness of the proximity parameter, let's compare it with the response without using this parameter:",[22557,23071,23073],{"id":23072},"response-without-proximity-parameter","Response without proximity parameter",[1736,23075,23077],{"className":5491,"code":23076,"language":5493,"meta":274,"style":274},"{\n  \"type\": \"FeatureCollection\",\n  \"features\": [\n    {\n      \"type\": \"Feature\",\n      \"geometry\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-97.364023884, 49.011627951]\n      },\n      \"properties\": {\n        \"shape\": \"centroid\",\n        \"search_term\": \"NW-2\",\n        \"legal_location\": \"NW-2-1-1-E1\"\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"geometry\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-97.49879016, 49.011570727]\n      },\n      \"properties\": {\n        \"shape\": \"centroid\",\n        \"search_term\": \"NW-2\",\n        \"legal_location\": \"NW-2-1-1-W1\"\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"geometry\": {\n        \"type\": \"Point\",\n        \"coordinates\": [-102.045408609, 49.009985497]\n      },\n      \"properties\": {\n        \"shape\": \"centroid\",\n        \"search_term\": \"NW-2\",\n        \"legal_location\": \"NW-2-1-1-W2\"\n      }\n    }\n  ]\n}\n",[65,23078,23079,23083,23101,23113,23117,23135,23147,23165,23187,23191,23203,23221,23239,23256,23260,23264,23268,23286,23298,23316,23338,23342,23354,23372,23390,23407,23411,23415,23419,23437,23449,23467,23489,23493,23505,23523,23541,23558,23562,23566,23570],{"__ignoreMap":274},[2024,23080,23081],{"class":4882,"line":4883},[2024,23082,5501],{"class":5500},[2024,23084,23085,23087,23089,23091,23093,23095,23097,23099],{"class":4882,"line":275},[2024,23086,5507],{"class":5506},[2024,23088,5511],{"class":5510},[2024,23090,5514],{"class":5506},[2024,23092,2609],{"class":5500},[2024,23094,5520],{"class":5519},[2024,23096,5524],{"class":5523},[2024,23098,5514],{"class":5519},[2024,23100,5529],{"class":5500},[2024,23102,23103,23105,23107,23109,23111],{"class":4882,"line":498},[2024,23104,5507],{"class":5506},[2024,23106,5536],{"class":5510},[2024,23108,5514],{"class":5506},[2024,23110,2609],{"class":5500},[2024,23112,6459],{"class":5500},[2024,23114,23115],{"class":4882,"line":4899},[2024,23116,12942],{"class":5500},[2024,23118,23119,23121,23123,23125,23127,23129,23131,23133],{"class":4882,"line":4905},[2024,23120,5640],{"class":5506},[2024,23122,5511],{"class":5551},[2024,23124,5514],{"class":5506},[2024,23126,2609],{"class":5500},[2024,23128,5520],{"class":5519},[2024,23130,5560],{"class":5523},[2024,23132,5514],{"class":5519},[2024,23134,5529],{"class":5500},[2024,23136,23137,23139,23141,23143,23145],{"class":4882,"line":5622},[2024,23138,5640],{"class":5506},[2024,23140,5571],{"class":5551},[2024,23142,5514],{"class":5506},[2024,23144,2609],{"class":5500},[2024,23146,5634],{"class":5500},[2024,23148,23149,23151,23153,23155,23157,23159,23161,23163],{"class":4882,"line":5637},[2024,23150,22638],{"class":5506},[2024,23152,5511],{"class":5583},[2024,23154,5514],{"class":5506},[2024,23156,2609],{"class":5500},[2024,23158,5520],{"class":5519},[2024,23160,10765],{"class":5523},[2024,23162,5514],{"class":5519},[2024,23164,5529],{"class":5500},[2024,23166,23167,23169,23171,23173,23175,23177,23180,23182,23185],{"class":4882,"line":5658},[2024,23168,22638],{"class":5506},[2024,23170,5602],{"class":5583},[2024,23172,5514],{"class":5506},[2024,23174,2609],{"class":5500},[2024,23176,5957],{"class":5500},[2024,23178,23179],{"class":5944},"-97.364023884",[2024,23181,5597],{"class":5500},[2024,23183,23184],{"class":5944}," 49.011627951",[2024,23186,12440],{"class":5500},[2024,23188,23189],{"class":4882,"line":5678},[2024,23190,22679],{"class":5500},[2024,23192,23193,23195,23197,23199,23201],{"class":4882,"line":5698},[2024,23194,5640],{"class":5506},[2024,23196,5627],{"class":5551},[2024,23198,5514],{"class":5506},[2024,23200,2609],{"class":5500},[2024,23202,5634],{"class":5500},[2024,23204,23205,23207,23209,23211,23213,23215,23217,23219],{"class":4882,"line":5718},[2024,23206,22638],{"class":5506},[2024,23208,10988],{"class":5583},[2024,23210,5514],{"class":5506},[2024,23212,2609],{"class":5500},[2024,23214,5520],{"class":5519},[2024,23216,10995],{"class":5523},[2024,23218,5514],{"class":5519},[2024,23220,5529],{"class":5500},[2024,23222,23223,23225,23227,23229,23231,23233,23235,23237],{"class":4882,"line":5737},[2024,23224,22638],{"class":5506},[2024,23226,5643],{"class":5583},[2024,23228,5514],{"class":5506},[2024,23230,2609],{"class":5500},[2024,23232,5520],{"class":5519},[2024,23234,22724],{"class":5523},[2024,23236,5514],{"class":5519},[2024,23238,5529],{"class":5500},[2024,23240,23241,23243,23245,23247,23249,23251,23254],{"class":4882,"line":5743},[2024,23242,22638],{"class":5506},[2024,23244,5663],{"class":5583},[2024,23246,5514],{"class":5506},[2024,23248,2609],{"class":5500},[2024,23250,5520],{"class":5519},[2024,23252,23253],{"class":5523},"NW-2-1-1-E1",[2024,23255,5734],{"class":5519},[2024,23257,23258],{"class":4882,"line":5749},[2024,23259,22750],{"class":5500},[2024,23261,23262],{"class":4882,"line":10053},[2024,23263,22755],{"class":5500},[2024,23265,23266],{"class":4882,"line":10065},[2024,23267,12942],{"class":5500},[2024,23269,23270,23272,23274,23276,23278,23280,23282,23284],{"class":4882,"line":10077},[2024,23271,5640],{"class":5506},[2024,23273,5511],{"class":5551},[2024,23275,5514],{"class":5506},[2024,23277,2609],{"class":5500},[2024,23279,5520],{"class":5519},[2024,23281,5560],{"class":5523},[2024,23283,5514],{"class":5519},[2024,23285,5529],{"class":5500},[2024,23287,23288,23290,23292,23294,23296],{"class":4882,"line":10119},[2024,23289,5640],{"class":5506},[2024,23291,5571],{"class":5551},[2024,23293,5514],{"class":5506},[2024,23295,2609],{"class":5500},[2024,23297,5634],{"class":5500},[2024,23299,23300,23302,23304,23306,23308,23310,23312,23314],{"class":4882,"line":10128},[2024,23301,22638],{"class":5506},[2024,23303,5511],{"class":5583},[2024,23305,5514],{"class":5506},[2024,23307,2609],{"class":5500},[2024,23309,5520],{"class":5519},[2024,23311,10765],{"class":5523},[2024,23313,5514],{"class":5519},[2024,23315,5529],{"class":5500},[2024,23317,23318,23320,23322,23324,23326,23328,23331,23333,23336],{"class":4882,"line":10133},[2024,23319,22638],{"class":5506},[2024,23321,5602],{"class":5583},[2024,23323,5514],{"class":5506},[2024,23325,2609],{"class":5500},[2024,23327,5957],{"class":5500},[2024,23329,23330],{"class":5944},"-97.49879016",[2024,23332,5597],{"class":5500},[2024,23334,23335],{"class":5944}," 49.011570727",[2024,23337,12440],{"class":5500},[2024,23339,23340],{"class":4882,"line":10139},[2024,23341,22679],{"class":5500},[2024,23343,23344,23346,23348,23350,23352],{"class":4882,"line":10161},[2024,23345,5640],{"class":5506},[2024,23347,5627],{"class":5551},[2024,23349,5514],{"class":5506},[2024,23351,2609],{"class":5500},[2024,23353,5634],{"class":5500},[2024,23355,23356,23358,23360,23362,23364,23366,23368,23370],{"class":4882,"line":10176},[2024,23357,22638],{"class":5506},[2024,23359,10988],{"class":5583},[2024,23361,5514],{"class":5506},[2024,23363,2609],{"class":5500},[2024,23365,5520],{"class":5519},[2024,23367,10995],{"class":5523},[2024,23369,5514],{"class":5519},[2024,23371,5529],{"class":5500},[2024,23373,23374,23376,23378,23380,23382,23384,23386,23388],{"class":4882,"line":10185},[2024,23375,22638],{"class":5506},[2024,23377,5643],{"class":5583},[2024,23379,5514],{"class":5506},[2024,23381,2609],{"class":5500},[2024,23383,5520],{"class":5519},[2024,23385,22724],{"class":5523},[2024,23387,5514],{"class":5519},[2024,23389,5529],{"class":5500},[2024,23391,23392,23394,23396,23398,23400,23402,23405],{"class":4882,"line":10203},[2024,23393,22638],{"class":5506},[2024,23395,5663],{"class":5583},[2024,23397,5514],{"class":5506},[2024,23399,2609],{"class":5500},[2024,23401,5520],{"class":5519},[2024,23403,23404],{"class":5523},"NW-2-1-1-W1",[2024,23406,5734],{"class":5519},[2024,23408,23409],{"class":4882,"line":10211},[2024,23410,22750],{"class":5500},[2024,23412,23413],{"class":4882,"line":10222},[2024,23414,22755],{"class":5500},[2024,23416,23417],{"class":4882,"line":10231},[2024,23418,12942],{"class":5500},[2024,23420,23421,23423,23425,23427,23429,23431,23433,23435],{"class":4882,"line":10240},[2024,23422,5640],{"class":5506},[2024,23424,5511],{"class":5551},[2024,23426,5514],{"class":5506},[2024,23428,2609],{"class":5500},[2024,23430,5520],{"class":5519},[2024,23432,5560],{"class":5523},[2024,23434,5514],{"class":5519},[2024,23436,5529],{"class":5500},[2024,23438,23439,23441,23443,23445,23447],{"class":4882,"line":10245},[2024,23440,5640],{"class":5506},[2024,23442,5571],{"class":5551},[2024,23444,5514],{"class":5506},[2024,23446,2609],{"class":5500},[2024,23448,5634],{"class":5500},[2024,23450,23451,23453,23455,23457,23459,23461,23463,23465],{"class":4882,"line":10258},[2024,23452,22638],{"class":5506},[2024,23454,5511],{"class":5583},[2024,23456,5514],{"class":5506},[2024,23458,2609],{"class":5500},[2024,23460,5520],{"class":5519},[2024,23462,10765],{"class":5523},[2024,23464,5514],{"class":5519},[2024,23466,5529],{"class":5500},[2024,23468,23469,23471,23473,23475,23477,23479,23482,23484,23487],{"class":4882,"line":10274},[2024,23470,22638],{"class":5506},[2024,23472,5602],{"class":5583},[2024,23474,5514],{"class":5506},[2024,23476,2609],{"class":5500},[2024,23478,5957],{"class":5500},[2024,23480,23481],{"class":5944},"-102.045408609",[2024,23483,5597],{"class":5500},[2024,23485,23486],{"class":5944}," 49.009985497",[2024,23488,12440],{"class":5500},[2024,23490,23491],{"class":4882,"line":10290},[2024,23492,22679],{"class":5500},[2024,23494,23495,23497,23499,23501,23503],{"class":4882,"line":10305},[2024,23496,5640],{"class":5506},[2024,23498,5627],{"class":5551},[2024,23500,5514],{"class":5506},[2024,23502,2609],{"class":5500},[2024,23504,5634],{"class":5500},[2024,23506,23507,23509,23511,23513,23515,23517,23519,23521],{"class":4882,"line":10324},[2024,23508,22638],{"class":5506},[2024,23510,10988],{"class":5583},[2024,23512,5514],{"class":5506},[2024,23514,2609],{"class":5500},[2024,23516,5520],{"class":5519},[2024,23518,10995],{"class":5523},[2024,23520,5514],{"class":5519},[2024,23522,5529],{"class":5500},[2024,23524,23525,23527,23529,23531,23533,23535,23537,23539],{"class":4882,"line":10336},[2024,23526,22638],{"class":5506},[2024,23528,5643],{"class":5583},[2024,23530,5514],{"class":5506},[2024,23532,2609],{"class":5500},[2024,23534,5520],{"class":5519},[2024,23536,22724],{"class":5523},[2024,23538,5514],{"class":5519},[2024,23540,5529],{"class":5500},[2024,23542,23543,23545,23547,23549,23551,23553,23556],{"class":4882,"line":10347},[2024,23544,22638],{"class":5506},[2024,23546,5663],{"class":5583},[2024,23548,5514],{"class":5506},[2024,23550,2609],{"class":5500},[2024,23552,5520],{"class":5519},[2024,23554,23555],{"class":5523},"NW-2-1-1-W2",[2024,23557,5734],{"class":5519},[2024,23559,23560],{"class":4882,"line":10389},[2024,23561,22750],{"class":5500},[2024,23563,23564],{"class":4882,"line":10448},[2024,23565,5740],{"class":5500},[2024,23567,23568],{"class":4882,"line":10457},[2024,23569,23062],{"class":5500},[2024,23571,23572],{"class":4882,"line":10462},[2024,23573,5752],{"class":5500},[347,23575,23577],{"id":23576},"visualizing-the-difference","Visualizing the difference",[12,23579,23580],{},"To further help your understanding, we've included a visual comparison: maps showing the response with and without the proximity parameter. These maps demonstrate the clear difference in search results, highlighting how the proximity parameter refines and localizes the search outcomes.",[22557,23582,23584],{"id":23583},"map-showing-search-results-with-the-proximity-parameter","Map showing search results with the proximity parameter",[12,23586,23587],{},[128,23588],{"alt":23584,"src":23589,"style":23590},"\u002Fimages\u002Fblog\u002Ftownship-canada-introduces-proximity-based-autocomplete-api\u002Fresults-with-proximity.webp","max-width: 800px; height: auto;",[22557,23592,23594],{"id":23593},"map-showing-search-results-without-the-proximity-parameter","Map showing search results without the proximity parameter",[12,23596,23597],{},[128,23598],{"alt":23594,"src":23599,"style":23590},"\u002Fimages\u002Fblog\u002Ftownship-canada-introduces-proximity-based-autocomplete-api\u002Fresults-without-proximity.webp",[24,23601,23602],{"id":8757},"Get started",[12,23604,23605,23606,23609,23610,23613],{},"Visit our ",[45,23607,23608],{"href":3965},"developer documentation"," for detailed information on pricing, API keys, and to access our ",[45,23611,23612],{"href":6717},"quick-start guides",". These guides provide you with step-by-step instructions on how to set up API keys and begin using our APIs effectively.",[12,23615,23616],{},"We can't wait to see how you use this new feature in your applications. Happy coding!",[12,23618,23619],{},[1235,23620,23621],{},"Please note that the API key used in the example is for demonstration purposes only. Ensure you use your own API key in your requests.",[24,23623,22054],{"id":22053},[241,23625,23626,23631,23636,23641,23645],{},[244,23627,23628,23630],{},[45,23629,12188],{"href":6717}," - Get started with Township Canada APIs",[244,23632,23633,23635],{},[45,23634,20337],{"href":3965}," - Full API reference and pricing",[244,23637,23638,23640],{},[45,23639,21873],{"href":6758}," - Step-by-step integration tutorial with code examples",[244,23642,23643,22068],{},[45,23644,22067],{"href":8381},[244,23646,23647,23649],{},[45,23648,22324],{"href":3930}," - Process bulk conversions via API or web",[4964,23651,23652],{},"html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .s4Jsk, html code.shiki .s4Jsk{--shiki-light:#39ADB5;--shiki-default:#99841877;--shiki-dark:#B8A96577}html pre.shiki code .sLorS, html code.shiki .sLorS{--shiki-light:#9C3EDA;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .sa2tF, html code.shiki .sa2tF{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .skNjk, html code.shiki .skNjk{--shiki-light:#F76D47;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sYn-s, html code.shiki .sYn-s{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .sz9Cv, html code.shiki .sz9Cv{--shiki-light:#91B859;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .se3Ec, html code.shiki .se3Ec{--shiki-light:#90A4AE;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sftqT, html code.shiki .sftqT{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}",{"title":274,"searchDepth":275,"depth":275,"links":23654},[23655,23659,23660],{"id":22502,"depth":275,"text":22503,"children":23656},[23657,23658],{"id":22509,"depth":498,"text":22510},{"id":23576,"depth":498,"text":23577},{"id":8757,"depth":275,"text":23602},{"id":22053,"depth":275,"text":22054},"2024-02-07T10:00:00Z","Township Canada's API now includes a proximity parameter, enhancing search accuracy for legal land descriptions by prioritizing nearby locations.",{},"\u002Fblog\u002Ftownship-canada-introduces-proximity-based-autocomplete-api",{"title":22494,"description":23662},"blog\u002Ftownship-canada-introduces-proximity-based-autocomplete-api",[6762,6416],"5EIjRZR6YfQIJ5Zb9um5qvafTRGwxd2yeAU671HXTHg",{"id":23670,"title":23671,"author":21938,"body":23672,"category":851,"cover":23795,"date":23796,"description":23797,"extension":287,"meta":23798,"navigation":289,"path":23799,"seo":23800,"stem":23801,"tags":23802,"__hash__":23804},"blog\u002Fblog\u002Fintroducing-township-america.md","Introducing Township America; expanding our horizons to the United States",{"type":9,"value":23673,"toc":23789},[23674,23677,23680,23686,23690,23693,23713,23715,23747,23749,23757,23766,23768],[12,23675,23676],{},"The Public Land Survey System (PLSS) is a cornerstone of land surveying in the United States, established in the early 19th century to facilitate orderly land surveying and management. Utilizing a grid system, the PLSS divides land into townships and sections, a framework integral to legal land management, real estate, and resource management.",[12,23678,23679],{},"Today, we are excited to announce the launch of Township America. This new platform brings the robust tools and services of Township Canada to the US, providing advanced mapping and legal land description services. Whether your focus is on agriculture, real estate, insurance, natural resources, or land development, Township America is designed to support your work with precision and ease.",[12,23681,23682],{},[128,23683],{"alt":23684,"src":23685},"Township America","\u002Fimages\u002Fblog\u002Fintroducing-township-america\u002Foverview.webp",[24,23687,23689],{"id":23688},"expaning-coverage-across-30-states","Expaning coverage across 30 states",[12,23691,23692],{},"Township America's coverage spans 30 states, including Alabama, Alaska, Arizona, Arkansas, California, Colorado, Florida, Idaho, Illinois, Indiana, Iowa, Kansas, Louisiana, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Mexico, North Dakota, Ohio, Oklahoma, Oregon, South Dakota, Utah, Washington, Wisconsin, and Wyoming. Our platform facilitates various legal land description searches, such as:",[241,23694,23695,23698,23701,23704,23707,23710],{},[244,23696,23697],{},"Township Range Meridian (e.g., 6S 19W 5th Meridian)",[244,23699,23700],{},"Township Range County State (e.g., 6S 19W Clark County Arkansas)",[244,23702,23703],{},"Section Township Range Meridian (e.g., 4 2N 18E Indian Meridian)",[244,23705,23706],{},"Section Township Range State County (e.g., 4 2N 18E Pushmataha County Oklahoma)",[244,23708,23709],{},"Quarter-Quarter-Section Section Township Range Meridian (e.g., NESW 25 5N 30E Mount Diablo Meridian)",[244,23711,23712],{},"Quarter-Quarter-Section Section Township Range State County (e.g., NESW 25 5N 30E Mineral County Nevada)",[24,23714,21952],{"id":21951},[241,23716,23717,23723,23729,23735,23741],{},[244,23718,23719,23722],{},[19,23720,23721],{},"Advanced search",": Easily search legal land descriptions, geographic coordinates, and places, with results displayed on an interactive map.",[244,23724,23725,23728],{},[19,23726,23727],{},"Interactive mapping",": Explore US legal locations (PLSS), geographic coordinates, and more on a user-friendly, interactive map.",[244,23730,23731,23734],{},[19,23732,23733],{},"Data storage and export",": Save your research and export data in multiple formats like CSV, KML, Shapefile, DXF, and GeoJSON for integration with various applications, including Excel, Google Earth, CAD, and GIS tools.",[244,23736,23737,23740],{},[19,23738,23739],{},"Batch conversion tool",": Convert many legal locations to geographic coordinates and vice versa.",[244,23742,23743,23746],{},[19,23744,23745],{},"API integration",": Integrate our services into your applications and workflows using our robust API.",[24,23748,21991],{"id":21990},[12,23750,23751,23752,23756],{},"We invite you to explore ",[45,23753,23684],{"href":23754,"rel":23755},"https:\u002F\u002Ftownshipamerica.com",[220]," and discover how it can enhance your work with legal land descriptions in the US. Whether you're in the agricultural sector locating farms, in oil and gas managing assets, or in the insurance industry assessing lands and properties, Township America is designed to support your specific needs.",[12,23758,23759,23760,23765],{},"Your input has been vital in shaping Township Canada, and we eagerly anticipate your feedback on Township America. For any inquiries or suggestions, please ",[45,23761,23764],{"href":23762,"rel":23763},"https:\u002F\u002Ftownshipamerica.com\u002Fcontact-us",[220],"reach out"," to us. We're excited to extend our journey to the United States and grow alongside you.",[24,23767,22054],{"id":22053},[241,23769,23770,23775,23779,23784],{},[244,23771,23772,23774],{},[45,23773,22067],{"href":8381}," - Convert Canadian legal land descriptions to GPS",[244,23776,23777,22080],{},[45,23778,22079],{"href":8363},[244,23780,23781,23783],{},[45,23782,22324],{"href":3930}," - Convert large datasets at once",[244,23785,23786,23788],{},[45,23787,20337],{"href":3965}," - Integrate land description services into your apps",{"title":274,"searchDepth":275,"depth":275,"links":23790},[23791,23792,23793,23794],{"id":23688,"depth":275,"text":23689},{"id":21951,"depth":275,"text":21952},{"id":21990,"depth":275,"text":21991},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Fintroducing-township-america\u002Fcover.webp","2024-01-30T10:00:00Z","Township America expands the success of Township Canada to the US, offering advanced mapping and land description services for 30 states.",{},"\u002Fblog\u002Fintroducing-township-america",{"title":23671,"description":23797},"blog\u002Fintroducing-township-america",[1177,23803],"PLSS","OzDd8pdet96M32mMnjBrDigpgv9THSgD_f74GTFvd04",{"id":23806,"title":23807,"author":21938,"body":23808,"category":851,"cover":23940,"date":23941,"description":23942,"extension":287,"meta":23943,"navigation":289,"path":23944,"seo":23945,"stem":23946,"tags":23947,"__hash__":23948},"blog\u002Fblog\u002Ftownship-canada-website-redesign-and-new-guides-blog-launch.md","A fresh look and new resources on TownshipCanada.com",{"type":9,"value":23809,"toc":23933},[23810,23813,23817,23837,23840,23849,23853,23859,23887,23891,23898,23901,23904,23910,23912],[12,23811,23812],{},"We've been working hard to improve the performance and accessibility of our website, and we're excited to share the results with you. Let's take a closer look at the changes and what they mean for you.",[24,23814,23816],{"id":23815},"redesigned-for-better-performance-and-accessibility","Redesigned for better performance and accessibility",[12,23818,23819,23820,178,23825,23830,23831,23836],{},"The recent overhaul of our marketing website wasn't just a facelift. We transitioned from a Single Page Application (SPA) to a Static Site Generation (SSG) approach, primarily for improved SEO performance. Utilizing ",[45,23821,23824],{"href":23822,"rel":23823},"https:\u002F\u002Fnuxt.com\u002F",[220],"Nuxt 3",[45,23826,23829],{"href":23827,"rel":23828},"https:\u002F\u002Ftailwindcss.com\u002F",[220],"TailwindCSS",", along with various ",[45,23832,23835],{"href":23833,"rel":23834},"https:\u002F\u002Fnuxt.com\u002Fmodules",[220],"modules"," from the Nuxt ecosystem, the new website now loads twice as fast, boasts a more polished design and content, and provides a seamless experience on all devices.",[12,23838,23839],{},"Let's take a look at the results from running Google's PageSpeed Insights:",[12,23841,23842,23846],{},[128,23843],{"alt":23844,"src":23845},"PageSpeed Insights Results","\u002Fimages\u002Fblog\u002Ftownship-canada-website-redesign-and-new-guides-blog-launch\u002Fpagespeed-insights.webp",[1235,23847,23848],{},"PageSpeed Insights results showing enhanced performance.",[24,23850,23852],{"id":23851},"introducing-the-guides-section","Introducing the Guides section",[12,23854,23855,23856,23858],{},"Responding to user feedback and surveys from last year, we've added a ",[45,23857,15547],{"href":15546}," section. This resource is tailored to help you quickly get started and make the most of Township Canada. The Guides cover a range of topics:",[241,23860,23861,23864,23867,23870,23873,23876,23879,23882,23884],{},[244,23862,23863],{},"Converting legal land descriptions to latitude and longitude",[244,23865,23866],{},"Processing large volumes of data with Batch Conversion",[244,23868,23869],{},"Downloading search results in various formats",[244,23871,23872],{},"Bookmarking and organizing places",[244,23874,23875],{},"Trip planning tools",[244,23877,23878],{},"Interactive maps and visualizations",[244,23880,23881],{},"Team management",[244,23883,23745],{},[244,23885,23886],{},"Account management",[24,23888,23890],{"id":23889},"introducing-the-blog-section","Introducing the Blog section",[12,23892,3479,23893,23897],{},[45,23894,23896],{"href":23895},"\u002Fblog","Blog"," section aims to connect you with engaging stories, use cases, and the latest updates from Township Canada. Here, you’ll find insights into how our tools are used across different industries, success stories from our users, and news on our latest features and enhancements.",[24,23899,23900],{"id":16632},"What’s next?",[12,23902,23903],{},"These enhancements are just a step in our ongoing commitment to improving your experience with Township Canada. We encourage you to navigate through our updated website to see the improvements firsthand. Dive into the comprehensive Guides for detailed assistance on various features, and stay informed with our Blog for the latest stories, use cases, and updates.",[12,23905,23906,23907,23909],{},"Your feedback is invaluable to us, and we look forward to hearing your thoughts on these new developments. If you have any questions or suggestions, please don't hesitate to ",[45,23908,23764],{"href":21900}," to us. We're here to help you make the most of Township Canada.",[24,23911,22054],{"id":22053},[241,23913,23914,23919,23923,23928],{},[244,23915,23916,23918],{},[45,23917,15547],{"href":15546}," - Browse all Township Canada guides and tutorials",[244,23920,23921,22458],{},[45,23922,22067],{"href":8381},[244,23924,23925,23927],{},[45,23926,22324],{"href":3930}," - Process multiple descriptions at once",[244,23929,23930,23932],{},[45,23931,20337],{"href":3965}," - Integrate Township Canada into your applications",{"title":274,"searchDepth":275,"depth":275,"links":23934},[23935,23936,23937,23938,23939],{"id":23815,"depth":275,"text":23816},{"id":23851,"depth":275,"text":23852},{"id":23889,"depth":275,"text":23890},{"id":16632,"depth":275,"text":23900},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Ftownship-canada-website-redesign-and-new-guides-blog-launch\u002Fcover.webp","2024-01-02T10:00:00Z","Township Canada's website now offers faster loading, better SEO, and new Guides and Blog sections for enhanced user education and engagement.",{},"\u002Fblog\u002Ftownship-canada-website-redesign-and-new-guides-blog-launch",{"title":23807,"description":23942},"blog\u002Ftownship-canada-website-redesign-and-new-guides-blog-launch",[22207,16666],"1ad2unKLkgrp_Kbv_poONCzMMQYRpZZ2U0aXQQvlDJc",{"id":23950,"title":23951,"author":21938,"body":23952,"category":851,"cover":24063,"date":24064,"description":24065,"extension":287,"meta":24066,"navigation":289,"path":24067,"seo":24068,"stem":24069,"tags":24070,"__hash__":24071},"blog\u002Fblog\u002Fnew-data-catalog-feature-township-canada.md","Exploring the new Data Catalog feature on Township Canada",{"type":9,"value":23953,"toc":24056},[23954,23957,23960,23986,23989,23995,23999,24002,24007,24011,24014,24020,24024,24027,24031,24036,24038],[12,23955,23956],{},"We're delighted to bring you another significant enhancement to Township Canada – the introduction of the Data Catalog. This feature is born from your feedback and our commitment to continually improve your experience with our platform.",[12,23958,23959],{},"The Data Catalog is a collection of map layers and contextual data designed to enrich your research and project planning. It provides a comprehensive view of the Canadian landscape, offering valuable insights for a wide range of industries and applications. The Data Catalog currently includes four key layers:",[241,23961,23962,23968,23974,23980],{},[244,23963,23964,23967],{},[19,23965,23966],{},"Soil Landscapes of Canada",": Dive into detailed soil order information, essential for agriculture, environmental studies, and land use planning.",[244,23969,23970,23973],{},[19,23971,23972],{},"Administrative boundaries",": Access accurate data for all rural and municipal boundaries, a vital tool for regional planning and analysis.",[244,23975,23976,23979],{},[19,23977,23978],{},"Oil and gas fields",": Visualize key oil and gas fields in British Columbia, Alberta, Saskatchewan, and Manitoba, crucial for industry-related projects.",[244,23981,23982,23985],{},[19,23983,23984],{},"Aboriginal lands",": Gain insights into Aboriginal lands across Canada, supporting informed and respectful land use and planning.",[12,23987,23988],{},"With the ability to toggle these layers on and off, you can tailor your map view to focus on the specific data you need for your projects or analysis.",[12,23990,23991],{},[128,23992],{"alt":23993,"src":23994},"Township Canada Data Catalog","\u002Fimages\u002Fblog\u002Fnew-data-catalog-feature-township-canada\u002Foverview.webp",[24,23996,23998],{"id":23997},"enriching-your-results","Enriching your results",[12,24000,24001],{},"But the Data Catalog isn't just for viewing – it's about enriching your work. Using our batch conversion tool, you can cross-reference legal land locations with the contextual data from the Catalog. This integration provides a deeper understanding of the geographic context, enhancing your analysis and decision-making.",[12,24003,24004],{},[128,24005],{"alt":4991,"src":24006},"\u002Fimages\u002Fblog\u002Fnew-data-catalog-feature-township-canada\u002Fbatch-conversion.webp",[24,24008,24010],{"id":24009},"visualizing-the-data","Visualizing the data",[12,24012,24013],{},"To help you understand the potential of the Data Catalog, we've included screenshots for a clearer visual representation. Here's a glimpse of the Soil Landscapes of Canada layer on the map. You can also visualize administrative boundaries, oil and gas fields, and Aboriginal lands in a similar manner.",[12,24015,24016],{},[128,24017],{"alt":24018,"src":24019},"Data catalog on the map","\u002Fimages\u002Fblog\u002Fnew-data-catalog-feature-township-canada\u002Fresult.webp",[24,24021,24023],{"id":24022},"shaping-the-future-of-your-experience","Shaping the future of your experience",[12,24025,24026],{},"Your input has been instrumental in developing the Data Catalog, and we're not stopping here. We'd love to hear your thoughts on what additional data or features you would like to see in Township Canada. Your suggestions will continue to guide us in enhancing the platform to meet your evolving needs.",[24,24028,24030],{"id":24029},"explore-the-data-catalog-today","Explore the Data Catalog today",[12,24032,24033,24034,60],{},"We invite you to explore the Data Catalog on Township Canada and discover how it can add depth and context to your projects. Let us know what you think, and if you have any questions or feedback, please don't hesitate to ",[45,24035,22049],{"href":21900},[24,24037,22054],{"id":22053},[241,24039,24040,24044,24048,24052],{},[244,24041,24042,22458],{},[45,24043,22067],{"href":8381},[244,24045,24046,23927],{},[45,24047,22324],{"href":3930},[244,24049,24050,22080],{},[45,24051,22079],{"href":8363},[244,24053,24054,22340],{},[45,24055,22339],{"href":103},{"title":274,"searchDepth":275,"depth":275,"links":24057},[24058,24059,24060,24061,24062],{"id":23997,"depth":275,"text":23998},{"id":24009,"depth":275,"text":24010},{"id":24022,"depth":275,"text":24023},{"id":24029,"depth":275,"text":24030},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Fnew-data-catalog-feature-township-canada\u002Fcover.webp","2023-06-29T10:00:00Z","Township Canada's Data Catalog offers soil landscape of Canada, administrative boundaries, oil and gas fields, and Aboriginal land data.",{},"\u002Fblog\u002Fnew-data-catalog-feature-township-canada",{"title":23951,"description":24065},"blog\u002Fnew-data-catalog-feature-township-canada",[22207,16666],"29mqr6NcSEmXoAXOHXELCkSedp-bRc8kHyHnGl0qI2A",{"id":24073,"title":24074,"author":21938,"body":24075,"category":851,"cover":24173,"date":24174,"description":24175,"extension":287,"meta":24176,"navigation":289,"path":24177,"seo":24178,"stem":24179,"tags":24180,"__hash__":24181},"blog\u002Fblog\u002Ffps-grids-integration-township-canada.md","The Federal Permit System grids are now available in Township Canada",{"type":9,"value":24076,"toc":24167},[24077,24080,24086,24090,24093,24096,24100,24103,24123,24126,24131,24135,24145,24147],[12,24078,24079],{},"We are excited to announce a significant update to Township Canada – the integration of the Federal Permit System (FPS) survey grids. This update marks a major advancement in how you can navigate and utilize land data, particularly for oil and gas exploration and production activities on federal lands in Canada.",[12,24081,24082],{},[128,24083],{"alt":24084,"src":24085},"Township Canada FPS Grids","\u002Fimages\u002Fblog\u002Ffps-grids-integration-township-canada\u002Foverview.webp",[24,24087,24089],{"id":24088},"understanding-the-fps-grid-system","Understanding the FPS Grid System",[12,24091,24092],{},"The Federal Government of Canada employs the FPS grid system to oversee oil and gas exploration and production on federal lands. This system covers areas in the Northwest Territories, Nunavut, and offshore regions in both the Atlantic and Pacific Oceans, as well as Hudson Bay.",[12,24094,24095],{},"The FPS grid system is organized into Grids, Sections, and Units. These grids are delineated with east and west boundaries at intervals of every 10 minutes of latitude and have a longitudinal width of 15 minutes (for areas south of 70 degrees North) that expands to 30 minutes in regions north of 70 degrees North. Each grid is identified by the longitude and latitude coordinates of its northeast corner. For example, a grid at 60-20 N 100-30 W indicates a location in Nunavut, marked by its northeastern coordinates of 60°20'N and 100°30'W. Within each grid, the land is further organized into numbered sections (ranging from 1 to 99) and lettered units (from A to P).",[24,24097,24099],{"id":24098},"locating-fps-based-legal-land-descriptions","Locating FPS-based legal land descriptions",[12,24101,24102],{},"Township Canada now enables you to locate FPS-based legal land descriptions with ease, using three distinct formats:",[1863,24104,24105,24111,24117],{},[244,24106,24107,24110],{},[19,24108,24109],{},"Grid Format",": for example, 60-20 N 100-30 W.",[244,24112,24113,24116],{},[19,24114,24115],{},"Section Grid Format",": for example, 48 60-20 N 100-30 W.",[244,24118,24119,24122],{},[19,24120,24121],{},"Unit Section Grid Format",": for example, F 48 60-20 N 100-30 W.",[12,24124,24125],{},"This integration significantly improves the accuracy and efficiency of locating and managing land in these federally regulated areas. Whether you're in the oil and gas sector, land management, or research, these FPS grids will provide you with the detailed data necessary for your projects.",[12,24127,24128],{},[128,24129],{"alt":24099,"src":24130},"\u002Fimages\u002Fblog\u002Ffps-grids-integration-township-canada\u002Fsearch-results.webp",[24,24132,24134],{"id":24133},"explore-fps-grids-on-township-canada","Explore FPS grids on Township Canada",[12,24136,24137,24138,24142,24143,60],{},"We encourage you to explore this new feature and see how it can help you in your work. If you're new to Township Canada, you can ",[45,24139,24141],{"href":218,"rel":24140},[220],"sign up for free"," to experience the FPS grids and other features firsthand. If you're already a user, you can start using the FPS grids right away. If you have any questions or feedback, please don't hesitate to ",[45,24144,22049],{"href":21900},[24,24146,22054],{"id":22053},[241,24148,24149,24153,24159,24163],{},[244,24150,24151,22458],{},[45,24152,22067],{"href":8381},[244,24154,24155,24158],{},[45,24156,24157],{"href":47},"BC NTS Converter"," - Convert BC NTS descriptions to coordinates",[244,24160,24161,23927],{},[45,24162,22324],{"href":3930},[244,24164,24165,23932],{},[45,24166,20337],{"href":3965},{"title":274,"searchDepth":275,"depth":275,"links":24168},[24169,24170,24171,24172],{"id":24088,"depth":275,"text":24089},{"id":24098,"depth":275,"text":24099},{"id":24133,"depth":275,"text":24134},{"id":22053,"depth":275,"text":22054},"\u002Fimages\u002Fblog\u002Ffps-grids-integration-township-canada\u002Fcover.webp","2023-06-22T10:00:00Z","Township Canada integrates FPS survey grids, simplifying land data exploration for oil and gas activities on Canadian federal lands.",{},"\u002Fblog\u002Ffps-grids-integration-township-canada",{"title":24074,"description":24175},"blog\u002Ffps-grids-integration-township-canada",[22207,16666],"dQbr1PwQpERvHy8621SDxBJCjuLZ1nThS5-FyAMxt9k"]