[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"guide-leaflet-integration":3,"related-leaflet-integration":7165},{"id":4,"title":5,"body":6,"category":7155,"description":7156,"draft":7157,"extension":7158,"icon":7159,"meta":7160,"navigation":502,"order":170,"path":7161,"seo":7162,"stem":7163,"__hash__":7164},"guides\u002Fguides\u002Fleaflet-integration.md","Using Township Canada API with Leaflet",{"type":7,"value":8,"toc":7136},"minimark",[9,13,22,27,30,49,53,78,82,90,669,672,675,759,763,766,771,779,786,790,1377,1388,1392,1399,2150,2162,2166,2169,2173,2179,2182,2188,2448,2451,3607,3610,3614,3617,3628,3638,3646,3650,3656,7059,7072,7076,7102,7106,7133],[10,11,12],"p",{},"Build a web map that searches Canadian legal land descriptions, places markers, and draws parcel boundaries - all using Leaflet and the Township Canada API.",[10,14,15,16,21],{},"Leaflet is a lightweight, open-source mapping library with no vendor dependencies. It does not have native vector tile support, so this guide focuses on the ",[17,18,20],"a",{"href":19},"\u002Fguides\u002Fapi-integration","Search API"," and Autocomplete API for the core workflow. Vector tile support is covered separately at the end.",[23,24,26],"h2",{"id":25},"what-youll-build","What you'll build",[10,28,29],{},"By the end of this guide, you'll have a web page that:",[31,32,33,37,40,43,46],"ul",{},[34,35,36],"li",{},"Displays a Leaflet map centred on Calgary",[34,38,39],{},"Searches legal land descriptions (e.g., NW-25-24-1-W5) and places a marker at the result",[34,41,42],{},"Draws the parcel boundary polygon from the API response",[34,44,45],{},"Shows a popup with legal land description details on the marker",[34,47,48],{},"Includes a live autocomplete search box with debounced input",[23,50,52],{"id":51},"prerequisites","Prerequisites",[31,54,55,72,75],{},[34,56,57,58,62,63,67,68],{},"A ",[59,60,61],"strong",{},"Township Canada API key"," - subscribe to the Search API from the ",[17,64,66],{"href":65},"\u002Fapp\u002Fapi","API page",", then create an API key from your ",[17,69,71],{"href":70},"\u002Fguides\u002Faccount-management","account settings",[34,73,74],{},"Basic knowledge of HTML and JavaScript",[34,76,77],{},"No build tools required - everything loads from CDN",[23,79,81],{"id":80},"step-1-set-up-the-map","Step 1: Set up the map",[10,83,84,85,89],{},"Create an ",[86,87,88],"code",{},"index.html"," file and load Leaflet from CDN:",[91,92,97],"pre",{"className":93,"code":94,"language":95,"meta":96,"style":96},"language-html shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","\u003C!DOCTYPE html>\n\u003Chtml>\n  \u003Chead>\n    \u003Cmeta charset=\"utf-8\" \u002F>\n    \u003Ctitle>Township Canada + Leaflet\u003C\u002Ftitle>\n    \u003Cmeta\n      name=\"viewport\"\n      content=\"width=device-width, initial-scale=1.0\"\n    \u002F>\n    \u003Clink\n      rel=\"stylesheet\"\n      href=\"https:\u002F\u002Funpkg.com\u002Fleaflet@1.9.4\u002Fdist\u002Fleaflet.css\"\n    \u002F>\n    \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Fleaflet@1.9.4\u002Fdist\u002Fleaflet.js\">\u003C\u002Fscript>\n    \u003Cstyle>\n      body {\n        margin: 0;\n        padding: 0;\n      }\n      #map {\n        height: 100vh;\n        width: 100%;\n      }\n    \u003C\u002Fstyle>\n  \u003C\u002Fhead>\n  \u003Cbody>\n    \u003Cdiv id=\"map\">\u003C\u002Fdiv>\n    \u003Cscript>\n      const TC_API_KEY = \"YOUR_API_KEY\";\n\n      const map = L.map(\"map\").setView([51.05, -114.07], 10); \u002F\u002F Calgary, AB\n\n      L.tileLayer(\"https:\u002F\u002F{s}.tile.openstreetmap.org\u002F{z}\u002F{x}\u002F{y}.png\", {\n        attribution: '&copy; \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002Fcopyright\">OpenStreetMap\u003C\u002Fa>'\n      }).addTo(map);\n    \u003C\u002Fscript>\n  \u003C\u002Fbody>\n\u003C\u002Fhtml>\n","html","",[86,98,99,119,129,140,168,190,198,214,229,235,243,258,273,278,305,315,325,342,354,360,372,389,404,409,419,429,439,464,473,497,504,574,579,603,621,642,651,660],{"__ignoreMap":96},[100,101,104,108,112,116],"span",{"class":102,"line":103},"line",1,[100,105,107],{"class":106},"soVBu","\u003C!",[100,109,111],{"class":110},"sJFLg","DOCTYPE",[100,113,115],{"class":114},"s5q8q"," html",[100,117,118],{"class":106},">\n",[100,120,122,125,127],{"class":102,"line":121},2,[100,123,124],{"class":106},"\u003C",[100,126,95],{"class":110},[100,128,118],{"class":106},[100,130,132,135,138],{"class":102,"line":131},3,[100,133,134],{"class":106},"  \u003C",[100,136,137],{"class":110},"head",[100,139,118],{"class":106},[100,141,143,146,149,152,155,159,163,165],{"class":102,"line":142},4,[100,144,145],{"class":106},"    \u003C",[100,147,148],{"class":110},"meta",[100,150,151],{"class":114}," charset",[100,153,154],{"class":106},"=",[100,156,158],{"class":157},"sbYkP","\"",[100,160,162],{"class":161},"sTbE_","utf-8",[100,164,158],{"class":157},[100,166,167],{"class":106}," \u002F>\n",[100,169,171,173,176,179,183,186,188],{"class":102,"line":170},5,[100,172,145],{"class":106},[100,174,175],{"class":110},"title",[100,177,178],{"class":106},">",[100,180,182],{"class":181},"sftqT","Township Canada + Leaflet",[100,184,185],{"class":106},"\u003C\u002F",[100,187,175],{"class":110},[100,189,118],{"class":106},[100,191,193,195],{"class":102,"line":192},6,[100,194,145],{"class":106},[100,196,197],{"class":110},"meta\n",[100,199,201,204,206,208,211],{"class":102,"line":200},7,[100,202,203],{"class":114},"      name",[100,205,154],{"class":106},[100,207,158],{"class":157},[100,209,210],{"class":161},"viewport",[100,212,213],{"class":157},"\"\n",[100,215,217,220,222,224,227],{"class":102,"line":216},8,[100,218,219],{"class":114},"      content",[100,221,154],{"class":106},[100,223,158],{"class":157},[100,225,226],{"class":161},"width=device-width, initial-scale=1.0",[100,228,213],{"class":157},[100,230,232],{"class":102,"line":231},9,[100,233,234],{"class":106},"    \u002F>\n",[100,236,238,240],{"class":102,"line":237},10,[100,239,145],{"class":106},[100,241,242],{"class":110},"link\n",[100,244,246,249,251,253,256],{"class":102,"line":245},11,[100,247,248],{"class":114},"      rel",[100,250,154],{"class":106},[100,252,158],{"class":157},[100,254,255],{"class":161},"stylesheet",[100,257,213],{"class":157},[100,259,261,264,266,268,271],{"class":102,"line":260},12,[100,262,263],{"class":114},"      href",[100,265,154],{"class":106},[100,267,158],{"class":157},[100,269,270],{"class":161},"https:\u002F\u002Funpkg.com\u002Fleaflet@1.9.4\u002Fdist\u002Fleaflet.css",[100,272,213],{"class":157},[100,274,276],{"class":102,"line":275},13,[100,277,234],{"class":106},[100,279,281,283,286,289,291,293,296,298,301,303],{"class":102,"line":280},14,[100,282,145],{"class":106},[100,284,285],{"class":110},"script",[100,287,288],{"class":114}," src",[100,290,154],{"class":106},[100,292,158],{"class":157},[100,294,295],{"class":161},"https:\u002F\u002Funpkg.com\u002Fleaflet@1.9.4\u002Fdist\u002Fleaflet.js",[100,297,158],{"class":157},[100,299,300],{"class":106},">\u003C\u002F",[100,302,285],{"class":110},[100,304,118],{"class":106},[100,306,308,310,313],{"class":102,"line":307},15,[100,309,145],{"class":106},[100,311,312],{"class":110},"style",[100,314,118],{"class":106},[100,316,318,322],{"class":102,"line":317},16,[100,319,321],{"class":320},"skzw8","      body",[100,323,324],{"class":106}," {\n",[100,326,328,332,335,339],{"class":102,"line":327},17,[100,329,331],{"class":330},"s5HLA","        margin",[100,333,334],{"class":106},":",[100,336,338],{"class":337},"s7CZa"," 0",[100,340,341],{"class":106},";\n",[100,343,345,348,350,352],{"class":102,"line":344},18,[100,346,347],{"class":330},"        padding",[100,349,334],{"class":106},[100,351,338],{"class":337},[100,353,341],{"class":106},[100,355,357],{"class":102,"line":356},19,[100,358,359],{"class":106},"      }\n",[100,361,363,366,370],{"class":102,"line":362},20,[100,364,365],{"class":106},"      #",[100,367,369],{"class":368},"sAntY","map",[100,371,324],{"class":106},[100,373,375,378,380,383,387],{"class":102,"line":374},21,[100,376,377],{"class":330},"        height",[100,379,334],{"class":106},[100,381,382],{"class":337}," 100",[100,384,386],{"class":385},"sQBxk","vh",[100,388,341],{"class":106},[100,390,392,395,397,399,402],{"class":102,"line":391},22,[100,393,394],{"class":330},"        width",[100,396,334],{"class":106},[100,398,382],{"class":337},[100,400,401],{"class":385},"%",[100,403,341],{"class":106},[100,405,407],{"class":102,"line":406},23,[100,408,359],{"class":106},[100,410,412,415,417],{"class":102,"line":411},24,[100,413,414],{"class":106},"    \u003C\u002F",[100,416,312],{"class":110},[100,418,118],{"class":106},[100,420,422,425,427],{"class":102,"line":421},25,[100,423,424],{"class":106},"  \u003C\u002F",[100,426,137],{"class":110},[100,428,118],{"class":106},[100,430,432,434,437],{"class":102,"line":431},26,[100,433,134],{"class":106},[100,435,436],{"class":110},"body",[100,438,118],{"class":106},[100,440,442,444,447,450,452,454,456,458,460,462],{"class":102,"line":441},27,[100,443,145],{"class":106},[100,445,446],{"class":110},"div",[100,448,449],{"class":114}," id",[100,451,154],{"class":106},[100,453,158],{"class":157},[100,455,369],{"class":161},[100,457,158],{"class":157},[100,459,300],{"class":106},[100,461,446],{"class":110},[100,463,118],{"class":106},[100,465,467,469,471],{"class":102,"line":466},28,[100,468,145],{"class":106},[100,470,285],{"class":110},[100,472,118],{"class":106},[100,474,476,480,484,487,490,493,495],{"class":102,"line":475},29,[100,477,479],{"class":478},"s5Kfy","      const",[100,481,483],{"class":482},"sSC40"," TC_API_KEY",[100,485,486],{"class":106}," =",[100,488,489],{"class":157}," \"",[100,491,492],{"class":161},"YOUR_API_KEY",[100,494,158],{"class":157},[100,496,341],{"class":106},[100,498,500],{"class":102,"line":499},30,[100,501,503],{"emptyLinePlaceholder":502},true,"\n",[100,505,507,509,512,514,517,520,523,527,529,531,533,536,538,541,544,547,550,554,557,560,562,565,567,570],{"class":102,"line":506},31,[100,508,479],{"class":478},[100,510,511],{"class":482}," map",[100,513,486],{"class":106},[100,515,516],{"class":482}," L",[100,518,519],{"class":106},".",[100,521,369],{"class":522},"sljsM",[100,524,526],{"class":525},"snCua","(",[100,528,158],{"class":157},[100,530,369],{"class":161},[100,532,158],{"class":157},[100,534,535],{"class":525},")",[100,537,519],{"class":106},[100,539,540],{"class":522},"setView",[100,542,543],{"class":525},"([",[100,545,546],{"class":337},"51.05",[100,548,549],{"class":106},",",[100,551,553],{"class":552},"sVsLi"," -",[100,555,556],{"class":337},"114.07",[100,558,559],{"class":525},"]",[100,561,549],{"class":106},[100,563,564],{"class":337}," 10",[100,566,535],{"class":525},[100,568,569],{"class":106},";",[100,571,573],{"class":572},"s9Tkl"," \u002F\u002F Calgary, AB\n",[100,575,577],{"class":102,"line":576},32,[100,578,503],{"emptyLinePlaceholder":502},[100,580,582,585,587,590,592,594,597,599,601],{"class":102,"line":581},33,[100,583,584],{"class":482},"      L",[100,586,519],{"class":106},[100,588,589],{"class":522},"tileLayer",[100,591,526],{"class":525},[100,593,158],{"class":157},[100,595,596],{"class":161},"https:\u002F\u002F{s}.tile.openstreetmap.org\u002F{z}\u002F{x}\u002F{y}.png",[100,598,158],{"class":157},[100,600,549],{"class":106},[100,602,324],{"class":106},[100,604,606,610,612,615,618],{"class":102,"line":605},34,[100,607,609],{"class":608},"suXOh","        attribution",[100,611,334],{"class":106},[100,613,614],{"class":157}," '",[100,616,617],{"class":161},"&copy; \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002Fcopyright\">OpenStreetMap\u003C\u002Fa>",[100,619,620],{"class":157},"'\n",[100,622,624,627,629,631,634,636,638,640],{"class":102,"line":623},35,[100,625,626],{"class":106},"      }",[100,628,535],{"class":525},[100,630,519],{"class":106},[100,632,633],{"class":522},"addTo",[100,635,526],{"class":525},[100,637,369],{"class":482},[100,639,535],{"class":525},[100,641,341],{"class":106},[100,643,645,647,649],{"class":102,"line":644},36,[100,646,414],{"class":106},[100,648,285],{"class":110},[100,650,118],{"class":106},[100,652,654,656,658],{"class":102,"line":653},37,[100,655,424],{"class":106},[100,657,436],{"class":110},[100,659,118],{"class":106},[100,661,663,665,667],{"class":102,"line":662},38,[100,664,185],{"class":106},[100,666,95],{"class":110},[100,668,118],{"class":106},[10,670,671],{},"Open the file in a browser. You should see a map centred on Calgary using OpenStreetMap tiles.",[10,673,674],{},"You can swap the tile layer for any provider. CartoDB Positron is a good choice for a cleaner background:",[91,676,680],{"className":677,"code":678,"language":679,"meta":96,"style":96},"language-javascript shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","L.tileLayer(\"https:\u002F\u002F{s}.basemaps.cartocdn.com\u002Flight_all\u002F{z}\u002F{x}\u002F{y}{r}.png\", {\n  attribution:\n    '&copy; \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002Fcopyright\">OpenStreetMap\u003C\u002Fa> &copy; \u003Ca href=\"https:\u002F\u002Fcarto.com\u002F\">CARTO\u003C\u002Fa>',\n  subdomains: \"abcd\"\n}).addTo(map);\n","javascript",[86,681,682,704,712,726,740],{"__ignoreMap":96},[100,683,684,687,689,691,693,695,698,700,702],{"class":102,"line":103},[100,685,686],{"class":482},"L",[100,688,519],{"class":106},[100,690,589],{"class":522},[100,692,526],{"class":525},[100,694,158],{"class":157},[100,696,697],{"class":161},"https:\u002F\u002F{s}.basemaps.cartocdn.com\u002Flight_all\u002F{z}\u002F{x}\u002F{y}{r}.png",[100,699,158],{"class":157},[100,701,549],{"class":106},[100,703,324],{"class":106},[100,705,706,709],{"class":102,"line":121},[100,707,708],{"class":608},"  attribution",[100,710,711],{"class":106},":\n",[100,713,714,717,720,723],{"class":102,"line":131},[100,715,716],{"class":157},"    '",[100,718,719],{"class":161},"&copy; \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002Fcopyright\">OpenStreetMap\u003C\u002Fa> &copy; \u003Ca href=\"https:\u002F\u002Fcarto.com\u002F\">CARTO\u003C\u002Fa>",[100,721,722],{"class":157},"'",[100,724,725],{"class":106},",\n",[100,727,728,731,733,735,738],{"class":102,"line":142},[100,729,730],{"class":608},"  subdomains",[100,732,334],{"class":106},[100,734,489],{"class":157},[100,736,737],{"class":161},"abcd",[100,739,213],{"class":157},[100,741,742,745,747,749,751,753,755,757],{"class":102,"line":170},[100,743,744],{"class":106},"}",[100,746,535],{"class":525},[100,748,519],{"class":106},[100,750,633],{"class":522},[100,752,526],{"class":525},[100,754,369],{"class":482},[100,756,535],{"class":525},[100,758,341],{"class":106},[23,760,762],{"id":761},"step-2-search-and-place-markers","Step 2: Search and place markers",[10,764,765],{},"Use the Search API to convert a legal land description to coordinates, then place a marker with a popup.",[767,768,770],"h3",{"id":769},"search-api-endpoint","Search API endpoint",[91,772,777],{"className":773,"code":775,"language":776},[774],"language-text","GET https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location={query}\nX-API-Key: YOUR_API_KEY\n","text",[86,778,775],{"__ignoreMap":96},[10,780,781,782,785],{},"The response is a GeoJSON FeatureCollection with two features: a polygon (the parcel boundary) and a centroid point. See the ",[17,783,784],{"href":19},"API Integration Guide"," for the full response schema.",[767,787,789],{"id":788},"placing-a-marker","Placing a marker",[91,791,793],{"className":677,"code":792,"language":679,"meta":96,"style":96},"async function searchLocation(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\n  if (!data.features || data.features.length === 0) {\n    console.error(\"No results found for:\", query);\n    return;\n  }\n\n  \u002F\u002F The centroid feature has shape: \"centroid\" in its properties\n  const centroid = data.features.find((f) => f.properties.shape === \"centroid\");\n  if (!centroid) return;\n\n  const [lng, lat] = centroid.geometry.coordinates;\n  const props = centroid.properties;\n\n  \u002F\u002F Leaflet uses [lat, lng] - note the order\n  const marker = L.marker([lat, lng]).addTo(map);\n\n  marker\n    .bindPopup(\n      `\u003Cstrong>${props.legal_location}\u003C\u002Fstrong>\u003Cbr>` + `${lat.toFixed(6)}, ${lng.toFixed(6)}`\n    )\n    .openPopup();\n\n  map.setView([lat, lng], 14);\n}\n\n\u002F\u002F Example: search for a quarter section in Alberta\nsearchLocation(\"NW-25-24-1-W5\");\n",[86,794,795,816,837,866,897,904,908,931,935,978,1006,1013,1018,1022,1027,1086,1103,1107,1140,1157,1161,1166,1207,1211,1216,1226,1297,1302,1313,1317,1345,1350,1354,1359],{"__ignoreMap":96},[100,796,797,800,803,806,808,812,814],{"class":102,"line":103},[100,798,799],{"class":478},"async",[100,801,802],{"class":478}," function",[100,804,805],{"class":522}," searchLocation",[100,807,526],{"class":106},[100,809,811],{"class":810},"sqOPj","query",[100,813,535],{"class":106},[100,815,324],{"class":106},[100,817,818,821,824,826,830,833],{"class":102,"line":121},[100,819,820],{"class":478},"  const",[100,822,823],{"class":482}," response",[100,825,486],{"class":106},[100,827,829],{"class":828},"siDh9"," await",[100,831,832],{"class":522}," fetch",[100,834,836],{"class":835},"sLdnO","(\n",[100,838,839,842,845,849,852,854,857,859,861,864],{"class":102,"line":131},[100,840,841],{"class":157},"    `",[100,843,844],{"class":161},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=",[100,846,848],{"class":847},"s8XtY","${",[100,850,851],{"class":522},"encodeURIComponent",[100,853,526],{"class":525},[100,855,811],{"class":856},"su_V2",[100,858,535],{"class":525},[100,860,744],{"class":847},[100,862,863],{"class":157},"`",[100,865,725],{"class":106},[100,867,868,871,874,876,879,881,885,887,889,891,894],{"class":102,"line":142},[100,869,870],{"class":106},"    {",[100,872,873],{"class":608}," headers",[100,875,334],{"class":106},[100,877,878],{"class":106}," {",[100,880,489],{"class":157},[100,882,884],{"class":883},"sQtxO","X-API-Key",[100,886,158],{"class":157},[100,888,334],{"class":106},[100,890,483],{"class":482},[100,892,893],{"class":106}," }",[100,895,896],{"class":106}," }\n",[100,898,899,902],{"class":102,"line":170},[100,900,901],{"class":835},"  )",[100,903,341],{"class":106},[100,905,906],{"class":102,"line":192},[100,907,503],{"emptyLinePlaceholder":502},[100,909,910,912,915,917,919,921,923,926,929],{"class":102,"line":200},[100,911,820],{"class":478},[100,913,914],{"class":482}," data",[100,916,486],{"class":106},[100,918,829],{"class":828},[100,920,823],{"class":482},[100,922,519],{"class":106},[100,924,925],{"class":522},"json",[100,927,928],{"class":835},"()",[100,930,341],{"class":106},[100,932,933],{"class":102,"line":216},[100,934,503],{"emptyLinePlaceholder":502},[100,936,937,940,943,946,949,951,954,957,959,961,963,965,969,972,974,976],{"class":102,"line":231},[100,938,939],{"class":828},"  if",[100,941,942],{"class":835}," (",[100,944,945],{"class":552},"!",[100,947,948],{"class":482},"data",[100,950,519],{"class":106},[100,952,953],{"class":482},"features",[100,955,956],{"class":552}," ||",[100,958,914],{"class":482},[100,960,519],{"class":106},[100,962,953],{"class":482},[100,964,519],{"class":106},[100,966,968],{"class":967},"s131V","length",[100,970,971],{"class":552}," ===",[100,973,338],{"class":337},[100,975,535],{"class":835},[100,977,324],{"class":106},[100,979,980,983,985,988,990,992,995,997,999,1002,1004],{"class":102,"line":237},[100,981,982],{"class":482},"    console",[100,984,519],{"class":106},[100,986,987],{"class":522},"error",[100,989,526],{"class":835},[100,991,158],{"class":157},[100,993,994],{"class":161},"No results found for:",[100,996,158],{"class":157},[100,998,549],{"class":106},[100,1000,1001],{"class":482}," query",[100,1003,535],{"class":835},[100,1005,341],{"class":106},[100,1007,1008,1011],{"class":102,"line":245},[100,1009,1010],{"class":828},"    return",[100,1012,341],{"class":106},[100,1014,1015],{"class":102,"line":260},[100,1016,1017],{"class":106},"  }\n",[100,1019,1020],{"class":102,"line":275},[100,1021,503],{"emptyLinePlaceholder":502},[100,1023,1024],{"class":102,"line":280},[100,1025,1026],{"class":572},"  \u002F\u002F The centroid feature has shape: \"centroid\" in its properties\n",[100,1028,1029,1031,1034,1036,1038,1040,1042,1044,1047,1049,1051,1054,1056,1060,1063,1065,1068,1070,1073,1075,1077,1080,1082,1084],{"class":102,"line":307},[100,1030,820],{"class":478},[100,1032,1033],{"class":482}," centroid",[100,1035,486],{"class":106},[100,1037,914],{"class":482},[100,1039,519],{"class":106},[100,1041,953],{"class":482},[100,1043,519],{"class":106},[100,1045,1046],{"class":522},"find",[100,1048,526],{"class":835},[100,1050,526],{"class":106},[100,1052,1053],{"class":810},"f",[100,1055,535],{"class":106},[100,1057,1059],{"class":1058},"sIOqK"," =>",[100,1061,1062],{"class":482}," f",[100,1064,519],{"class":106},[100,1066,1067],{"class":482},"properties",[100,1069,519],{"class":106},[100,1071,1072],{"class":482},"shape",[100,1074,971],{"class":552},[100,1076,489],{"class":157},[100,1078,1079],{"class":161},"centroid",[100,1081,158],{"class":157},[100,1083,535],{"class":835},[100,1085,341],{"class":106},[100,1087,1088,1090,1092,1094,1096,1098,1101],{"class":102,"line":317},[100,1089,939],{"class":828},[100,1091,942],{"class":835},[100,1093,945],{"class":552},[100,1095,1079],{"class":482},[100,1097,535],{"class":835},[100,1099,1100],{"class":828}," return",[100,1102,341],{"class":106},[100,1104,1105],{"class":102,"line":327},[100,1106,503],{"emptyLinePlaceholder":502},[100,1108,1109,1111,1114,1117,1119,1122,1124,1126,1128,1130,1133,1135,1138],{"class":102,"line":344},[100,1110,820],{"class":478},[100,1112,1113],{"class":106}," [",[100,1115,1116],{"class":482},"lng",[100,1118,549],{"class":106},[100,1120,1121],{"class":482}," lat",[100,1123,559],{"class":106},[100,1125,486],{"class":106},[100,1127,1033],{"class":482},[100,1129,519],{"class":106},[100,1131,1132],{"class":482},"geometry",[100,1134,519],{"class":106},[100,1136,1137],{"class":482},"coordinates",[100,1139,341],{"class":106},[100,1141,1142,1144,1147,1149,1151,1153,1155],{"class":102,"line":356},[100,1143,820],{"class":478},[100,1145,1146],{"class":482}," props",[100,1148,486],{"class":106},[100,1150,1033],{"class":482},[100,1152,519],{"class":106},[100,1154,1067],{"class":482},[100,1156,341],{"class":106},[100,1158,1159],{"class":102,"line":362},[100,1160,503],{"emptyLinePlaceholder":502},[100,1162,1163],{"class":102,"line":374},[100,1164,1165],{"class":572},"  \u002F\u002F Leaflet uses [lat, lng] - note the order\n",[100,1167,1168,1170,1173,1175,1177,1179,1182,1184,1187,1189,1192,1195,1197,1199,1201,1203,1205],{"class":102,"line":391},[100,1169,820],{"class":478},[100,1171,1172],{"class":482}," marker",[100,1174,486],{"class":106},[100,1176,516],{"class":482},[100,1178,519],{"class":106},[100,1180,1181],{"class":522},"marker",[100,1183,543],{"class":835},[100,1185,1186],{"class":482},"lat",[100,1188,549],{"class":106},[100,1190,1191],{"class":482}," lng",[100,1193,1194],{"class":835},"])",[100,1196,519],{"class":106},[100,1198,633],{"class":522},[100,1200,526],{"class":835},[100,1202,369],{"class":482},[100,1204,535],{"class":835},[100,1206,341],{"class":106},[100,1208,1209],{"class":102,"line":406},[100,1210,503],{"emptyLinePlaceholder":502},[100,1212,1213],{"class":102,"line":411},[100,1214,1215],{"class":482},"  marker\n",[100,1217,1218,1221,1224],{"class":102,"line":421},[100,1219,1220],{"class":106},"    .",[100,1222,1223],{"class":522},"bindPopup",[100,1225,836],{"class":835},[100,1227,1228,1231,1234,1236,1239,1241,1244,1246,1249,1251,1254,1257,1259,1261,1263,1266,1268,1271,1273,1275,1278,1280,1282,1284,1286,1288,1290,1292,1294],{"class":102,"line":431},[100,1229,1230],{"class":157},"      `",[100,1232,1233],{"class":161},"\u003Cstrong>",[100,1235,848],{"class":847},[100,1237,1238],{"class":856},"props",[100,1240,519],{"class":106},[100,1242,1243],{"class":856},"legal_location",[100,1245,744],{"class":847},[100,1247,1248],{"class":161},"\u003C\u002Fstrong>\u003Cbr>",[100,1250,863],{"class":157},[100,1252,1253],{"class":552}," +",[100,1255,1256],{"class":157}," `",[100,1258,848],{"class":847},[100,1260,1186],{"class":856},[100,1262,519],{"class":106},[100,1264,1265],{"class":522},"toFixed",[100,1267,526],{"class":525},[100,1269,1270],{"class":337},"6",[100,1272,535],{"class":525},[100,1274,744],{"class":847},[100,1276,1277],{"class":161},", ",[100,1279,848],{"class":847},[100,1281,1116],{"class":856},[100,1283,519],{"class":106},[100,1285,1265],{"class":522},[100,1287,526],{"class":525},[100,1289,1270],{"class":337},[100,1291,535],{"class":525},[100,1293,744],{"class":847},[100,1295,1296],{"class":157},"`\n",[100,1298,1299],{"class":102,"line":441},[100,1300,1301],{"class":835},"    )\n",[100,1303,1304,1306,1309,1311],{"class":102,"line":466},[100,1305,1220],{"class":106},[100,1307,1308],{"class":522},"openPopup",[100,1310,928],{"class":835},[100,1312,341],{"class":106},[100,1314,1315],{"class":102,"line":475},[100,1316,503],{"emptyLinePlaceholder":502},[100,1318,1319,1322,1324,1326,1328,1330,1332,1334,1336,1338,1341,1343],{"class":102,"line":499},[100,1320,1321],{"class":482},"  map",[100,1323,519],{"class":106},[100,1325,540],{"class":522},[100,1327,543],{"class":835},[100,1329,1186],{"class":482},[100,1331,549],{"class":106},[100,1333,1191],{"class":482},[100,1335,559],{"class":835},[100,1337,549],{"class":106},[100,1339,1340],{"class":337}," 14",[100,1342,535],{"class":835},[100,1344,341],{"class":106},[100,1346,1347],{"class":102,"line":506},[100,1348,1349],{"class":106},"}\n",[100,1351,1352],{"class":102,"line":576},[100,1353,503],{"emptyLinePlaceholder":502},[100,1355,1356],{"class":102,"line":581},[100,1357,1358],{"class":572},"\u002F\u002F Example: search for a quarter section in Alberta\n",[100,1360,1361,1364,1366,1368,1371,1373,1375],{"class":102,"line":605},[100,1362,1363],{"class":522},"searchLocation",[100,1365,526],{"class":525},[100,1367,158],{"class":157},[100,1369,1370],{"class":161},"NW-25-24-1-W5",[100,1372,158],{"class":157},[100,1374,535],{"class":525},[100,1376,341],{"class":106},[10,1378,1379,1380,1383,1384,1387],{},"Note that Leaflet expects coordinates as ",[86,1381,1382],{},"[lat, lng]",", while GeoJSON uses ",[86,1385,1386],{},"[lng, lat]",". Swap the order when passing coordinates to any Leaflet method.",[23,1389,1391],{"id":1390},"step-3-show-boundary-polygons","Step 3: Show boundary polygons",[10,1393,1394,1395,1398],{},"The Search API response includes the polygon feature alongside the centroid. Pass it directly to ",[86,1396,1397],{},"L.geoJSON()"," to draw the parcel boundary.",[91,1400,1402],{"className":677,"code":1401,"language":679,"meta":96,"style":96},"async function searchLocation(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  const centroid = data.features.find((f) => f.properties.shape === \"centroid\");\n  const polygon = data.features.find((f) => f.geometry.type === \"MultiPolygon\");\n\n  \u002F\u002F Remove previous results\n  if (window.currentMarker) window.currentMarker.remove();\n  if (window.currentPolygon) window.currentPolygon.remove();\n\n  if (centroid) {\n    const [lng, lat] = centroid.geometry.coordinates;\n    const props = centroid.properties;\n\n    window.currentMarker = L.marker([lat, lng])\n      .addTo(map)\n      .bindPopup(\n        `\u003Cstrong>${props.legal_location}\u003C\u002Fstrong>\u003Cbr>` + `${lat.toFixed(6)}, ${lng.toFixed(6)}`\n      )\n      .openPopup();\n\n    map.setView([lat, lng], 14);\n  }\n\n  if (polygon) {\n    window.currentPolygon = L.geoJSON(polygon, {\n      style: {\n        color: \"#2d5a47\",\n        weight: 2,\n        fillColor: \"#2d5a47\",\n        fillOpacity: 0.12\n      }\n    }).addTo(map);\n\n    \u002F\u002F Fit the map to the polygon bounds\n    map.fitBounds(window.currentPolygon.getBounds(), { padding: [40, 40] });\n  }\n}\n",[86,1403,1404,1420,1434,1456,1480,1486,1490,1510,1546,1550,1600,1653,1657,1662,1694,1723,1727,1739,1768,1784,1788,1816,1830,1838,1899,1904,1914,1918,1945,1949,1953,1966,1991,2000,2016,2028,2043,2053,2057,2077,2082,2088,2140,2145],{"__ignoreMap":96},[100,1405,1406,1408,1410,1412,1414,1416,1418],{"class":102,"line":103},[100,1407,799],{"class":478},[100,1409,802],{"class":478},[100,1411,805],{"class":522},[100,1413,526],{"class":106},[100,1415,811],{"class":810},[100,1417,535],{"class":106},[100,1419,324],{"class":106},[100,1421,1422,1424,1426,1428,1430,1432],{"class":102,"line":121},[100,1423,820],{"class":478},[100,1425,823],{"class":482},[100,1427,486],{"class":106},[100,1429,829],{"class":828},[100,1431,832],{"class":522},[100,1433,836],{"class":835},[100,1435,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454],{"class":102,"line":131},[100,1437,841],{"class":157},[100,1439,844],{"class":161},[100,1441,848],{"class":847},[100,1443,851],{"class":522},[100,1445,526],{"class":525},[100,1447,811],{"class":856},[100,1449,535],{"class":525},[100,1451,744],{"class":847},[100,1453,863],{"class":157},[100,1455,725],{"class":106},[100,1457,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478],{"class":102,"line":142},[100,1459,870],{"class":106},[100,1461,873],{"class":608},[100,1463,334],{"class":106},[100,1465,878],{"class":106},[100,1467,489],{"class":157},[100,1469,884],{"class":883},[100,1471,158],{"class":157},[100,1473,334],{"class":106},[100,1475,483],{"class":482},[100,1477,893],{"class":106},[100,1479,896],{"class":106},[100,1481,1482,1484],{"class":102,"line":170},[100,1483,901],{"class":835},[100,1485,341],{"class":106},[100,1487,1488],{"class":102,"line":192},[100,1489,503],{"emptyLinePlaceholder":502},[100,1491,1492,1494,1496,1498,1500,1502,1504,1506,1508],{"class":102,"line":200},[100,1493,820],{"class":478},[100,1495,914],{"class":482},[100,1497,486],{"class":106},[100,1499,829],{"class":828},[100,1501,823],{"class":482},[100,1503,519],{"class":106},[100,1505,925],{"class":522},[100,1507,928],{"class":835},[100,1509,341],{"class":106},[100,1511,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544],{"class":102,"line":216},[100,1513,939],{"class":828},[100,1515,942],{"class":835},[100,1517,945],{"class":552},[100,1519,948],{"class":482},[100,1521,519],{"class":106},[100,1523,953],{"class":482},[100,1525,956],{"class":552},[100,1527,914],{"class":482},[100,1529,519],{"class":106},[100,1531,953],{"class":482},[100,1533,519],{"class":106},[100,1535,968],{"class":967},[100,1537,971],{"class":552},[100,1539,338],{"class":337},[100,1541,535],{"class":835},[100,1543,1100],{"class":828},[100,1545,341],{"class":106},[100,1547,1548],{"class":102,"line":231},[100,1549,503],{"emptyLinePlaceholder":502},[100,1551,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598],{"class":102,"line":237},[100,1553,820],{"class":478},[100,1555,1033],{"class":482},[100,1557,486],{"class":106},[100,1559,914],{"class":482},[100,1561,519],{"class":106},[100,1563,953],{"class":482},[100,1565,519],{"class":106},[100,1567,1046],{"class":522},[100,1569,526],{"class":835},[100,1571,526],{"class":106},[100,1573,1053],{"class":810},[100,1575,535],{"class":106},[100,1577,1059],{"class":1058},[100,1579,1062],{"class":482},[100,1581,519],{"class":106},[100,1583,1067],{"class":482},[100,1585,519],{"class":106},[100,1587,1072],{"class":482},[100,1589,971],{"class":552},[100,1591,489],{"class":157},[100,1593,1079],{"class":161},[100,1595,158],{"class":157},[100,1597,535],{"class":835},[100,1599,341],{"class":106},[100,1601,1602,1604,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635,1637,1640,1642,1644,1647,1649,1651],{"class":102,"line":245},[100,1603,820],{"class":478},[100,1605,1606],{"class":482}," polygon",[100,1608,486],{"class":106},[100,1610,914],{"class":482},[100,1612,519],{"class":106},[100,1614,953],{"class":482},[100,1616,519],{"class":106},[100,1618,1046],{"class":522},[100,1620,526],{"class":835},[100,1622,526],{"class":106},[100,1624,1053],{"class":810},[100,1626,535],{"class":106},[100,1628,1059],{"class":1058},[100,1630,1062],{"class":482},[100,1632,519],{"class":106},[100,1634,1132],{"class":482},[100,1636,519],{"class":106},[100,1638,1639],{"class":482},"type",[100,1641,971],{"class":552},[100,1643,489],{"class":157},[100,1645,1646],{"class":161},"MultiPolygon",[100,1648,158],{"class":157},[100,1650,535],{"class":835},[100,1652,341],{"class":106},[100,1654,1655],{"class":102,"line":260},[100,1656,503],{"emptyLinePlaceholder":502},[100,1658,1659],{"class":102,"line":275},[100,1660,1661],{"class":572},"  \u002F\u002F Remove previous results\n",[100,1663,1664,1666,1668,1671,1673,1676,1678,1681,1683,1685,1687,1690,1692],{"class":102,"line":280},[100,1665,939],{"class":828},[100,1667,942],{"class":835},[100,1669,1670],{"class":482},"window",[100,1672,519],{"class":106},[100,1674,1675],{"class":482},"currentMarker",[100,1677,535],{"class":835},[100,1679,1680],{"class":482}," window",[100,1682,519],{"class":106},[100,1684,1675],{"class":482},[100,1686,519],{"class":106},[100,1688,1689],{"class":522},"remove",[100,1691,928],{"class":835},[100,1693,341],{"class":106},[100,1695,1696,1698,1700,1702,1704,1707,1709,1711,1713,1715,1717,1719,1721],{"class":102,"line":307},[100,1697,939],{"class":828},[100,1699,942],{"class":835},[100,1701,1670],{"class":482},[100,1703,519],{"class":106},[100,1705,1706],{"class":482},"currentPolygon",[100,1708,535],{"class":835},[100,1710,1680],{"class":482},[100,1712,519],{"class":106},[100,1714,1706],{"class":482},[100,1716,519],{"class":106},[100,1718,1689],{"class":522},[100,1720,928],{"class":835},[100,1722,341],{"class":106},[100,1724,1725],{"class":102,"line":317},[100,1726,503],{"emptyLinePlaceholder":502},[100,1728,1729,1731,1733,1735,1737],{"class":102,"line":327},[100,1730,939],{"class":828},[100,1732,942],{"class":835},[100,1734,1079],{"class":482},[100,1736,535],{"class":835},[100,1738,324],{"class":106},[100,1740,1741,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766],{"class":102,"line":344},[100,1742,1743],{"class":478},"    const",[100,1745,1113],{"class":106},[100,1747,1116],{"class":482},[100,1749,549],{"class":106},[100,1751,1121],{"class":482},[100,1753,559],{"class":106},[100,1755,486],{"class":106},[100,1757,1033],{"class":482},[100,1759,519],{"class":106},[100,1761,1132],{"class":482},[100,1763,519],{"class":106},[100,1765,1137],{"class":482},[100,1767,341],{"class":106},[100,1769,1770,1772,1774,1776,1778,1780,1782],{"class":102,"line":356},[100,1771,1743],{"class":478},[100,1773,1146],{"class":482},[100,1775,486],{"class":106},[100,1777,1033],{"class":482},[100,1779,519],{"class":106},[100,1781,1067],{"class":482},[100,1783,341],{"class":106},[100,1785,1786],{"class":102,"line":362},[100,1787,503],{"emptyLinePlaceholder":502},[100,1789,1790,1793,1795,1797,1799,1801,1803,1805,1807,1809,1811,1813],{"class":102,"line":374},[100,1791,1792],{"class":482},"    window",[100,1794,519],{"class":106},[100,1796,1675],{"class":482},[100,1798,486],{"class":106},[100,1800,516],{"class":482},[100,1802,519],{"class":106},[100,1804,1181],{"class":522},[100,1806,543],{"class":835},[100,1808,1186],{"class":482},[100,1810,549],{"class":106},[100,1812,1191],{"class":482},[100,1814,1815],{"class":835},"])\n",[100,1817,1818,1821,1823,1825,1827],{"class":102,"line":391},[100,1819,1820],{"class":106},"      .",[100,1822,633],{"class":522},[100,1824,526],{"class":835},[100,1826,369],{"class":482},[100,1828,1829],{"class":835},")\n",[100,1831,1832,1834,1836],{"class":102,"line":406},[100,1833,1820],{"class":106},[100,1835,1223],{"class":522},[100,1837,836],{"class":835},[100,1839,1840,1843,1845,1847,1849,1851,1853,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1885,1887,1889,1891,1893,1895,1897],{"class":102,"line":411},[100,1841,1842],{"class":157},"        `",[100,1844,1233],{"class":161},[100,1846,848],{"class":847},[100,1848,1238],{"class":856},[100,1850,519],{"class":106},[100,1852,1243],{"class":856},[100,1854,744],{"class":847},[100,1856,1248],{"class":161},[100,1858,863],{"class":157},[100,1860,1253],{"class":552},[100,1862,1256],{"class":157},[100,1864,848],{"class":847},[100,1866,1186],{"class":856},[100,1868,519],{"class":106},[100,1870,1265],{"class":522},[100,1872,526],{"class":525},[100,1874,1270],{"class":337},[100,1876,535],{"class":525},[100,1878,744],{"class":847},[100,1880,1277],{"class":161},[100,1882,848],{"class":847},[100,1884,1116],{"class":856},[100,1886,519],{"class":106},[100,1888,1265],{"class":522},[100,1890,526],{"class":525},[100,1892,1270],{"class":337},[100,1894,535],{"class":525},[100,1896,744],{"class":847},[100,1898,1296],{"class":157},[100,1900,1901],{"class":102,"line":421},[100,1902,1903],{"class":835},"      )\n",[100,1905,1906,1908,1910,1912],{"class":102,"line":431},[100,1907,1820],{"class":106},[100,1909,1308],{"class":522},[100,1911,928],{"class":835},[100,1913,341],{"class":106},[100,1915,1916],{"class":102,"line":441},[100,1917,503],{"emptyLinePlaceholder":502},[100,1919,1920,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943],{"class":102,"line":466},[100,1921,1922],{"class":482},"    map",[100,1924,519],{"class":106},[100,1926,540],{"class":522},[100,1928,543],{"class":835},[100,1930,1186],{"class":482},[100,1932,549],{"class":106},[100,1934,1191],{"class":482},[100,1936,559],{"class":835},[100,1938,549],{"class":106},[100,1940,1340],{"class":337},[100,1942,535],{"class":835},[100,1944,341],{"class":106},[100,1946,1947],{"class":102,"line":475},[100,1948,1017],{"class":106},[100,1950,1951],{"class":102,"line":499},[100,1952,503],{"emptyLinePlaceholder":502},[100,1954,1955,1957,1959,1962,1964],{"class":102,"line":506},[100,1956,939],{"class":828},[100,1958,942],{"class":835},[100,1960,1961],{"class":482},"polygon",[100,1963,535],{"class":835},[100,1965,324],{"class":106},[100,1967,1968,1970,1972,1974,1976,1978,1980,1983,1985,1987,1989],{"class":102,"line":576},[100,1969,1792],{"class":482},[100,1971,519],{"class":106},[100,1973,1706],{"class":482},[100,1975,486],{"class":106},[100,1977,516],{"class":482},[100,1979,519],{"class":106},[100,1981,1982],{"class":522},"geoJSON",[100,1984,526],{"class":835},[100,1986,1961],{"class":482},[100,1988,549],{"class":106},[100,1990,324],{"class":106},[100,1992,1993,1996,1998],{"class":102,"line":581},[100,1994,1995],{"class":608},"      style",[100,1997,334],{"class":106},[100,1999,324],{"class":106},[100,2001,2002,2005,2007,2009,2012,2014],{"class":102,"line":605},[100,2003,2004],{"class":608},"        color",[100,2006,334],{"class":106},[100,2008,489],{"class":157},[100,2010,2011],{"class":161},"#2d5a47",[100,2013,158],{"class":157},[100,2015,725],{"class":106},[100,2017,2018,2021,2023,2026],{"class":102,"line":623},[100,2019,2020],{"class":608},"        weight",[100,2022,334],{"class":106},[100,2024,2025],{"class":337}," 2",[100,2027,725],{"class":106},[100,2029,2030,2033,2035,2037,2039,2041],{"class":102,"line":644},[100,2031,2032],{"class":608},"        fillColor",[100,2034,334],{"class":106},[100,2036,489],{"class":157},[100,2038,2011],{"class":161},[100,2040,158],{"class":157},[100,2042,725],{"class":106},[100,2044,2045,2048,2050],{"class":102,"line":653},[100,2046,2047],{"class":608},"        fillOpacity",[100,2049,334],{"class":106},[100,2051,2052],{"class":337}," 0.12\n",[100,2054,2055],{"class":102,"line":662},[100,2056,359],{"class":106},[100,2058,2060,2063,2065,2067,2069,2071,2073,2075],{"class":102,"line":2059},39,[100,2061,2062],{"class":106},"    }",[100,2064,535],{"class":835},[100,2066,519],{"class":106},[100,2068,633],{"class":522},[100,2070,526],{"class":835},[100,2072,369],{"class":482},[100,2074,535],{"class":835},[100,2076,341],{"class":106},[100,2078,2080],{"class":102,"line":2079},40,[100,2081,503],{"emptyLinePlaceholder":502},[100,2083,2085],{"class":102,"line":2084},41,[100,2086,2087],{"class":572},"    \u002F\u002F Fit the map to the polygon bounds\n",[100,2089,2091,2093,2095,2098,2100,2102,2104,2106,2108,2111,2113,2115,2117,2120,2122,2124,2127,2129,2132,2134,2136,2138],{"class":102,"line":2090},42,[100,2092,1922],{"class":482},[100,2094,519],{"class":106},[100,2096,2097],{"class":522},"fitBounds",[100,2099,526],{"class":835},[100,2101,1670],{"class":482},[100,2103,519],{"class":106},[100,2105,1706],{"class":482},[100,2107,519],{"class":106},[100,2109,2110],{"class":522},"getBounds",[100,2112,928],{"class":835},[100,2114,549],{"class":106},[100,2116,878],{"class":106},[100,2118,2119],{"class":608}," padding",[100,2121,334],{"class":106},[100,2123,1113],{"class":835},[100,2125,2126],{"class":337},"40",[100,2128,549],{"class":106},[100,2130,2131],{"class":337}," 40",[100,2133,559],{"class":835},[100,2135,893],{"class":106},[100,2137,535],{"class":835},[100,2139,341],{"class":106},[100,2141,2143],{"class":102,"line":2142},43,[100,2144,1017],{"class":106},[100,2146,2148],{"class":102,"line":2147},44,[100,2149,1349],{"class":106},[10,2151,2152,2154,2155,2157,2158,2161],{},[86,2153,1397],{}," accepts a single GeoJSON Feature or FeatureCollection. The ",[86,2156,312],{}," option sets the stroke colour, fill colour, and opacity. Calling ",[86,2159,2160],{},"fitBounds()"," on the polygon layer zooms to show the full parcel without manual coordinate math.",[23,2163,2165],{"id":2164},"step-4-add-autocomplete-search","Step 4: Add autocomplete search",[10,2167,2168],{},"Build a search input with live suggestions from the Autocomplete API.",[767,2170,2172],{"id":2171},"autocomplete-api-endpoint","Autocomplete API endpoint",[91,2174,2177],{"className":2175,"code":2176,"language":776},[774],"GET https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fautocomplete\u002Flegal-location?location={query}&limit=3\nX-API-Key: YOUR_API_KEY\n",[86,2178,2176],{"__ignoreMap":96},[767,2180,2181],{"id":95},"HTML",[10,2183,2184,2185,334],{},"Add this above the map ",[86,2186,2187],{},"\u003Cdiv>",[91,2189,2191],{"className":93,"code":2190,"language":95,"meta":96,"style":96},"\u003Cdiv\n  id=\"search-container\"\n  style=\"\n  position: absolute;\n  top: 16px;\n  left: 50%;\n  transform: translateX(-50%);\n  z-index: 1000;\n  width: 320px;\n\"\n>\n  \u003Cinput\n    id=\"search-input\"\n    type=\"text\"\n    placeholder=\"e.g. NW-25-24-1-W5 or 14-27-048-05W5\"\n    style=\"\n      width: 100%;\n      padding: 10px 14px;\n      font-size: 14px;\n      border: 1px solid #ccc;\n      border-radius: 6px;\n      box-shadow: 0 2px 8px rgba(0,0,0,0.12);\n      box-sizing: border-box;\n    \"\n  \u002F>\n  \u003Cul\n    id=\"suggestions\"\n    style=\"\n    list-style: none;\n    margin: 4px 0 0;\n    padding: 0;\n    background: #fff;\n    border-radius: 6px;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n    display: none;\n  \"\n  >\u003C\u002Ful>\n\u003C\u002Fdiv>\n",[86,2192,2193,2200,2214,2223,2228,2233,2238,2243,2248,2253,2257,2261,2268,2282,2295,2309,2318,2323,2328,2333,2338,2343,2348,2353,2358,2363,2370,2383,2391,2396,2401,2406,2411,2416,2421,2426,2431,2440],{"__ignoreMap":96},[100,2194,2195,2197],{"class":102,"line":103},[100,2196,124],{"class":106},[100,2198,2199],{"class":110},"div\n",[100,2201,2202,2205,2207,2209,2212],{"class":102,"line":121},[100,2203,2204],{"class":114},"  id",[100,2206,154],{"class":106},[100,2208,158],{"class":157},[100,2210,2211],{"class":161},"search-container",[100,2213,213],{"class":157},[100,2215,2216,2219,2221],{"class":102,"line":131},[100,2217,2218],{"class":114},"  style",[100,2220,154],{"class":106},[100,2222,213],{"class":157},[100,2224,2225],{"class":102,"line":142},[100,2226,2227],{"class":161},"  position: absolute;\n",[100,2229,2230],{"class":102,"line":170},[100,2231,2232],{"class":161},"  top: 16px;\n",[100,2234,2235],{"class":102,"line":192},[100,2236,2237],{"class":161},"  left: 50%;\n",[100,2239,2240],{"class":102,"line":200},[100,2241,2242],{"class":161},"  transform: translateX(-50%);\n",[100,2244,2245],{"class":102,"line":216},[100,2246,2247],{"class":161},"  z-index: 1000;\n",[100,2249,2250],{"class":102,"line":231},[100,2251,2252],{"class":161},"  width: 320px;\n",[100,2254,2255],{"class":102,"line":237},[100,2256,213],{"class":157},[100,2258,2259],{"class":102,"line":245},[100,2260,118],{"class":106},[100,2262,2263,2265],{"class":102,"line":260},[100,2264,134],{"class":106},[100,2266,2267],{"class":110},"input\n",[100,2269,2270,2273,2275,2277,2280],{"class":102,"line":275},[100,2271,2272],{"class":114},"    id",[100,2274,154],{"class":106},[100,2276,158],{"class":157},[100,2278,2279],{"class":161},"search-input",[100,2281,213],{"class":157},[100,2283,2284,2287,2289,2291,2293],{"class":102,"line":280},[100,2285,2286],{"class":114},"    type",[100,2288,154],{"class":106},[100,2290,158],{"class":157},[100,2292,776],{"class":161},[100,2294,213],{"class":157},[100,2296,2297,2300,2302,2304,2307],{"class":102,"line":307},[100,2298,2299],{"class":114},"    placeholder",[100,2301,154],{"class":106},[100,2303,158],{"class":157},[100,2305,2306],{"class":161},"e.g. NW-25-24-1-W5 or 14-27-048-05W5",[100,2308,213],{"class":157},[100,2310,2311,2314,2316],{"class":102,"line":317},[100,2312,2313],{"class":114},"    style",[100,2315,154],{"class":106},[100,2317,213],{"class":157},[100,2319,2320],{"class":102,"line":327},[100,2321,2322],{"class":161},"      width: 100%;\n",[100,2324,2325],{"class":102,"line":344},[100,2326,2327],{"class":161},"      padding: 10px 14px;\n",[100,2329,2330],{"class":102,"line":356},[100,2331,2332],{"class":161},"      font-size: 14px;\n",[100,2334,2335],{"class":102,"line":362},[100,2336,2337],{"class":161},"      border: 1px solid #ccc;\n",[100,2339,2340],{"class":102,"line":374},[100,2341,2342],{"class":161},"      border-radius: 6px;\n",[100,2344,2345],{"class":102,"line":391},[100,2346,2347],{"class":161},"      box-shadow: 0 2px 8px rgba(0,0,0,0.12);\n",[100,2349,2350],{"class":102,"line":406},[100,2351,2352],{"class":161},"      box-sizing: border-box;\n",[100,2354,2355],{"class":102,"line":411},[100,2356,2357],{"class":157},"    \"\n",[100,2359,2360],{"class":102,"line":421},[100,2361,2362],{"class":106},"  \u002F>\n",[100,2364,2365,2367],{"class":102,"line":431},[100,2366,134],{"class":106},[100,2368,2369],{"class":110},"ul\n",[100,2371,2372,2374,2376,2378,2381],{"class":102,"line":441},[100,2373,2272],{"class":114},[100,2375,154],{"class":106},[100,2377,158],{"class":157},[100,2379,2380],{"class":161},"suggestions",[100,2382,213],{"class":157},[100,2384,2385,2387,2389],{"class":102,"line":466},[100,2386,2313],{"class":114},[100,2388,154],{"class":106},[100,2390,213],{"class":157},[100,2392,2393],{"class":102,"line":475},[100,2394,2395],{"class":161},"    list-style: none;\n",[100,2397,2398],{"class":102,"line":499},[100,2399,2400],{"class":161},"    margin: 4px 0 0;\n",[100,2402,2403],{"class":102,"line":506},[100,2404,2405],{"class":161},"    padding: 0;\n",[100,2407,2408],{"class":102,"line":576},[100,2409,2410],{"class":161},"    background: #fff;\n",[100,2412,2413],{"class":102,"line":581},[100,2414,2415],{"class":161},"    border-radius: 6px;\n",[100,2417,2418],{"class":102,"line":605},[100,2419,2420],{"class":161},"    box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n",[100,2422,2423],{"class":102,"line":623},[100,2424,2425],{"class":161},"    display: none;\n",[100,2427,2428],{"class":102,"line":644},[100,2429,2430],{"class":157},"  \"\n",[100,2432,2433,2436,2438],{"class":102,"line":653},[100,2434,2435],{"class":106},"  >\u003C\u002F",[100,2437,31],{"class":110},[100,2439,118],{"class":106},[100,2441,2442,2444,2446],{"class":102,"line":662},[100,2443,185],{"class":106},[100,2445,446],{"class":110},[100,2447,118],{"class":106},[767,2449,2450],{"id":679},"JavaScript",[91,2452,2454],{"className":677,"code":2453,"language":679,"meta":96,"style":96},"const searchInput = document.getElementById(\"search-input\");\nconst suggestionsEl = document.getElementById(\"suggestions\");\n\nlet debounceTimer;\n\nsearchInput.addEventListener(\"input\", (e) => {\n  clearTimeout(debounceTimer);\n  const query = e.target.value.trim();\n\n  if (query.length \u003C 2) {\n    suggestionsEl.style.display = \"none\";\n    return;\n  }\n\n  \u002F\u002F Wait 300ms after the user stops typing before fetching\n  debounceTimer = setTimeout(() => fetchSuggestions(query), 300);\n});\n\nsearchInput.addEventListener(\"keydown\", (e) => {\n  if (e.key === \"Enter\") {\n    suggestionsEl.style.display = \"none\";\n    searchLocation(searchInput.value.trim());\n  }\n});\n\nasync function fetchSuggestions(query) {\n  const response = await fetch(\n    `https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fautocomplete\u002Flegal-location` +\n      `?location=${encodeURIComponent(query)}&limit=3`,\n    { headers: { \"X-API-Key\": TC_API_KEY } }\n  );\n\n  const data = await response.json();\n  suggestionsEl.innerHTML = \"\";\n\n  if (!data.features || data.features.length === 0) {\n    suggestionsEl.style.display = \"none\";\n    return;\n  }\n\n  data.features.forEach((feature) => {\n    const li = document.createElement(\"li\");\n    li.textContent = `${feature.properties.legal_location} (${feature.properties.province})`;\n    li.style.cssText = `\n      padding: 10px 14px;\n      cursor: pointer;\n      font-size: 14px;\n      border-bottom: 1px solid #eee;\n    `;\n\n    li.addEventListener(\"mouseenter\", () => (li.style.backgroundColor = \"#f5f5f5\"));\n    li.addEventListener(\"mouseleave\", () => (li.style.backgroundColor = \"#fff\"));\n\n    li.addEventListener(\"click\", () => {\n      searchInput.value = feature.properties.legal_location;\n      suggestionsEl.style.display = \"none\";\n      searchLocation(feature.properties.legal_location);\n    });\n\n    suggestionsEl.appendChild(li);\n  });\n\n  suggestionsEl.style.display = \"block\";\n}\n\n\u002F\u002F Close the dropdown when clicking outside\ndocument.addEventListener(\"click\", (e) => {\n  if (!document.getElementById(\"search-container\").contains(e.target)) {\n    suggestionsEl.style.display = \"none\";\n  }\n});\n",[86,2455,2456,2486,2513,2517,2527,2531,2563,2577,2607,2611,2632,2657,2663,2667,2671,2676,2710,2718,2722,2751,2777,2799,2821,2825,2833,2837,2853,2867,2879,2905,2929,2935,2939,2959,2976,2980,3014,3036,3042,3046,3050,3077,3105,3156,3174,3179,3185,3190,3196,3203,3208,3260,3309,3314,3340,3365,3389,3411,3420,3425,3443,3453,3458,3482,3487,3492,3498,3528,3570,3593,3598],{"__ignoreMap":96},[100,2457,2458,2461,2464,2466,2469,2471,2474,2476,2478,2480,2482,2484],{"class":102,"line":103},[100,2459,2460],{"class":478},"const",[100,2462,2463],{"class":482}," searchInput",[100,2465,486],{"class":106},[100,2467,2468],{"class":482}," document",[100,2470,519],{"class":106},[100,2472,2473],{"class":522},"getElementById",[100,2475,526],{"class":525},[100,2477,158],{"class":157},[100,2479,2279],{"class":161},[100,2481,158],{"class":157},[100,2483,535],{"class":525},[100,2485,341],{"class":106},[100,2487,2488,2490,2493,2495,2497,2499,2501,2503,2505,2507,2509,2511],{"class":102,"line":121},[100,2489,2460],{"class":478},[100,2491,2492],{"class":482}," suggestionsEl",[100,2494,486],{"class":106},[100,2496,2468],{"class":482},[100,2498,519],{"class":106},[100,2500,2473],{"class":522},[100,2502,526],{"class":525},[100,2504,158],{"class":157},[100,2506,2380],{"class":161},[100,2508,158],{"class":157},[100,2510,535],{"class":525},[100,2512,341],{"class":106},[100,2514,2515],{"class":102,"line":131},[100,2516,503],{"emptyLinePlaceholder":502},[100,2518,2519,2522,2525],{"class":102,"line":142},[100,2520,2521],{"class":478},"let",[100,2523,2524],{"class":482}," debounceTimer",[100,2526,341],{"class":106},[100,2528,2529],{"class":102,"line":170},[100,2530,503],{"emptyLinePlaceholder":502},[100,2532,2533,2536,2538,2541,2543,2545,2548,2550,2552,2554,2557,2559,2561],{"class":102,"line":192},[100,2534,2535],{"class":482},"searchInput",[100,2537,519],{"class":106},[100,2539,2540],{"class":522},"addEventListener",[100,2542,526],{"class":525},[100,2544,158],{"class":157},[100,2546,2547],{"class":161},"input",[100,2549,158],{"class":157},[100,2551,549],{"class":106},[100,2553,942],{"class":106},[100,2555,2556],{"class":810},"e",[100,2558,535],{"class":106},[100,2560,1059],{"class":1058},[100,2562,324],{"class":106},[100,2564,2565,2568,2570,2573,2575],{"class":102,"line":200},[100,2566,2567],{"class":522},"  clearTimeout",[100,2569,526],{"class":835},[100,2571,2572],{"class":482},"debounceTimer",[100,2574,535],{"class":835},[100,2576,341],{"class":106},[100,2578,2579,2581,2583,2585,2588,2590,2593,2595,2598,2600,2603,2605],{"class":102,"line":216},[100,2580,820],{"class":478},[100,2582,1001],{"class":482},[100,2584,486],{"class":106},[100,2586,2587],{"class":482}," e",[100,2589,519],{"class":106},[100,2591,2592],{"class":482},"target",[100,2594,519],{"class":106},[100,2596,2597],{"class":482},"value",[100,2599,519],{"class":106},[100,2601,2602],{"class":522},"trim",[100,2604,928],{"class":835},[100,2606,341],{"class":106},[100,2608,2609],{"class":102,"line":231},[100,2610,503],{"emptyLinePlaceholder":502},[100,2612,2613,2615,2617,2619,2621,2623,2626,2628,2630],{"class":102,"line":237},[100,2614,939],{"class":828},[100,2616,942],{"class":835},[100,2618,811],{"class":482},[100,2620,519],{"class":106},[100,2622,968],{"class":967},[100,2624,2625],{"class":106}," \u003C",[100,2627,2025],{"class":337},[100,2629,535],{"class":835},[100,2631,324],{"class":106},[100,2633,2634,2637,2639,2641,2643,2646,2648,2650,2653,2655],{"class":102,"line":245},[100,2635,2636],{"class":482},"    suggestionsEl",[100,2638,519],{"class":106},[100,2640,312],{"class":482},[100,2642,519],{"class":106},[100,2644,2645],{"class":482},"display",[100,2647,486],{"class":106},[100,2649,489],{"class":157},[100,2651,2652],{"class":161},"none",[100,2654,158],{"class":157},[100,2656,341],{"class":106},[100,2658,2659,2661],{"class":102,"line":260},[100,2660,1010],{"class":828},[100,2662,341],{"class":106},[100,2664,2665],{"class":102,"line":275},[100,2666,1017],{"class":106},[100,2668,2669],{"class":102,"line":280},[100,2670,503],{"emptyLinePlaceholder":502},[100,2672,2673],{"class":102,"line":307},[100,2674,2675],{"class":572},"  \u002F\u002F Wait 300ms after the user stops typing before fetching\n",[100,2677,2678,2681,2683,2686,2688,2690,2692,2695,2697,2699,2701,2703,2706,2708],{"class":102,"line":317},[100,2679,2680],{"class":482},"  debounceTimer",[100,2682,486],{"class":106},[100,2684,2685],{"class":522}," setTimeout",[100,2687,526],{"class":835},[100,2689,928],{"class":106},[100,2691,1059],{"class":1058},[100,2693,2694],{"class":522}," fetchSuggestions",[100,2696,526],{"class":835},[100,2698,811],{"class":482},[100,2700,535],{"class":835},[100,2702,549],{"class":106},[100,2704,2705],{"class":337}," 300",[100,2707,535],{"class":835},[100,2709,341],{"class":106},[100,2711,2712,2714,2716],{"class":102,"line":327},[100,2713,744],{"class":106},[100,2715,535],{"class":525},[100,2717,341],{"class":106},[100,2719,2720],{"class":102,"line":344},[100,2721,503],{"emptyLinePlaceholder":502},[100,2723,2724,2726,2728,2730,2732,2734,2737,2739,2741,2743,2745,2747,2749],{"class":102,"line":356},[100,2725,2535],{"class":482},[100,2727,519],{"class":106},[100,2729,2540],{"class":522},[100,2731,526],{"class":525},[100,2733,158],{"class":157},[100,2735,2736],{"class":161},"keydown",[100,2738,158],{"class":157},[100,2740,549],{"class":106},[100,2742,942],{"class":106},[100,2744,2556],{"class":810},[100,2746,535],{"class":106},[100,2748,1059],{"class":1058},[100,2750,324],{"class":106},[100,2752,2753,2755,2757,2759,2761,2764,2766,2768,2771,2773,2775],{"class":102,"line":362},[100,2754,939],{"class":828},[100,2756,942],{"class":835},[100,2758,2556],{"class":482},[100,2760,519],{"class":106},[100,2762,2763],{"class":482},"key",[100,2765,971],{"class":552},[100,2767,489],{"class":157},[100,2769,2770],{"class":161},"Enter",[100,2772,158],{"class":157},[100,2774,535],{"class":835},[100,2776,324],{"class":106},[100,2778,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797],{"class":102,"line":374},[100,2780,2636],{"class":482},[100,2782,519],{"class":106},[100,2784,312],{"class":482},[100,2786,519],{"class":106},[100,2788,2645],{"class":482},[100,2790,486],{"class":106},[100,2792,489],{"class":157},[100,2794,2652],{"class":161},[100,2796,158],{"class":157},[100,2798,341],{"class":106},[100,2800,2801,2804,2806,2808,2810,2812,2814,2816,2819],{"class":102,"line":391},[100,2802,2803],{"class":522},"    searchLocation",[100,2805,526],{"class":835},[100,2807,2535],{"class":482},[100,2809,519],{"class":106},[100,2811,2597],{"class":482},[100,2813,519],{"class":106},[100,2815,2602],{"class":522},[100,2817,2818],{"class":835},"())",[100,2820,341],{"class":106},[100,2822,2823],{"class":102,"line":406},[100,2824,1017],{"class":106},[100,2826,2827,2829,2831],{"class":102,"line":411},[100,2828,744],{"class":106},[100,2830,535],{"class":525},[100,2832,341],{"class":106},[100,2834,2835],{"class":102,"line":421},[100,2836,503],{"emptyLinePlaceholder":502},[100,2838,2839,2841,2843,2845,2847,2849,2851],{"class":102,"line":431},[100,2840,799],{"class":478},[100,2842,802],{"class":478},[100,2844,2694],{"class":522},[100,2846,526],{"class":106},[100,2848,811],{"class":810},[100,2850,535],{"class":106},[100,2852,324],{"class":106},[100,2854,2855,2857,2859,2861,2863,2865],{"class":102,"line":441},[100,2856,820],{"class":478},[100,2858,823],{"class":482},[100,2860,486],{"class":106},[100,2862,829],{"class":828},[100,2864,832],{"class":522},[100,2866,836],{"class":835},[100,2868,2869,2871,2874,2876],{"class":102,"line":466},[100,2870,841],{"class":157},[100,2872,2873],{"class":161},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fautocomplete\u002Flegal-location",[100,2875,863],{"class":157},[100,2877,2878],{"class":552}," +\n",[100,2880,2881,2883,2886,2888,2890,2892,2894,2896,2898,2901,2903],{"class":102,"line":475},[100,2882,1230],{"class":157},[100,2884,2885],{"class":161},"?location=",[100,2887,848],{"class":847},[100,2889,851],{"class":522},[100,2891,526],{"class":525},[100,2893,811],{"class":856},[100,2895,535],{"class":525},[100,2897,744],{"class":847},[100,2899,2900],{"class":161},"&limit=3",[100,2902,863],{"class":157},[100,2904,725],{"class":106},[100,2906,2907,2909,2911,2913,2915,2917,2919,2921,2923,2925,2927],{"class":102,"line":499},[100,2908,870],{"class":106},[100,2910,873],{"class":608},[100,2912,334],{"class":106},[100,2914,878],{"class":106},[100,2916,489],{"class":157},[100,2918,884],{"class":883},[100,2920,158],{"class":157},[100,2922,334],{"class":106},[100,2924,483],{"class":482},[100,2926,893],{"class":106},[100,2928,896],{"class":106},[100,2930,2931,2933],{"class":102,"line":506},[100,2932,901],{"class":835},[100,2934,341],{"class":106},[100,2936,2937],{"class":102,"line":576},[100,2938,503],{"emptyLinePlaceholder":502},[100,2940,2941,2943,2945,2947,2949,2951,2953,2955,2957],{"class":102,"line":581},[100,2942,820],{"class":478},[100,2944,914],{"class":482},[100,2946,486],{"class":106},[100,2948,829],{"class":828},[100,2950,823],{"class":482},[100,2952,519],{"class":106},[100,2954,925],{"class":522},[100,2956,928],{"class":835},[100,2958,341],{"class":106},[100,2960,2961,2964,2966,2969,2971,2974],{"class":102,"line":605},[100,2962,2963],{"class":482},"  suggestionsEl",[100,2965,519],{"class":106},[100,2967,2968],{"class":482},"innerHTML",[100,2970,486],{"class":106},[100,2972,2973],{"class":157}," \"\"",[100,2975,341],{"class":106},[100,2977,2978],{"class":102,"line":623},[100,2979,503],{"emptyLinePlaceholder":502},[100,2981,2982,2984,2986,2988,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010,3012],{"class":102,"line":644},[100,2983,939],{"class":828},[100,2985,942],{"class":835},[100,2987,945],{"class":552},[100,2989,948],{"class":482},[100,2991,519],{"class":106},[100,2993,953],{"class":482},[100,2995,956],{"class":552},[100,2997,914],{"class":482},[100,2999,519],{"class":106},[100,3001,953],{"class":482},[100,3003,519],{"class":106},[100,3005,968],{"class":967},[100,3007,971],{"class":552},[100,3009,338],{"class":337},[100,3011,535],{"class":835},[100,3013,324],{"class":106},[100,3015,3016,3018,3020,3022,3024,3026,3028,3030,3032,3034],{"class":102,"line":653},[100,3017,2636],{"class":482},[100,3019,519],{"class":106},[100,3021,312],{"class":482},[100,3023,519],{"class":106},[100,3025,2645],{"class":482},[100,3027,486],{"class":106},[100,3029,489],{"class":157},[100,3031,2652],{"class":161},[100,3033,158],{"class":157},[100,3035,341],{"class":106},[100,3037,3038,3040],{"class":102,"line":662},[100,3039,1010],{"class":828},[100,3041,341],{"class":106},[100,3043,3044],{"class":102,"line":2059},[100,3045,1017],{"class":106},[100,3047,3048],{"class":102,"line":2079},[100,3049,503],{"emptyLinePlaceholder":502},[100,3051,3052,3055,3057,3059,3061,3064,3066,3068,3071,3073,3075],{"class":102,"line":2084},[100,3053,3054],{"class":482},"  data",[100,3056,519],{"class":106},[100,3058,953],{"class":482},[100,3060,519],{"class":106},[100,3062,3063],{"class":522},"forEach",[100,3065,526],{"class":835},[100,3067,526],{"class":106},[100,3069,3070],{"class":810},"feature",[100,3072,535],{"class":106},[100,3074,1059],{"class":1058},[100,3076,324],{"class":106},[100,3078,3079,3081,3084,3086,3088,3090,3093,3095,3097,3099,3101,3103],{"class":102,"line":2090},[100,3080,1743],{"class":478},[100,3082,3083],{"class":482}," li",[100,3085,486],{"class":106},[100,3087,2468],{"class":482},[100,3089,519],{"class":106},[100,3091,3092],{"class":522},"createElement",[100,3094,526],{"class":835},[100,3096,158],{"class":157},[100,3098,34],{"class":161},[100,3100,158],{"class":157},[100,3102,535],{"class":835},[100,3104,341],{"class":106},[100,3106,3107,3110,3112,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3148,3150,3152,3154],{"class":102,"line":2142},[100,3108,3109],{"class":482},"    li",[100,3111,519],{"class":106},[100,3113,3114],{"class":482},"textContent",[100,3116,486],{"class":106},[100,3118,1256],{"class":157},[100,3120,848],{"class":847},[100,3122,3070],{"class":856},[100,3124,519],{"class":106},[100,3126,1067],{"class":856},[100,3128,519],{"class":106},[100,3130,1243],{"class":856},[100,3132,744],{"class":847},[100,3134,942],{"class":161},[100,3136,848],{"class":847},[100,3138,3070],{"class":856},[100,3140,519],{"class":106},[100,3142,1067],{"class":856},[100,3144,519],{"class":106},[100,3146,3147],{"class":856},"province",[100,3149,744],{"class":847},[100,3151,535],{"class":161},[100,3153,863],{"class":157},[100,3155,341],{"class":106},[100,3157,3158,3160,3162,3164,3166,3169,3171],{"class":102,"line":2147},[100,3159,3109],{"class":482},[100,3161,519],{"class":106},[100,3163,312],{"class":482},[100,3165,519],{"class":106},[100,3167,3168],{"class":482},"cssText",[100,3170,486],{"class":106},[100,3172,3173],{"class":157}," `\n",[100,3175,3177],{"class":102,"line":3176},45,[100,3178,2327],{"class":161},[100,3180,3182],{"class":102,"line":3181},46,[100,3183,3184],{"class":161},"      cursor: pointer;\n",[100,3186,3188],{"class":102,"line":3187},47,[100,3189,2332],{"class":161},[100,3191,3193],{"class":102,"line":3192},48,[100,3194,3195],{"class":161},"      border-bottom: 1px solid #eee;\n",[100,3197,3199,3201],{"class":102,"line":3198},49,[100,3200,841],{"class":157},[100,3202,341],{"class":106},[100,3204,3206],{"class":102,"line":3205},50,[100,3207,503],{"emptyLinePlaceholder":502},[100,3209,3211,3213,3215,3217,3219,3221,3224,3226,3228,3231,3233,3235,3237,3239,3241,3243,3246,3248,3250,3253,3255,3258],{"class":102,"line":3210},51,[100,3212,3109],{"class":482},[100,3214,519],{"class":106},[100,3216,2540],{"class":522},[100,3218,526],{"class":835},[100,3220,158],{"class":157},[100,3222,3223],{"class":161},"mouseenter",[100,3225,158],{"class":157},[100,3227,549],{"class":106},[100,3229,3230],{"class":106}," ()",[100,3232,1059],{"class":1058},[100,3234,942],{"class":835},[100,3236,34],{"class":482},[100,3238,519],{"class":106},[100,3240,312],{"class":482},[100,3242,519],{"class":106},[100,3244,3245],{"class":482},"backgroundColor",[100,3247,486],{"class":106},[100,3249,489],{"class":157},[100,3251,3252],{"class":161},"#f5f5f5",[100,3254,158],{"class":157},[100,3256,3257],{"class":835},"))",[100,3259,341],{"class":106},[100,3261,3263,3265,3267,3269,3271,3273,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3303,3305,3307],{"class":102,"line":3262},52,[100,3264,3109],{"class":482},[100,3266,519],{"class":106},[100,3268,2540],{"class":522},[100,3270,526],{"class":835},[100,3272,158],{"class":157},[100,3274,3275],{"class":161},"mouseleave",[100,3277,158],{"class":157},[100,3279,549],{"class":106},[100,3281,3230],{"class":106},[100,3283,1059],{"class":1058},[100,3285,942],{"class":835},[100,3287,34],{"class":482},[100,3289,519],{"class":106},[100,3291,312],{"class":482},[100,3293,519],{"class":106},[100,3295,3245],{"class":482},[100,3297,486],{"class":106},[100,3299,489],{"class":157},[100,3301,3302],{"class":161},"#fff",[100,3304,158],{"class":157},[100,3306,3257],{"class":835},[100,3308,341],{"class":106},[100,3310,3312],{"class":102,"line":3311},53,[100,3313,503],{"emptyLinePlaceholder":502},[100,3315,3317,3319,3321,3323,3325,3327,3330,3332,3334,3336,3338],{"class":102,"line":3316},54,[100,3318,3109],{"class":482},[100,3320,519],{"class":106},[100,3322,2540],{"class":522},[100,3324,526],{"class":835},[100,3326,158],{"class":157},[100,3328,3329],{"class":161},"click",[100,3331,158],{"class":157},[100,3333,549],{"class":106},[100,3335,3230],{"class":106},[100,3337,1059],{"class":1058},[100,3339,324],{"class":106},[100,3341,3343,3346,3348,3350,3352,3355,3357,3359,3361,3363],{"class":102,"line":3342},55,[100,3344,3345],{"class":482},"      searchInput",[100,3347,519],{"class":106},[100,3349,2597],{"class":482},[100,3351,486],{"class":106},[100,3353,3354],{"class":482}," feature",[100,3356,519],{"class":106},[100,3358,1067],{"class":482},[100,3360,519],{"class":106},[100,3362,1243],{"class":482},[100,3364,341],{"class":106},[100,3366,3368,3371,3373,3375,3377,3379,3381,3383,3385,3387],{"class":102,"line":3367},56,[100,3369,3370],{"class":482},"      suggestionsEl",[100,3372,519],{"class":106},[100,3374,312],{"class":482},[100,3376,519],{"class":106},[100,3378,2645],{"class":482},[100,3380,486],{"class":106},[100,3382,489],{"class":157},[100,3384,2652],{"class":161},[100,3386,158],{"class":157},[100,3388,341],{"class":106},[100,3390,3392,3395,3397,3399,3401,3403,3405,3407,3409],{"class":102,"line":3391},57,[100,3393,3394],{"class":522},"      searchLocation",[100,3396,526],{"class":835},[100,3398,3070],{"class":482},[100,3400,519],{"class":106},[100,3402,1067],{"class":482},[100,3404,519],{"class":106},[100,3406,1243],{"class":482},[100,3408,535],{"class":835},[100,3410,341],{"class":106},[100,3412,3414,3416,3418],{"class":102,"line":3413},58,[100,3415,2062],{"class":106},[100,3417,535],{"class":835},[100,3419,341],{"class":106},[100,3421,3423],{"class":102,"line":3422},59,[100,3424,503],{"emptyLinePlaceholder":502},[100,3426,3428,3430,3432,3435,3437,3439,3441],{"class":102,"line":3427},60,[100,3429,2636],{"class":482},[100,3431,519],{"class":106},[100,3433,3434],{"class":522},"appendChild",[100,3436,526],{"class":835},[100,3438,34],{"class":482},[100,3440,535],{"class":835},[100,3442,341],{"class":106},[100,3444,3446,3449,3451],{"class":102,"line":3445},61,[100,3447,3448],{"class":106},"  }",[100,3450,535],{"class":835},[100,3452,341],{"class":106},[100,3454,3456],{"class":102,"line":3455},62,[100,3457,503],{"emptyLinePlaceholder":502},[100,3459,3461,3463,3465,3467,3469,3471,3473,3475,3478,3480],{"class":102,"line":3460},63,[100,3462,2963],{"class":482},[100,3464,519],{"class":106},[100,3466,312],{"class":482},[100,3468,519],{"class":106},[100,3470,2645],{"class":482},[100,3472,486],{"class":106},[100,3474,489],{"class":157},[100,3476,3477],{"class":161},"block",[100,3479,158],{"class":157},[100,3481,341],{"class":106},[100,3483,3485],{"class":102,"line":3484},64,[100,3486,1349],{"class":106},[100,3488,3490],{"class":102,"line":3489},65,[100,3491,503],{"emptyLinePlaceholder":502},[100,3493,3495],{"class":102,"line":3494},66,[100,3496,3497],{"class":572},"\u002F\u002F Close the dropdown when clicking outside\n",[100,3499,3501,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526],{"class":102,"line":3500},67,[100,3502,3503],{"class":482},"document",[100,3505,519],{"class":106},[100,3507,2540],{"class":522},[100,3509,526],{"class":525},[100,3511,158],{"class":157},[100,3513,3329],{"class":161},[100,3515,158],{"class":157},[100,3517,549],{"class":106},[100,3519,942],{"class":106},[100,3521,2556],{"class":810},[100,3523,535],{"class":106},[100,3525,1059],{"class":1058},[100,3527,324],{"class":106},[100,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3549,3551,3553,3555,3558,3560,3562,3564,3566,3568],{"class":102,"line":3530},68,[100,3532,939],{"class":828},[100,3534,942],{"class":835},[100,3536,945],{"class":552},[100,3538,3503],{"class":482},[100,3540,519],{"class":106},[100,3542,2473],{"class":522},[100,3544,526],{"class":835},[100,3546,158],{"class":157},[100,3548,2211],{"class":161},[100,3550,158],{"class":157},[100,3552,535],{"class":835},[100,3554,519],{"class":106},[100,3556,3557],{"class":522},"contains",[100,3559,526],{"class":835},[100,3561,2556],{"class":482},[100,3563,519],{"class":106},[100,3565,2592],{"class":482},[100,3567,3257],{"class":835},[100,3569,324],{"class":106},[100,3571,3573,3575,3577,3579,3581,3583,3585,3587,3589,3591],{"class":102,"line":3572},69,[100,3574,2636],{"class":482},[100,3576,519],{"class":106},[100,3578,312],{"class":482},[100,3580,519],{"class":106},[100,3582,2645],{"class":482},[100,3584,486],{"class":106},[100,3586,489],{"class":157},[100,3588,2652],{"class":161},[100,3590,158],{"class":157},[100,3592,341],{"class":106},[100,3594,3596],{"class":102,"line":3595},70,[100,3597,1017],{"class":106},[100,3599,3601,3603,3605],{"class":102,"line":3600},71,[100,3602,744],{"class":106},[100,3604,535],{"class":525},[100,3606,341],{"class":106},[10,3608,3609],{},"The debounce prevents a request on every keystroke. 300ms is a good default - it feels responsive without hammering the API.",[23,3611,3613],{"id":3612},"step-5-vector-tiles-advanced","Step 5: Vector tiles (advanced)",[10,3615,3616],{},"Leaflet does not support MVT vector tiles out of the box. If you need to display Township Canada survey grid overlays alongside your search results, there are two options:",[10,3618,3619,3627],{},[59,3620,3621],{},[17,3622,3626],{"href":3623,"rel":3624},"https:\u002F\u002Fgithub.com\u002Fprotomaps\u002Fprotomaps-leaflet",[3625],"nofollow","protomaps-leaflet"," is a lightweight MVT renderer that works as a Leaflet layer. It handles the Township Canada tile URL format and requires no server-side changes.",[10,3629,3630,3637],{},[59,3631,3632],{},[17,3633,3636],{"href":3634,"rel":3635},"https:\u002F\u002Fgithub.com\u002Fmapbox\u002Fmapbox-gl-leaflet",[3625],"mapbox-gl-leaflet"," bridges Mapbox GL JS into a Leaflet map. It gives you full GL rendering, but adds Mapbox GL JS as a dependency and is heavier than the alternatives.",[10,3639,3640,3641,3645],{},"For most use cases, the Search API approach in this guide - marker + polygon per search - covers the common workflow without the complexity of a vector tile pipeline. If your application needs to display full survey grids (DLS townships, sections, and LSDs) across a large area, the ",[17,3642,3644],{"href":3643},"\u002Fguides\u002Fmapbox-integration","Mapbox GL JS guide"," is a better fit and gives you native MVT support with no plugins.",[23,3647,3649],{"id":3648},"full-working-example","Full working example",[10,3651,3652,3653,3655],{},"Here's the complete HTML file combining all the steps above. Replace ",[86,3654,492],{}," with your Township Canada API key.",[91,3657,3659],{"className":93,"code":3658,"language":95,"meta":96,"style":96},"\u003C!DOCTYPE html>\n\u003Chtml>\n  \u003Chead>\n    \u003Cmeta charset=\"utf-8\" \u002F>\n    \u003Ctitle>Township Canada + Leaflet\u003C\u002Ftitle>\n    \u003Cmeta\n      name=\"viewport\"\n      content=\"width=device-width, initial-scale=1.0\"\n    \u002F>\n    \u003Clink\n      rel=\"stylesheet\"\n      href=\"https:\u002F\u002Funpkg.com\u002Fleaflet@1.9.4\u002Fdist\u002Fleaflet.css\"\n    \u002F>\n    \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Fleaflet@1.9.4\u002Fdist\u002Fleaflet.js\">\u003C\u002Fscript>\n    \u003Cstyle>\n      * {\n        box-sizing: border-box;\n      }\n      body {\n        margin: 0;\n        padding: 0;\n        font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n      }\n      #map {\n        height: 100vh;\n        width: 100%;\n      }\n\n      #search-container {\n        position: absolute;\n        top: 16px;\n        left: 50%;\n        transform: translateX(-50%);\n        z-index: 1000;\n        width: 340px;\n      }\n\n      #search-input {\n        width: 100%;\n        padding: 10px 14px;\n        font-size: 14px;\n        border: 1px solid #ccc;\n        border-radius: 6px;\n        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n        outline: none;\n      }\n\n      #search-input:focus {\n        border-color: #2d5a47;\n        box-shadow: 0 0 0 2px rgba(45, 90, 71, 0.2);\n      }\n\n      #suggestions {\n        list-style: none;\n        margin: 4px 0 0;\n        padding: 0;\n        background: #fff;\n        border-radius: 6px;\n        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n        display: none;\n        overflow: hidden;\n      }\n\n      #suggestions li {\n        padding: 10px 14px;\n        cursor: pointer;\n        font-size: 14px;\n        border-bottom: 1px solid #eee;\n        color: #333;\n      }\n\n      #suggestions li:last-child {\n        border-bottom: none;\n      }\n      #suggestions li:hover {\n        background: #f5f5f5;\n      }\n    \u003C\u002Fstyle>\n  \u003C\u002Fhead>\n  \u003Cbody>\n    \u003Cdiv id=\"search-container\">\n      \u003Cinput\n        id=\"search-input\"\n        type=\"text\"\n        placeholder=\"e.g. NW-25-24-1-W5 or 14-27-048-05W5\"\n        autocomplete=\"off\"\n      \u002F>\n      \u003Cul id=\"suggestions\">\u003C\u002Ful>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv id=\"map\">\u003C\u002Fdiv>\n\n    \u003Cscript>\n      \u002F\u002F --- Configuration ---\n      const TC_API_KEY = \"YOUR_API_KEY\";\n      const TC_API = \"https:\u002F\u002Fdeveloper.townshipcanada.com\";\n\n      \u002F\u002F --- Map ---\n      const map = L.map(\"map\").setView([51.05, -114.07], 10);\n\n      L.tileLayer(\"https:\u002F\u002F{s}.basemaps.cartocdn.com\u002Flight_all\u002F{z}\u002F{x}\u002F{y}{r}.png\", {\n        attribution:\n          '&copy; \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002Fcopyright\">OpenStreetMap\u003C\u002Fa> &copy; \u003Ca href=\"https:\u002F\u002Fcarto.com\u002F\">CARTO\u003C\u002Fa>',\n        subdomains: \"abcd\",\n        maxZoom: 19\n      }).addTo(map);\n\n      \u002F\u002F --- State ---\n      let currentMarker = null;\n      let currentPolygon = null;\n\n      \u002F\u002F --- Search ---\n      async function searchLocation(query) {\n        if (!query) return;\n\n        try {\n          const response = await fetch(\n            `${TC_API}\u002Fsearch\u002Flegal-location?location=${encodeURIComponent(query)}`,\n            { headers: { \"X-API-Key\": TC_API_KEY } }\n          );\n\n          if (!response.ok) {\n            console.error(\"Search failed:\", response.status);\n            return;\n          }\n\n          const data = await response.json();\n          if (!data.features || data.features.length === 0) return;\n\n          const centroid = data.features.find((f) => f.properties.shape === \"centroid\");\n          const polygon = data.features.find((f) => f.geometry.type === \"MultiPolygon\");\n\n          \u002F\u002F Remove previous results\n          if (currentMarker) {\n            currentMarker.remove();\n            currentMarker = null;\n          }\n          if (currentPolygon) {\n            currentPolygon.remove();\n            currentPolygon = null;\n          }\n\n          if (centroid) {\n            const [lng, lat] = centroid.geometry.coordinates;\n            const props = centroid.properties;\n\n            currentMarker = L.marker([lat, lng])\n              .addTo(map)\n              .bindPopup(\n                `\u003Cstrong>${props.legal_location}\u003C\u002Fstrong>\u003Cbr>` +\n                  `\u003Cspan style=\"color:#666; font-size:12px;\">${lat.toFixed(6)}, ${lng.toFixed(6)}\u003C\u002Fspan>`\n              )\n              .openPopup();\n          }\n\n          if (polygon) {\n            currentPolygon = L.geoJSON(polygon, {\n              style: {\n                color: \"#2d5a47\",\n                weight: 2,\n                fillColor: \"#2d5a47\",\n                fillOpacity: 0.12\n              }\n            }).addTo(map);\n\n            map.fitBounds(currentPolygon.getBounds(), { padding: [60, 60] });\n          } else if (centroid) {\n            const [lng, lat] = centroid.geometry.coordinates;\n            map.setView([lat, lng], 14);\n          }\n        } catch (err) {\n          console.error(\"Search error:\", err);\n        }\n      }\n\n      \u002F\u002F --- Autocomplete ---\n      const searchInput = document.getElementById(\"search-input\");\n      const suggestionsEl = document.getElementById(\"suggestions\");\n      let debounceTimer;\n\n      searchInput.addEventListener(\"input\", (e) => {\n        clearTimeout(debounceTimer);\n        const query = e.target.value.trim();\n\n        if (query.length \u003C 2) {\n          suggestionsEl.style.display = \"none\";\n          return;\n        }\n\n        debounceTimer = setTimeout(() => fetchSuggestions(query), 300);\n      });\n\n      searchInput.addEventListener(\"keydown\", (e) => {\n        if (e.key === \"Enter\") {\n          suggestionsEl.style.display = \"none\";\n          searchLocation(searchInput.value.trim());\n        }\n      });\n\n      async function fetchSuggestions(query) {\n        try {\n          const response = await fetch(\n            `${TC_API}\u002Fautocomplete\u002Flegal-location?location=${encodeURIComponent(query)}&limit=3`,\n            { headers: { \"X-API-Key\": TC_API_KEY } }\n          );\n\n          const data = await response.json();\n          suggestionsEl.innerHTML = \"\";\n\n          if (!data.features || data.features.length === 0) {\n            suggestionsEl.style.display = \"none\";\n            return;\n          }\n\n          data.features.forEach((feature) => {\n            const li = document.createElement(\"li\");\n            li.textContent = `${feature.properties.legal_location} (${feature.properties.province})`;\n\n            li.addEventListener(\"click\", () => {\n              searchInput.value = feature.properties.legal_location;\n              suggestionsEl.style.display = \"none\";\n              searchLocation(feature.properties.legal_location);\n            });\n\n            suggestionsEl.appendChild(li);\n          });\n\n          suggestionsEl.style.display = \"block\";\n        } catch (err) {\n          suggestionsEl.style.display = \"none\";\n        }\n      }\n\n      document.addEventListener(\"click\", (e) => {\n        if (!document.getElementById(\"search-container\").contains(e.target)) {\n          suggestionsEl.style.display = \"none\";\n        }\n      });\n    \u003C\u002Fscript>\n  \u003C\u002Fbody>\n\u003C\u002Fhtml>\n",[86,3660,3661,3671,3679,3687,3705,3721,3727,3739,3751,3755,3761,3773,3785,3789,3811,3819,3826,3839,3843,3849,3859,3869,3891,3895,3903,3915,3927,3931,3935,3943,3955,3970,3984,4005,4017,4030,4034,4038,4046,4058,4074,4087,4110,4124,4165,4177,4181,4185,4198,4212,4252,4256,4260,4268,4279,4296,4306,4320,4332,4369,4380,4392,4396,4400,4410,4426,4438,4450,4470,4483,4487,4491,4507,4518,4523,4539,4553,4558,4567,4576,4585,4604,4612,4626,4640,4654,4669,4675,4698,4707,4712,4735,4740,4749,4755,4772,4791,4796,4802,4851,4856,4877,4884,4896,4912,4923,4942,4947,4953,4969,4983,4988,4994,5012,5030,5035,5043,5059,5091,5117,5125,5130,5152,5184,5192,5198,5203,5224,5261,5266,5317,5368,5373,5379,5392,5406,5417,5422,5435,5449,5460,5465,5470,5483,5513,5530,5535,5558,5572,5581,5605,5653,5659,5670,5675,5680,5693,5714,5724,5740,5752,5768,5778,5784,5804,5809,5855,5875,5904,5931,5936,5954,5982,5988,5993,5998,6004,6031,6058,6067,6072,6101,6115,6143,6148,6169,6193,6201,6206,6211,6243,6252,6257,6286,6311,6334,6356,6361,6370,6375,6392,6399,6414,6446,6471,6478,6483,6504,6519,6524,6559,6583,6590,6595,6600,6626,6653,6703,6708,6733,6757,6781,6803,6812,6817,6834,6843,6848,6871,6886,6909,6914,6919,6924,6954,6995,7018,7023,7032,7041,7050],{"__ignoreMap":96},[100,3662,3663,3665,3667,3669],{"class":102,"line":103},[100,3664,107],{"class":106},[100,3666,111],{"class":110},[100,3668,115],{"class":114},[100,3670,118],{"class":106},[100,3672,3673,3675,3677],{"class":102,"line":121},[100,3674,124],{"class":106},[100,3676,95],{"class":110},[100,3678,118],{"class":106},[100,3680,3681,3683,3685],{"class":102,"line":131},[100,3682,134],{"class":106},[100,3684,137],{"class":110},[100,3686,118],{"class":106},[100,3688,3689,3691,3693,3695,3697,3699,3701,3703],{"class":102,"line":142},[100,3690,145],{"class":106},[100,3692,148],{"class":110},[100,3694,151],{"class":114},[100,3696,154],{"class":106},[100,3698,158],{"class":157},[100,3700,162],{"class":161},[100,3702,158],{"class":157},[100,3704,167],{"class":106},[100,3706,3707,3709,3711,3713,3715,3717,3719],{"class":102,"line":170},[100,3708,145],{"class":106},[100,3710,175],{"class":110},[100,3712,178],{"class":106},[100,3714,182],{"class":181},[100,3716,185],{"class":106},[100,3718,175],{"class":110},[100,3720,118],{"class":106},[100,3722,3723,3725],{"class":102,"line":192},[100,3724,145],{"class":106},[100,3726,197],{"class":110},[100,3728,3729,3731,3733,3735,3737],{"class":102,"line":200},[100,3730,203],{"class":114},[100,3732,154],{"class":106},[100,3734,158],{"class":157},[100,3736,210],{"class":161},[100,3738,213],{"class":157},[100,3740,3741,3743,3745,3747,3749],{"class":102,"line":216},[100,3742,219],{"class":114},[100,3744,154],{"class":106},[100,3746,158],{"class":157},[100,3748,226],{"class":161},[100,3750,213],{"class":157},[100,3752,3753],{"class":102,"line":231},[100,3754,234],{"class":106},[100,3756,3757,3759],{"class":102,"line":237},[100,3758,145],{"class":106},[100,3760,242],{"class":110},[100,3762,3763,3765,3767,3769,3771],{"class":102,"line":245},[100,3764,248],{"class":114},[100,3766,154],{"class":106},[100,3768,158],{"class":157},[100,3770,255],{"class":161},[100,3772,213],{"class":157},[100,3774,3775,3777,3779,3781,3783],{"class":102,"line":260},[100,3776,263],{"class":114},[100,3778,154],{"class":106},[100,3780,158],{"class":157},[100,3782,270],{"class":161},[100,3784,213],{"class":157},[100,3786,3787],{"class":102,"line":275},[100,3788,234],{"class":106},[100,3790,3791,3793,3795,3797,3799,3801,3803,3805,3807,3809],{"class":102,"line":280},[100,3792,145],{"class":106},[100,3794,285],{"class":110},[100,3796,288],{"class":114},[100,3798,154],{"class":106},[100,3800,158],{"class":157},[100,3802,295],{"class":161},[100,3804,158],{"class":157},[100,3806,300],{"class":106},[100,3808,285],{"class":110},[100,3810,118],{"class":106},[100,3812,3813,3815,3817],{"class":102,"line":307},[100,3814,145],{"class":106},[100,3816,312],{"class":110},[100,3818,118],{"class":106},[100,3820,3821,3824],{"class":102,"line":317},[100,3822,3823],{"class":320},"      *",[100,3825,324],{"class":106},[100,3827,3828,3831,3833,3837],{"class":102,"line":327},[100,3829,3830],{"class":330},"        box-sizing",[100,3832,334],{"class":106},[100,3834,3836],{"class":3835},"se3Ec"," border-box",[100,3838,341],{"class":106},[100,3840,3841],{"class":102,"line":344},[100,3842,359],{"class":106},[100,3844,3845,3847],{"class":102,"line":356},[100,3846,321],{"class":320},[100,3848,324],{"class":106},[100,3850,3851,3853,3855,3857],{"class":102,"line":362},[100,3852,331],{"class":330},[100,3854,334],{"class":106},[100,3856,338],{"class":337},[100,3858,341],{"class":106},[100,3860,3861,3863,3865,3867],{"class":102,"line":374},[100,3862,347],{"class":330},[100,3864,334],{"class":106},[100,3866,338],{"class":337},[100,3868,341],{"class":106},[100,3870,3871,3874,3876,3879,3881,3884,3886,3889],{"class":102,"line":391},[100,3872,3873],{"class":330},"        font-family",[100,3875,334],{"class":106},[100,3877,3878],{"class":3835}," -apple-system",[100,3880,549],{"class":106},[100,3882,3883],{"class":181}," BlinkMacSystemFont",[100,3885,549],{"class":106},[100,3887,3888],{"class":3835}," sans-serif",[100,3890,341],{"class":106},[100,3892,3893],{"class":102,"line":406},[100,3894,359],{"class":106},[100,3896,3897,3899,3901],{"class":102,"line":411},[100,3898,365],{"class":106},[100,3900,369],{"class":368},[100,3902,324],{"class":106},[100,3904,3905,3907,3909,3911,3913],{"class":102,"line":421},[100,3906,377],{"class":330},[100,3908,334],{"class":106},[100,3910,382],{"class":337},[100,3912,386],{"class":385},[100,3914,341],{"class":106},[100,3916,3917,3919,3921,3923,3925],{"class":102,"line":431},[100,3918,394],{"class":330},[100,3920,334],{"class":106},[100,3922,382],{"class":337},[100,3924,401],{"class":385},[100,3926,341],{"class":106},[100,3928,3929],{"class":102,"line":441},[100,3930,359],{"class":106},[100,3932,3933],{"class":102,"line":466},[100,3934,503],{"emptyLinePlaceholder":502},[100,3936,3937,3939,3941],{"class":102,"line":475},[100,3938,365],{"class":106},[100,3940,2211],{"class":368},[100,3942,324],{"class":106},[100,3944,3945,3948,3950,3953],{"class":102,"line":499},[100,3946,3947],{"class":330},"        position",[100,3949,334],{"class":106},[100,3951,3952],{"class":3835}," absolute",[100,3954,341],{"class":106},[100,3956,3957,3960,3962,3965,3968],{"class":102,"line":506},[100,3958,3959],{"class":330},"        top",[100,3961,334],{"class":106},[100,3963,3964],{"class":337}," 16",[100,3966,3967],{"class":385},"px",[100,3969,341],{"class":106},[100,3971,3972,3975,3977,3980,3982],{"class":102,"line":576},[100,3973,3974],{"class":330},"        left",[100,3976,334],{"class":106},[100,3978,3979],{"class":337}," 50",[100,3981,401],{"class":385},[100,3983,341],{"class":106},[100,3985,3986,3989,3991,3995,3997,4000,4002],{"class":102,"line":581},[100,3987,3988],{"class":330},"        transform",[100,3990,334],{"class":106},[100,3992,3994],{"class":3993},"sJdAF"," translateX",[100,3996,526],{"class":106},[100,3998,3999],{"class":337},"-50",[100,4001,401],{"class":385},[100,4003,4004],{"class":106},");\n",[100,4006,4007,4010,4012,4015],{"class":102,"line":605},[100,4008,4009],{"class":330},"        z-index",[100,4011,334],{"class":106},[100,4013,4014],{"class":337}," 1000",[100,4016,341],{"class":106},[100,4018,4019,4021,4023,4026,4028],{"class":102,"line":623},[100,4020,394],{"class":330},[100,4022,334],{"class":106},[100,4024,4025],{"class":337}," 340",[100,4027,3967],{"class":385},[100,4029,341],{"class":106},[100,4031,4032],{"class":102,"line":644},[100,4033,359],{"class":106},[100,4035,4036],{"class":102,"line":653},[100,4037,503],{"emptyLinePlaceholder":502},[100,4039,4040,4042,4044],{"class":102,"line":662},[100,4041,365],{"class":106},[100,4043,2279],{"class":368},[100,4045,324],{"class":106},[100,4047,4048,4050,4052,4054,4056],{"class":102,"line":2059},[100,4049,394],{"class":330},[100,4051,334],{"class":106},[100,4053,382],{"class":337},[100,4055,401],{"class":385},[100,4057,341],{"class":106},[100,4059,4060,4062,4064,4066,4068,4070,4072],{"class":102,"line":2079},[100,4061,347],{"class":330},[100,4063,334],{"class":106},[100,4065,564],{"class":337},[100,4067,3967],{"class":385},[100,4069,1340],{"class":337},[100,4071,3967],{"class":385},[100,4073,341],{"class":106},[100,4075,4076,4079,4081,4083,4085],{"class":102,"line":2084},[100,4077,4078],{"class":330},"        font-size",[100,4080,334],{"class":106},[100,4082,1340],{"class":337},[100,4084,3967],{"class":385},[100,4086,341],{"class":106},[100,4088,4089,4092,4094,4097,4099,4102,4105,4108],{"class":102,"line":2090},[100,4090,4091],{"class":330},"        border",[100,4093,334],{"class":106},[100,4095,4096],{"class":337}," 1",[100,4098,3967],{"class":385},[100,4100,4101],{"class":3835}," solid",[100,4103,4104],{"class":106}," #",[100,4106,4107],{"class":3835},"ccc",[100,4109,341],{"class":106},[100,4111,4112,4115,4117,4120,4122],{"class":102,"line":2142},[100,4113,4114],{"class":330},"        border-radius",[100,4116,334],{"class":106},[100,4118,4119],{"class":337}," 6",[100,4121,3967],{"class":385},[100,4123,341],{"class":106},[100,4125,4126,4129,4131,4133,4135,4137,4140,4142,4145,4147,4150,4152,4154,4156,4158,4160,4163],{"class":102,"line":2147},[100,4127,4128],{"class":330},"        box-shadow",[100,4130,334],{"class":106},[100,4132,338],{"class":337},[100,4134,2025],{"class":337},[100,4136,3967],{"class":385},[100,4138,4139],{"class":337}," 8",[100,4141,3967],{"class":385},[100,4143,4144],{"class":3993}," rgba",[100,4146,526],{"class":106},[100,4148,4149],{"class":337},"0",[100,4151,549],{"class":106},[100,4153,338],{"class":337},[100,4155,549],{"class":106},[100,4157,338],{"class":337},[100,4159,549],{"class":106},[100,4161,4162],{"class":337}," 0.12",[100,4164,4004],{"class":106},[100,4166,4167,4170,4172,4175],{"class":102,"line":3176},[100,4168,4169],{"class":330},"        outline",[100,4171,334],{"class":106},[100,4173,4174],{"class":3835}," none",[100,4176,341],{"class":106},[100,4178,4179],{"class":102,"line":3181},[100,4180,359],{"class":106},[100,4182,4183],{"class":102,"line":3187},[100,4184,503],{"emptyLinePlaceholder":502},[100,4186,4187,4189,4191,4193,4196],{"class":102,"line":3192},[100,4188,365],{"class":106},[100,4190,2279],{"class":368},[100,4192,334],{"class":106},[100,4194,4195],{"class":114},"focus",[100,4197,324],{"class":106},[100,4199,4200,4203,4205,4207,4210],{"class":102,"line":3198},[100,4201,4202],{"class":330},"        border-color",[100,4204,334],{"class":106},[100,4206,4104],{"class":106},[100,4208,4209],{"class":3835},"2d5a47",[100,4211,341],{"class":106},[100,4213,4214,4216,4218,4220,4222,4224,4226,4228,4230,4232,4235,4237,4240,4242,4245,4247,4250],{"class":102,"line":3205},[100,4215,4128],{"class":330},[100,4217,334],{"class":106},[100,4219,338],{"class":337},[100,4221,338],{"class":337},[100,4223,338],{"class":337},[100,4225,2025],{"class":337},[100,4227,3967],{"class":385},[100,4229,4144],{"class":3993},[100,4231,526],{"class":106},[100,4233,4234],{"class":337},"45",[100,4236,549],{"class":106},[100,4238,4239],{"class":337}," 90",[100,4241,549],{"class":106},[100,4243,4244],{"class":337}," 71",[100,4246,549],{"class":106},[100,4248,4249],{"class":337}," 0.2",[100,4251,4004],{"class":106},[100,4253,4254],{"class":102,"line":3210},[100,4255,359],{"class":106},[100,4257,4258],{"class":102,"line":3262},[100,4259,503],{"emptyLinePlaceholder":502},[100,4261,4262,4264,4266],{"class":102,"line":3311},[100,4263,365],{"class":106},[100,4265,2380],{"class":368},[100,4267,324],{"class":106},[100,4269,4270,4273,4275,4277],{"class":102,"line":3316},[100,4271,4272],{"class":330},"        list-style",[100,4274,334],{"class":106},[100,4276,4174],{"class":3835},[100,4278,341],{"class":106},[100,4280,4281,4283,4285,4288,4290,4292,4294],{"class":102,"line":3342},[100,4282,331],{"class":330},[100,4284,334],{"class":106},[100,4286,4287],{"class":337}," 4",[100,4289,3967],{"class":385},[100,4291,338],{"class":337},[100,4293,338],{"class":337},[100,4295,341],{"class":106},[100,4297,4298,4300,4302,4304],{"class":102,"line":3367},[100,4299,347],{"class":330},[100,4301,334],{"class":106},[100,4303,338],{"class":337},[100,4305,341],{"class":106},[100,4307,4308,4311,4313,4315,4318],{"class":102,"line":3391},[100,4309,4310],{"class":330},"        background",[100,4312,334],{"class":106},[100,4314,4104],{"class":106},[100,4316,4317],{"class":3835},"fff",[100,4319,341],{"class":106},[100,4321,4322,4324,4326,4328,4330],{"class":102,"line":3413},[100,4323,4114],{"class":330},[100,4325,334],{"class":106},[100,4327,4119],{"class":337},[100,4329,3967],{"class":385},[100,4331,341],{"class":106},[100,4333,4334,4336,4338,4340,4342,4344,4346,4348,4350,4352,4354,4356,4358,4360,4362,4364,4367],{"class":102,"line":3422},[100,4335,4128],{"class":330},[100,4337,334],{"class":106},[100,4339,338],{"class":337},[100,4341,2025],{"class":337},[100,4343,3967],{"class":385},[100,4345,4139],{"class":337},[100,4347,3967],{"class":385},[100,4349,4144],{"class":3993},[100,4351,526],{"class":106},[100,4353,4149],{"class":337},[100,4355,549],{"class":106},[100,4357,338],{"class":337},[100,4359,549],{"class":106},[100,4361,338],{"class":337},[100,4363,549],{"class":106},[100,4365,4366],{"class":337}," 0.15",[100,4368,4004],{"class":106},[100,4370,4371,4374,4376,4378],{"class":102,"line":3427},[100,4372,4373],{"class":330},"        display",[100,4375,334],{"class":106},[100,4377,4174],{"class":3835},[100,4379,341],{"class":106},[100,4381,4382,4385,4387,4390],{"class":102,"line":3445},[100,4383,4384],{"class":330},"        overflow",[100,4386,334],{"class":106},[100,4388,4389],{"class":3835}," hidden",[100,4391,341],{"class":106},[100,4393,4394],{"class":102,"line":3455},[100,4395,359],{"class":106},[100,4397,4398],{"class":102,"line":3460},[100,4399,503],{"emptyLinePlaceholder":502},[100,4401,4402,4404,4406,4408],{"class":102,"line":3484},[100,4403,365],{"class":106},[100,4405,2380],{"class":368},[100,4407,3083],{"class":320},[100,4409,324],{"class":106},[100,4411,4412,4414,4416,4418,4420,4422,4424],{"class":102,"line":3489},[100,4413,347],{"class":330},[100,4415,334],{"class":106},[100,4417,564],{"class":337},[100,4419,3967],{"class":385},[100,4421,1340],{"class":337},[100,4423,3967],{"class":385},[100,4425,341],{"class":106},[100,4427,4428,4431,4433,4436],{"class":102,"line":3494},[100,4429,4430],{"class":330},"        cursor",[100,4432,334],{"class":106},[100,4434,4435],{"class":3835}," pointer",[100,4437,341],{"class":106},[100,4439,4440,4442,4444,4446,4448],{"class":102,"line":3500},[100,4441,4078],{"class":330},[100,4443,334],{"class":106},[100,4445,1340],{"class":337},[100,4447,3967],{"class":385},[100,4449,341],{"class":106},[100,4451,4452,4455,4457,4459,4461,4463,4465,4468],{"class":102,"line":3530},[100,4453,4454],{"class":330},"        border-bottom",[100,4456,334],{"class":106},[100,4458,4096],{"class":337},[100,4460,3967],{"class":385},[100,4462,4101],{"class":3835},[100,4464,4104],{"class":106},[100,4466,4467],{"class":3835},"eee",[100,4469,341],{"class":106},[100,4471,4472,4474,4476,4478,4481],{"class":102,"line":3572},[100,4473,2004],{"class":330},[100,4475,334],{"class":106},[100,4477,4104],{"class":106},[100,4479,4480],{"class":3835},"333",[100,4482,341],{"class":106},[100,4484,4485],{"class":102,"line":3595},[100,4486,359],{"class":106},[100,4488,4489],{"class":102,"line":3600},[100,4490,503],{"emptyLinePlaceholder":502},[100,4492,4494,4496,4498,4500,4502,4505],{"class":102,"line":4493},72,[100,4495,365],{"class":106},[100,4497,2380],{"class":368},[100,4499,3083],{"class":320},[100,4501,334],{"class":106},[100,4503,4504],{"class":114},"last-child",[100,4506,324],{"class":106},[100,4508,4510,4512,4514,4516],{"class":102,"line":4509},73,[100,4511,4454],{"class":330},[100,4513,334],{"class":106},[100,4515,4174],{"class":3835},[100,4517,341],{"class":106},[100,4519,4521],{"class":102,"line":4520},74,[100,4522,359],{"class":106},[100,4524,4526,4528,4530,4532,4534,4537],{"class":102,"line":4525},75,[100,4527,365],{"class":106},[100,4529,2380],{"class":368},[100,4531,3083],{"class":320},[100,4533,334],{"class":106},[100,4535,4536],{"class":114},"hover",[100,4538,324],{"class":106},[100,4540,4542,4544,4546,4548,4551],{"class":102,"line":4541},76,[100,4543,4310],{"class":330},[100,4545,334],{"class":106},[100,4547,4104],{"class":106},[100,4549,4550],{"class":3835},"f5f5f5",[100,4552,341],{"class":106},[100,4554,4556],{"class":102,"line":4555},77,[100,4557,359],{"class":106},[100,4559,4561,4563,4565],{"class":102,"line":4560},78,[100,4562,414],{"class":106},[100,4564,312],{"class":110},[100,4566,118],{"class":106},[100,4568,4570,4572,4574],{"class":102,"line":4569},79,[100,4571,424],{"class":106},[100,4573,137],{"class":110},[100,4575,118],{"class":106},[100,4577,4579,4581,4583],{"class":102,"line":4578},80,[100,4580,134],{"class":106},[100,4582,436],{"class":110},[100,4584,118],{"class":106},[100,4586,4588,4590,4592,4594,4596,4598,4600,4602],{"class":102,"line":4587},81,[100,4589,145],{"class":106},[100,4591,446],{"class":110},[100,4593,449],{"class":114},[100,4595,154],{"class":106},[100,4597,158],{"class":157},[100,4599,2211],{"class":161},[100,4601,158],{"class":157},[100,4603,118],{"class":106},[100,4605,4607,4610],{"class":102,"line":4606},82,[100,4608,4609],{"class":106},"      \u003C",[100,4611,2267],{"class":110},[100,4613,4615,4618,4620,4622,4624],{"class":102,"line":4614},83,[100,4616,4617],{"class":114},"        id",[100,4619,154],{"class":106},[100,4621,158],{"class":157},[100,4623,2279],{"class":161},[100,4625,213],{"class":157},[100,4627,4629,4632,4634,4636,4638],{"class":102,"line":4628},84,[100,4630,4631],{"class":114},"        type",[100,4633,154],{"class":106},[100,4635,158],{"class":157},[100,4637,776],{"class":161},[100,4639,213],{"class":157},[100,4641,4643,4646,4648,4650,4652],{"class":102,"line":4642},85,[100,4644,4645],{"class":114},"        placeholder",[100,4647,154],{"class":106},[100,4649,158],{"class":157},[100,4651,2306],{"class":161},[100,4653,213],{"class":157},[100,4655,4657,4660,4662,4664,4667],{"class":102,"line":4656},86,[100,4658,4659],{"class":114},"        autocomplete",[100,4661,154],{"class":106},[100,4663,158],{"class":157},[100,4665,4666],{"class":161},"off",[100,4668,213],{"class":157},[100,4670,4672],{"class":102,"line":4671},87,[100,4673,4674],{"class":106},"      \u002F>\n",[100,4676,4678,4680,4682,4684,4686,4688,4690,4692,4694,4696],{"class":102,"line":4677},88,[100,4679,4609],{"class":106},[100,4681,31],{"class":110},[100,4683,449],{"class":114},[100,4685,154],{"class":106},[100,4687,158],{"class":157},[100,4689,2380],{"class":161},[100,4691,158],{"class":157},[100,4693,300],{"class":106},[100,4695,31],{"class":110},[100,4697,118],{"class":106},[100,4699,4701,4703,4705],{"class":102,"line":4700},89,[100,4702,414],{"class":106},[100,4704,446],{"class":110},[100,4706,118],{"class":106},[100,4708,4710],{"class":102,"line":4709},90,[100,4711,503],{"emptyLinePlaceholder":502},[100,4713,4715,4717,4719,4721,4723,4725,4727,4729,4731,4733],{"class":102,"line":4714},91,[100,4716,145],{"class":106},[100,4718,446],{"class":110},[100,4720,449],{"class":114},[100,4722,154],{"class":106},[100,4724,158],{"class":157},[100,4726,369],{"class":161},[100,4728,158],{"class":157},[100,4730,300],{"class":106},[100,4732,446],{"class":110},[100,4734,118],{"class":106},[100,4736,4738],{"class":102,"line":4737},92,[100,4739,503],{"emptyLinePlaceholder":502},[100,4741,4743,4745,4747],{"class":102,"line":4742},93,[100,4744,145],{"class":106},[100,4746,285],{"class":110},[100,4748,118],{"class":106},[100,4750,4752],{"class":102,"line":4751},94,[100,4753,4754],{"class":572},"      \u002F\u002F --- Configuration ---\n",[100,4756,4758,4760,4762,4764,4766,4768,4770],{"class":102,"line":4757},95,[100,4759,479],{"class":478},[100,4761,483],{"class":482},[100,4763,486],{"class":106},[100,4765,489],{"class":157},[100,4767,492],{"class":161},[100,4769,158],{"class":157},[100,4771,341],{"class":106},[100,4773,4775,4777,4780,4782,4784,4787,4789],{"class":102,"line":4774},96,[100,4776,479],{"class":478},[100,4778,4779],{"class":482}," TC_API",[100,4781,486],{"class":106},[100,4783,489],{"class":157},[100,4785,4786],{"class":161},"https:\u002F\u002Fdeveloper.townshipcanada.com",[100,4788,158],{"class":157},[100,4790,341],{"class":106},[100,4792,4794],{"class":102,"line":4793},97,[100,4795,503],{"emptyLinePlaceholder":502},[100,4797,4799],{"class":102,"line":4798},98,[100,4800,4801],{"class":572},"      \u002F\u002F --- Map ---\n",[100,4803,4805,4807,4809,4811,4813,4815,4817,4819,4821,4823,4825,4827,4829,4831,4833,4835,4837,4839,4841,4843,4845,4847,4849],{"class":102,"line":4804},99,[100,4806,479],{"class":478},[100,4808,511],{"class":482},[100,4810,486],{"class":106},[100,4812,516],{"class":482},[100,4814,519],{"class":106},[100,4816,369],{"class":522},[100,4818,526],{"class":525},[100,4820,158],{"class":157},[100,4822,369],{"class":161},[100,4824,158],{"class":157},[100,4826,535],{"class":525},[100,4828,519],{"class":106},[100,4830,540],{"class":522},[100,4832,543],{"class":525},[100,4834,546],{"class":337},[100,4836,549],{"class":106},[100,4838,553],{"class":552},[100,4840,556],{"class":337},[100,4842,559],{"class":525},[100,4844,549],{"class":106},[100,4846,564],{"class":337},[100,4848,535],{"class":525},[100,4850,341],{"class":106},[100,4852,4854],{"class":102,"line":4853},100,[100,4855,503],{"emptyLinePlaceholder":502},[100,4857,4859,4861,4863,4865,4867,4869,4871,4873,4875],{"class":102,"line":4858},101,[100,4860,584],{"class":482},[100,4862,519],{"class":106},[100,4864,589],{"class":522},[100,4866,526],{"class":525},[100,4868,158],{"class":157},[100,4870,697],{"class":161},[100,4872,158],{"class":157},[100,4874,549],{"class":106},[100,4876,324],{"class":106},[100,4878,4880,4882],{"class":102,"line":4879},102,[100,4881,609],{"class":608},[100,4883,711],{"class":106},[100,4885,4887,4890,4892,4894],{"class":102,"line":4886},103,[100,4888,4889],{"class":157},"          '",[100,4891,719],{"class":161},[100,4893,722],{"class":157},[100,4895,725],{"class":106},[100,4897,4899,4902,4904,4906,4908,4910],{"class":102,"line":4898},104,[100,4900,4901],{"class":608},"        subdomains",[100,4903,334],{"class":106},[100,4905,489],{"class":157},[100,4907,737],{"class":161},[100,4909,158],{"class":157},[100,4911,725],{"class":106},[100,4913,4915,4918,4920],{"class":102,"line":4914},105,[100,4916,4917],{"class":608},"        maxZoom",[100,4919,334],{"class":106},[100,4921,4922],{"class":337}," 19\n",[100,4924,4926,4928,4930,4932,4934,4936,4938,4940],{"class":102,"line":4925},106,[100,4927,626],{"class":106},[100,4929,535],{"class":525},[100,4931,519],{"class":106},[100,4933,633],{"class":522},[100,4935,526],{"class":525},[100,4937,369],{"class":482},[100,4939,535],{"class":525},[100,4941,341],{"class":106},[100,4943,4945],{"class":102,"line":4944},107,[100,4946,503],{"emptyLinePlaceholder":502},[100,4948,4950],{"class":102,"line":4949},108,[100,4951,4952],{"class":572},"      \u002F\u002F --- State ---\n",[100,4954,4956,4959,4962,4964,4967],{"class":102,"line":4955},109,[100,4957,4958],{"class":478},"      let",[100,4960,4961],{"class":482}," currentMarker",[100,4963,486],{"class":106},[100,4965,4966],{"class":552}," null",[100,4968,341],{"class":106},[100,4970,4972,4974,4977,4979,4981],{"class":102,"line":4971},110,[100,4973,4958],{"class":478},[100,4975,4976],{"class":482}," currentPolygon",[100,4978,486],{"class":106},[100,4980,4966],{"class":552},[100,4982,341],{"class":106},[100,4984,4986],{"class":102,"line":4985},111,[100,4987,503],{"emptyLinePlaceholder":502},[100,4989,4991],{"class":102,"line":4990},112,[100,4992,4993],{"class":572},"      \u002F\u002F --- Search ---\n",[100,4995,4997,5000,5002,5004,5006,5008,5010],{"class":102,"line":4996},113,[100,4998,4999],{"class":478},"      async",[100,5001,802],{"class":478},[100,5003,805],{"class":522},[100,5005,526],{"class":106},[100,5007,811],{"class":810},[100,5009,535],{"class":106},[100,5011,324],{"class":106},[100,5013,5015,5018,5020,5022,5024,5026,5028],{"class":102,"line":5014},114,[100,5016,5017],{"class":828},"        if",[100,5019,942],{"class":835},[100,5021,945],{"class":552},[100,5023,811],{"class":482},[100,5025,535],{"class":835},[100,5027,1100],{"class":828},[100,5029,341],{"class":106},[100,5031,5033],{"class":102,"line":5032},115,[100,5034,503],{"emptyLinePlaceholder":502},[100,5036,5038,5041],{"class":102,"line":5037},116,[100,5039,5040],{"class":828},"        try",[100,5042,324],{"class":106},[100,5044,5046,5049,5051,5053,5055,5057],{"class":102,"line":5045},117,[100,5047,5048],{"class":478},"          const",[100,5050,823],{"class":482},[100,5052,486],{"class":106},[100,5054,829],{"class":828},[100,5056,832],{"class":522},[100,5058,836],{"class":835},[100,5060,5062,5065,5067,5070,5072,5075,5077,5079,5081,5083,5085,5087,5089],{"class":102,"line":5061},118,[100,5063,5064],{"class":157},"            `",[100,5066,848],{"class":847},[100,5068,5069],{"class":856},"TC_API",[100,5071,744],{"class":847},[100,5073,5074],{"class":161},"\u002Fsearch\u002Flegal-location?location=",[100,5076,848],{"class":847},[100,5078,851],{"class":522},[100,5080,526],{"class":525},[100,5082,811],{"class":856},[100,5084,535],{"class":525},[100,5086,744],{"class":847},[100,5088,863],{"class":157},[100,5090,725],{"class":106},[100,5092,5094,5097,5099,5101,5103,5105,5107,5109,5111,5113,5115],{"class":102,"line":5093},119,[100,5095,5096],{"class":106},"            {",[100,5098,873],{"class":608},[100,5100,334],{"class":106},[100,5102,878],{"class":106},[100,5104,489],{"class":157},[100,5106,884],{"class":883},[100,5108,158],{"class":157},[100,5110,334],{"class":106},[100,5112,483],{"class":482},[100,5114,893],{"class":106},[100,5116,896],{"class":106},[100,5118,5120,5123],{"class":102,"line":5119},120,[100,5121,5122],{"class":835},"          )",[100,5124,341],{"class":106},[100,5126,5128],{"class":102,"line":5127},121,[100,5129,503],{"emptyLinePlaceholder":502},[100,5131,5133,5136,5138,5140,5143,5145,5148,5150],{"class":102,"line":5132},122,[100,5134,5135],{"class":828},"          if",[100,5137,942],{"class":835},[100,5139,945],{"class":552},[100,5141,5142],{"class":482},"response",[100,5144,519],{"class":106},[100,5146,5147],{"class":482},"ok",[100,5149,535],{"class":835},[100,5151,324],{"class":106},[100,5153,5155,5158,5160,5162,5164,5166,5169,5171,5173,5175,5177,5180,5182],{"class":102,"line":5154},123,[100,5156,5157],{"class":482},"            console",[100,5159,519],{"class":106},[100,5161,987],{"class":522},[100,5163,526],{"class":835},[100,5165,158],{"class":157},[100,5167,5168],{"class":161},"Search failed:",[100,5170,158],{"class":157},[100,5172,549],{"class":106},[100,5174,823],{"class":482},[100,5176,519],{"class":106},[100,5178,5179],{"class":482},"status",[100,5181,535],{"class":835},[100,5183,341],{"class":106},[100,5185,5187,5190],{"class":102,"line":5186},124,[100,5188,5189],{"class":828},"            return",[100,5191,341],{"class":106},[100,5193,5195],{"class":102,"line":5194},125,[100,5196,5197],{"class":106},"          }\n",[100,5199,5201],{"class":102,"line":5200},126,[100,5202,503],{"emptyLinePlaceholder":502},[100,5204,5206,5208,5210,5212,5214,5216,5218,5220,5222],{"class":102,"line":5205},127,[100,5207,5048],{"class":478},[100,5209,914],{"class":482},[100,5211,486],{"class":106},[100,5213,829],{"class":828},[100,5215,823],{"class":482},[100,5217,519],{"class":106},[100,5219,925],{"class":522},[100,5221,928],{"class":835},[100,5223,341],{"class":106},[100,5225,5227,5229,5231,5233,5235,5237,5239,5241,5243,5245,5247,5249,5251,5253,5255,5257,5259],{"class":102,"line":5226},128,[100,5228,5135],{"class":828},[100,5230,942],{"class":835},[100,5232,945],{"class":552},[100,5234,948],{"class":482},[100,5236,519],{"class":106},[100,5238,953],{"class":482},[100,5240,956],{"class":552},[100,5242,914],{"class":482},[100,5244,519],{"class":106},[100,5246,953],{"class":482},[100,5248,519],{"class":106},[100,5250,968],{"class":967},[100,5252,971],{"class":552},[100,5254,338],{"class":337},[100,5256,535],{"class":835},[100,5258,1100],{"class":828},[100,5260,341],{"class":106},[100,5262,5264],{"class":102,"line":5263},129,[100,5265,503],{"emptyLinePlaceholder":502},[100,5267,5269,5271,5273,5275,5277,5279,5281,5283,5285,5287,5289,5291,5293,5295,5297,5299,5301,5303,5305,5307,5309,5311,5313,5315],{"class":102,"line":5268},130,[100,5270,5048],{"class":478},[100,5272,1033],{"class":482},[100,5274,486],{"class":106},[100,5276,914],{"class":482},[100,5278,519],{"class":106},[100,5280,953],{"class":482},[100,5282,519],{"class":106},[100,5284,1046],{"class":522},[100,5286,526],{"class":835},[100,5288,526],{"class":106},[100,5290,1053],{"class":810},[100,5292,535],{"class":106},[100,5294,1059],{"class":1058},[100,5296,1062],{"class":482},[100,5298,519],{"class":106},[100,5300,1067],{"class":482},[100,5302,519],{"class":106},[100,5304,1072],{"class":482},[100,5306,971],{"class":552},[100,5308,489],{"class":157},[100,5310,1079],{"class":161},[100,5312,158],{"class":157},[100,5314,535],{"class":835},[100,5316,341],{"class":106},[100,5318,5320,5322,5324,5326,5328,5330,5332,5334,5336,5338,5340,5342,5344,5346,5348,5350,5352,5354,5356,5358,5360,5362,5364,5366],{"class":102,"line":5319},131,[100,5321,5048],{"class":478},[100,5323,1606],{"class":482},[100,5325,486],{"class":106},[100,5327,914],{"class":482},[100,5329,519],{"class":106},[100,5331,953],{"class":482},[100,5333,519],{"class":106},[100,5335,1046],{"class":522},[100,5337,526],{"class":835},[100,5339,526],{"class":106},[100,5341,1053],{"class":810},[100,5343,535],{"class":106},[100,5345,1059],{"class":1058},[100,5347,1062],{"class":482},[100,5349,519],{"class":106},[100,5351,1132],{"class":482},[100,5353,519],{"class":106},[100,5355,1639],{"class":482},[100,5357,971],{"class":552},[100,5359,489],{"class":157},[100,5361,1646],{"class":161},[100,5363,158],{"class":157},[100,5365,535],{"class":835},[100,5367,341],{"class":106},[100,5369,5371],{"class":102,"line":5370},132,[100,5372,503],{"emptyLinePlaceholder":502},[100,5374,5376],{"class":102,"line":5375},133,[100,5377,5378],{"class":572},"          \u002F\u002F Remove previous results\n",[100,5380,5382,5384,5386,5388,5390],{"class":102,"line":5381},134,[100,5383,5135],{"class":828},[100,5385,942],{"class":835},[100,5387,1675],{"class":482},[100,5389,535],{"class":835},[100,5391,324],{"class":106},[100,5393,5395,5398,5400,5402,5404],{"class":102,"line":5394},135,[100,5396,5397],{"class":482},"            currentMarker",[100,5399,519],{"class":106},[100,5401,1689],{"class":522},[100,5403,928],{"class":835},[100,5405,341],{"class":106},[100,5407,5409,5411,5413,5415],{"class":102,"line":5408},136,[100,5410,5397],{"class":482},[100,5412,486],{"class":106},[100,5414,4966],{"class":552},[100,5416,341],{"class":106},[100,5418,5420],{"class":102,"line":5419},137,[100,5421,5197],{"class":106},[100,5423,5425,5427,5429,5431,5433],{"class":102,"line":5424},138,[100,5426,5135],{"class":828},[100,5428,942],{"class":835},[100,5430,1706],{"class":482},[100,5432,535],{"class":835},[100,5434,324],{"class":106},[100,5436,5438,5441,5443,5445,5447],{"class":102,"line":5437},139,[100,5439,5440],{"class":482},"            currentPolygon",[100,5442,519],{"class":106},[100,5444,1689],{"class":522},[100,5446,928],{"class":835},[100,5448,341],{"class":106},[100,5450,5452,5454,5456,5458],{"class":102,"line":5451},140,[100,5453,5440],{"class":482},[100,5455,486],{"class":106},[100,5457,4966],{"class":552},[100,5459,341],{"class":106},[100,5461,5463],{"class":102,"line":5462},141,[100,5464,5197],{"class":106},[100,5466,5468],{"class":102,"line":5467},142,[100,5469,503],{"emptyLinePlaceholder":502},[100,5471,5473,5475,5477,5479,5481],{"class":102,"line":5472},143,[100,5474,5135],{"class":828},[100,5476,942],{"class":835},[100,5478,1079],{"class":482},[100,5480,535],{"class":835},[100,5482,324],{"class":106},[100,5484,5486,5489,5491,5493,5495,5497,5499,5501,5503,5505,5507,5509,5511],{"class":102,"line":5485},144,[100,5487,5488],{"class":478},"            const",[100,5490,1113],{"class":106},[100,5492,1116],{"class":482},[100,5494,549],{"class":106},[100,5496,1121],{"class":482},[100,5498,559],{"class":106},[100,5500,486],{"class":106},[100,5502,1033],{"class":482},[100,5504,519],{"class":106},[100,5506,1132],{"class":482},[100,5508,519],{"class":106},[100,5510,1137],{"class":482},[100,5512,341],{"class":106},[100,5514,5516,5518,5520,5522,5524,5526,5528],{"class":102,"line":5515},145,[100,5517,5488],{"class":478},[100,5519,1146],{"class":482},[100,5521,486],{"class":106},[100,5523,1033],{"class":482},[100,5525,519],{"class":106},[100,5527,1067],{"class":482},[100,5529,341],{"class":106},[100,5531,5533],{"class":102,"line":5532},146,[100,5534,503],{"emptyLinePlaceholder":502},[100,5536,5538,5540,5542,5544,5546,5548,5550,5552,5554,5556],{"class":102,"line":5537},147,[100,5539,5397],{"class":482},[100,5541,486],{"class":106},[100,5543,516],{"class":482},[100,5545,519],{"class":106},[100,5547,1181],{"class":522},[100,5549,543],{"class":835},[100,5551,1186],{"class":482},[100,5553,549],{"class":106},[100,5555,1191],{"class":482},[100,5557,1815],{"class":835},[100,5559,5561,5564,5566,5568,5570],{"class":102,"line":5560},148,[100,5562,5563],{"class":106},"              .",[100,5565,633],{"class":522},[100,5567,526],{"class":835},[100,5569,369],{"class":482},[100,5571,1829],{"class":835},[100,5573,5575,5577,5579],{"class":102,"line":5574},149,[100,5576,5563],{"class":106},[100,5578,1223],{"class":522},[100,5580,836],{"class":835},[100,5582,5584,5587,5589,5591,5593,5595,5597,5599,5601,5603],{"class":102,"line":5583},150,[100,5585,5586],{"class":157},"                `",[100,5588,1233],{"class":161},[100,5590,848],{"class":847},[100,5592,1238],{"class":856},[100,5594,519],{"class":106},[100,5596,1243],{"class":856},[100,5598,744],{"class":847},[100,5600,1248],{"class":161},[100,5602,863],{"class":157},[100,5604,2878],{"class":552},[100,5606,5608,5611,5614,5616,5618,5620,5622,5624,5626,5628,5630,5632,5634,5636,5638,5640,5642,5644,5646,5648,5651],{"class":102,"line":5607},151,[100,5609,5610],{"class":157},"                  `",[100,5612,5613],{"class":161},"\u003Cspan style=\"color:#666; font-size:12px;\">",[100,5615,848],{"class":847},[100,5617,1186],{"class":856},[100,5619,519],{"class":106},[100,5621,1265],{"class":522},[100,5623,526],{"class":525},[100,5625,1270],{"class":337},[100,5627,535],{"class":525},[100,5629,744],{"class":847},[100,5631,1277],{"class":161},[100,5633,848],{"class":847},[100,5635,1116],{"class":856},[100,5637,519],{"class":106},[100,5639,1265],{"class":522},[100,5641,526],{"class":525},[100,5643,1270],{"class":337},[100,5645,535],{"class":525},[100,5647,744],{"class":847},[100,5649,5650],{"class":161},"\u003C\u002Fspan>",[100,5652,1296],{"class":157},[100,5654,5656],{"class":102,"line":5655},152,[100,5657,5658],{"class":835},"              )\n",[100,5660,5662,5664,5666,5668],{"class":102,"line":5661},153,[100,5663,5563],{"class":106},[100,5665,1308],{"class":522},[100,5667,928],{"class":835},[100,5669,341],{"class":106},[100,5671,5673],{"class":102,"line":5672},154,[100,5674,5197],{"class":106},[100,5676,5678],{"class":102,"line":5677},155,[100,5679,503],{"emptyLinePlaceholder":502},[100,5681,5683,5685,5687,5689,5691],{"class":102,"line":5682},156,[100,5684,5135],{"class":828},[100,5686,942],{"class":835},[100,5688,1961],{"class":482},[100,5690,535],{"class":835},[100,5692,324],{"class":106},[100,5694,5696,5698,5700,5702,5704,5706,5708,5710,5712],{"class":102,"line":5695},157,[100,5697,5440],{"class":482},[100,5699,486],{"class":106},[100,5701,516],{"class":482},[100,5703,519],{"class":106},[100,5705,1982],{"class":522},[100,5707,526],{"class":835},[100,5709,1961],{"class":482},[100,5711,549],{"class":106},[100,5713,324],{"class":106},[100,5715,5717,5720,5722],{"class":102,"line":5716},158,[100,5718,5719],{"class":608},"              style",[100,5721,334],{"class":106},[100,5723,324],{"class":106},[100,5725,5727,5730,5732,5734,5736,5738],{"class":102,"line":5726},159,[100,5728,5729],{"class":608},"                color",[100,5731,334],{"class":106},[100,5733,489],{"class":157},[100,5735,2011],{"class":161},[100,5737,158],{"class":157},[100,5739,725],{"class":106},[100,5741,5743,5746,5748,5750],{"class":102,"line":5742},160,[100,5744,5745],{"class":608},"                weight",[100,5747,334],{"class":106},[100,5749,2025],{"class":337},[100,5751,725],{"class":106},[100,5753,5755,5758,5760,5762,5764,5766],{"class":102,"line":5754},161,[100,5756,5757],{"class":608},"                fillColor",[100,5759,334],{"class":106},[100,5761,489],{"class":157},[100,5763,2011],{"class":161},[100,5765,158],{"class":157},[100,5767,725],{"class":106},[100,5769,5771,5774,5776],{"class":102,"line":5770},162,[100,5772,5773],{"class":608},"                fillOpacity",[100,5775,334],{"class":106},[100,5777,2052],{"class":337},[100,5779,5781],{"class":102,"line":5780},163,[100,5782,5783],{"class":106},"              }\n",[100,5785,5787,5790,5792,5794,5796,5798,5800,5802],{"class":102,"line":5786},164,[100,5788,5789],{"class":106},"            }",[100,5791,535],{"class":835},[100,5793,519],{"class":106},[100,5795,633],{"class":522},[100,5797,526],{"class":835},[100,5799,369],{"class":482},[100,5801,535],{"class":835},[100,5803,341],{"class":106},[100,5805,5807],{"class":102,"line":5806},165,[100,5808,503],{"emptyLinePlaceholder":502},[100,5810,5812,5815,5817,5819,5821,5823,5825,5827,5829,5831,5833,5835,5837,5839,5842,5844,5847,5849,5851,5853],{"class":102,"line":5811},166,[100,5813,5814],{"class":482},"            map",[100,5816,519],{"class":106},[100,5818,2097],{"class":522},[100,5820,526],{"class":835},[100,5822,1706],{"class":482},[100,5824,519],{"class":106},[100,5826,2110],{"class":522},[100,5828,928],{"class":835},[100,5830,549],{"class":106},[100,5832,878],{"class":106},[100,5834,2119],{"class":608},[100,5836,334],{"class":106},[100,5838,1113],{"class":835},[100,5840,5841],{"class":337},"60",[100,5843,549],{"class":106},[100,5845,5846],{"class":337}," 60",[100,5848,559],{"class":835},[100,5850,893],{"class":106},[100,5852,535],{"class":835},[100,5854,341],{"class":106},[100,5856,5858,5861,5864,5867,5869,5871,5873],{"class":102,"line":5857},167,[100,5859,5860],{"class":106},"          }",[100,5862,5863],{"class":828}," else",[100,5865,5866],{"class":828}," if",[100,5868,942],{"class":835},[100,5870,1079],{"class":482},[100,5872,535],{"class":835},[100,5874,324],{"class":106},[100,5876,5878,5880,5882,5884,5886,5888,5890,5892,5894,5896,5898,5900,5902],{"class":102,"line":5877},168,[100,5879,5488],{"class":478},[100,5881,1113],{"class":106},[100,5883,1116],{"class":482},[100,5885,549],{"class":106},[100,5887,1121],{"class":482},[100,5889,559],{"class":106},[100,5891,486],{"class":106},[100,5893,1033],{"class":482},[100,5895,519],{"class":106},[100,5897,1132],{"class":482},[100,5899,519],{"class":106},[100,5901,1137],{"class":482},[100,5903,341],{"class":106},[100,5905,5907,5909,5911,5913,5915,5917,5919,5921,5923,5925,5927,5929],{"class":102,"line":5906},169,[100,5908,5814],{"class":482},[100,5910,519],{"class":106},[100,5912,540],{"class":522},[100,5914,543],{"class":835},[100,5916,1186],{"class":482},[100,5918,549],{"class":106},[100,5920,1191],{"class":482},[100,5922,559],{"class":835},[100,5924,549],{"class":106},[100,5926,1340],{"class":337},[100,5928,535],{"class":835},[100,5930,341],{"class":106},[100,5932,5934],{"class":102,"line":5933},170,[100,5935,5197],{"class":106},[100,5937,5939,5942,5945,5947,5950,5952],{"class":102,"line":5938},171,[100,5940,5941],{"class":106},"        }",[100,5943,5944],{"class":828}," catch",[100,5946,942],{"class":835},[100,5948,5949],{"class":482},"err",[100,5951,535],{"class":835},[100,5953,324],{"class":106},[100,5955,5957,5960,5962,5964,5966,5968,5971,5973,5975,5978,5980],{"class":102,"line":5956},172,[100,5958,5959],{"class":482},"          console",[100,5961,519],{"class":106},[100,5963,987],{"class":522},[100,5965,526],{"class":835},[100,5967,158],{"class":157},[100,5969,5970],{"class":161},"Search error:",[100,5972,158],{"class":157},[100,5974,549],{"class":106},[100,5976,5977],{"class":482}," err",[100,5979,535],{"class":835},[100,5981,341],{"class":106},[100,5983,5985],{"class":102,"line":5984},173,[100,5986,5987],{"class":106},"        }\n",[100,5989,5991],{"class":102,"line":5990},174,[100,5992,359],{"class":106},[100,5994,5996],{"class":102,"line":5995},175,[100,5997,503],{"emptyLinePlaceholder":502},[100,5999,6001],{"class":102,"line":6000},176,[100,6002,6003],{"class":572},"      \u002F\u002F --- Autocomplete ---\n",[100,6005,6007,6009,6011,6013,6015,6017,6019,6021,6023,6025,6027,6029],{"class":102,"line":6006},177,[100,6008,479],{"class":478},[100,6010,2463],{"class":482},[100,6012,486],{"class":106},[100,6014,2468],{"class":482},[100,6016,519],{"class":106},[100,6018,2473],{"class":522},[100,6020,526],{"class":525},[100,6022,158],{"class":157},[100,6024,2279],{"class":161},[100,6026,158],{"class":157},[100,6028,535],{"class":525},[100,6030,341],{"class":106},[100,6032,6034,6036,6038,6040,6042,6044,6046,6048,6050,6052,6054,6056],{"class":102,"line":6033},178,[100,6035,479],{"class":478},[100,6037,2492],{"class":482},[100,6039,486],{"class":106},[100,6041,2468],{"class":482},[100,6043,519],{"class":106},[100,6045,2473],{"class":522},[100,6047,526],{"class":525},[100,6049,158],{"class":157},[100,6051,2380],{"class":161},[100,6053,158],{"class":157},[100,6055,535],{"class":525},[100,6057,341],{"class":106},[100,6059,6061,6063,6065],{"class":102,"line":6060},179,[100,6062,4958],{"class":478},[100,6064,2524],{"class":482},[100,6066,341],{"class":106},[100,6068,6070],{"class":102,"line":6069},180,[100,6071,503],{"emptyLinePlaceholder":502},[100,6073,6075,6077,6079,6081,6083,6085,6087,6089,6091,6093,6095,6097,6099],{"class":102,"line":6074},181,[100,6076,3345],{"class":482},[100,6078,519],{"class":106},[100,6080,2540],{"class":522},[100,6082,526],{"class":525},[100,6084,158],{"class":157},[100,6086,2547],{"class":161},[100,6088,158],{"class":157},[100,6090,549],{"class":106},[100,6092,942],{"class":106},[100,6094,2556],{"class":810},[100,6096,535],{"class":106},[100,6098,1059],{"class":1058},[100,6100,324],{"class":106},[100,6102,6104,6107,6109,6111,6113],{"class":102,"line":6103},182,[100,6105,6106],{"class":522},"        clearTimeout",[100,6108,526],{"class":835},[100,6110,2572],{"class":482},[100,6112,535],{"class":835},[100,6114,341],{"class":106},[100,6116,6118,6121,6123,6125,6127,6129,6131,6133,6135,6137,6139,6141],{"class":102,"line":6117},183,[100,6119,6120],{"class":478},"        const",[100,6122,1001],{"class":482},[100,6124,486],{"class":106},[100,6126,2587],{"class":482},[100,6128,519],{"class":106},[100,6130,2592],{"class":482},[100,6132,519],{"class":106},[100,6134,2597],{"class":482},[100,6136,519],{"class":106},[100,6138,2602],{"class":522},[100,6140,928],{"class":835},[100,6142,341],{"class":106},[100,6144,6146],{"class":102,"line":6145},184,[100,6147,503],{"emptyLinePlaceholder":502},[100,6149,6151,6153,6155,6157,6159,6161,6163,6165,6167],{"class":102,"line":6150},185,[100,6152,5017],{"class":828},[100,6154,942],{"class":835},[100,6156,811],{"class":482},[100,6158,519],{"class":106},[100,6160,968],{"class":967},[100,6162,2625],{"class":106},[100,6164,2025],{"class":337},[100,6166,535],{"class":835},[100,6168,324],{"class":106},[100,6170,6172,6175,6177,6179,6181,6183,6185,6187,6189,6191],{"class":102,"line":6171},186,[100,6173,6174],{"class":482},"          suggestionsEl",[100,6176,519],{"class":106},[100,6178,312],{"class":482},[100,6180,519],{"class":106},[100,6182,2645],{"class":482},[100,6184,486],{"class":106},[100,6186,489],{"class":157},[100,6188,2652],{"class":161},[100,6190,158],{"class":157},[100,6192,341],{"class":106},[100,6194,6196,6199],{"class":102,"line":6195},187,[100,6197,6198],{"class":828},"          return",[100,6200,341],{"class":106},[100,6202,6204],{"class":102,"line":6203},188,[100,6205,5987],{"class":106},[100,6207,6209],{"class":102,"line":6208},189,[100,6210,503],{"emptyLinePlaceholder":502},[100,6212,6214,6217,6219,6221,6223,6225,6227,6229,6231,6233,6235,6237,6239,6241],{"class":102,"line":6213},190,[100,6215,6216],{"class":482},"        debounceTimer",[100,6218,486],{"class":106},[100,6220,2685],{"class":522},[100,6222,526],{"class":835},[100,6224,928],{"class":106},[100,6226,1059],{"class":1058},[100,6228,2694],{"class":522},[100,6230,526],{"class":835},[100,6232,811],{"class":482},[100,6234,535],{"class":835},[100,6236,549],{"class":106},[100,6238,2705],{"class":337},[100,6240,535],{"class":835},[100,6242,341],{"class":106},[100,6244,6246,6248,6250],{"class":102,"line":6245},191,[100,6247,626],{"class":106},[100,6249,535],{"class":525},[100,6251,341],{"class":106},[100,6253,6255],{"class":102,"line":6254},192,[100,6256,503],{"emptyLinePlaceholder":502},[100,6258,6260,6262,6264,6266,6268,6270,6272,6274,6276,6278,6280,6282,6284],{"class":102,"line":6259},193,[100,6261,3345],{"class":482},[100,6263,519],{"class":106},[100,6265,2540],{"class":522},[100,6267,526],{"class":525},[100,6269,158],{"class":157},[100,6271,2736],{"class":161},[100,6273,158],{"class":157},[100,6275,549],{"class":106},[100,6277,942],{"class":106},[100,6279,2556],{"class":810},[100,6281,535],{"class":106},[100,6283,1059],{"class":1058},[100,6285,324],{"class":106},[100,6287,6289,6291,6293,6295,6297,6299,6301,6303,6305,6307,6309],{"class":102,"line":6288},194,[100,6290,5017],{"class":828},[100,6292,942],{"class":835},[100,6294,2556],{"class":482},[100,6296,519],{"class":106},[100,6298,2763],{"class":482},[100,6300,971],{"class":552},[100,6302,489],{"class":157},[100,6304,2770],{"class":161},[100,6306,158],{"class":157},[100,6308,535],{"class":835},[100,6310,324],{"class":106},[100,6312,6314,6316,6318,6320,6322,6324,6326,6328,6330,6332],{"class":102,"line":6313},195,[100,6315,6174],{"class":482},[100,6317,519],{"class":106},[100,6319,312],{"class":482},[100,6321,519],{"class":106},[100,6323,2645],{"class":482},[100,6325,486],{"class":106},[100,6327,489],{"class":157},[100,6329,2652],{"class":161},[100,6331,158],{"class":157},[100,6333,341],{"class":106},[100,6335,6337,6340,6342,6344,6346,6348,6350,6352,6354],{"class":102,"line":6336},196,[100,6338,6339],{"class":522},"          searchLocation",[100,6341,526],{"class":835},[100,6343,2535],{"class":482},[100,6345,519],{"class":106},[100,6347,2597],{"class":482},[100,6349,519],{"class":106},[100,6351,2602],{"class":522},[100,6353,2818],{"class":835},[100,6355,341],{"class":106},[100,6357,6359],{"class":102,"line":6358},197,[100,6360,5987],{"class":106},[100,6362,6364,6366,6368],{"class":102,"line":6363},198,[100,6365,626],{"class":106},[100,6367,535],{"class":525},[100,6369,341],{"class":106},[100,6371,6373],{"class":102,"line":6372},199,[100,6374,503],{"emptyLinePlaceholder":502},[100,6376,6378,6380,6382,6384,6386,6388,6390],{"class":102,"line":6377},200,[100,6379,4999],{"class":478},[100,6381,802],{"class":478},[100,6383,2694],{"class":522},[100,6385,526],{"class":106},[100,6387,811],{"class":810},[100,6389,535],{"class":106},[100,6391,324],{"class":106},[100,6393,6395,6397],{"class":102,"line":6394},201,[100,6396,5040],{"class":828},[100,6398,324],{"class":106},[100,6400,6402,6404,6406,6408,6410,6412],{"class":102,"line":6401},202,[100,6403,5048],{"class":478},[100,6405,823],{"class":482},[100,6407,486],{"class":106},[100,6409,829],{"class":828},[100,6411,832],{"class":522},[100,6413,836],{"class":835},[100,6415,6417,6419,6421,6423,6425,6428,6430,6432,6434,6436,6438,6440,6442,6444],{"class":102,"line":6416},203,[100,6418,5064],{"class":157},[100,6420,848],{"class":847},[100,6422,5069],{"class":856},[100,6424,744],{"class":847},[100,6426,6427],{"class":161},"\u002Fautocomplete\u002Flegal-location?location=",[100,6429,848],{"class":847},[100,6431,851],{"class":522},[100,6433,526],{"class":525},[100,6435,811],{"class":856},[100,6437,535],{"class":525},[100,6439,744],{"class":847},[100,6441,2900],{"class":161},[100,6443,863],{"class":157},[100,6445,725],{"class":106},[100,6447,6449,6451,6453,6455,6457,6459,6461,6463,6465,6467,6469],{"class":102,"line":6448},204,[100,6450,5096],{"class":106},[100,6452,873],{"class":608},[100,6454,334],{"class":106},[100,6456,878],{"class":106},[100,6458,489],{"class":157},[100,6460,884],{"class":883},[100,6462,158],{"class":157},[100,6464,334],{"class":106},[100,6466,483],{"class":482},[100,6468,893],{"class":106},[100,6470,896],{"class":106},[100,6472,6474,6476],{"class":102,"line":6473},205,[100,6475,5122],{"class":835},[100,6477,341],{"class":106},[100,6479,6481],{"class":102,"line":6480},206,[100,6482,503],{"emptyLinePlaceholder":502},[100,6484,6486,6488,6490,6492,6494,6496,6498,6500,6502],{"class":102,"line":6485},207,[100,6487,5048],{"class":478},[100,6489,914],{"class":482},[100,6491,486],{"class":106},[100,6493,829],{"class":828},[100,6495,823],{"class":482},[100,6497,519],{"class":106},[100,6499,925],{"class":522},[100,6501,928],{"class":835},[100,6503,341],{"class":106},[100,6505,6507,6509,6511,6513,6515,6517],{"class":102,"line":6506},208,[100,6508,6174],{"class":482},[100,6510,519],{"class":106},[100,6512,2968],{"class":482},[100,6514,486],{"class":106},[100,6516,2973],{"class":157},[100,6518,341],{"class":106},[100,6520,6522],{"class":102,"line":6521},209,[100,6523,503],{"emptyLinePlaceholder":502},[100,6525,6527,6529,6531,6533,6535,6537,6539,6541,6543,6545,6547,6549,6551,6553,6555,6557],{"class":102,"line":6526},210,[100,6528,5135],{"class":828},[100,6530,942],{"class":835},[100,6532,945],{"class":552},[100,6534,948],{"class":482},[100,6536,519],{"class":106},[100,6538,953],{"class":482},[100,6540,956],{"class":552},[100,6542,914],{"class":482},[100,6544,519],{"class":106},[100,6546,953],{"class":482},[100,6548,519],{"class":106},[100,6550,968],{"class":967},[100,6552,971],{"class":552},[100,6554,338],{"class":337},[100,6556,535],{"class":835},[100,6558,324],{"class":106},[100,6560,6562,6565,6567,6569,6571,6573,6575,6577,6579,6581],{"class":102,"line":6561},211,[100,6563,6564],{"class":482},"            suggestionsEl",[100,6566,519],{"class":106},[100,6568,312],{"class":482},[100,6570,519],{"class":106},[100,6572,2645],{"class":482},[100,6574,486],{"class":106},[100,6576,489],{"class":157},[100,6578,2652],{"class":161},[100,6580,158],{"class":157},[100,6582,341],{"class":106},[100,6584,6586,6588],{"class":102,"line":6585},212,[100,6587,5189],{"class":828},[100,6589,341],{"class":106},[100,6591,6593],{"class":102,"line":6592},213,[100,6594,5197],{"class":106},[100,6596,6598],{"class":102,"line":6597},214,[100,6599,503],{"emptyLinePlaceholder":502},[100,6601,6603,6606,6608,6610,6612,6614,6616,6618,6620,6622,6624],{"class":102,"line":6602},215,[100,6604,6605],{"class":482},"          data",[100,6607,519],{"class":106},[100,6609,953],{"class":482},[100,6611,519],{"class":106},[100,6613,3063],{"class":522},[100,6615,526],{"class":835},[100,6617,526],{"class":106},[100,6619,3070],{"class":810},[100,6621,535],{"class":106},[100,6623,1059],{"class":1058},[100,6625,324],{"class":106},[100,6627,6629,6631,6633,6635,6637,6639,6641,6643,6645,6647,6649,6651],{"class":102,"line":6628},216,[100,6630,5488],{"class":478},[100,6632,3083],{"class":482},[100,6634,486],{"class":106},[100,6636,2468],{"class":482},[100,6638,519],{"class":106},[100,6640,3092],{"class":522},[100,6642,526],{"class":835},[100,6644,158],{"class":157},[100,6646,34],{"class":161},[100,6648,158],{"class":157},[100,6650,535],{"class":835},[100,6652,341],{"class":106},[100,6654,6656,6659,6661,6663,6665,6667,6669,6671,6673,6675,6677,6679,6681,6683,6685,6687,6689,6691,6693,6695,6697,6699,6701],{"class":102,"line":6655},217,[100,6657,6658],{"class":482},"            li",[100,6660,519],{"class":106},[100,6662,3114],{"class":482},[100,6664,486],{"class":106},[100,6666,1256],{"class":157},[100,6668,848],{"class":847},[100,6670,3070],{"class":856},[100,6672,519],{"class":106},[100,6674,1067],{"class":856},[100,6676,519],{"class":106},[100,6678,1243],{"class":856},[100,6680,744],{"class":847},[100,6682,942],{"class":161},[100,6684,848],{"class":847},[100,6686,3070],{"class":856},[100,6688,519],{"class":106},[100,6690,1067],{"class":856},[100,6692,519],{"class":106},[100,6694,3147],{"class":856},[100,6696,744],{"class":847},[100,6698,535],{"class":161},[100,6700,863],{"class":157},[100,6702,341],{"class":106},[100,6704,6706],{"class":102,"line":6705},218,[100,6707,503],{"emptyLinePlaceholder":502},[100,6709,6711,6713,6715,6717,6719,6721,6723,6725,6727,6729,6731],{"class":102,"line":6710},219,[100,6712,6658],{"class":482},[100,6714,519],{"class":106},[100,6716,2540],{"class":522},[100,6718,526],{"class":835},[100,6720,158],{"class":157},[100,6722,3329],{"class":161},[100,6724,158],{"class":157},[100,6726,549],{"class":106},[100,6728,3230],{"class":106},[100,6730,1059],{"class":1058},[100,6732,324],{"class":106},[100,6734,6736,6739,6741,6743,6745,6747,6749,6751,6753,6755],{"class":102,"line":6735},220,[100,6737,6738],{"class":482},"              searchInput",[100,6740,519],{"class":106},[100,6742,2597],{"class":482},[100,6744,486],{"class":106},[100,6746,3354],{"class":482},[100,6748,519],{"class":106},[100,6750,1067],{"class":482},[100,6752,519],{"class":106},[100,6754,1243],{"class":482},[100,6756,341],{"class":106},[100,6758,6760,6763,6765,6767,6769,6771,6773,6775,6777,6779],{"class":102,"line":6759},221,[100,6761,6762],{"class":482},"              suggestionsEl",[100,6764,519],{"class":106},[100,6766,312],{"class":482},[100,6768,519],{"class":106},[100,6770,2645],{"class":482},[100,6772,486],{"class":106},[100,6774,489],{"class":157},[100,6776,2652],{"class":161},[100,6778,158],{"class":157},[100,6780,341],{"class":106},[100,6782,6784,6787,6789,6791,6793,6795,6797,6799,6801],{"class":102,"line":6783},222,[100,6785,6786],{"class":522},"              searchLocation",[100,6788,526],{"class":835},[100,6790,3070],{"class":482},[100,6792,519],{"class":106},[100,6794,1067],{"class":482},[100,6796,519],{"class":106},[100,6798,1243],{"class":482},[100,6800,535],{"class":835},[100,6802,341],{"class":106},[100,6804,6806,6808,6810],{"class":102,"line":6805},223,[100,6807,5789],{"class":106},[100,6809,535],{"class":835},[100,6811,341],{"class":106},[100,6813,6815],{"class":102,"line":6814},224,[100,6816,503],{"emptyLinePlaceholder":502},[100,6818,6820,6822,6824,6826,6828,6830,6832],{"class":102,"line":6819},225,[100,6821,6564],{"class":482},[100,6823,519],{"class":106},[100,6825,3434],{"class":522},[100,6827,526],{"class":835},[100,6829,34],{"class":482},[100,6831,535],{"class":835},[100,6833,341],{"class":106},[100,6835,6837,6839,6841],{"class":102,"line":6836},226,[100,6838,5860],{"class":106},[100,6840,535],{"class":835},[100,6842,341],{"class":106},[100,6844,6846],{"class":102,"line":6845},227,[100,6847,503],{"emptyLinePlaceholder":502},[100,6849,6851,6853,6855,6857,6859,6861,6863,6865,6867,6869],{"class":102,"line":6850},228,[100,6852,6174],{"class":482},[100,6854,519],{"class":106},[100,6856,312],{"class":482},[100,6858,519],{"class":106},[100,6860,2645],{"class":482},[100,6862,486],{"class":106},[100,6864,489],{"class":157},[100,6866,3477],{"class":161},[100,6868,158],{"class":157},[100,6870,341],{"class":106},[100,6872,6874,6876,6878,6880,6882,6884],{"class":102,"line":6873},229,[100,6875,5941],{"class":106},[100,6877,5944],{"class":828},[100,6879,942],{"class":835},[100,6881,5949],{"class":482},[100,6883,535],{"class":835},[100,6885,324],{"class":106},[100,6887,6889,6891,6893,6895,6897,6899,6901,6903,6905,6907],{"class":102,"line":6888},230,[100,6890,6174],{"class":482},[100,6892,519],{"class":106},[100,6894,312],{"class":482},[100,6896,519],{"class":106},[100,6898,2645],{"class":482},[100,6900,486],{"class":106},[100,6902,489],{"class":157},[100,6904,2652],{"class":161},[100,6906,158],{"class":157},[100,6908,341],{"class":106},[100,6910,6912],{"class":102,"line":6911},231,[100,6913,5987],{"class":106},[100,6915,6917],{"class":102,"line":6916},232,[100,6918,359],{"class":106},[100,6920,6922],{"class":102,"line":6921},233,[100,6923,503],{"emptyLinePlaceholder":502},[100,6925,6927,6930,6932,6934,6936,6938,6940,6942,6944,6946,6948,6950,6952],{"class":102,"line":6926},234,[100,6928,6929],{"class":482},"      document",[100,6931,519],{"class":106},[100,6933,2540],{"class":522},[100,6935,526],{"class":525},[100,6937,158],{"class":157},[100,6939,3329],{"class":161},[100,6941,158],{"class":157},[100,6943,549],{"class":106},[100,6945,942],{"class":106},[100,6947,2556],{"class":810},[100,6949,535],{"class":106},[100,6951,1059],{"class":1058},[100,6953,324],{"class":106},[100,6955,6957,6959,6961,6963,6965,6967,6969,6971,6973,6975,6977,6979,6981,6983,6985,6987,6989,6991,6993],{"class":102,"line":6956},235,[100,6958,5017],{"class":828},[100,6960,942],{"class":835},[100,6962,945],{"class":552},[100,6964,3503],{"class":482},[100,6966,519],{"class":106},[100,6968,2473],{"class":522},[100,6970,526],{"class":835},[100,6972,158],{"class":157},[100,6974,2211],{"class":161},[100,6976,158],{"class":157},[100,6978,535],{"class":835},[100,6980,519],{"class":106},[100,6982,3557],{"class":522},[100,6984,526],{"class":835},[100,6986,2556],{"class":482},[100,6988,519],{"class":106},[100,6990,2592],{"class":482},[100,6992,3257],{"class":835},[100,6994,324],{"class":106},[100,6996,6998,7000,7002,7004,7006,7008,7010,7012,7014,7016],{"class":102,"line":6997},236,[100,6999,6174],{"class":482},[100,7001,519],{"class":106},[100,7003,312],{"class":482},[100,7005,519],{"class":106},[100,7007,2645],{"class":482},[100,7009,486],{"class":106},[100,7011,489],{"class":157},[100,7013,2652],{"class":161},[100,7015,158],{"class":157},[100,7017,341],{"class":106},[100,7019,7021],{"class":102,"line":7020},237,[100,7022,5987],{"class":106},[100,7024,7026,7028,7030],{"class":102,"line":7025},238,[100,7027,626],{"class":106},[100,7029,535],{"class":525},[100,7031,341],{"class":106},[100,7033,7035,7037,7039],{"class":102,"line":7034},239,[100,7036,414],{"class":106},[100,7038,285],{"class":110},[100,7040,118],{"class":106},[100,7042,7044,7046,7048],{"class":102,"line":7043},240,[100,7045,424],{"class":106},[100,7047,436],{"class":110},[100,7049,118],{"class":106},[100,7051,7053,7055,7057],{"class":102,"line":7052},241,[100,7054,185],{"class":106},[100,7056,95],{"class":110},[100,7058,118],{"class":106},[10,7060,7061,7062,7064,7065,7067,7068,7071],{},"Save the file, replace ",[86,7063,492],{},", and open it in a browser. Type a legal land description like ",[86,7066,1370],{}," or ",[86,7069,7070],{},"14-27-048-05W5"," into the search box. Autocomplete suggestions appear as you type, and selecting one places a marker and draws the parcel boundary on the map.",[23,7073,7075],{"id":7074},"next-steps","Next steps",[31,7077,7078,7089,7096],{},[34,7079,7080,7081,7084,7085,7088],{},"Use the ",[17,7082,7083],{"href":19},"Batch API"," to plot multiple parcels at once - collect the centroid coordinates and call ",[86,7086,7087],{},"L.marker()"," in a loop",[34,7090,7091,7092,7095],{},"Add click handlers on the polygon layer using ",[86,7093,7094],{},"layer.on('click', ...)"," to show parcel details on demand",[34,7097,7098,7099,7101],{},"Switch to the ",[17,7100,3644],{"href":3643}," if you need full survey grid overlays (DLS townships, sections, LSDs) - Mapbox has native vector tile support and no extra plugins required",[23,7103,7105],{"id":7104},"related-guides","Related guides",[31,7107,7108,7113,7119,7126],{},[34,7109,7110,7112],{},[17,7111,784],{"href":19}," - API endpoints, authentication, and rate limits",[34,7114,7115,7118],{},[17,7116,7117],{"href":3643},"Mapbox GL JS Integration"," - Vector tile support with native MVT rendering",[34,7120,7121,7125],{},[17,7122,7124],{"href":7123},"\u002Fguides\u002Fautocomplete-api-guide","Autocomplete API Guide"," - Autocomplete endpoint details and response schema",[34,7127,7128,7132],{},[17,7129,7131],{"href":7130},"\u002Fabout","What is a Legal Land Description?"," - DLS and NTS survey systems explained",[312,7134,7135],{},"html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sJFLg, html code.shiki .sJFLg{--shiki-light:#E53935;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .s5q8q, html code.shiki .s5q8q{--shiki-light:#9C3EDA;--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 .sftqT, html code.shiki .sftqT{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .skzw8, html code.shiki .skzw8{--shiki-light:#E2931D;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .s5HLA, html code.shiki .s5HLA{--shiki-light:#8796B0;--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 pre.shiki code .sAntY, html code.shiki .sAntY{--shiki-light:#F76D47;--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .sQBxk, html code.shiki .sQBxk{--shiki-light:#F76D47;--shiki-default:#AB5959;--shiki-dark:#CB7676}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 .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 .suXOh, html code.shiki .suXOh{--shiki-light:#E53935;--shiki-default:#998418;--shiki-dark:#B8A965}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 .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 .sLdnO, html code.shiki .sLdnO{--shiki-light:#E53935;--shiki-default:#999999;--shiki-dark:#666666}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 .sQtxO, html code.shiki .sQtxO{--shiki-light:#E53935;--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .s131V, html code.shiki .s131V{--shiki-light:#90A4AE;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .sIOqK, html code.shiki .sIOqK{--shiki-light:#9C3EDA;--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 .sJdAF, html code.shiki .sJdAF{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#B8A965}",{"title":96,"searchDepth":121,"depth":121,"links":7137},[7138,7139,7140,7141,7145,7146,7151,7152,7153,7154],{"id":25,"depth":121,"text":26},{"id":51,"depth":121,"text":52},{"id":80,"depth":121,"text":81},{"id":761,"depth":121,"text":762,"children":7142},[7143,7144],{"id":769,"depth":131,"text":770},{"id":788,"depth":131,"text":789},{"id":1390,"depth":121,"text":1391},{"id":2164,"depth":121,"text":2165,"children":7147},[7148,7149,7150],{"id":2171,"depth":131,"text":2172},{"id":95,"depth":131,"text":2181},{"id":679,"depth":131,"text":2450},{"id":3612,"depth":121,"text":3613},{"id":3648,"depth":121,"text":3649},{"id":7074,"depth":121,"text":7075},{"id":7104,"depth":121,"text":7105},"api","Add legal land description search, boundary polygons, and location markers to your Leaflet map using the Township Canada API. Lightweight and open-source.",false,"md","i-lucide-map",{},"\u002Fguides\u002Fleaflet-integration",{"title":5,"description":7156},"guides\u002Fleaflet-integration","bsBi2i8ioeQN00_SnUlQhJEzv_yci5gI52pCb_W9S28",[7166,7652,8534],{"id":7167,"title":7168,"body":7169,"category":7155,"description":7646,"draft":7157,"extension":7158,"icon":7647,"meta":7648,"navigation":502,"order":103,"path":19,"seo":7649,"stem":7650,"__hash__":7651},"guides\u002Fguides\u002Fapi-integration.md","Legal Land Description API Integration Guide",{"type":7,"value":7170,"toc":7611},[7171,7174,7181,7185,7213,7220,7224,7227,7231,7234,7240,7244,7247,7252,7256,7259,7264,7268,7271,7276,7280,7283,7288,7356,7362,7412,7415,7419,7423,7426,7430,7433,7437,7440,7444,7447,7451,7454,7458,7499,7503,7509,7529,7533,7536,7540,7543,7547,7550,7554,7557,7561,7570,7572,7603],[10,7172,7173],{},"Integrate Township Canada's legal land description services directly into your applications and workflows. Our REST APIs enable LLD-to-coordinate conversion, autocomplete search, batch processing, and interactive grid maps-all with simple JSON responses.",[10,7175,7176],{},[7177,7178],"img",{"alt":7179,"src":7180},"Developer Portal","\u002Fimages\u002Fguides\u002Fapi-portal.webp",[23,7182,7184],{"id":7183},"quick-start","Quick start",[7186,7187,7188,7192,7199,7203,7206,7210],"steps",{},[767,7189,7191],{"id":7190},"get-an-api-key","Get an API key",[10,7193,7194,7195,7198],{},"Log into your Township Canada account and go to ",[59,7196,7197],{},"API"," in the main navigation. Subscribe to an API endpoint and create your first API key.",[767,7200,7202],{"id":7201},"make-your-first-request","Make your first request",[10,7204,7205],{},"Add your API key to the request header and make a test request.",[767,7207,7209],{"id":7208},"parse-the-response","Parse the response",[10,7211,7212],{},"All APIs return JSON with coordinates, legal descriptions, and metadata.",[10,7214,7215,7216,519],{},"For full documentation and code examples, visit the ",[17,7217,7219],{"href":7218},"\u002Fapi","API documentation",[23,7221,7223],{"id":7222},"api-endpoints","API endpoints",[10,7225,7226],{},"Township Canada offers four distinct API endpoints:",[767,7228,7230],{"id":7229},"search-api-20month","Search API ($20\u002Fmonth)",[10,7232,7233],{},"Convert legal land descriptions to geographic coordinates and vice versa. Supports DLS, NTS, Geographic Townships, and FPS formats.",[10,7235,7236,7239],{},[59,7237,7238],{},"Use cases",": Property lookup, coordinate conversion, reverse geocoding",[767,7241,7243],{"id":7242},"autocomplete-api-20month","Autocomplete API ($20\u002Fmonth)",[10,7245,7246],{},"Search legal land descriptions with partial text. Returns up to 10 matching results with coordinates-ideal for search boxes and type-ahead interfaces.",[10,7248,7249,7251],{},[59,7250,7238],{},": Search boxes, type-ahead, field validation",[767,7253,7255],{"id":7254},"batch-api-40month","Batch API ($40\u002Fmonth)",[10,7257,7258],{},"Process up to 100 records per request. Convert lists of legal land descriptions to coordinates or coordinates to legal land descriptions.",[10,7260,7261,7263],{},[59,7262,7238],{},": Bulk data processing, migration, spatial analysis",[767,7265,7267],{"id":7266},"maps-api-20month","Maps API ($20\u002Fmonth)",[10,7269,7270],{},"Display legal survey grids on maps in your web or mobile applications. Vector tiles format compatible with Mapbox GL, Leaflet, and other mapping libraries.",[10,7272,7273,7275],{},[59,7274,7238],{},": Custom mapping applications, data visualization",[23,7277,7279],{"id":7278},"api-pricing-tiers","API pricing tiers",[10,7281,7282],{},"Each API offers three pricing tiers:",[10,7284,7285],{},[59,7286,7287],{},"Search, Autocomplete & Batch APIs",[7289,7290,7291,7310],"table",{},[7292,7293,7294],"thead",{},[7295,7296,7297,7301,7304,7307],"tr",{},[7298,7299,7300],"th",{},"Tier",[7298,7302,7303],{},"Monthly Requests",[7298,7305,7306],{},"Rate Limit",[7298,7308,7309],{},"Price",[7311,7312,7313,7328,7342],"tbody",{},[7295,7314,7315,7319,7322,7325],{},[7316,7317,7318],"td",{},"Build",[7316,7320,7321],{},"1,000",[7316,7323,7324],{},"1\u002Fsec",[7316,7326,7327],{},"$20-40\u002Fmo",[7295,7329,7330,7333,7336,7339],{},[7316,7331,7332],{},"Scale",[7316,7334,7335],{},"10,000",[7316,7337,7338],{},"5\u002Fsec",[7316,7340,7341],{},"$100-200\u002Fmo",[7295,7343,7344,7347,7350,7353],{},[7316,7345,7346],{},"Enterprise",[7316,7348,7349],{},"100,000",[7316,7351,7352],{},"25\u002Fsec",[7316,7354,7355],{},"$500-1,000\u002Fmo",[10,7357,7358,7361],{},[59,7359,7360],{},"Maps API"," (higher request quotas for tile rendering)",[7289,7363,7364,7376],{},[7292,7365,7366],{},[7295,7367,7368,7370,7372,7374],{},[7298,7369,7300],{},[7298,7371,7303],{},[7298,7373,7306],{},[7298,7375,7309],{},[7311,7377,7378,7389,7400],{},[7295,7379,7380,7382,7384,7386],{},[7316,7381,7318],{},[7316,7383,7335],{},[7316,7385,7324],{},[7316,7387,7388],{},"$20\u002Fmo",[7295,7390,7391,7393,7395,7397],{},[7316,7392,7332],{},[7316,7394,7349],{},[7316,7396,7338],{},[7316,7398,7399],{},"$100\u002Fmo",[7295,7401,7402,7404,7407,7409],{},[7316,7403,7346],{},[7316,7405,7406],{},"1,000,000",[7316,7408,7352],{},[7316,7410,7411],{},"$500\u002Fmo",[10,7413,7414],{},"Annual billing saves two months compared to monthly billing.",[23,7416,7418],{"id":7417},"common-integration-patterns","Common integration patterns",[767,7420,7422],{"id":7421},"real-estate-applications","Real Estate Applications",[10,7424,7425],{},"Add legal land description lookup to property search interfaces. Use the Autocomplete API for type-ahead search and the Search API for coordinate conversion.",[767,7427,7429],{"id":7428},"oil-gas-software","Oil & Gas Software",[10,7431,7432],{},"Integrate batch conversion for well location management. Use the Maps API to display DLS\u002FNTS grids in custom mapping applications.",[767,7434,7436],{"id":7435},"mobile-field-apps","Mobile Field Apps",[10,7438,7439],{},"Add LLD search and coordinate conversion for field workers. The APIs work with any mobile development framework (React Native, Flutter, native iOS\u002FAndroid).",[767,7441,7443],{"id":7442},"gis-platforms","GIS Platforms",[10,7445,7446],{},"Enhance ArcGIS, QGIS, or custom GIS tools with legal land description support. Batch API enables bulk coordinate conversion for spatial analysis.",[767,7448,7450],{"id":7449},"agriculture-technology","Agriculture Technology",[10,7452,7453],{},"Add quarter section and LSD lookup to farm management software. Combine with soil and boundary data for precision agriculture applications.",[23,7455,7457],{"id":7456},"getting-an-api-key","Getting an API key",[7186,7459,7460,7464,7470,7474,7477,7481,7488,7492],{},[767,7461,7463],{"id":7462},"open-the-developer-portal","Open the Developer Portal",[10,7465,7466,7467,7469],{},"Go to ",[59,7468,7197],{}," in the main navigation to access the Developer Portal.",[767,7471,7473],{"id":7472},"subscribe-to-an-api","Subscribe to an API",[10,7475,7476],{},"Click on the API you want to use (Search, Autocomplete, Batch, or Maps). Select a tier and complete payment.",[767,7478,7480],{"id":7479},"create-an-api-key","Create an API key",[10,7482,7483,7484,7487],{},"Click ",[59,7485,7486],{},"+ Add Key"," and give your key a descriptive name. Copy the key immediately-it won't be shown again.",[767,7489,7491],{"id":7490},"use-your-key","Use your key",[10,7493,7494,7495,7498],{},"Include the API key in the ",[86,7496,7497],{},"x-api-key"," header for all requests.",[23,7500,7502],{"id":7501},"managing-api-subscriptions","Managing API subscriptions",[10,7504,7505,7506,7508],{},"Manage your API subscriptions from the ",[59,7507,7197],{}," page in the main navigation. The Developer Portal provides:",[31,7510,7511,7517,7523],{},[34,7512,7513,7516],{},[59,7514,7515],{},"Overview",": View all your API keys and subscriptions",[34,7518,7519,7522],{},[59,7520,7521],{},"Logs",": Monitor API requests with timestamps and response codes",[34,7524,7525,7528],{},[59,7526,7527],{},"Alerts",": Configure usage threshold notifications",[767,7530,7532],{"id":7531},"usage-monitoring","Usage monitoring",[10,7534,7535],{},"Track your API usage in real-time from the Overview tab. Usage resets at the start of each billing period.",[767,7537,7539],{"id":7538},"rate-limiting","Rate limiting",[10,7541,7542],{},"Exceeding your rate limit results in HTTP 429 Too Many Requests responses. Implement exponential backoff in your integration to handle rate limits gracefully.",[767,7544,7546],{"id":7545},"quota-management","Quota management",[10,7548,7549],{},"When you reach your monthly quota, requests return HTTP 429 until the next billing cycle. Upgrade your tier for higher quotas or implement caching to reduce request volume.",[23,7551,7553],{"id":7552},"code-examples","Code examples",[10,7555,7556],{},"Access code examples in JavaScript, Python, and cURL from the Developer Portal. Each API endpoint includes ready-to-use code snippets you can copy and customize.",[23,7558,7560],{"id":7559},"checking-system-health","Checking system health",[10,7562,7563,7564,7569],{},"For the current status of Township Canada's APIs, including uptime, response time, and incident history, visit ",[17,7565,7568],{"href":7566,"rel":7567},"https:\u002F\u002Fstatus.townshipcanada.com",[3625],"status.townshipcanada.com",". This site provides real-time updates on API system health.",[23,7571,7105],{"id":7104},[31,7573,7574,7580,7587,7594],{},[34,7575,7576,7579],{},[17,7577,7578],{"href":70},"Account Management"," - Manage billing for API subscriptions",[34,7581,7582,7586],{},[17,7583,7585],{"href":7584},"\u002Fguides\u002Fbatch-conversion","Batch Conversion"," - Web interface for batch processing",[34,7588,7589,7593],{},[17,7590,7592],{"href":7591},"\u002Fguides\u002Fmap","Interactive Maps"," - Map features available through the Maps API",[34,7595,7596,7602],{},[17,7597,7599],{"href":7598},"\u002Fblog\u002Ftownshipcanada-sdk-typescript-npm-package",[86,7600,7601],{},"townshipcanada"," - Official TypeScript SDK for Node.js developers",[10,7604,7605,7606,7610],{},"Need help with your integration? ",[17,7607,7609],{"href":7608},"\u002Fcontact-us","Contact us"," for technical support and custom API solutions.",{"title":96,"searchDepth":121,"depth":121,"links":7612},[7613,7618,7624,7625,7632,7638,7643,7644,7645],{"id":7183,"depth":121,"text":7184,"children":7614},[7615,7616,7617],{"id":7190,"depth":131,"text":7191},{"id":7201,"depth":131,"text":7202},{"id":7208,"depth":131,"text":7209},{"id":7222,"depth":121,"text":7223,"children":7619},[7620,7621,7622,7623],{"id":7229,"depth":131,"text":7230},{"id":7242,"depth":131,"text":7243},{"id":7254,"depth":131,"text":7255},{"id":7266,"depth":131,"text":7267},{"id":7278,"depth":121,"text":7279},{"id":7417,"depth":121,"text":7418,"children":7626},[7627,7628,7629,7630,7631],{"id":7421,"depth":131,"text":7422},{"id":7428,"depth":131,"text":7429},{"id":7435,"depth":131,"text":7436},{"id":7442,"depth":131,"text":7443},{"id":7449,"depth":131,"text":7450},{"id":7456,"depth":121,"text":7457,"children":7633},[7634,7635,7636,7637],{"id":7462,"depth":131,"text":7463},{"id":7472,"depth":131,"text":7473},{"id":7479,"depth":131,"text":7480},{"id":7490,"depth":131,"text":7491},{"id":7501,"depth":121,"text":7502,"children":7639},[7640,7641,7642],{"id":7531,"depth":131,"text":7532},{"id":7538,"depth":131,"text":7539},{"id":7545,"depth":131,"text":7546},{"id":7552,"depth":121,"text":7553},{"id":7559,"depth":121,"text":7560},{"id":7104,"depth":121,"text":7105},"Integrate legal land description APIs into your applications. Convert LLDs to coordinates, add autocomplete search, process batch records, and display DLS\u002FNTS grid maps. REST API with JSON responses.","i-lucide-code",{},{"title":7168,"description":7646},"guides\u002Fapi-integration","0skTidP_JHbRyEgb2lLso64Jt5ActydUoBJbxBER46M",{"id":7653,"title":7654,"body":7655,"category":7155,"description":8527,"draft":7157,"extension":7158,"icon":8528,"meta":8529,"navigation":502,"order":245,"path":8530,"seo":8531,"stem":8532,"__hash__":8533},"guides\u002Fguides\u002Fapi-key-management.md","Managing API Keys for Development, Staging, and Production",{"type":7,"value":7656,"toc":8511},[7657,7660,7663,7667,7673,7696,7699,7705,7709,7712,7718,7721,7785,7788,7792,7795,7799,7806,7823,7826,7944,7947,7985,7989,7994,8006,8012,8175,8179,8188,8214,8221,8240,8244,8247,8273,8276,8280,8283,8287,8290,8314,8317,8412,8415,8419,8422,8425,8428,8432,8435,8450,8456,8462,8468,8474,8476,8508],[10,7658,7659],{},"Most API integrations span multiple environments-local development, a staging server, and production. Using a single API key across all three creates problems: one accidental revocation takes everything down, you can't track which environment is generating traffic, and debugging becomes harder when all requests look identical in the logs.",[10,7661,7662],{},"Township Canada lets you create unlimited API keys on paid plans. The recommended approach is one key per environment, per project.",[23,7664,7666],{"id":7665},"creating-api-keys","Creating API keys",[10,7668,7669,7670,7672],{},"API keys are managed from the ",[17,7671,7179],{"href":65},". To create a new key:",[7674,7675,7676,7681,7685,7688,7693],"ol",{},[34,7677,7466,7678,7680],{},[59,7679,7197],{}," in the main navigation",[34,7682,7483,7683],{},[59,7684,7486],{},[34,7686,7687],{},"Enter a descriptive name (see naming conventions below)",[34,7689,7483,7690],{},[59,7691,7692],{},"Create",[34,7694,7695],{},"Copy the key immediately - it will not be shown again",[10,7697,7698],{},"Each key displays its name, creation date, and last-used timestamp. Keys can be revoked individually without affecting any other key on your account.",[7700,7701,7702],"warning",{},[10,7703,7704],{},"Copy your key before closing the dialog. Township Canada does not store the full key value after creation. If you lose it, revoke the key and create a new one.",[23,7706,7708],{"id":7707},"naming-conventions","Naming conventions",[10,7710,7711],{},"A consistent naming pattern makes it easy to identify keys at a glance, especially once you have several. Use the format:",[91,7713,7716],{"className":7714,"code":7715,"language":776},[774],"{Environment} - {Project} {Version}\n",[86,7717,7715],{"__ignoreMap":96},[10,7719,7720],{},"Examples:",[7289,7722,7723,7733],{},[7292,7724,7725],{},[7295,7726,7727,7730],{},[7298,7728,7729],{},"Key name",[7298,7731,7732],{},"What it's for",[7311,7734,7735,7745,7755,7765,7775],{},[7295,7736,7737,7742],{},[7316,7738,7739],{},[86,7740,7741],{},"Production - Well Mapper v2",[7316,7743,7744],{},"Live production traffic for version 2 of your app",[7295,7746,7747,7752],{},[7316,7748,7749],{},[86,7750,7751],{},"Staging - Well Mapper v2",[7316,7753,7754],{},"Pre-release testing against real data",[7295,7756,7757,7762],{},[7316,7758,7759],{},[86,7760,7761],{},"Dev - Local Testing",[7316,7763,7764],{},"Your local development environment",[7295,7766,7767,7772],{},[7316,7768,7769],{},[86,7770,7771],{},"CI - Well Mapper",[7316,7773,7774],{},"Automated tests in your CI pipeline",[7295,7776,7777,7782],{},[7316,7778,7779],{},[86,7780,7781],{},"Dev - Jane Smith",[7316,7783,7784],{},"A team member's personal development key",[10,7786,7787],{},"Avoid generic names like \"API Key 1\" or \"Test Key\". When you're reviewing keys six months from now, a descriptive name tells you exactly what to keep and what to revoke.",[23,7789,7791],{"id":7790},"environment-variable-setup","Environment variable setup",[10,7793,7794],{},"Never hardcode an API key in your source code. Use environment variables so keys stay out of version control.",[767,7796,7798],{"id":7797},"nodejs","Node.js",[10,7800,7801,7802,7805],{},"Create a ",[86,7803,7804],{},".env"," file in your project root:",[91,7807,7811],{"className":7808,"code":7809,"language":7810,"meta":96,"style":96},"language-bash shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","TOWNSHIP_CANADA_API_KEY=tc_live_your_key_here\n","bash",[86,7812,7813],{"__ignoreMap":96},[100,7814,7815,7818,7820],{"class":102,"line":103},[100,7816,7817],{"class":482},"TOWNSHIP_CANADA_API_KEY",[100,7819,154],{"class":106},[100,7821,7822],{"class":161},"tc_live_your_key_here\n",[10,7824,7825],{},"Load and use it in your application:",[91,7827,7829],{"className":677,"code":7828,"language":679,"meta":96,"style":96},"\u002F\u002F Make sure dotenv is loaded early (e.g., in your entry file)\nrequire(\"dotenv\").config();\n\nconst response = await fetch(\n  \"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=NW-36-42-3-W5\",\n  {\n    headers: {\n      \"X-API-Key\": process.env.TOWNSHIP_CANADA_API_KEY\n    }\n  }\n);\n",[86,7830,7831,7836,7861,7865,7879,7891,7896,7905,7929,7934,7938],{"__ignoreMap":96},[100,7832,7833],{"class":102,"line":103},[100,7834,7835],{"class":572},"\u002F\u002F Make sure dotenv is loaded early (e.g., in your entry file)\n",[100,7837,7838,7841,7843,7845,7848,7850,7852,7854,7857,7859],{"class":102,"line":121},[100,7839,7840],{"class":522},"require",[100,7842,526],{"class":525},[100,7844,158],{"class":157},[100,7846,7847],{"class":161},"dotenv",[100,7849,158],{"class":157},[100,7851,535],{"class":525},[100,7853,519],{"class":106},[100,7855,7856],{"class":522},"config",[100,7858,928],{"class":525},[100,7860,341],{"class":106},[100,7862,7863],{"class":102,"line":131},[100,7864,503],{"emptyLinePlaceholder":502},[100,7866,7867,7869,7871,7873,7875,7877],{"class":102,"line":142},[100,7868,2460],{"class":478},[100,7870,823],{"class":482},[100,7872,486],{"class":106},[100,7874,829],{"class":828},[100,7876,832],{"class":522},[100,7878,836],{"class":525},[100,7880,7881,7884,7887,7889],{"class":102,"line":170},[100,7882,7883],{"class":157},"  \"",[100,7885,7886],{"class":161},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?location=NW-36-42-3-W5",[100,7888,158],{"class":157},[100,7890,725],{"class":106},[100,7892,7893],{"class":102,"line":192},[100,7894,7895],{"class":106},"  {\n",[100,7897,7898,7901,7903],{"class":102,"line":200},[100,7899,7900],{"class":608},"    headers",[100,7902,334],{"class":106},[100,7904,324],{"class":106},[100,7906,7907,7910,7912,7914,7916,7919,7921,7924,7926],{"class":102,"line":216},[100,7908,7909],{"class":157},"      \"",[100,7911,884],{"class":883},[100,7913,158],{"class":157},[100,7915,334],{"class":106},[100,7917,7918],{"class":482}," process",[100,7920,519],{"class":106},[100,7922,7923],{"class":482},"env",[100,7925,519],{"class":106},[100,7927,7928],{"class":482},"TOWNSHIP_CANADA_API_KEY\n",[100,7930,7931],{"class":102,"line":231},[100,7932,7933],{"class":106},"    }\n",[100,7935,7936],{"class":102,"line":237},[100,7937,1017],{"class":106},[100,7939,7940,7942],{"class":102,"line":245},[100,7941,535],{"class":525},[100,7943,341],{"class":106},[10,7945,7946],{},"For the Maps API tiles, pass the key as a query parameter instead:",[91,7948,7950],{"className":677,"code":7949,"language":679,"meta":96,"style":96},"const tileUrl = `https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Ftwp\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=${process.env.TOWNSHIP_CANADA_API_KEY}`;\n",[86,7951,7952],{"__ignoreMap":96},[100,7953,7954,7956,7959,7961,7963,7966,7968,7971,7973,7975,7977,7979,7981,7983],{"class":102,"line":103},[100,7955,2460],{"class":478},[100,7957,7958],{"class":482}," tileUrl",[100,7960,486],{"class":106},[100,7962,1256],{"class":157},[100,7964,7965],{"class":161},"https:\u002F\u002Fmaps.townshipcanada.com\u002Fgrid\u002Fdls\u002Ftwp\u002F{z}\u002F{x}\u002F{y}.mvt?api_key=",[100,7967,848],{"class":847},[100,7969,7970],{"class":856},"process",[100,7972,519],{"class":106},[100,7974,7923],{"class":856},[100,7976,519],{"class":106},[100,7978,7817],{"class":856},[100,7980,744],{"class":847},[100,7982,863],{"class":157},[100,7984,341],{"class":106},[767,7986,7988],{"id":7987},"python","Python",[10,7990,7801,7991,7993],{},[86,7992,7804],{}," file:",[91,7995,7996],{"className":7808,"code":7809,"language":7810,"meta":96,"style":96},[86,7997,7998],{"__ignoreMap":96},[100,7999,8000,8002,8004],{"class":102,"line":103},[100,8001,7817],{"class":482},[100,8003,154],{"class":106},[100,8005,7822],{"class":161},[10,8007,8008,8009,334],{},"Load it using ",[86,8010,8011],{},"python-dotenv",[91,8013,8016],{"className":8014,"code":8015,"language":7987,"meta":96,"style":96},"language-python shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","import os\nfrom dotenv import load_dotenv\nimport requests\n\nload_dotenv()\n\napi_key = os.environ.get('TOWNSHIP_CANADA_API_KEY')\n\nresponse = requests.get(\n    'https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location',\n    headers={'X-API-Key': api_key},\n    params={'location': '10-15-23-4-W4'}\n)\n",[86,8017,8018,8026,8039,8046,8050,8059,8063,8094,8098,8114,8125,8146,8171],{"__ignoreMap":96},[100,8019,8020,8023],{"class":102,"line":103},[100,8021,8022],{"class":828},"import",[100,8024,8025],{"class":181}," os\n",[100,8027,8028,8031,8034,8036],{"class":102,"line":121},[100,8029,8030],{"class":828},"from",[100,8032,8033],{"class":181}," dotenv ",[100,8035,8022],{"class":828},[100,8037,8038],{"class":181}," load_dotenv\n",[100,8040,8041,8043],{"class":102,"line":131},[100,8042,8022],{"class":828},[100,8044,8045],{"class":181}," requests\n",[100,8047,8048],{"class":102,"line":142},[100,8049,503],{"emptyLinePlaceholder":502},[100,8051,8052,8056],{"class":102,"line":170},[100,8053,8055],{"class":8054},"siWMO","load_dotenv",[100,8057,8058],{"class":106},"()\n",[100,8060,8061],{"class":102,"line":192},[100,8062,503],{"emptyLinePlaceholder":502},[100,8064,8065,8068,8070,8073,8075,8079,8081,8084,8086,8088,8090,8092],{"class":102,"line":200},[100,8066,8067],{"class":181},"api_key ",[100,8069,154],{"class":106},[100,8071,8072],{"class":181}," os",[100,8074,519],{"class":106},[100,8076,8078],{"class":8077},"sBPpx","environ",[100,8080,519],{"class":106},[100,8082,8083],{"class":8054},"get",[100,8085,526],{"class":106},[100,8087,722],{"class":157},[100,8089,7817],{"class":161},[100,8091,722],{"class":157},[100,8093,1829],{"class":106},[100,8095,8096],{"class":102,"line":216},[100,8097,503],{"emptyLinePlaceholder":502},[100,8099,8100,8103,8105,8108,8110,8112],{"class":102,"line":231},[100,8101,8102],{"class":181},"response ",[100,8104,154],{"class":106},[100,8106,8107],{"class":181}," requests",[100,8109,519],{"class":106},[100,8111,8083],{"class":8054},[100,8113,836],{"class":106},[100,8115,8116,8118,8121,8123],{"class":102,"line":237},[100,8117,716],{"class":157},[100,8119,8120],{"class":161},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location",[100,8122,722],{"class":157},[100,8124,725],{"class":106},[100,8126,8127,8129,8132,8134,8136,8138,8140,8143],{"class":102,"line":245},[100,8128,7900],{"class":810},[100,8130,8131],{"class":106},"={",[100,8133,722],{"class":157},[100,8135,884],{"class":161},[100,8137,722],{"class":157},[100,8139,334],{"class":106},[100,8141,8142],{"class":8054}," api_key",[100,8144,8145],{"class":106},"},\n",[100,8147,8148,8151,8153,8155,8158,8160,8162,8164,8167,8169],{"class":102,"line":260},[100,8149,8150],{"class":810},"    params",[100,8152,8131],{"class":106},[100,8154,722],{"class":157},[100,8156,8157],{"class":161},"location",[100,8159,722],{"class":157},[100,8161,334],{"class":106},[100,8163,614],{"class":157},[100,8165,8166],{"class":161},"10-15-23-4-W4",[100,8168,722],{"class":157},[100,8170,1349],{"class":106},[100,8172,8173],{"class":102,"line":275},[100,8174,1829],{"class":106},[767,8176,8178],{"id":8177},"keeping-keys-out-of-git","Keeping keys out of git",[10,8180,8181,8182,8184,8185,7993],{},"Add ",[86,8183,7804],{}," to your ",[86,8186,8187],{},".gitignore",[91,8189,8191],{"className":7808,"code":8190,"language":7810,"meta":96,"style":96},"# .gitignore\n.env\n.env.local\n.env.*.local\n",[86,8192,8193,8198,8204,8209],{"__ignoreMap":96},[100,8194,8195],{"class":102,"line":103},[100,8196,8197],{"class":572},"# .gitignore\n",[100,8199,8200],{"class":102,"line":121},[100,8201,8203],{"class":8202},"sYn-s",".env\n",[100,8205,8206],{"class":102,"line":131},[100,8207,8208],{"class":8202},".env.local\n",[100,8210,8211],{"class":102,"line":142},[100,8212,8213],{"class":8202},".env.*.local\n",[10,8215,8216,8217,8220],{},"Commit a ",[86,8218,8219],{},".env.example"," file with placeholder values instead. Other developers on your team know what variables to set without seeing real credentials:",[91,8222,8224],{"className":7808,"code":8223,"language":7810,"meta":96,"style":96},"# .env.example\nTOWNSHIP_CANADA_API_KEY=your_api_key_here\n",[86,8225,8226,8231],{"__ignoreMap":96},[100,8227,8228],{"class":102,"line":103},[100,8229,8230],{"class":572},"# .env.example\n",[100,8232,8233,8235,8237],{"class":102,"line":121},[100,8234,7817],{"class":482},[100,8236,154],{"class":106},[100,8238,8239],{"class":161},"your_api_key_here\n",[23,8241,8243],{"id":8242},"key-rotation-without-downtime","Key rotation without downtime",[10,8245,8246],{},"Rotating a production key requires a brief overlap period where both the old and new key are valid. Follow this sequence:",[7674,8248,8249,8255,8261,8267],{},[34,8250,8251,8254],{},[59,8252,8253],{},"Create the new key"," in the Developer Portal with the same name (add \"v2\" or today's date to distinguish it)",[34,8256,8257,8260],{},[59,8258,8259],{},"Update your deployment"," - set the new key value in your environment variables or secrets manager",[34,8262,8263,8266],{},[59,8264,8265],{},"Deploy and verify"," - confirm requests are succeeding with the new key in your application logs",[34,8268,8269,8272],{},[59,8270,8271],{},"Revoke the old key"," - only after confirming the new key is working",[10,8274,8275],{},"Never revoke the old key before confirming the new one works. A failed deploy with no fallback means downtime.",[23,8277,8279],{"id":8278},"cicd-secrets","CI\u002FCD secrets",[10,8281,8282],{},"Automated pipelines need API keys without human involvement. Store keys in your CI provider's secrets store, not in configuration files.",[767,8284,8286],{"id":8285},"github-actions","GitHub Actions",[10,8288,8289],{},"Add your API key as a repository secret:",[7674,8291,8292,8298,8303,8309],{},[34,8293,7466,8294,8297],{},[59,8295,8296],{},"Settings → Secrets and variables → Actions"," in your GitHub repository",[34,8299,7483,8300],{},[59,8301,8302],{},"New repository secret",[34,8304,8305,8306,8308],{},"Name it ",[86,8307,7817],{}," and paste your CI key value",[34,8310,7483,8311],{},[59,8312,8313],{},"Add secret",[10,8315,8316],{},"Reference it in your workflow file:",[91,8318,8322],{"className":8319,"code":8320,"language":8321,"meta":96,"style":96},"language-yaml shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","# .github\u002Fworkflows\u002Ftest.yml\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - name: Run integration tests\n        env:\n          TOWNSHIP_CANADA_API_KEY: ${{ secrets.TOWNSHIP_CANADA_API_KEY }}\n        run: npm test\n","yaml",[86,8323,8324,8329,8336,8343,8353,8360,8373,8385,8392,8402],{"__ignoreMap":96},[100,8325,8326],{"class":102,"line":103},[100,8327,8328],{"class":572},"# .github\u002Fworkflows\u002Ftest.yml\n",[100,8330,8331,8334],{"class":102,"line":121},[100,8332,8333],{"class":608},"jobs",[100,8335,711],{"class":106},[100,8337,8338,8341],{"class":102,"line":131},[100,8339,8340],{"class":608},"  test",[100,8342,711],{"class":106},[100,8344,8345,8348,8350],{"class":102,"line":142},[100,8346,8347],{"class":608},"    runs-on",[100,8349,334],{"class":106},[100,8351,8352],{"class":161}," ubuntu-latest\n",[100,8354,8355,8358],{"class":102,"line":170},[100,8356,8357],{"class":608},"    steps",[100,8359,711],{"class":106},[100,8361,8362,8365,8368,8370],{"class":102,"line":192},[100,8363,8364],{"class":106},"      -",[100,8366,8367],{"class":608}," uses",[100,8369,334],{"class":106},[100,8371,8372],{"class":161}," actions\u002Fcheckout@v4\n",[100,8374,8375,8377,8380,8382],{"class":102,"line":200},[100,8376,8364],{"class":106},[100,8378,8379],{"class":608}," name",[100,8381,334],{"class":106},[100,8383,8384],{"class":161}," Run integration tests\n",[100,8386,8387,8390],{"class":102,"line":216},[100,8388,8389],{"class":608},"        env",[100,8391,711],{"class":106},[100,8393,8394,8397,8399],{"class":102,"line":231},[100,8395,8396],{"class":608},"          TOWNSHIP_CANADA_API_KEY",[100,8398,334],{"class":106},[100,8400,8401],{"class":161}," ${{ secrets.TOWNSHIP_CANADA_API_KEY }}\n",[100,8403,8404,8407,8409],{"class":102,"line":237},[100,8405,8406],{"class":608},"        run",[100,8408,334],{"class":106},[100,8410,8411],{"class":161}," npm test\n",[10,8413,8414],{},"The same pattern applies to other CI platforms - GitLab CI uses project variables, Bitbucket Pipelines uses repository variables, and CircleCI uses environment variables in project settings. The key principle is the same: the secret is stored in the platform, referenced by name in the config file, and never written to disk or logs.",[23,8416,8418],{"id":8417},"team-key-management","Team key management",[10,8420,8421],{},"On the Business plan, account admins can view all API keys created by team members - including the key name, creator, creation date, and last-used timestamp. This makes it possible to audit which keys are active, identify keys that haven't been used recently, and revoke credentials when a team member leaves.",[10,8423,8424],{},"Individual developers see only their own keys. Admins see keys across the entire team.",[10,8426,8427],{},"If your team uses a shared integration (for example, a company-wide internal tool), create that key under an admin account rather than a personal one. That way the key doesn't become inaccessible if the original creator's account is deactivated.",[23,8429,8431],{"id":8430},"security-practices","Security practices",[10,8433,8434],{},"A few habits that prevent the most common problems:",[10,8436,8437,8440,8441,8443,8444,8449],{},[59,8438,8439],{},"Don't commit keys."," The ",[86,8442,8187],{}," pattern above covers most cases. For extra protection, consider a tool like ",[17,8445,8448],{"href":8446,"rel":8447},"https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fgit-secrets",[3625],"git-secrets"," that scans commits for credential patterns before they're pushed.",[10,8451,8452,8455],{},[59,8453,8454],{},"Use separate keys for separate projects."," If Project A's key is ever compromised, you revoke that key without touching Project B. It also makes usage monitoring cleaner - each key's activity in the logs maps to exactly one project.",[10,8457,8458,8461],{},[59,8459,8460],{},"Rotate keys periodically."," There's no hard rule on frequency, but a yearly rotation for production keys is a reasonable baseline. After a team member departure, rotate any keys they had access to.",[10,8463,8464,8467],{},[59,8465,8466],{},"Delete unused keys."," Old keys from completed projects or former team members are attack surface with no benefit. If a key hasn't been used in 90 days and you don't recognize its purpose, revoke it.",[10,8469,8470,8473],{},[59,8471,8472],{},"Treat keys like passwords."," Don't paste them into chat messages, emails, or support tickets. If you need to share a key temporarily, do it through a password manager or secrets vault.",[23,8475,7105],{"id":7104},[31,8477,8478,8484,8491,8496,8501],{},[34,8479,8480,8483],{},[17,8481,8482],{"href":19},"API Integration"," - Get started with the Township Canada API",[34,8485,8486,8490],{},[17,8487,8489],{"href":8488},"\u002Fguides\u002Fbatch-api-guide","Batch API Guide"," - Process multiple records in a single request",[34,8492,8493,8495],{},[17,8494,7124],{"href":7123}," - Add LLD search suggestions to your app",[34,8497,8498,8500],{},[17,8499,7578],{"href":70}," - Manage subscriptions and billing",[34,8502,8503,8507],{},[17,8504,8506],{"href":8505},"\u002Fpricing","Pricing"," - API plan tiers and request quotas",[312,8509,8510],{},"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 .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--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 .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 .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 .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}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 .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 .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 .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 .sBPpx, html code.shiki .sBPpx{--shiki-light:#E53935;--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 .sYn-s, html code.shiki .sYn-s{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#80A665}",{"title":96,"searchDepth":121,"depth":121,"links":8512},[8513,8514,8515,8520,8521,8524,8525,8526],{"id":7665,"depth":121,"text":7666},{"id":7707,"depth":121,"text":7708},{"id":7790,"depth":121,"text":7791,"children":8516},[8517,8518,8519],{"id":7797,"depth":131,"text":7798},{"id":7987,"depth":131,"text":7988},{"id":8177,"depth":131,"text":8178},{"id":8242,"depth":121,"text":8243},{"id":8278,"depth":121,"text":8279,"children":8522},[8523],{"id":8285,"depth":131,"text":8286},{"id":8417,"depth":121,"text":8418},{"id":8430,"depth":121,"text":8431},{"id":7104,"depth":121,"text":7105},"Create and manage multiple Township Canada API keys for different environments. Naming conventions, key rotation, environment variables, and CI\u002FCD setup.","i-lucide-key-round",{},"\u002Fguides\u002Fapi-key-management",{"title":7654,"description":8527},"guides\u002Fapi-key-management","y5S7M5b-MjrYZXjYnpDKKgJzo3-V9wx-qk4t04QBnso",{"id":8535,"title":8536,"body":8537,"category":7155,"description":9524,"draft":7157,"extension":7158,"icon":9525,"meta":9526,"navigation":502,"order":216,"path":9527,"seo":9528,"stem":9529,"__hash__":9530},"guides\u002Fguides\u002Fapi-troubleshooting.md","API Troubleshooting & Best Practices",{"type":7,"value":8538,"toc":9502},[8539,8545,8549,8553,8584,8590,8595,8612,8645,8648,8652,8657,8690,8694,8719,8723,8729,8734,8739,8752,8756,8759,8764,8775,8780,8811,8815,8825,8830,8848,8852,8859,8894,8898,8902,9008,9090,9094,9307,9311,9314,9320,9324,9327,9384,9387,9401,9405,9409,9416,9420,9423,9455,9459,9466,9468,9499],[10,8540,8541,8544],{},[59,8542,8543],{},"Getting errors from the Township Canada API?"," This guide covers the most common issues developers run into - authentication failures, CORS blocks, rate limits, and unexpected empty responses - with clear fixes for each one.",[23,8546,8548],{"id":8547},"common-errors-and-what-they-mean","Common errors and what they mean",[767,8550,8552],{"id":8551},"forbidden-http-403","Forbidden (HTTP 403)",[91,8554,8557],{"className":8555,"code":8556,"language":925,"meta":96,"style":96},"language-json shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","{ \"message\": \"Forbidden\" }\n",[86,8558,8559],{"__ignoreMap":96},[100,8560,8561,8564,8567,8571,8573,8575,8577,8580,8582],{"class":102,"line":103},[100,8562,8563],{"class":106},"{",[100,8565,489],{"class":8566},"s4Jsk",[100,8568,8570],{"class":8569},"sLorS","message",[100,8572,158],{"class":8566},[100,8574,334],{"class":106},[100,8576,489],{"class":157},[100,8578,8579],{"class":161},"Forbidden",[100,8581,158],{"class":157},[100,8583,896],{"class":106},[10,8585,8586,8589],{},[59,8587,8588],{},"Cause:"," Your API key is missing, invalid, or not included correctly.",[10,8591,8592],{},[59,8593,8594],{},"Fix:",[7674,8596,8597,8603,8609],{},[34,8598,8599,8600],{},"Confirm your API key exists: go to ",[59,8601,8602],{},"My Account → API Access",[34,8604,8605,8606,8608],{},"Include it in the ",[86,8607,884],{}," header (not as a URL parameter)",[34,8610,8611],{},"Test with curl:",[91,8613,8615],{"className":7808,"code":8614,"language":7810,"meta":96,"style":96},"curl -H \"X-API-Key: YOUR_KEY\" \\\n  \"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?q=SW-25-24-1-W5\"\n",[86,8616,8617,8636],{"__ignoreMap":96},[100,8618,8619,8622,8626,8628,8631,8633],{"class":102,"line":103},[100,8620,8621],{"class":8202},"curl",[100,8623,8625],{"class":8624},"sz9Cv"," -H",[100,8627,489],{"class":157},[100,8629,8630],{"class":161},"X-API-Key: YOUR_KEY",[100,8632,158],{"class":157},[100,8634,8635],{"class":3835}," \\\n",[100,8637,8638,8640,8643],{"class":102,"line":121},[100,8639,7883],{"class":157},[100,8641,8642],{"class":161},"https:\u002F\u002Fdeveloper.townshipcanada.com\u002Fsearch\u002Flegal-location?q=SW-25-24-1-W5",[100,8644,213],{"class":157},[10,8646,8647],{},"If you get a valid JSON response, your key works. If you still get Forbidden, the key may have been rotated - generate a new one from your account page.",[767,8649,8651],{"id":8650},"too-many-requests-http-429","Too Many Requests (HTTP 429)",[10,8653,8654,8656],{},[59,8655,8588],{}," You exceeded the rate limit for your API tier.",[7289,8658,8659,8667],{},[7292,8660,8661],{},[7295,8662,8663,8665],{},[7298,8664,7300],{},[7298,8666,7306],{},[7311,8668,8669,8676,8683],{},[7295,8670,8671,8673],{},[7316,8672,7318],{},[7316,8674,8675],{},"1 request\u002Fsecond",[7295,8677,8678,8680],{},[7316,8679,7332],{},[7316,8681,8682],{},"5 requests\u002Fsecond",[7295,8684,8685,8687],{},[7316,8686,7346],{},[7316,8688,8689],{},"25 requests\u002Fsecond",[10,8691,8692],{},[59,8693,8594],{},[31,8695,8696,8707,8712],{},[34,8697,8698,8699,8702,8703,8706],{},"Add a delay between requests: ",[86,8700,8701],{},"await new Promise(r => setTimeout(r, 1000))"," in JavaScript, or ",[86,8704,8705],{},"time.sleep(1)"," in Python",[34,8708,7080,8709,8711],{},[17,8710,7083],{"href":8488}," instead of looping single calls - it processes up to 100 records per request",[34,8713,8714,8715,8718],{},"If you consistently need higher throughput, ",[17,8716,8717],{"href":7608},"contact us"," about upgrading your tier",[767,8720,8722],{"id":8721},"cors-policy-error","CORS Policy Error",[91,8724,8727],{"className":8725,"code":8726,"language":776},[774],"Access to fetch at 'https:\u002F\u002Fdeveloper.townshipcanada.com\u002F...' has been blocked by CORS policy\n",[86,8728,8726],{"__ignoreMap":96},[10,8730,8731,8733],{},[59,8732,8588],{}," You are calling the API directly from a browser (client-side JavaScript). The API is designed for server-to-server calls and does not include CORS headers by default.",[10,8735,8736],{},[59,8737,8738],{},"Fix options:",[7674,8740,8741,8747],{},[34,8742,8743,8746],{},[59,8744,8745],{},"Proxy through your backend"," - Make the API call from your server (Node.js, Python, etc.) and return the result to your frontend",[34,8748,8749,8751],{},[59,8750,7609],{}," - If you need direct browser access, we can add your domain to the CORS allowlist",[767,8753,8755],{"id":8754},"empty-response-no-features","Empty Response (no features)",[10,8757,8758],{},"The API returns a valid HTTP 200 response, but the result contains no features or coordinates.",[10,8760,8761],{},[59,8762,8763],{},"Possible causes:",[31,8765,8766,8769,8772],{},[34,8767,8768],{},"The legal description does not exist (e.g., a township\u002Frange combination that was never surveyed)",[34,8770,8771],{},"The description is at a resolution not supported for that region",[34,8773,8774],{},"Format is slightly wrong - the API is stricter than the web app",[10,8776,8777],{},[59,8778,8779],{},"Debugging steps:",[7674,8781,8782,8790,8800,8803],{},[34,8783,8784,8785,8789],{},"Try the same description in the ",[17,8786,8788],{"href":8787},"\u002Fapp","web app search box"," - does it work there?",[34,8791,8792,8793,8796,8797,535],{},"Check that you included the full meridian (e.g., ",[86,8794,8795],{},"W5"," not just ",[86,8798,8799],{},"5",[34,8801,8802],{},"Verify component ranges: LSD 1–16, Section 1–36, Township 1–126, Range 1–34",[34,8804,8805,8806,8810],{},"Check the ",[17,8807,8809],{"href":8808},"\u002Fguides\u002Fcoverage","Coverage Guide"," for resolution limits by region",[767,8812,8814],{"id":8813},"database-errors-28000-08006","Database Errors (28000, 08006)",[10,8816,8817,8818,7067,8821,8824],{},"Errors with codes like ",[86,8819,8820],{},"28000",[86,8822,8823],{},"08006"," indicate a service disruption, not an issue with your code.",[10,8826,8827],{},[59,8828,8829],{},"What to do:",[31,8831,8832,8840,8843],{},[34,8833,8805,8834,8839],{},[17,8835,8838],{"href":8836,"rel":8837},"https:\u002F\u002Fstatus.townshipcanada.com\u002F",[3625],"status page"," for incident reports",[34,8841,8842],{},"Wait a few minutes and retry",[34,8844,8845,8846],{},"If the issue persists beyond 15 minutes, ",[17,8847,8717],{"href":7608},[23,8849,8851],{"id":8850},"api-key-setup","API key setup",[10,8853,8854,8855,8858],{},"Quick recap of key setup (see the ",[17,8856,8857],{"href":8530},"full API key management guide"," for details):",[7674,8860,8861,8867,8876,8882,8888],{},[34,8862,8863,8866],{},[59,8864,8865],{},"Find your key:"," My Account → API Access",[34,8868,8869,8872,8873,8875],{},[59,8870,8871],{},"Include in requests:"," Add the ",[86,8874,884],{}," header to every request",[34,8877,8878,8881],{},[59,8879,8880],{},"Test before coding:"," Use curl or Postman to confirm the key works",[34,8883,8884,8887],{},[59,8885,8886],{},"Name your keys:"," Use descriptive names like \"production-backend\" or \"staging-test\" to keep track of which key is used where",[34,8889,8890,8893],{},[59,8891,8892],{},"Rotate regularly:"," Generate new keys periodically and phase out old ones",[23,8895,8897],{"id":8896},"rate-limiting-best-practices","Rate limiting best practices",[767,8899,8901],{"id":8900},"add-delay-between-requests","Add delay between requests",[91,8903,8905],{"className":677,"code":8904,"language":679,"meta":96,"style":96},"\u002F\u002F JavaScript - simple delay\nfor (const query of queries) {\n  const result = await fetch(url + query, { headers });\n  await new Promise((r) => setTimeout(r, 1000));\n}\n",[86,8906,8907,8912,8933,8967,9004],{"__ignoreMap":96},[100,8908,8909],{"class":102,"line":103},[100,8910,8911],{"class":572},"\u002F\u002F JavaScript - simple delay\n",[100,8913,8914,8917,8919,8921,8923,8926,8929,8931],{"class":102,"line":121},[100,8915,8916],{"class":828},"for",[100,8918,942],{"class":525},[100,8920,2460],{"class":478},[100,8922,1001],{"class":482},[100,8924,8925],{"class":552}," of",[100,8927,8928],{"class":482}," queries",[100,8930,535],{"class":525},[100,8932,324],{"class":106},[100,8934,8935,8937,8940,8942,8944,8946,8948,8951,8953,8955,8957,8959,8961,8963,8965],{"class":102,"line":131},[100,8936,820],{"class":478},[100,8938,8939],{"class":482}," result",[100,8941,486],{"class":106},[100,8943,829],{"class":828},[100,8945,832],{"class":522},[100,8947,526],{"class":835},[100,8949,8950],{"class":482},"url",[100,8952,1253],{"class":552},[100,8954,1001],{"class":482},[100,8956,549],{"class":106},[100,8958,878],{"class":106},[100,8960,873],{"class":482},[100,8962,893],{"class":106},[100,8964,535],{"class":835},[100,8966,341],{"class":106},[100,8968,8969,8972,8975,8979,8981,8983,8986,8988,8990,8992,8994,8996,8998,9000,9002],{"class":102,"line":142},[100,8970,8971],{"class":828},"  await",[100,8973,8974],{"class":552}," new",[100,8976,8978],{"class":8977},"sa2tF"," Promise",[100,8980,526],{"class":835},[100,8982,526],{"class":106},[100,8984,8985],{"class":810},"r",[100,8987,535],{"class":106},[100,8989,1059],{"class":1058},[100,8991,2685],{"class":522},[100,8993,526],{"class":835},[100,8995,8985],{"class":482},[100,8997,549],{"class":106},[100,8999,4014],{"class":337},[100,9001,3257],{"class":835},[100,9003,341],{"class":106},[100,9005,9006],{"class":102,"line":170},[100,9007,1349],{"class":106},[91,9009,9011],{"className":8014,"code":9010,"language":7987,"meta":96,"style":96},"# Python - simple delay\nimport time\nfor query in queries:\n    result = requests.get(url + query, headers=headers)\n    time.sleep(1)\n",[86,9012,9013,9018,9025,9039,9073],{"__ignoreMap":96},[100,9014,9015],{"class":102,"line":103},[100,9016,9017],{"class":572},"# Python - simple delay\n",[100,9019,9020,9022],{"class":102,"line":121},[100,9021,8022],{"class":828},[100,9023,9024],{"class":181}," time\n",[100,9026,9027,9029,9032,9035,9037],{"class":102,"line":131},[100,9028,8916],{"class":828},[100,9030,9031],{"class":181}," query ",[100,9033,9034],{"class":828},"in",[100,9036,8928],{"class":181},[100,9038,711],{"class":106},[100,9040,9041,9044,9046,9048,9050,9052,9054,9057,9060,9062,9064,9066,9068,9071],{"class":102,"line":142},[100,9042,9043],{"class":181},"    result ",[100,9045,154],{"class":106},[100,9047,8107],{"class":181},[100,9049,519],{"class":106},[100,9051,8083],{"class":8054},[100,9053,526],{"class":106},[100,9055,9056],{"class":8054},"url ",[100,9058,9059],{"class":552},"+",[100,9061,1001],{"class":8054},[100,9063,549],{"class":106},[100,9065,873],{"class":810},[100,9067,154],{"class":106},[100,9069,9070],{"class":8054},"headers",[100,9072,1829],{"class":106},[100,9074,9075,9078,9080,9083,9085,9088],{"class":102,"line":170},[100,9076,9077],{"class":181},"    time",[100,9079,519],{"class":106},[100,9081,9082],{"class":8054},"sleep",[100,9084,526],{"class":106},[100,9086,9087],{"class":337},"1",[100,9089,1829],{"class":106},[767,9091,9093],{"id":9092},"use-exponential-backoff-on-429","Use exponential backoff on 429",[91,9095,9097],{"className":677,"code":9096,"language":679,"meta":96,"style":96},"async function fetchWithBackoff(url, headers, maxRetries = 3) {\n  for (let i = 0; i \u003C maxRetries; i++) {\n    const res = await fetch(url, { headers });\n    if (res.status !== 429) return res;\n    await new Promise((r) => setTimeout(r, 1000 * Math.pow(2, i)));\n  }\n  throw new Error(\"Rate limit exceeded after retries\");\n}\n",[86,9098,9099,9130,9165,9194,9222,9276,9280,9303],{"__ignoreMap":96},[100,9100,9101,9103,9105,9108,9110,9112,9114,9116,9118,9121,9123,9126,9128],{"class":102,"line":103},[100,9102,799],{"class":478},[100,9104,802],{"class":478},[100,9106,9107],{"class":522}," fetchWithBackoff",[100,9109,526],{"class":106},[100,9111,8950],{"class":810},[100,9113,549],{"class":106},[100,9115,873],{"class":810},[100,9117,549],{"class":106},[100,9119,9120],{"class":810}," maxRetries",[100,9122,486],{"class":106},[100,9124,9125],{"class":337}," 3",[100,9127,535],{"class":106},[100,9129,324],{"class":106},[100,9131,9132,9135,9137,9139,9142,9144,9146,9148,9150,9152,9154,9156,9158,9161,9163],{"class":102,"line":121},[100,9133,9134],{"class":828},"  for",[100,9136,942],{"class":835},[100,9138,2521],{"class":478},[100,9140,9141],{"class":482}," i",[100,9143,486],{"class":106},[100,9145,338],{"class":337},[100,9147,569],{"class":106},[100,9149,9141],{"class":482},[100,9151,2625],{"class":106},[100,9153,9120],{"class":482},[100,9155,569],{"class":106},[100,9157,9141],{"class":482},[100,9159,9160],{"class":552},"++",[100,9162,535],{"class":835},[100,9164,324],{"class":106},[100,9166,9167,9169,9172,9174,9176,9178,9180,9182,9184,9186,9188,9190,9192],{"class":102,"line":131},[100,9168,1743],{"class":478},[100,9170,9171],{"class":482}," res",[100,9173,486],{"class":106},[100,9175,829],{"class":828},[100,9177,832],{"class":522},[100,9179,526],{"class":835},[100,9181,8950],{"class":482},[100,9183,549],{"class":106},[100,9185,878],{"class":106},[100,9187,873],{"class":482},[100,9189,893],{"class":106},[100,9191,535],{"class":835},[100,9193,341],{"class":106},[100,9195,9196,9199,9201,9204,9206,9208,9211,9214,9216,9218,9220],{"class":102,"line":142},[100,9197,9198],{"class":828},"    if",[100,9200,942],{"class":835},[100,9202,9203],{"class":482},"res",[100,9205,519],{"class":106},[100,9207,5179],{"class":482},[100,9209,9210],{"class":552}," !==",[100,9212,9213],{"class":337}," 429",[100,9215,535],{"class":835},[100,9217,1100],{"class":828},[100,9219,9171],{"class":482},[100,9221,341],{"class":106},[100,9223,9224,9227,9229,9231,9233,9235,9237,9239,9241,9243,9245,9247,9249,9251,9254,9257,9259,9262,9264,9267,9269,9271,9274],{"class":102,"line":170},[100,9225,9226],{"class":828},"    await",[100,9228,8974],{"class":552},[100,9230,8978],{"class":8977},[100,9232,526],{"class":835},[100,9234,526],{"class":106},[100,9236,8985],{"class":810},[100,9238,535],{"class":106},[100,9240,1059],{"class":1058},[100,9242,2685],{"class":522},[100,9244,526],{"class":835},[100,9246,8985],{"class":482},[100,9248,549],{"class":106},[100,9250,4014],{"class":337},[100,9252,9253],{"class":552}," *",[100,9255,9256],{"class":482}," Math",[100,9258,519],{"class":106},[100,9260,9261],{"class":522},"pow",[100,9263,526],{"class":835},[100,9265,9266],{"class":337},"2",[100,9268,549],{"class":106},[100,9270,9141],{"class":482},[100,9272,9273],{"class":835},")))",[100,9275,341],{"class":106},[100,9277,9278],{"class":102,"line":192},[100,9279,1017],{"class":106},[100,9281,9282,9285,9287,9290,9292,9294,9297,9299,9301],{"class":102,"line":200},[100,9283,9284],{"class":828},"  throw",[100,9286,8974],{"class":552},[100,9288,9289],{"class":522}," Error",[100,9291,526],{"class":835},[100,9293,158],{"class":157},[100,9295,9296],{"class":161},"Rate limit exceeded after retries",[100,9298,158],{"class":157},[100,9300,535],{"class":835},[100,9302,341],{"class":106},[100,9304,9305],{"class":102,"line":216},[100,9306,1349],{"class":106},[767,9308,9310],{"id":9309},"use-the-batch-api-for-bulk-work","Use the Batch API for bulk work",[10,9312,9313],{},"Instead of looping 1,000 single calls (which takes 17+ minutes at 1\u002Fsec), use the Batch API to process 100 records per call - the same 1,000 records take 10 calls.",[10,9315,9316,9317,9319],{},"See the ",[17,9318,8489],{"href":8488}," for chunking examples in Node.js and Python.",[23,9321,9323],{"id":9322},"format-differences-web-app-vs-api","Format differences: web app vs. API",[10,9325,9326],{},"The web app's search box is more forgiving than the API:",[7289,9328,9329,9341],{},[7292,9330,9331],{},[7295,9332,9333,9336,9339],{},[7298,9334,9335],{},"Issue",[7298,9337,9338],{},"Web App",[7298,9340,7197],{},[7311,9342,9343,9354,9365,9374],{},[7295,9344,9345,9348,9351],{},[7316,9346,9347],{},"Missing \"W\" on meridian",[7316,9349,9350],{},"May auto-correct",[7316,9352,9353],{},"Returns empty",[7295,9355,9356,9359,9362],{},[7316,9357,9358],{},"Extra spaces",[7316,9360,9361],{},"Handled",[7316,9363,9364],{},"May cause issues",[7295,9366,9367,9370,9372],{},[7316,9368,9369],{},"Mixed case",[7316,9371,9361],{},[7316,9373,9361],{},[7295,9375,9376,9379,9382],{},[7316,9377,9378],{},"Partial descriptions",[7316,9380,9381],{},"Shows suggestions",[7316,9383,9353],{},[10,9385,9386],{},"When building API integrations, always normalize your input first:",[31,9388,9389,9392,9395,9398],{},[34,9390,9391],{},"Include dashes between all components",[34,9393,9394],{},"Add the \"W\" prefix on meridians",[34,9396,9397],{},"Remove extra text, parentheses, and place names",[34,9399,9400],{},"Trim whitespace",[23,9402,9404],{"id":9403},"integration-patterns","Integration patterns",[767,9406,9408],{"id":9407},"caching","Caching",[10,9410,9411,9412,9415],{},"If your application looks up the same legal descriptions repeatedly, cache the results. Legal land descriptions map to fixed coordinates - the result for ",[86,9413,9414],{},"SW-25-24-1-W5"," will not change.",[767,9417,9419],{"id":9418},"error-handling","Error handling",[10,9421,9422],{},"Always handle these response codes:",[31,9424,9425,9431,9437,9443,9449],{},[34,9426,9427,9430],{},[59,9428,9429],{},"200"," - Success, parse the result",[34,9432,9433,9436],{},[59,9434,9435],{},"400"," - Bad request, check your input format",[34,9438,9439,9442],{},[59,9440,9441],{},"403"," - Authentication failed, check your API key",[34,9444,9445,9448],{},[59,9446,9447],{},"429"," - Rate limited, wait and retry",[34,9450,9451,9454],{},[59,9452,9453],{},"500\u002F502\u002F503"," - Server issue, retry after a short delay",[767,9456,9458],{"id":9457},"openapi-spec","OpenAPI spec",[10,9460,9461,9462,9465],{},"Download the OpenAPI specification at ",[17,9463,9464],{"href":9464},"\u002Fopenapi.yaml"," and import it into Postman, Swagger UI, or Insomnia for interactive testing and documentation.",[23,9467,7105],{"id":7104},[31,9469,9470,9475,9481,9488,9493],{},[34,9471,9472,9474],{},[17,9473,784],{"href":19}," - getting started with the API",[34,9476,9477,9480],{},[17,9478,9479],{"href":8530},"API Key Management"," - creating and managing API keys",[34,9482,9483,9487],{},[17,9484,9486],{"href":9485},"\u002Fguides\u002Fsearch-api-guide","Search API Guide"," - single-location lookups",[34,9489,9490,9492],{},[17,9491,8489],{"href":8488}," - bulk conversions",[34,9494,9495,9498],{},[17,9496,9497],{"href":8808},"Coverage & Limitations"," - what regions and resolutions are supported",[312,9500,9501],{},"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 .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 .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 .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 .snCua, html code.shiki .snCua{--shiki-light:#90A4AE;--shiki-default:#999999;--shiki-dark:#666666}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 .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 .sLdnO, html code.shiki .sLdnO{--shiki-light:#E53935;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sa2tF, html code.shiki .sa2tF{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#B8A965}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 .sIOqK, html code.shiki .sIOqK{--shiki-light:#9C3EDA;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}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}",{"title":96,"searchDepth":121,"depth":121,"links":9503},[9504,9511,9512,9517,9518,9523],{"id":8547,"depth":121,"text":8548,"children":9505},[9506,9507,9508,9509,9510],{"id":8551,"depth":131,"text":8552},{"id":8650,"depth":131,"text":8651},{"id":8721,"depth":131,"text":8722},{"id":8754,"depth":131,"text":8755},{"id":8813,"depth":131,"text":8814},{"id":8850,"depth":121,"text":8851},{"id":8896,"depth":121,"text":8897,"children":9513},[9514,9515,9516],{"id":8900,"depth":131,"text":8901},{"id":9092,"depth":131,"text":9093},{"id":9309,"depth":131,"text":9310},{"id":9322,"depth":121,"text":9323},{"id":9403,"depth":121,"text":9404,"children":9519},[9520,9521,9522],{"id":9407,"depth":131,"text":9408},{"id":9418,"depth":131,"text":9419},{"id":9457,"depth":131,"text":9458},{"id":7104,"depth":121,"text":7105},"Fix common Township Canada API errors including Forbidden responses, CORS issues, rate limiting, and empty results. Includes debugging tips and integration patterns.","i-lucide-bug",{},"\u002Fguides\u002Fapi-troubleshooting",{"title":8536,"description":9524},"guides\u002Fapi-troubleshooting","YhFOkUOkxRyXExvO-F29ZJyxlbLEw9dMy2FCmSMog7U"]