commit 73ea6a9413016806dffd45a9c57dd0984eefa82b Author: Chandler Swift Date: Tue Nov 26 20:41:37 2024 -0600 Initial commit diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..0a722d7 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use nix; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ead56f2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +data/plats.geojson diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..040dd87 --- /dev/null +++ b/Makefile @@ -0,0 +1,2 @@ +plats.json: scripts/get_plats.py + ./scripts/get_plats.py data/plats.geojson diff --git a/data/data.json b/data/data.json new file mode 100644 index 0000000..ae8b8fa --- /dev/null +++ b/data/data.json @@ -0,0 +1,304 @@ +{ + "stands": [ + { + "name": "Fridge", + "image": "fridge.jpg", + "type": "barrel", + "view": [ + "fridge1.jpg", + "fridge2.jpg", + "fridge3.jpg" + ], + "location": [ + 47.49304852, + -93.39113721000001 + ], + "attributes": { + "Year Established": "2010", + "Description": "Formerly \"Alan's Barrel\" (located where Alan's castle is now). Originally built (probably 1970s or 1980s) by some combination of Alan, Vernon, and Irving from old windmills. Moved to the driveway in 2010 when Alan's castle was built. Shortly thereafter, the southeast leg was hit with the brushmower, rendering it unusable, and replaced with a refrigerator. The large hole in the barrel was the result of an accidental discharge of Alan's .44 Magnum pistol." + } + }, + { + "name": "Tupperware", + "image": "tupperware.jpg", + "type": "castle", + "view": [ + "tupperware1.jpg", + "tupperware2.jpg", + "tupperware3.jpg" + ], + "location": [ + 47.49564466, + -93.39410528 + ], + "attributes": { + "Year Established": "2017", + "Description": "Stand and platform purchased new at a steep discount from RMI in Little Falls (https://rotomoldinginc.com/). Dave and Celine installed and assembled in a separate late-September trip. This stand replaced a post stand that had stood in this location for several years; \"For a few years, every single time I went out there, I saw a deer!\" \u2014Dave Swift. The shooting lane to the north of the stand was naturally free of trees, which made construction of a new shooting lane very straightforward. This location was especially desirable because it was our only stand placed in the NW 40." + } + }, + { + "name": "Castle", + "image": "castle.jpg", + "type": "castle", + "view": [ + "castle1.jpg", + "castle2.jpg", + "castle3.jpg", + "castle4.jpg" + ], + "location": [ + 47.49585212, + -93.39130727000001 + ], + "attributes": { + "Year Established": "Late 70s/early 80s", + "Description": "This stand was built and originally occupied largely by Irving, and was the first enclosed stand on the property. The stand was assessed as healthy in September 2006, and was discovered on the ground that November. A new castle was built on the original base in 2007. The original wooden base was replaced with a metal base of Tim's design in 2023." + } + }, + { + "name": "Ladder", + "image": "ladder.jpg", + "type": "tree", + "view": [ + "ladder1.jpg", + "ladder2.jpg", + "ladder3.jpg" + ], + "attributes": { + "Year Established": "\"Predates me, I think\" —Dave", + "Description": "" + }, + "location": [ + 47.49670328333334, + -93.38847981333333 + ] + }, + { + "name": "Alan's", + "image": "alans.jpg", + "type": "castle", + "view": [ + "alans1.jpg", + "alans2.jpg", + "alans3.jpg" + ], + "attributes": { + "Year Established": "1970s (TODO)", + "Description": "Half-wall platform in 2010; enclosed stands built 2012 Zack Larson" + }, + "location": [ + 47.49460865, + -93.39097404 + ] + }, + { + "name": "East Barrel", + "image": "eastbarrel.jpg", + "type": "barrel", + "view": [ + "eastbarrel1.jpg", + "eastbarrel2.jpg", + "eastbarrel3.jpg", + "eastbarrel4.jpg" + ], + "attributes": { + "Year Established": "", + "Description": "70s or 80s, repurposed windmill stand?" + }, + "location": [ + 47.49519986, + -93.387005555 + ] + }, + { + "name": "Iron Castle", + "image": "ironcastle.jpg", + "type": "castle", + "view": [ + "ironcastle1.jpg", + "ironcastle2.jpg" + ], + "attributes": { + "Year Established": "1990s?", + "Description": "Also \"Iron tree\". Lawrence Deer Club's second castle, after The Castle. A successor to the Mile-high stand, purchased from Fleet Farm for $400. Installed further west than the original stand to stay on our property. Camo paint job by Paul Adams." + }, + "location": [ + 47.494131005, + -93.38646539500002 + ] + }, + { + "name": "Mile-high stand (TODO: rename)", + "image": "irontree.jpg", + "type": "tree", + "view": [ + "irontree1.jpg", + "irontree2.jpg" + ], + "attributes": { + "Year Established": "", + "Description": "Occasionally also \"Iron tree\" (as opposed to \"Iron Castle\"). Current location is maybe 8 feet lower than historic height. Likely the location for Scott's famous thirteen-shot kill. Almost always Richard's hunting spot of choice. As he aged (perhaps around when he turned 70 years old in 1994), an easier-to-climb stand was needed, so the Iron Castle was installed as a successor. TODO: whose stand is this? Dad thinks maybe Kim?" + }, + "location": [ + 47.49430932, + -93.38599909000001 + ] + }, + { + "name": "Three-Legged Barrel", + "image": "threeleggedbarrel.jpg", + "type": "barrel", + "view": [ + "threeleggedbarrel1.jpg", + "threeleggedbarrel2.jpg", + "threeleggedbarrel3.jpg" + ], + "stories": [ + "Dave: That stand has never been particularly productive. I only ever saw one deer out of that stand -- a decent buck. The deer was to the east, so I needed to take a left-handed shot…and the rifle went \"click\" because I hadn't fully closed the breech. The deer ran off. A few moments later, a shot from the north: Paul Adams had gotten the deer." + ], + "attributes": { + "Year Established": "", + "Description": "70s or 80s, not windmill parts. Maybe built by Alan? Originally not well-liked because of instability. 2023 barrel replaced and ladder flipped upside down/steps on barrel for easier climbing." + }, + "location": [ + 47.49214061, + -93.38710683000001 + ] + }, + { + "name": "Hummock", + "image": "hummock.jpg", + "type": "tree", + "active": false, + "view": [ + "hummock1.jpg", + "hummock2.jpg" + ], + "attributes": { + "Year Established": "", + "Description": "\"Prolific\" --Dave -- a good view of a lake to the south, and a bog to the east. " + }, + "location": [ + 47.49135555555556, + -93.38455972222224 + ] + }, + { + "name": "Sofa", + "image": "sofa.jpg", + "type": "tree", + "view": [ + "sofa1.jpg", + "sofa2.jpg", + "sofa3.jpg", + "sofa4.jpg" + ], + "attributes": { + "Year Established": "1990ish, shortly before Dave's first year", + "Description": "Alternately \"couch\" or \"davenport\". Shooting lanes went in either 2005 or 2006 (per Google Earth historic imagery), shortly after JBS' predecessors logged the area. Major rebuild in 2023, after half of tree above fork fell over. New ladder made out of square steel tubing from GSL batting cage, installed in 2020." + }, + "location": [ + 47.49022563, + -93.38653060000001 + ] + }, + { + "name": "Ridge", + "image": "ridge.jpg", + "type": "tree", + "view": [ + "ridge1.jpg", + "ridge2.jpg" + ], + "attributes": { + "Year Established": "TODO", + "Description": "John Graupmann's metal two-person stand. Installed 2015-2017 (before 2018 logging completed). Path rerouted after logging." + }, + "location": [ + 47.48936904, + -93.38791247 + ] + }, + { + "name": "Point", + "image": "point.jpg", + "type": "castle", + "view": [ + "point1.jpg", + "point2.jpg", + "point3.jpg" + ], + "attributes": { + "Year Established": "2008", + "Description": "Originally \"South Castle\". Post stand in 2008, half-wall stand in 2009, castle in 2012. Many deer were seen from the post, so decided to put up a permanent stand. The first morning of half-wall stand, 8 deer seen before 8:30 (including 8pt buck). Next day, another buck 7:30am. New ladder (with Sofa) 2020(?)" + }, + "location": [ + 47.48888177333333, + -93.38977630333333 + ] + } + ], + "fruit-trees_comment": "Dave attempted planting two fruit trees 2008 between Alan's stand and castle. Neither made it a year.", + "fruit-trees": [ + { + "type": "Honeycrisp", + "location": [], + "attributes": { + "Year Planted": 2019, + "_TODO": "#TODO", + "Description": "" + } + }, + { + "type": "Honeycrisp", + "location": [], + "attributes": { + "Year Planted": 2019, + "_TODO": "#TODO", + "Description": "" + } + }, + { + "type": "Honeycrisp", + "location": [], + "attributes": { + "Year Planted": 2019, + "_TODO": "#TODO", + "Description": "" + } + }, + { + "type": "Honeycrisp", + "location": [], + "attributes": { + "Year Planted": 2019, + "_TODO": "#TODO", + "Description": "" + } + } + ], + "buildings": [ + "shack built around 1980, put up over a weekend. Old one pushed over and burned. New cabin was reshingled once, floors rebuilt in 2006, moved to new foundation in 2019, eaves 2020, steel siding, new windows, and porch 2021-2022, steel roof added 2024 for $16500.", + "outhouse built by Irving pre-1992 (when Dad started coming up; relatively new then), replaced older outhouse, which was 6 ft further north", + "" + ], + "deer": [ + "TODO", + { + "date": "2023-11-11 17:00:00", + "hunter": "Chris Lemke", + "animal": "9pt buck", + "stand": "Sofa", + "notes": "Tracked after dark during a snowstorm", + "_photo": null + }, + { + "date": "2023-11-11 17:00:00", + "hunter": "Chris Lemke", + "animal": "9pt buck", + "stand": "Sofa", + "notes": "Tracked after dark during a snowstorm", + "_photo": null + } + ] +} diff --git a/data/track.geojson b/data/track.geojson new file mode 100644 index 0000000..b71863c --- /dev/null +++ b/data/track.geojson @@ -0,0 +1,8 @@ +{ +"type": "FeatureCollection", +"name": "out", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, +"features": [ +{ "type": "Feature", "properties": { "begin": "0", "end": "3382" }, "geometry": { "type": "LineString", "coordinates": [ [ -93.39063945, 47.49237384, 0.0 ], [ -93.39061111, 47.49236978, 0.0 ], [ -93.39059121, 47.49234707, 0.0 ], [ -93.39056587, 47.49234054, 0.0 ], [ -93.39057836, 47.49232193, 0.0 ], [ -93.3906034, 47.49233209, 0.0 ], [ -93.39060427, 47.49235384, 0.0 ], [ -93.39058293, 47.4923665, 0.0 ], [ -93.39059049, 47.49238854, 0.0 ], [ -93.39061705, 47.49238408, 0.0 ], [ -93.39060241, 47.49236727, 0.0 ], [ -93.39058253, 47.49238365, 0.0 ], [ -93.39059607, 47.49236762, 0.0 ], [ -93.3906236, 47.49236435, 0.0 ], [ -93.39065575, 47.49236334, 0.0 ], [ -93.39067809, 47.49237466, 0.0 ], [ -93.3906691, 47.492395, 0.0 ], [ -93.39066464, 47.49242095, 0.0 ], [ -93.39066507, 47.49244799, 0.0 ], [ -93.39067368, 47.49247083, 0.0 ], [ -93.39068787, 47.49249415, 0.0 ], [ -93.39070613, 47.49251728, 0.0 ], [ -93.39071488, 47.49254278, 0.0 ], [ -93.3907064, 47.49256889, 0.0 ], [ -93.39069089, 47.49259699, 0.0 ], [ -93.39068217, 47.49263081, 0.0 ], [ -93.39069196, 47.49266998, 0.0 ], [ -93.39071781, 47.49271019, 0.0 ], [ -93.390762, 47.49274874, 0.0 ], [ -93.39080435, 47.49278808, 0.0 ], [ -93.39085348, 47.49282701, 0.0 ], [ -93.39091432, 47.4928659, 0.0 ], [ -93.39098758, 47.49290191, 0.0 ], [ -93.39107411, 47.49293837, 0.0 ], [ -93.3911686, 47.49297191, 0.0 ], [ -93.39126531, 47.49299329, 0.0 ], [ -93.39136071, 47.49301744, 0.0 ], [ -93.39146523, 47.49303308, 0.0 ], [ -93.39157857, 47.49303396, 0.0 ], [ -93.39169165, 47.49303675, 0.0 ], [ -93.39180684, 47.49303547, 0.0 ], [ -93.39192523, 47.49303452, 0.0 ], [ -93.39204244, 47.49303279, 0.0 ], [ -93.39216226, 47.49303082, 0.0 ], [ -93.39228363, 47.49303136, 0.0 ], [ -93.39240594, 47.49302942, 0.0 ], [ -93.39253056, 47.49302835, 0.0 ], [ -93.39265575, 47.49302677, 0.0 ], [ -93.39277639, 47.49302444, 0.0 ], [ -93.3928973, 47.49302655, 0.0 ], [ -93.39302004, 47.49302566, 0.0 ], [ -93.3931475, 47.49302154, 0.0 ], [ -93.39327346, 47.49301932, 0.0 ], [ -93.3933973, 47.49301869, 0.0 ], [ -93.39352121, 47.49302337, 0.0 ], [ -93.39364605, 47.49302171, 0.0 ], [ -93.39377157, 47.49302245, 0.0 ], [ -93.39389868, 47.4930208, 0.0 ], [ -93.39401923, 47.49302226, 0.0 ], [ -93.39414601, 47.49302102, 0.0 ], [ -93.39426887, 47.49302304, 0.0 ], [ -93.39439143, 47.493024, 0.0 ], [ -93.39451674, 47.49302771, 0.0 ], [ -93.39464168, 47.49302655, 0.0 ], [ -93.39476479, 47.4930275, 0.0 ], [ -93.39489468, 47.49302634, 0.0 ], [ -93.39502452, 47.49302495, 0.0 ], [ -93.3951565, 47.49302559, 0.0 ], [ -93.3952875, 47.49302565, 0.0 ], [ -93.39541734, 47.49302551, 0.0 ], [ -93.39555139, 47.49302607, 0.0 ], [ -93.39568303, 47.49302698, 0.0 ], [ -93.39581039, 47.49302859, 0.0 ], [ -93.39593525, 47.49302873, 0.0 ], [ -93.39605077, 47.49302583, 0.0 ], [ -93.39617452, 47.49302759, 0.0 ], [ -93.3962931, 47.49302901, 0.0 ], [ -93.39640357, 47.49302745, 0.0 ], [ -93.39650896, 47.49302975, 0.0 ], [ -93.39661178, 47.49303181, 0.0 ], [ -93.39669462, 47.49303265, 0.0 ], [ -93.39677347, 47.49302855, 0.0 ], [ -93.39682932, 47.49302883, 0.0 ], [ -93.3968805, 47.4930331, 0.0 ], [ -93.39691829, 47.49302874, 0.0 ], [ -93.39693174, 47.49301211, 0.0 ], [ -93.39692052, 47.49299366, 0.0 ], [ -93.39691037, 47.4930142, 0.0 ], [ -93.3969061, 47.49303197, 0.0 ], [ -93.3968785, 47.49303473, 0.0 ], [ -93.39683571, 47.4930394, 0.0 ], [ -93.39679357, 47.49304552, 0.0 ], [ -93.39673558, 47.49305209, 0.0 ], [ -93.39664742, 47.49304984, 0.0 ], [ -93.39657114, 47.4930472, 0.0 ], [ -93.39647843, 47.49304636, 0.0 ], [ -93.39638589, 47.49304633, 0.0 ], [ -93.39628408, 47.49304703, 0.0 ], [ -93.39618215, 47.49304135, 0.0 ], [ -93.39607709, 47.49304678, 0.0 ], [ -93.39596924, 47.49304045, 0.0 ], [ -93.39586705, 47.49305362, 0.0 ], [ -93.39575218, 47.49305131, 0.0 ], [ -93.39564075, 47.49305367, 0.0 ], [ -93.39551514, 47.49304487, 0.0 ], [ -93.39539443, 47.4930446, 0.0 ], [ -93.39527059, 47.49304263, 0.0 ], [ -93.39515738, 47.4930412, 0.0 ], [ -93.39504202, 47.4930388, 0.0 ], [ -93.39492531, 47.49303896, 0.0 ], [ -93.39480907, 47.49304193, 0.0 ], [ -93.39469746, 47.49304159, 0.0 ], [ -93.39458967, 47.49303703, 0.0 ], [ -93.394482, 47.49303413, 0.0 ], [ -93.39438389, 47.493044, 0.0 ], [ -93.39428253, 47.49303534, 0.0 ], [ -93.39418196, 47.49303512, 0.0 ], [ -93.39407227, 47.49303766, 0.0 ], [ -93.39396655, 47.49303443, 0.0 ], [ -93.3938544, 47.49303362, 0.0 ], [ -93.39375088, 47.49303477, 0.0 ], [ -93.39364579, 47.49303621, 0.0 ], [ -93.39354435, 47.4930376, 0.0 ], [ -93.39343247, 47.49303854, 0.0 ], [ -93.39331949, 47.49303708, 0.0 ], [ -93.39320379, 47.49303761, 0.0 ], [ -93.39308865, 47.49303682, 0.0 ], [ -93.39297428, 47.49303854, 0.0 ], [ -93.392865, 47.49303823, 0.0 ], [ -93.39275572, 47.49303885, 0.0 ], [ -93.39264425, 47.49304012, 0.0 ], [ -93.39253704, 47.49304089, 0.0 ], [ -93.39242877, 47.49304286, 0.0 ], [ -93.39232195, 47.49303985, 0.0 ], [ -93.39221678, 47.49304591, 0.0 ], [ -93.39211738, 47.4930454, 0.0 ], [ -93.39200663, 47.49305136, 0.0 ], [ -93.39191186, 47.49306236, 0.0 ], [ -93.39180524, 47.49306363, 0.0 ], [ -93.39169461, 47.49306467, 0.0 ], [ -93.3915979, 47.49306242, 0.0 ], [ -93.39150068, 47.49306018, 0.0 ], [ -93.39141757, 47.49305247, 0.0 ], [ -93.39134562, 47.4930418, 0.0 ], [ -93.39128874, 47.49302393, 0.0 ], [ -93.39125134, 47.49301152, 0.0 ], [ -93.39122023, 47.49300084, 0.0 ], [ -93.39119532, 47.49299357, 0.0 ], [ -93.39116484, 47.49298607, 0.0 ], [ -93.39111519, 47.49299292, 0.0 ], [ -93.39108699, 47.4930027, 0.0 ], [ -93.39107232, 47.49302981, 0.0 ], [ -93.39108298, 47.49305158, 0.0 ], [ -93.3911021, 47.49306517, 0.0 ], [ -93.39112538, 47.49307907, 0.0 ], [ -93.39114535, 47.49305825, 0.0 ], [ -93.39114058, 47.49303953, 0.0 ], [ -93.39112595, 47.49305454, 0.0 ], [ -93.39111634, 47.49303566, 0.0 ], [ -93.39110289, 47.49301781, 0.0 ], [ -93.39108358, 47.4930032, 0.0 ], [ -93.39105534, 47.49298895, 0.0 ], [ -93.39109259, 47.49299468, 0.0 ], [ -93.39111271, 47.49301137, 0.0 ], [ -93.39112609, 47.49303435, 0.0 ], [ -93.39109637, 47.49303894, 0.0 ], [ -93.39108803, 47.49306239, 0.0 ], [ -93.39112015, 47.49307122, 0.0 ], [ -93.3911397, 47.49308825, 0.0 ], [ -93.39115506, 47.49310541, 0.0 ], [ -93.39117193, 47.49312801, 0.0 ], [ -93.39118995, 47.49315656, 0.0 ], [ -93.39120347, 47.49318235, 0.0 ], [ -93.39121409, 47.49320897, 0.0 ], [ -93.39122716, 47.49324061, 0.0 ], [ -93.39124699, 47.49327538, 0.0 ], [ -93.3912764, 47.49330828, 0.0 ], [ -93.39131941, 47.49333797, 0.0 ], [ -93.39136835, 47.49336651, 0.0 ], [ -93.39141101, 47.49339422, 0.0 ], [ -93.39144369, 47.49342141, 0.0 ], [ -93.39147722, 47.49345035, 0.0 ], [ -93.39151963, 47.49347547, 0.0 ], [ -93.39156888, 47.49348925, 0.0 ], [ -93.39161529, 47.49349977, 0.0 ], [ -93.39166059, 47.49351607, 0.0 ], [ -93.39170511, 47.4935362, 0.0 ], [ -93.39175106, 47.49355521, 0.0 ], [ -93.39180037, 47.49357387, 0.0 ], [ -93.39185088, 47.49359335, 0.0 ], [ -93.39190138, 47.49361349, 0.0 ], [ -93.39195129, 47.49363375, 0.0 ], [ -93.3919995, 47.4936535, 0.0 ], [ -93.39204838, 47.493669, 0.0 ], [ -93.39210207, 47.49367271, 0.0 ], [ -93.39215933, 47.49366336, 0.0 ], [ -93.39221629, 47.49364835, 0.0 ], [ -93.39227005, 47.49363498, 0.0 ], [ -93.39232447, 47.49361927, 0.0 ], [ -93.39237208, 47.49360179, 0.0 ], [ -93.39241441, 47.49359389, 0.0 ], [ -93.39246075, 47.49359661, 0.0 ], [ -93.39251274, 47.49360359, 0.0 ], [ -93.39256763, 47.49361338, 0.0 ], [ -93.39260842, 47.49362092, 0.0 ], [ -93.39264564, 47.49363327, 0.0 ], [ -93.39267726, 47.49364832, 0.0 ], [ -93.39272205, 47.49366036, 0.0 ], [ -93.39274782, 47.49367515, 0.0 ], [ -93.39276052, 47.49369611, 0.0 ], [ -93.3927926, 47.49371228, 0.0 ], [ -93.39284068, 47.49372329, 0.0 ], [ -93.39288993, 47.49373797, 0.0 ], [ -93.39293483, 47.49375027, 0.0 ], [ -93.39298661, 47.49376713, 0.0 ], [ -93.39303755, 47.49379782, 0.0 ], [ -93.39308365, 47.49382892, 0.0 ], [ -93.39312217, 47.49385024, 0.0 ], [ -93.39315658, 47.49387373, 0.0 ], [ -93.39318192, 47.49389833, 0.0 ], [ -93.3932159, 47.49391603, 0.0 ], [ -93.39324042, 47.49393325, 0.0 ], [ -93.3932587, 47.49394845, 0.0 ], [ -93.39330519, 47.49397318, 0.0 ], [ -93.39333156, 47.49398549, 0.0 ], [ -93.39336402, 47.49399925, 0.0 ], [ -93.39340035, 47.49401848, 0.0 ], [ -93.39343946, 47.49404526, 0.0 ], [ -93.39347474, 47.49407034, 0.0 ], [ -93.39351336, 47.49410239, 0.0 ], [ -93.39355113, 47.49412999, 0.0 ], [ -93.39360269, 47.49416239, 0.0 ], [ -93.39364719, 47.49419494, 0.0 ], [ -93.39367867, 47.49423006, 0.0 ], [ -93.39369513, 47.49425991, 0.0 ], [ -93.39370665, 47.49429587, 0.0 ], [ -93.39371765, 47.49432748, 0.0 ], [ -93.39372124, 47.49436084, 0.0 ], [ -93.39372142, 47.49439295, 0.0 ], [ -93.39371492, 47.49443008, 0.0 ], [ -93.39370906, 47.49447046, 0.0 ], [ -93.39371659, 47.49450438, 0.0 ], [ -93.39372857, 47.49453589, 0.0 ], [ -93.39373877, 47.49456053, 0.0 ], [ -93.39374973, 47.49458907, 0.0 ], [ -93.39375864, 47.4946143, 0.0 ], [ -93.39376675, 47.49464637, 0.0 ], [ -93.39376818, 47.4946771, 0.0 ], [ -93.39377389, 47.49470617, 0.0 ], [ -93.39377626, 47.49472591, 0.0 ], [ -93.39377092, 47.4947504, 0.0 ], [ -93.39376103, 47.49478413, 0.0 ], [ -93.39374686, 47.49481646, 0.0 ], [ -93.3937298, 47.49484644, 0.0 ], [ -93.39370913, 47.49487218, 0.0 ], [ -93.39369059, 47.49489065, 0.0 ], [ -93.3936732, 47.49490795, 0.0 ], [ -93.39366293, 47.49493421, 0.0 ], [ -93.39366581, 47.49496007, 0.0 ], [ -93.39367589, 47.49498137, 0.0 ], [ -93.39368988, 47.49501564, 0.0 ], [ -93.39369508, 47.49503659, 0.0 ], [ -93.39370579, 47.49505871, 0.0 ], [ -93.39371964, 47.4950849, 0.0 ], [ -93.39373563, 47.49511464, 0.0 ], [ -93.39375796, 47.49514242, 0.0 ], [ -93.39378997, 47.49516957, 0.0 ], [ -93.39381807, 47.49519484, 0.0 ], [ -93.3938407, 47.49522035, 0.0 ], [ -93.39385784, 47.49524526, 0.0 ], [ -93.39387543, 47.49526981, 0.0 ], [ -93.39389232, 47.49529938, 0.0 ], [ -93.39390432, 47.49533082, 0.0 ], [ -93.39391305, 47.49536511, 0.0 ], [ -93.39391885, 47.49539617, 0.0 ], [ -93.3939253, 47.4954233, 0.0 ], [ -93.39393127, 47.49544897, 0.0 ], [ -93.39393663, 47.49547307, 0.0 ], [ -93.39395274, 47.4955037, 0.0 ], [ -93.39397004, 47.49552578, 0.0 ], [ -93.39398311, 47.4955433, 0.0 ], [ -93.3940148, 47.49556666, 0.0 ], [ -93.39403386, 47.49558043, 0.0 ], [ -93.39405686, 47.49559031, 0.0 ], [ -93.39409156, 47.49560937, 0.0 ], [ -93.39411614, 47.49562131, 0.0 ], [ -93.39413065, 47.4956418, 0.0 ], [ -93.39410419, 47.49564839, 0.0 ], [ -93.39412181, 47.4956256, 0.0 ], [ -93.39411523, 47.49560188, 0.0 ], [ -93.39408026, 47.49558694, 0.0 ], [ -93.39404664, 47.49557087, 0.0 ], [ -93.394014, 47.49554963, 0.0 ], [ -93.3939813, 47.49552532, 0.0 ], [ -93.39395195, 47.49549663, 0.0 ], [ -93.39393185, 47.49546386, 0.0 ], [ -93.39392568, 47.49543912, 0.0 ], [ -93.39392226, 47.49541161, 0.0 ], [ -93.3939156, 47.49537707, 0.0 ], [ -93.39390491, 47.49533938, 0.0 ], [ -93.39388773, 47.49529945, 0.0 ], [ -93.39387176, 47.49526057, 0.0 ], [ -93.39385465, 47.49522889, 0.0 ], [ -93.39383601, 47.49520645, 0.0 ], [ -93.39381513, 47.49518388, 0.0 ], [ -93.39378833, 47.4951649, 0.0 ], [ -93.39376555, 47.49514843, 0.0 ], [ -93.39374414, 47.49512705, 0.0 ], [ -93.39372139, 47.49510934, 0.0 ], [ -93.39369802, 47.49508725, 0.0 ], [ -93.39367939, 47.49506208, 0.0 ], [ -93.39366615, 47.49504138, 0.0 ], [ -93.39365934, 47.49501571, 0.0 ], [ -93.39365037, 47.49499707, 0.0 ], [ -93.39363352, 47.49496754, 0.0 ], [ -93.39360877, 47.49495095, 0.0 ], [ -93.39357267, 47.49493375, 0.0 ], [ -93.39351807, 47.49493553, 0.0 ], [ -93.39347916, 47.49495583, 0.0 ], [ -93.39344306, 47.4949847, 0.0 ], [ -93.39340882, 47.49501401, 0.0 ], [ -93.3933821, 47.49503978, 0.0 ], [ -93.39336043, 47.49505664, 0.0 ], [ -93.39335318, 47.49508201, 0.0 ], [ -93.39334728, 47.49511672, 0.0 ], [ -93.39334554, 47.49514296, 0.0 ], [ -93.39333902, 47.49517423, 0.0 ], [ -93.3933254, 47.49520448, 0.0 ], [ -93.39330309, 47.49523255, 0.0 ], [ -93.39328951, 47.49525364, 0.0 ], [ -93.39327762, 47.49527247, 0.0 ], [ -93.39324657, 47.49531791, 0.0 ], [ -93.39321501, 47.49535189, 0.0 ], [ -93.39317618, 47.49538839, 0.0 ], [ -93.39313438, 47.49542314, 0.0 ], [ -93.39309074, 47.49545699, 0.0 ], [ -93.39303042, 47.49549025, 0.0 ], [ -93.39298694, 47.49551993, 0.0 ], [ -93.39293896, 47.49554811, 0.0 ], [ -93.39286862, 47.4955863, 0.0 ], [ -93.39279738, 47.49559734, 0.0 ], [ -93.39272603, 47.49561895, 0.0 ], [ -93.39264109, 47.49563119, 0.0 ], [ -93.39255718, 47.495637, 0.0 ], [ -93.39247008, 47.49565075, 0.0 ], [ -93.3923898, 47.49565677, 0.0 ], [ -93.39232176, 47.49566799, 0.0 ], [ -93.39224105, 47.49566176, 0.0 ], [ -93.39217767, 47.49566064, 0.0 ], [ -93.39210508, 47.4956609, 0.0 ], [ -93.39203015, 47.49566674, 0.0 ], [ -93.39195671, 47.49567196, 0.0 ], [ -93.39187327, 47.49568321, 0.0 ], [ -93.3917957, 47.49568577, 0.0 ], [ -93.39171784, 47.49568823, 0.0 ], [ -93.3916383, 47.49570402, 0.0 ], [ -93.39155729, 47.49571485, 0.0 ], [ -93.39148348, 47.49573088, 0.0 ], [ -93.39143041, 47.49573912, 0.0 ], [ -93.391367, 47.49574446, 0.0 ], [ -93.39132426, 47.49575585, 0.0 ], [ -93.39129422, 47.49576087, 0.0 ], [ -93.39126711, 47.49576549, 0.0 ], [ -93.3912473, 47.49578176, 0.0 ], [ -93.39125586, 47.49581501, 0.0 ], [ -93.39124728, 47.49583924, 0.0 ], [ -93.39127249, 47.49584568, 0.0 ], [ -93.39128583, 47.49582689, 0.0 ], [ -93.39129681, 47.4958433, 0.0 ], [ -93.39132808, 47.49583952, 0.0 ], [ -93.39129851, 47.4958485, 0.0 ], [ -93.39127641, 47.49583363, 0.0 ], [ -93.391246, 47.49583369, 0.0 ], [ -93.39127325, 47.49583536, 0.0 ], [ -93.39126576, 47.49581352, 0.0 ], [ -93.39120651, 47.49579013, 0.0 ], [ -93.39115872, 47.49578398, 0.0 ], [ -93.39111436, 47.49578852, 0.0 ], [ -93.39106658, 47.49579692, 0.0 ], [ -93.39101015, 47.49582117, 0.0 ], [ -93.39095545, 47.49583295, 0.0 ], [ -93.39089712, 47.49585348, 0.0 ], [ -93.39084113, 47.49586728, 0.0 ], [ -93.39077611, 47.49588289, 0.0 ], [ -93.39072313, 47.49590069, 0.0 ], [ -93.39067313, 47.49591944, 0.0 ], [ -93.39062388, 47.4959223, 0.0 ], [ -93.39059201, 47.49593296, 0.0 ], [ -93.39056705, 47.49594012, 0.0 ], [ -93.3905443, 47.49592296, 0.0 ], [ -93.39051315, 47.49592835, 0.0 ], [ -93.39048442, 47.4959366, 0.0 ], [ -93.39044791, 47.49595482, 0.0 ], [ -93.39040148, 47.49597929, 0.0 ], [ -93.39035467, 47.49599974, 0.0 ], [ -93.39029189, 47.49604472, 0.0 ], [ -93.39023381, 47.49608299, 0.0 ], [ -93.39017561, 47.4961061, 0.0 ], [ -93.39010416, 47.4961439, 0.0 ], [ -93.39005301, 47.49617589, 0.0 ], [ -93.38999929, 47.49623192, 0.0 ], [ -93.38994289, 47.49626744, 0.0 ], [ -93.38986938, 47.49628932, 0.0 ], [ -93.38981948, 47.49633083, 0.0 ], [ -93.38974795, 47.49635879, 0.0 ], [ -93.3896828, 47.49638473, 0.0 ], [ -93.38961359, 47.49642252, 0.0 ], [ -93.3895624, 47.49644677, 0.0 ], [ -93.38950218, 47.49646383, 0.0 ], [ -93.38945507, 47.49648321, 0.0 ], [ -93.38938319, 47.49650284, 0.0 ], [ -93.38932262, 47.49651362, 0.0 ], [ -93.38927159, 47.49653614, 0.0 ], [ -93.38921413, 47.49654099, 0.0 ], [ -93.38914662, 47.49657511, 0.0 ], [ -93.38909877, 47.49658658, 0.0 ], [ -93.38906091, 47.49659187, 0.0 ], [ -93.38902197, 47.49659899, 0.0 ], [ -93.38897193, 47.49660981, 0.0 ], [ -93.3889243, 47.49662525, 0.0 ], [ -93.38887935, 47.49664127, 0.0 ], [ -93.38885711, 47.49665262, 0.0 ], [ -93.38883791, 47.49666743, 0.0 ], [ -93.38882315, 47.49668276, 0.0 ], [ -93.38880101, 47.49667279, 0.0 ], [ -93.38874266, 47.49668904, 0.0 ], [ -93.38870071, 47.49669488, 0.0 ], [ -93.38864177, 47.49669947, 0.0 ], [ -93.38858871, 47.49669997, 0.0 ], [ -93.38854192, 47.4966981, 0.0 ], [ -93.38850796, 47.496697, 0.0 ], [ -93.3884774, 47.49670309, 0.0 ], [ -93.38844645, 47.49671356, 0.0 ], [ -93.38845992, 47.49673478, 0.0 ], [ -93.38848759, 47.49673736, 0.0 ], [ -93.38850087, 47.49672159, 0.0 ], [ -93.38849996, 47.49670302, 0.0 ], [ -93.38848048, 47.49671813, 0.0 ], [ -93.38847354, 47.49673627, 0.0 ], [ -93.38846205, 47.49671137, 0.0 ], [ -93.38844735, 47.49669554, 0.0 ], [ -93.38847934, 47.49668006, 0.0 ], [ -93.38845997, 47.49669253, 0.0 ], [ -93.3884915, 47.49669084, 0.0 ], [ -93.38851631, 47.49669907, 0.0 ], [ -93.38849072, 47.49670483, 0.0 ], [ -93.38848012, 47.49672261, 0.0 ], [ -93.38845909, 47.49671082, 0.0 ], [ -93.38848263, 47.49668872, 0.0 ], [ -93.38851465, 47.4966799, 0.0 ], [ -93.38849988, 47.49669594, 0.0 ], [ -93.38848986, 47.496713, 0.0 ], [ -93.38843607, 47.49672302, 0.0 ], [ -93.38841351, 47.49674087, 0.0 ], [ -93.38841042, 47.49677159, 0.0 ], [ -93.38842469, 47.49680154, 0.0 ], [ -93.38845226, 47.49682058, 0.0 ], [ -93.38849671, 47.49682128, 0.0 ], [ -93.38853025, 47.49680432, 0.0 ], [ -93.38855408, 47.49678205, 0.0 ], [ -93.38857184, 47.4967483, 0.0 ], [ -93.38858841, 47.49671094, 0.0 ], [ -93.38861085, 47.4966894, 0.0 ], [ -93.38864052, 47.49667884, 0.0 ], [ -93.38867878, 47.49667403, 0.0 ], [ -93.38872466, 47.49666621, 0.0 ], [ -93.38877596, 47.49665678, 0.0 ], [ -93.38883154, 47.49664411, 0.0 ], [ -93.38888611, 47.49662825, 0.0 ], [ -93.38893928, 47.49661553, 0.0 ], [ -93.38898862, 47.4966073, 0.0 ], [ -93.38904029, 47.49659888, 0.0 ], [ -93.38908326, 47.49659162, 0.0 ], [ -93.38914217, 47.49657564, 0.0 ], [ -93.38919626, 47.49655851, 0.0 ], [ -93.38924495, 47.49654283, 0.0 ], [ -93.38929811, 47.49652971, 0.0 ], [ -93.3893701, 47.49651205, 0.0 ], [ -93.38948444, 47.49646819, 0.0 ], [ -93.38955977, 47.4964331, 0.0 ], [ -93.38962618, 47.49640973, 0.0 ], [ -93.38967841, 47.49638998, 0.0 ], [ -93.3897365, 47.49636958, 0.0 ], [ -93.38980194, 47.49632311, 0.0 ], [ -93.38988145, 47.49628057, 0.0 ], [ -93.38994513, 47.49624512, 0.0 ], [ -93.39001696, 47.4962081, 0.0 ], [ -93.39009663, 47.49617599, 0.0 ], [ -93.39014683, 47.49612503, 0.0 ], [ -93.39020497, 47.49607487, 0.0 ], [ -93.39026937, 47.49604546, 0.0 ], [ -93.39032231, 47.49600826, 0.0 ], [ -93.39038768, 47.49596802, 0.0 ], [ -93.39044849, 47.4959479, 0.0 ], [ -93.39051318, 47.49591216, 0.0 ], [ -93.39057665, 47.49588591, 0.0 ], [ -93.39065601, 47.49587988, 0.0 ], [ -93.39073097, 47.4958687, 0.0 ], [ -93.39079376, 47.49585739, 0.0 ], [ -93.39086502, 47.49583512, 0.0 ], [ -93.39092101, 47.4958161, 0.0 ], [ -93.39099021, 47.49579918, 0.0 ], [ -93.39104108, 47.49578552, 0.0 ], [ -93.39109688, 47.49577077, 0.0 ], [ -93.39114061, 47.49576757, 0.0 ], [ -93.39118784, 47.49574349, 0.0 ], [ -93.39120971, 47.49572675, 0.0 ], [ -93.39123154, 47.4957141, 0.0 ], [ -93.39120866, 47.49572326, 0.0 ], [ -93.39122081, 47.49570701, 0.0 ], [ -93.39122895, 47.49567644, 0.0 ], [ -93.39122866, 47.49564825, 0.0 ], [ -93.39122151, 47.49561641, 0.0 ], [ -93.39120059, 47.49557944, 0.0 ], [ -93.3911734, 47.4955423, 0.0 ], [ -93.39115492, 47.49550497, 0.0 ], [ -93.39114408, 47.49546911, 0.0 ], [ -93.3911379, 47.49543887, 0.0 ], [ -93.39114217, 47.49540755, 0.0 ], [ -93.39112689, 47.49536719, 0.0 ], [ -93.39109743, 47.49533401, 0.0 ], [ -93.39105336, 47.49531053, 0.0 ], [ -93.3910161, 47.49528909, 0.0 ], [ -93.39100496, 47.4952485, 0.0 ], [ -93.39097103, 47.49520411, 0.0 ], [ -93.39094792, 47.49516741, 0.0 ], [ -93.39093432, 47.4951244, 0.0 ], [ -93.39091339, 47.49509114, 0.0 ], [ -93.39091635, 47.49506394, 0.0 ], [ -93.3909364, 47.49502118, 0.0 ], [ -93.39094692, 47.49499095, 0.0 ], [ -93.39094434, 47.49496053, 0.0 ], [ -93.39094372, 47.49492528, 0.0 ], [ -93.39095361, 47.49489683, 0.0 ], [ -93.39096068, 47.49486441, 0.0 ], [ -93.39096617, 47.49483806, 0.0 ], [ -93.39097369, 47.49481682, 0.0 ], [ -93.39098133, 47.49479592, 0.0 ], [ -93.39098492, 47.49477596, 0.0 ], [ -93.39098807, 47.49475362, 0.0 ], [ -93.39100199, 47.49471005, 0.0 ], [ -93.39098913, 47.49467942, 0.0 ], [ -93.39098845, 47.49465159, 0.0 ], [ -93.3910022, 47.49462516, 0.0 ], [ -93.39100801, 47.4945964, 0.0 ], [ -93.39100659, 47.49457836, 0.0 ], [ -93.39097917, 47.49457454, 0.0 ], [ -93.39097829, 47.49460125, 0.0 ], [ -93.39099586, 47.49461563, 0.0 ], [ -93.39097017, 47.49460729, 0.0 ], [ -93.39096133, 47.49457223, 0.0 ], [ -93.39096702, 47.49454499, 0.0 ], [ -93.39097239, 47.49452498, 0.0 ], [ -93.39098403, 47.49450859, 0.0 ], [ -93.39099428, 47.49448894, 0.0 ], [ -93.39096336, 47.49448071, 0.0 ], [ -93.39095775, 47.4944997, 0.0 ], [ -93.39097656, 47.49451386, 0.0 ], [ -93.39100019, 47.49449349, 0.0 ], [ -93.39103028, 47.49447577, 0.0 ], [ -93.39107601, 47.49447539, 0.0 ], [ -93.3911133, 47.4944695, 0.0 ], [ -93.39116041, 47.49447104, 0.0 ], [ -93.39121095, 47.49447389, 0.0 ], [ -93.39126241, 47.49447695, 0.0 ], [ -93.39130551, 47.49447849, 0.0 ], [ -93.39133848, 47.4944836, 0.0 ], [ -93.3913724, 47.49448576, 0.0 ], [ -93.39140658, 47.49448731, 0.0 ], [ -93.39144145, 47.49449159, 0.0 ], [ -93.39147489, 47.49449634, 0.0 ], [ -93.39150618, 47.49449502, 0.0 ], [ -93.39153346, 47.49448979, 0.0 ], [ -93.39156537, 47.49449057, 0.0 ], [ -93.3916093, 47.49449687, 0.0 ], [ -93.39165997, 47.49450846, 0.0 ], [ -93.39171804, 47.49451379, 0.0 ], [ -93.39177583, 47.49451725, 0.0 ], [ -93.39182658, 47.49452495, 0.0 ], [ -93.39187858, 47.49453643, 0.0 ], [ -93.39193293, 47.49455583, 0.0 ], [ -93.39198227, 47.49457864, 0.0 ], [ -93.39202867, 47.49459982, 0.0 ], [ -93.3920758, 47.49461296, 0.0 ], [ -93.39212359, 47.49461948, 0.0 ], [ -93.39215802, 47.49462336, 0.0 ], [ -93.39219859, 47.49462638, 0.0 ], [ -93.39225782, 47.49463884, 0.0 ], [ -93.39231296, 47.49465557, 0.0 ], [ -93.39236075, 47.49466298, 0.0 ], [ -93.39241502, 47.4946719, 0.0 ], [ -93.39247299, 47.49468898, 0.0 ], [ -93.39252248, 47.49470818, 0.0 ], [ -93.39258025, 47.49472298, 0.0 ], [ -93.39263854, 47.49473264, 0.0 ], [ -93.39269276, 47.49474306, 0.0 ], [ -93.39274831, 47.49475454, 0.0 ], [ -93.39279985, 47.49476476, 0.0 ], [ -93.39285902, 47.49477809, 0.0 ], [ -93.39291594, 47.49478614, 0.0 ], [ -93.39297178, 47.49479176, 0.0 ], [ -93.3930324, 47.49479325, 0.0 ], [ -93.39308244, 47.49479097, 0.0 ], [ -93.39311873, 47.49478897, 0.0 ], [ -93.39315003, 47.49479233, 0.0 ], [ -93.39318884, 47.49480116, 0.0 ], [ -93.393227, 47.49481154, 0.0 ], [ -93.39326454, 47.49482105, 0.0 ], [ -93.39329617, 47.49482745, 0.0 ], [ -93.3933332, 47.4948351, 0.0 ], [ -93.39337713, 47.49484464, 0.0 ], [ -93.39342084, 47.49485652, 0.0 ], [ -93.39345762, 47.49486579, 0.0 ], [ -93.39349869, 47.49486746, 0.0 ], [ -93.39353489, 47.49486984, 0.0 ], [ -93.39356534, 47.49487476, 0.0 ], [ -93.39359564, 47.49489458, 0.0 ], [ -93.39363594, 47.49490555, 0.0 ], [ -93.39367324, 47.49490481, 0.0 ], [ -93.39371585, 47.49489914, 0.0 ], [ -93.39375676, 47.49489427, 0.0 ], [ -93.39380019, 47.49489024, 0.0 ], [ -93.39384988, 47.49488237, 0.0 ], [ -93.39390159, 47.49486882, 0.0 ], [ -93.39395916, 47.49485486, 0.0 ], [ -93.39402238, 47.49484348, 0.0 ], [ -93.39409159, 47.49483061, 0.0 ], [ -93.39416336, 47.4948184, 0.0 ], [ -93.39423315, 47.49481046, 0.0 ], [ -93.39430075, 47.49480931, 0.0 ], [ -93.39437546, 47.494803, 0.0 ], [ -93.39445365, 47.49480006, 0.0 ], [ -93.39454043, 47.49479918, 0.0 ], [ -93.39462793, 47.49480316, 0.0 ], [ -93.39470577, 47.49480961, 0.0 ], [ -93.3947873, 47.49482167, 0.0 ], [ -93.39486527, 47.49482617, 0.0 ], [ -93.39494323, 47.49483358, 0.0 ], [ -93.39501981, 47.4948352, 0.0 ], [ -93.39509845, 47.4948326, 0.0 ], [ -93.39517877, 47.49483335, 0.0 ], [ -93.39525611, 47.49483207, 0.0 ], [ -93.39533176, 47.49482609, 0.0 ], [ -93.39541201, 47.49482129, 0.0 ], [ -93.3954866, 47.4948128, 0.0 ], [ -93.39555445, 47.49480477, 0.0 ], [ -93.39561042, 47.4947964, 0.0 ], [ -93.39569318, 47.49479368, 0.0 ], [ -93.39575011, 47.49479015, 0.0 ], [ -93.39580742, 47.4947778, 0.0 ], [ -93.39586775, 47.49476879, 0.0 ], [ -93.39592313, 47.49475781, 0.0 ], [ -93.39596616, 47.49474984, 0.0 ], [ -93.39600975, 47.49474128, 0.0 ], [ -93.39605269, 47.4947339, 0.0 ], [ -93.39609908, 47.49472775, 0.0 ], [ -93.39613478, 47.49472216, 0.0 ], [ -93.39617936, 47.49471459, 0.0 ], [ -93.39622681, 47.4947048, 0.0 ], [ -93.39627231, 47.49469926, 0.0 ], [ -93.39631187, 47.49469638, 0.0 ], [ -93.39634847, 47.4946899, 0.0 ], [ -93.39638713, 47.49468016, 0.0 ], [ -93.39642773, 47.49467277, 0.0 ], [ -93.3964716, 47.49466403, 0.0 ], [ -93.3965131, 47.49465572, 0.0 ], [ -93.39655303, 47.49464967, 0.0 ], [ -93.39659382, 47.49464785, 0.0 ], [ -93.39662541, 47.49464856, 0.0 ], [ -93.39665292, 47.4946433, 0.0 ], [ -93.3966861, 47.49464272, 0.0 ], [ -93.39674215, 47.49464796, 0.0 ], [ -93.39677115, 47.49464171, 0.0 ], [ -93.39680249, 47.49464005, 0.0 ], [ -93.39684329, 47.49463148, 0.0 ], [ -93.39687507, 47.49464197, 0.0 ], [ -93.3968839, 47.49461459, 0.0 ], [ -93.39686231, 47.49462594, 0.0 ], [ -93.39683511, 47.49462046, 0.0 ], [ -93.39678677, 47.49462192, 0.0 ], [ -93.39675804, 47.49462704, 0.0 ], [ -93.39672439, 47.494633, 0.0 ], [ -93.39668153, 47.4946371, 0.0 ], [ -93.39663951, 47.49464038, 0.0 ], [ -93.3965897, 47.49464272, 0.0 ], [ -93.39653707, 47.49464748, 0.0 ], [ -93.39649606, 47.49465267, 0.0 ], [ -93.39645451, 47.49465828, 0.0 ], [ -93.39642214, 47.4946628, 0.0 ], [ -93.39638252, 47.49466996, 0.0 ], [ -93.39634118, 47.49468055, 0.0 ], [ -93.39629277, 47.49468967, 0.0 ], [ -93.39624948, 47.49469526, 0.0 ], [ -93.39619838, 47.49470233, 0.0 ], [ -93.39614292, 47.49471082, 0.0 ], [ -93.39608883, 47.49472122, 0.0 ], [ -93.39603887, 47.49473009, 0.0 ], [ -93.39598769, 47.49473899, 0.0 ], [ -93.39592741, 47.49474887, 0.0 ], [ -93.39585961, 47.49475828, 0.0 ], [ -93.39579134, 47.49476972, 0.0 ], [ -93.3957303, 47.49478039, 0.0 ], [ -93.39568012, 47.49478588, 0.0 ], [ -93.39562543, 47.49478977, 0.0 ], [ -93.39556707, 47.49479135, 0.0 ], [ -93.39549097, 47.49480238, 0.0 ], [ -93.39542985, 47.49480964, 0.0 ], [ -93.39536561, 47.49481564, 0.0 ], [ -93.39529829, 47.49481451, 0.0 ], [ -93.39522473, 47.49482206, 0.0 ], [ -93.39515627, 47.49482428, 0.0 ], [ -93.39508626, 47.49482625, 0.0 ], [ -93.39501913, 47.49482784, 0.0 ], [ -93.39495217, 47.49482883, 0.0 ], [ -93.39488253, 47.49482377, 0.0 ], [ -93.39481704, 47.49481947, 0.0 ], [ -93.39474432, 47.49481505, 0.0 ], [ -93.3946769, 47.49480735, 0.0 ], [ -93.39460838, 47.4948039, 0.0 ], [ -93.39453729, 47.49480148, 0.0 ], [ -93.39446413, 47.4947994, 0.0 ], [ -93.39438743, 47.49479891, 0.0 ], [ -93.39430825, 47.49480001, 0.0 ], [ -93.39423769, 47.49480701, 0.0 ], [ -93.39416594, 47.49481474, 0.0 ], [ -93.39410245, 47.49482657, 0.0 ], [ -93.39404248, 47.49483237, 0.0 ], [ -93.39400038, 47.49483591, 0.0 ], [ -93.39397332, 47.49484045, 0.0 ], [ -93.39392672, 47.49486103, 0.0 ], [ -93.39388315, 47.49487394, 0.0 ], [ -93.39382622, 47.49488513, 0.0 ], [ -93.39377074, 47.49489323, 0.0 ], [ -93.39371851, 47.49489895, 0.0 ], [ -93.39366127, 47.49490323, 0.0 ], [ -93.39359476, 47.49490136, 0.0 ], [ -93.39353096, 47.49489982, 0.0 ], [ -93.39349125, 47.49488368, 0.0 ], [ -93.39344629, 47.49487243, 0.0 ], [ -93.39340417, 47.4948589, 0.0 ], [ -93.39333674, 47.49483889, 0.0 ], [ -93.39329464, 47.49482842, 0.0 ], [ -93.39326027, 47.49482376, 0.0 ], [ -93.39322286, 47.49481741, 0.0 ], [ -93.39316731, 47.49481094, 0.0 ], [ -93.39310283, 47.49480417, 0.0 ], [ -93.39303247, 47.49479375, 0.0 ], [ -93.39297989, 47.49478432, 0.0 ], [ -93.39294254, 47.49477714, 0.0 ], [ -93.39290528, 47.49476287, 0.0 ], [ -93.39287055, 47.49474565, 0.0 ], [ -93.39281324, 47.49473992, 0.0 ], [ -93.39276078, 47.49474149, 0.0 ], [ -93.39271903, 47.49474067, 0.0 ], [ -93.39266115, 47.49473383, 0.0 ], [ -93.39261249, 47.49472363, 0.0 ], [ -93.39256142, 47.49471409, 0.0 ], [ -93.39250148, 47.4947046, 0.0 ], [ -93.39244532, 47.49469723, 0.0 ], [ -93.39238717, 47.49468521, 0.0 ], [ -93.39232423, 47.49467239, 0.0 ], [ -93.39228851, 47.49466216, 0.0 ], [ -93.39225256, 47.49465552, 0.0 ], [ -93.3922131, 47.49464821, 0.0 ], [ -93.3921713, 47.49463158, 0.0 ], [ -93.39211475, 47.49460828, 0.0 ], [ -93.39205339, 47.49458727, 0.0 ], [ -93.39197469, 47.49456086, 0.0 ], [ -93.39190826, 47.49454078, 0.0 ], [ -93.39184749, 47.49452736, 0.0 ], [ -93.39178725, 47.49451529, 0.0 ], [ -93.39173463, 47.49451052, 0.0 ], [ -93.39169016, 47.49450743, 0.0 ], [ -93.39166009, 47.49450462, 0.0 ], [ -93.39162868, 47.49450374, 0.0 ], [ -93.39159393, 47.494501, 0.0 ], [ -93.39156638, 47.49450057, 0.0 ], [ -93.39152658, 47.49450271, 0.0 ], [ -93.3913906, 47.49452846, 0.0 ], [ -93.39131671, 47.49451925, 0.0 ], [ -93.39124101, 47.4945176, 0.0 ], [ -93.39121692, 47.49450863, 0.0 ], [ -93.39115211, 47.49451628, 0.0 ], [ -93.39108609, 47.4945207, 0.0 ], [ -93.39103818, 47.49452847, 0.0 ], [ -93.39099117, 47.49452791, 0.0 ], [ -93.39094657, 47.49452918, 0.0 ], [ -93.39091647, 47.49453248, 0.0 ], [ -93.39088483, 47.49453856, 0.0 ], [ -93.39086632, 47.49456167, 0.0 ], [ -93.39086697, 47.49458101, 0.0 ], [ -93.39086526, 47.49460412, 0.0 ], [ -93.39086469, 47.4946331, 0.0 ], [ -93.39084931, 47.49466152, 0.0 ], [ -93.39082743, 47.49468525, 0.0 ], [ -93.3907959, 47.49470345, 0.0 ], [ -93.39076474, 47.49471873, 0.0 ], [ -93.39073921, 47.49474362, 0.0 ], [ -93.39073092, 47.4947846, 0.0 ], [ -93.39074425, 47.49482261, 0.0 ], [ -93.39076479, 47.49485617, 0.0 ], [ -93.39077315, 47.49488902, 0.0 ], [ -93.39077993, 47.49492928, 0.0 ], [ -93.39079518, 47.49496291, 0.0 ], [ -93.39080617, 47.49500162, 0.0 ], [ -93.39080789, 47.49505144, 0.0 ], [ -93.39081923, 47.49509784, 0.0 ], [ -93.39083647, 47.49514692, 0.0 ], [ -93.39085559, 47.49519211, 0.0 ], [ -93.39090543, 47.49523393, 0.0 ], [ -93.39092908, 47.49527745, 0.0 ], [ -93.39094419, 47.49532466, 0.0 ], [ -93.39096881, 47.49535803, 0.0 ], [ -93.39098832, 47.49540298, 0.0 ], [ -93.3909992, 47.49544298, 0.0 ], [ -93.39102297, 47.4954783, 0.0 ], [ -93.39104471, 47.49551312, 0.0 ], [ -93.39107311, 47.49555432, 0.0 ], [ -93.39109552, 47.4955923, 0.0 ], [ -93.39111374, 47.49562453, 0.0 ], [ -93.3911368, 47.49565265, 0.0 ], [ -93.39116097, 47.49567527, 0.0 ], [ -93.39117018, 47.49569455, 0.0 ], [ -93.39117205, 47.49572883, 0.0 ], [ -93.39117946, 47.49575418, 0.0 ], [ -93.39120162, 47.49577046, 0.0 ], [ -93.39124557, 47.49577049, 0.0 ], [ -93.39128189, 47.49574877, 0.0 ], [ -93.39128713, 47.49571921, 0.0 ], [ -93.39127878, 47.4956944, 0.0 ], [ -93.39120241, 47.49566433, 0.0 ], [ -93.39117166, 47.49562301, 0.0 ], [ -93.39114506, 47.49557717, 0.0 ], [ -93.39111081, 47.49552405, 0.0 ], [ -93.39108043, 47.49547194, 0.0 ], [ -93.3910437, 47.49541781, 0.0 ], [ -93.3910131, 47.49536354, 0.0 ], [ -93.39098317, 47.49530999, 0.0 ], [ -93.39095513, 47.49526206, 0.0 ], [ -93.39093066, 47.49521117, 0.0 ], [ -93.39089343, 47.49517264, 0.0 ], [ -93.39088, 47.49512372, 0.0 ], [ -93.39085823, 47.49507701, 0.0 ], [ -93.39083684, 47.4950284, 0.0 ], [ -93.39081649, 47.49498107, 0.0 ], [ -93.39079999, 47.49493503, 0.0 ], [ -93.39078559, 47.4948913, 0.0 ], [ -93.39076881, 47.49484922, 0.0 ], [ -93.39075121, 47.49481513, 0.0 ], [ -93.39072839, 47.49478283, 0.0 ], [ -93.39069382, 47.49475731, 0.0 ], [ -93.390653, 47.49474568, 0.0 ], [ -93.39061895, 47.49474038, 0.0 ], [ -93.39057884, 47.49476033, 0.0 ], [ -93.39053124, 47.49477822, 0.0 ], [ -93.39045733, 47.4948236, 0.0 ], [ -93.39041091, 47.49485205, 0.0 ], [ -93.39034701, 47.49487606, 0.0 ], [ -93.39030134, 47.49489614, 0.0 ], [ -93.39025881, 47.49491476, 0.0 ], [ -93.39020829, 47.49493807, 0.0 ], [ -93.39015311, 47.49494378, 0.0 ], [ -93.39009489, 47.49496358, 0.0 ], [ -93.39003525, 47.49498726, 0.0 ], [ -93.38997435, 47.49500805, 0.0 ], [ -93.38991863, 47.49502986, 0.0 ], [ -93.38986888, 47.49503183, 0.0 ], [ -93.38983657, 47.49504023, 0.0 ], [ -93.3898233, 47.49505791, 0.0 ], [ -93.38979956, 47.495066, 0.0 ], [ -93.3897628, 47.4950773, 0.0 ], [ -93.38973598, 47.49508986, 0.0 ], [ -93.38968602, 47.49510109, 0.0 ], [ -93.38963337, 47.49511025, 0.0 ], [ -93.38959126, 47.4951258, 0.0 ], [ -93.38955578, 47.49514211, 0.0 ], [ -93.38949718, 47.49517013, 0.0 ], [ -93.38943964, 47.4951912, 0.0 ], [ -93.38936693, 47.49521184, 0.0 ], [ -93.38930372, 47.49523217, 0.0 ], [ -93.38923815, 47.49525435, 0.0 ], [ -93.38914493, 47.49527903, 0.0 ], [ -93.38911207, 47.49529437, 0.0 ], [ -93.3890944, 47.49531766, 0.0 ], [ -93.38902593, 47.49535704, 0.0 ], [ -93.38899033, 47.49536329, 0.0 ], [ -93.3889297, 47.49538955, 0.0 ], [ -93.3888771, 47.49540172, 0.0 ], [ -93.3887972, 47.49542217, 0.0 ], [ -93.38874011, 47.49544198, 0.0 ], [ -93.38865581, 47.49544586, 0.0 ], [ -93.38859717, 47.49546655, 0.0 ], [ -93.3885354, 47.49547722, 0.0 ], [ -93.38846455, 47.49547119, 0.0 ], [ -93.38839559, 47.49547724, 0.0 ], [ -93.3883332, 47.4954787, 0.0 ], [ -93.38826167, 47.49546158, 0.0 ], [ -93.38819608, 47.49544081, 0.0 ], [ -93.38812977, 47.49542284, 0.0 ], [ -93.38807353, 47.49540671, 0.0 ], [ -93.38803356, 47.49539817, 0.0 ], [ -93.38800432, 47.49538885, 0.0 ], [ -93.38800099, 47.49536292, 0.0 ], [ -93.38797105, 47.49536314, 0.0 ], [ -93.38791037, 47.49535143, 0.0 ], [ -93.38785135, 47.49533963, 0.0 ], [ -93.38779358, 47.49533453, 0.0 ], [ -93.38772932, 47.49533, 0.0 ], [ -93.38766677, 47.49531946, 0.0 ], [ -93.38760753, 47.49530395, 0.0 ], [ -93.38755359, 47.4952883, 0.0 ], [ -93.38749931, 47.49526839, 0.0 ], [ -93.38741995, 47.49525005, 0.0 ], [ -93.3873434, 47.49523548, 0.0 ], [ -93.38729517, 47.49525805, 0.0 ], [ -93.38726365, 47.4952442, 0.0 ], [ -93.38722153, 47.49524253, 0.0 ], [ -93.38717001, 47.4952362, 0.0 ], [ -93.38714565, 47.49522615, 0.0 ], [ -93.38711203, 47.49523298, 0.0 ], [ -93.38707931, 47.49523499, 0.0 ], [ -93.38706426, 47.49520918, 0.0 ], [ -93.3870339, 47.49519871, 0.0 ], [ -93.38700996, 47.49519031, 0.0 ], [ -93.38704979, 47.4951985, 0.0 ], [ -93.38708433, 47.4952087, 0.0 ], [ -93.38706144, 47.49519785, 0.0 ], [ -93.38703997, 47.49520914, 0.0 ], [ -93.387011, 47.49520314, 0.0 ], [ -93.38698447, 47.49520614, 0.0 ], [ -93.38701261, 47.4952122, 0.0 ], [ -93.38698606, 47.49521406, 0.0 ], [ -93.3869746, 47.49523181, 0.0 ], [ -93.38702071, 47.49523693, 0.0 ], [ -93.38706131, 47.49523707, 0.0 ], [ -93.38711307, 47.49523474, 0.0 ], [ -93.38717192, 47.49523349, 0.0 ], [ -93.38722607, 47.4952381, 0.0 ], [ -93.38728022, 47.49524428, 0.0 ], [ -93.38733594, 47.49525043, 0.0 ], [ -93.38739808, 47.4952581, 0.0 ], [ -93.38748034, 47.49526121, 0.0 ], [ -93.38754324, 47.49528188, 0.0 ], [ -93.3876156, 47.49529764, 0.0 ], [ -93.38766856, 47.49532051, 0.0 ], [ -93.38774312, 47.4953319, 0.0 ], [ -93.38780527, 47.49533813, 0.0 ], [ -93.38787342, 47.49535282, 0.0 ], [ -93.38793798, 47.49535968, 0.0 ], [ -93.38799477, 47.49537189, 0.0 ], [ -93.38805308, 47.49538058, 0.0 ], [ -93.38811601, 47.49539428, 0.0 ], [ -93.38818334, 47.49539945, 0.0 ], [ -93.38824789, 47.49540715, 0.0 ], [ -93.38832703, 47.49540892, 0.0 ], [ -93.38839208, 47.49540479, 0.0 ], [ -93.38844888, 47.49539995, 0.0 ], [ -93.38851169, 47.49540006, 0.0 ], [ -93.3885833, 47.49539653, 0.0 ], [ -93.38866213, 47.49539485, 0.0 ], [ -93.38871869, 47.49538944, 0.0 ], [ -93.38878482, 47.49537992, 0.0 ], [ -93.38884054, 47.49536743, 0.0 ], [ -93.38889334, 47.4953397, 0.0 ], [ -93.38894358, 47.49531232, 0.0 ], [ -93.38899915, 47.49529782, 0.0 ], [ -93.38905692, 47.4952776, 0.0 ], [ -93.38909266, 47.49525691, 0.0 ], [ -93.38913729, 47.49524004, 0.0 ], [ -93.38918824, 47.49522592, 0.0 ], [ -93.38926866, 47.49521098, 0.0 ], [ -93.38932571, 47.49518923, 0.0 ], [ -93.38939384, 47.49516597, 0.0 ], [ -93.38944523, 47.49514431, 0.0 ], [ -93.38951258, 47.49512331, 0.0 ], [ -93.38957534, 47.49510142, 0.0 ], [ -93.3896356, 47.49507262, 0.0 ], [ -93.38969329, 47.49505156, 0.0 ], [ -93.38975872, 47.49504028, 0.0 ], [ -93.38984317, 47.49501875, 0.0 ], [ -93.38991772, 47.49500004, 0.0 ], [ -93.38998017, 47.4949856, 0.0 ], [ -93.39005059, 47.49496619, 0.0 ], [ -93.39010498, 47.4949389, 0.0 ], [ -93.39017008, 47.49490988, 0.0 ], [ -93.39022963, 47.49488659, 0.0 ], [ -93.39028258, 47.49486067, 0.0 ], [ -93.39032259, 47.49481963, 0.0 ], [ -93.39037987, 47.49478326, 0.0 ], [ -93.39045473, 47.49477513, 0.0 ], [ -93.39049202, 47.4947589, 0.0 ], [ -93.39054005, 47.4947324, 0.0 ], [ -93.3905934, 47.49472749, 0.0 ], [ -93.39064171, 47.49470437, 0.0 ], [ -93.39069204, 47.49468704, 0.0 ], [ -93.39073688, 47.49466472, 0.0 ], [ -93.39078304, 47.49464576, 0.0 ], [ -93.39082922, 47.49463544, 0.0 ], [ -93.3908736, 47.49463461, 0.0 ], [ -93.39091492, 47.49463123, 0.0 ], [ -93.39092028, 47.49459268, 0.0 ], [ -93.39091737, 47.4945663, 0.0 ], [ -93.39092203, 47.49453681, 0.0 ], [ -93.39093235, 47.4945003, 0.0 ], [ -93.39093819, 47.49446783, 0.0 ], [ -93.39094126, 47.49442761, 0.0 ], [ -93.39094168, 47.49438651, 0.0 ], [ -93.39094876, 47.49432679, 0.0 ], [ -93.39095717, 47.49427658, 0.0 ], [ -93.39096342, 47.49422984, 0.0 ], [ -93.39097059, 47.49418339, 0.0 ], [ -93.39099057, 47.49414348, 0.0 ], [ -93.39099868, 47.49408733, 0.0 ], [ -93.39099662, 47.4940287, 0.0 ], [ -93.39098355, 47.49396823, 0.0 ], [ -93.39100026, 47.49390285, 0.0 ], [ -93.39099442, 47.49385587, 0.0 ], [ -93.39099075, 47.49380088, 0.0 ], [ -93.39098191, 47.49374744, 0.0 ], [ -93.39094855, 47.49369674, 0.0 ], [ -93.3909539, 47.49363946, 0.0 ], [ -93.3909469, 47.49360252, 0.0 ], [ -93.3909274, 47.49355318, 0.0 ], [ -93.39092979, 47.49350919, 0.0 ], [ -93.39092709, 47.49346316, 0.0 ], [ -93.39092699, 47.49341652, 0.0 ], [ -93.39092987, 47.49336247, 0.0 ], [ -93.39093176, 47.4933044, 0.0 ], [ -93.39093248, 47.49325272, 0.0 ], [ -93.39094164, 47.49320138, 0.0 ], [ -93.39094279, 47.49315528, 0.0 ], [ -93.3909431, 47.49311475, 0.0 ], [ -93.39094895, 47.4930752, 0.0 ], [ -93.39095378, 47.4930357, 0.0 ], [ -93.39095437, 47.49299218, 0.0 ], [ -93.39095073, 47.49294959, 0.0 ], [ -93.39093604, 47.49290881, 0.0 ], [ -93.39089125, 47.49287332, 0.0 ], [ -93.39084169, 47.4928393, 0.0 ], [ -93.39079049, 47.49280016, 0.0 ], [ -93.39074718, 47.4927704, 0.0 ], [ -93.39071454, 47.49274078, 0.0 ], [ -93.39068901, 47.49271038, 0.0 ], [ -93.39066904, 47.49268399, 0.0 ], [ -93.39065401, 47.49265512, 0.0 ], [ -93.39064216, 47.49262022, 0.0 ], [ -93.39062907, 47.49258261, 0.0 ], [ -93.390607, 47.49254827, 0.0 ], [ -93.39057825, 47.49252035, 0.0 ], [ -93.39054271, 47.49249559, 0.0 ], [ -93.39050148, 47.49248226, 0.0 ], [ -93.39047592, 47.49247611, 0.0 ], [ -93.39045193, 47.49246543, 0.0 ], [ -93.39040196, 47.49244484, 0.0 ], [ -93.39036739, 47.49243639, 0.0 ], [ -93.39034357, 47.49242694, 0.0 ], [ -93.39032053, 47.49241698, 0.0 ], [ -93.3902839, 47.49240052, 0.0 ], [ -93.39025561, 47.49238633, 0.0 ], [ -93.39022061, 47.49237053, 0.0 ], [ -93.39016974, 47.4923574, 0.0 ], [ -93.39011113, 47.49235066, 0.0 ], [ -93.39005153, 47.49234815, 0.0 ], [ -93.38998919, 47.49234179, 0.0 ], [ -93.3899293, 47.49233522, 0.0 ], [ -93.38985155, 47.49233893, 0.0 ], [ -93.38980162, 47.49234835, 0.0 ], [ -93.38975855, 47.4923681, 0.0 ], [ -93.38970203, 47.49238991, 0.0 ], [ -93.38965857, 47.49241742, 0.0 ], [ -93.389617, 47.4924408, 0.0 ], [ -93.38958628, 47.49244869, 0.0 ], [ -93.38955671, 47.4924612, 0.0 ], [ -93.38954722, 47.4924784, 0.0 ], [ -93.38953814, 47.49250618, 0.0 ], [ -93.38952594, 47.49254026, 0.0 ], [ -93.38951408, 47.49257254, 0.0 ], [ -93.38950583, 47.49259544, 0.0 ], [ -93.38950144, 47.49261807, 0.0 ], [ -93.38952853, 47.49257317, 0.0 ], [ -93.38954023, 47.4925405, 0.0 ], [ -93.38954936, 47.4925161, 0.0 ], [ -93.3895648, 47.49250064, 0.0 ], [ -93.38952489, 47.49252986, 0.0 ], [ -93.38950021, 47.49255435, 0.0 ], [ -93.38947435, 47.49257951, 0.0 ], [ -93.38944472, 47.49260738, 0.0 ], [ -93.38940953, 47.49263802, 0.0 ], [ -93.38937335, 47.49266724, 0.0 ], [ -93.38933265, 47.49269746, 0.0 ], [ -93.38929096, 47.49272958, 0.0 ], [ -93.38924416, 47.49276585, 0.0 ], [ -93.38919633, 47.49280318, 0.0 ], [ -93.38914434, 47.49283729, 0.0 ], [ -93.38908993, 47.49286778, 0.0 ], [ -93.38904087, 47.49289843, 0.0 ], [ -93.38899993, 47.49291971, 0.0 ], [ -93.38895402, 47.492948, 0.0 ], [ -93.38891374, 47.49297162, 0.0 ], [ -93.3888766, 47.49299079, 0.0 ], [ -93.38883454, 47.49301412, 0.0 ], [ -93.38879956, 47.49303666, 0.0 ], [ -93.38876625, 47.49306043, 0.0 ], [ -93.38873815, 47.49308236, 0.0 ], [ -93.38871774, 47.49309759, 0.0 ], [ -93.3886957, 47.49311431, 0.0 ], [ -93.38868577, 47.49313677, 0.0 ], [ -93.38867697, 47.49315838, 0.0 ], [ -93.38866275, 47.49318018, 0.0 ], [ -93.38864005, 47.49320607, 0.0 ], [ -93.38862446, 47.49322848, 0.0 ], [ -93.3886097, 47.49324957, 0.0 ], [ -93.38859478, 47.49327031, 0.0 ], [ -93.38858489, 47.49329335, 0.0 ], [ -93.38857893, 47.49331983, 0.0 ], [ -93.38856709, 47.49335172, 0.0 ], [ -93.38854279, 47.49338443, 0.0 ], [ -93.38849818, 47.49341503, 0.0 ], [ -93.38845432, 47.49343829, 0.0 ], [ -93.38841438, 47.49345997, 0.0 ], [ -93.3883779, 47.49348134, 0.0 ], [ -93.38834453, 47.49349336, 0.0 ], [ -93.38832171, 47.49350255, 0.0 ], [ -93.38829697, 47.49351965, 0.0 ], [ -93.38827406, 47.49350972, 0.0 ], [ -93.38825923, 47.49352526, 0.0 ], [ -93.38821575, 47.49355073, 0.0 ], [ -93.38818483, 47.49356859, 0.0 ], [ -93.38814663, 47.4935869, 0.0 ], [ -93.38809887, 47.49360628, 0.0 ], [ -93.38805053, 47.49362596, 0.0 ], [ -93.38799942, 47.49364383, 0.0 ], [ -93.38794987, 47.49366461, 0.0 ], [ -93.38789919, 47.49369047, 0.0 ], [ -93.38784492, 47.49371165, 0.0 ], [ -93.38778658, 47.49372823, 0.0 ], [ -93.38772826, 47.4937464, 0.0 ], [ -93.38767165, 47.49376135, 0.0 ], [ -93.38762018, 47.4937816, 0.0 ], [ -93.38756645, 47.49380091, 0.0 ], [ -93.38751994, 47.4938181, 0.0 ], [ -93.38747394, 47.49383461, 0.0 ], [ -93.38742644, 47.49385284, 0.0 ], [ -93.38739949, 47.49387315, 0.0 ], [ -93.38738377, 47.49388818, 0.0 ], [ -93.38735855, 47.49389487, 0.0 ], [ -93.38732418, 47.49390371, 0.0 ], [ -93.3872623, 47.4939212, 0.0 ], [ -93.38720006, 47.49393719, 0.0 ], [ -93.38714874, 47.49394873, 0.0 ], [ -93.38710369, 47.49396702, 0.0 ], [ -93.38705179, 47.49398546, 0.0 ], [ -93.38699232, 47.49399073, 0.0 ], [ -93.38693845, 47.49400298, 0.0 ], [ -93.38688149, 47.49402009, 0.0 ], [ -93.38683327, 47.49403901, 0.0 ], [ -93.3868035, 47.49406522, 0.0 ], [ -93.38677127, 47.4940847, 0.0 ], [ -93.38674385, 47.49409325, 0.0 ], [ -93.38670832, 47.49410184, 0.0 ], [ -93.38667344, 47.49411161, 0.0 ], [ -93.38663221, 47.49412316, 0.0 ], [ -93.38660507, 47.49412894, 0.0 ], [ -93.38657704, 47.49413194, 0.0 ], [ -93.38654786, 47.49414571, 0.0 ], [ -93.38651717, 47.49415166, 0.0 ], [ -93.3864836, 47.49415969, 0.0 ], [ -93.38644972, 47.49416687, 0.0 ], [ -93.38643447, 47.49415207, 0.0 ], [ -93.38645945, 47.49412556, 0.0 ], [ -93.38648916, 47.49410645, 0.0 ], [ -93.38651516, 47.49409697, 0.0 ], [ -93.38654985, 47.49409543, 0.0 ], [ -93.38652536, 47.49410767, 0.0 ], [ -93.3865495, 47.49409779, 0.0 ], [ -93.38650788, 47.49410115, 0.0 ], [ -93.38648165, 47.49408595, 0.0 ], [ -93.3865123, 47.4940768, 0.0 ], [ -93.38652614, 47.49409526, 0.0 ], [ -93.38652067, 47.49407448, 0.0 ], [ -93.38651575, 47.49404414, 0.0 ], [ -93.38651083, 47.49407135, 0.0 ], [ -93.38650712, 47.49408992, 0.0 ], [ -93.38648899, 47.4941072, 0.0 ], [ -93.38645442, 47.49410676, 0.0 ], [ -93.38643255, 47.49411994, 0.0 ], [ -93.38641189, 47.49414372, 0.0 ], [ -93.38637981, 47.4941656, 0.0 ], [ -93.38635956, 47.49417741, 0.0 ], [ -93.38633604, 47.49418816, 0.0 ], [ -93.38631533, 47.49420031, 0.0 ], [ -93.38628343, 47.49422573, 0.0 ], [ -93.38624623, 47.49425318, 0.0 ], [ -93.38621538, 47.4942646, 0.0 ], [ -93.38620028, 47.49428848, 0.0 ], [ -93.38617868, 47.4943024, 0.0 ], [ -93.38614945, 47.49430296, 0.0 ], [ -93.38612038, 47.49430731, 0.0 ], [ -93.38609185, 47.49430844, 0.0 ], [ -93.38606511, 47.4943089, 0.0 ], [ -93.38604646, 47.49432478, 0.0 ], [ -93.38605261, 47.49430297, 0.0 ], [ -93.38604325, 47.49428571, 0.0 ], [ -93.38602487, 47.49429992, 0.0 ], [ -93.38599517, 47.49430668, 0.0 ], [ -93.38601965, 47.49431375, 0.0 ], [ -93.38600222, 47.49432886, 0.0 ], [ -93.38601611, 47.49430903, 0.0 ], [ -93.38603057, 47.49429363, 0.0 ], [ -93.38601332, 47.49430976, 0.0 ], [ -93.38601447, 47.49428974, 0.0 ], [ -93.38604388, 47.49427653, 0.0 ], [ -93.38606194, 47.49426224, 0.0 ], [ -93.38603999, 47.49424105, 0.0 ], [ -93.3860585, 47.49425634, 0.0 ], [ -93.38608871, 47.4942464, 0.0 ], [ -93.38611506, 47.49424266, 0.0 ], [ -93.38606717, 47.49423654, 0.0 ], [ -93.38603403, 47.49422752, 0.0 ], [ -93.38606321, 47.4942294, 0.0 ], [ -93.38609967, 47.4942481, 0.0 ], [ -93.38610692, 47.49426802, 0.0 ], [ -93.38609712, 47.49425092, 0.0 ], [ -93.38614006, 47.49424268, 0.0 ], [ -93.38618161, 47.49423078, 0.0 ], [ -93.38622343, 47.49421871, 0.0 ], [ -93.38625509, 47.49420441, 0.0 ], [ -93.38628352, 47.49418562, 0.0 ], [ -93.38631241, 47.49416996, 0.0 ], [ -93.38634739, 47.49415817, 0.0 ], [ -93.38638632, 47.49414886, 0.0 ], [ -93.3864305, 47.49413479, 0.0 ], [ -93.38648208, 47.49412467, 0.0 ], [ -93.38653992, 47.49411341, 0.0 ], [ -93.38659737, 47.49410038, 0.0 ], [ -93.38665616, 47.49408393, 0.0 ], [ -93.38671532, 47.49406472, 0.0 ], [ -93.38677301, 47.4940477, 0.0 ], [ -93.38682355, 47.49403085, 0.0 ], [ -93.38685731, 47.49402312, 0.0 ], [ -93.38690364, 47.4940123, 0.0 ], [ -93.38693497, 47.49400313, 0.0 ], [ -93.38696365, 47.49400552, 0.0 ], [ -93.38699596, 47.49400146, 0.0 ], [ -93.38702716, 47.49399792, 0.0 ], [ -93.38705692, 47.49399264, 0.0 ], [ -93.38709457, 47.49398653, 0.0 ], [ -93.38713661, 47.49398264, 0.0 ], [ -93.38719103, 47.49397894, 0.0 ], [ -93.38723418, 47.49397514, 0.0 ], [ -93.38727439, 47.49396197, 0.0 ], [ -93.38733107, 47.49393836, 0.0 ], [ -93.38737232, 47.49392278, 0.0 ], [ -93.38742587, 47.49390822, 0.0 ], [ -93.38746747, 47.49389178, 0.0 ], [ -93.38752244, 47.49387558, 0.0 ], [ -93.3875794, 47.49386056, 0.0 ], [ -93.3876331, 47.4938421, 0.0 ], [ -93.38768914, 47.49382357, 0.0 ], [ -93.38774383, 47.49380799, 0.0 ], [ -93.38779891, 47.49378903, 0.0 ], [ -93.38786116, 47.49375371, 0.0 ], [ -93.38791745, 47.49371816, 0.0 ], [ -93.38797355, 47.49368623, 0.0 ], [ -93.38802152, 47.49365665, 0.0 ], [ -93.38807918, 47.49362944, 0.0 ], [ -93.38814047, 47.49360309, 0.0 ], [ -93.38820099, 47.49357951, 0.0 ], [ -93.38825999, 47.49354831, 0.0 ], [ -93.38831867, 47.49351117, 0.0 ], [ -93.38836869, 47.49348007, 0.0 ], [ -93.38841625, 47.4934439, 0.0 ], [ -93.38845631, 47.49340693, 0.0 ], [ -93.38849003, 47.49336705, 0.0 ], [ -93.38851372, 47.49333531, 0.0 ], [ -93.38853157, 47.4933065, 0.0 ], [ -93.38854803, 47.49328281, 0.0 ], [ -93.38856241, 47.49325756, 0.0 ], [ -93.38858722, 47.49322767, 0.0 ], [ -93.38860939, 47.49320364, 0.0 ], [ -93.38863211, 47.49318709, 0.0 ], [ -93.3886489, 47.49313326, 0.0 ], [ -93.38866998, 47.49311841, 0.0 ], [ -93.38867943, 47.49310073, 0.0 ], [ -93.38869344, 47.49307782, 0.0 ], [ -93.38872184, 47.49305137, 0.0 ], [ -93.38875871, 47.49303125, 0.0 ], [ -93.38879703, 47.49300701, 0.0 ], [ -93.3888342, 47.49298078, 0.0 ], [ -93.38887445, 47.49295569, 0.0 ], [ -93.38892055, 47.49293118, 0.0 ], [ -93.38896749, 47.49290483, 0.0 ], [ -93.38901308, 47.49287886, 0.0 ], [ -93.38905523, 47.49285546, 0.0 ], [ -93.38909672, 47.49283244, 0.0 ], [ -93.38913568, 47.49280807, 0.0 ], [ -93.38917337, 47.49278251, 0.0 ], [ -93.38920972, 47.49275712, 0.0 ], [ -93.3892477, 47.49272938, 0.0 ], [ -93.38928317, 47.49270145, 0.0 ], [ -93.38931446, 47.4926793, 0.0 ], [ -93.38934852, 47.4926573, 0.0 ], [ -93.38938484, 47.49263281, 0.0 ], [ -93.38942397, 47.49260466, 0.0 ], [ -93.38946396, 47.49257385, 0.0 ], [ -93.38950175, 47.49254395, 0.0 ], [ -93.38954084, 47.49251109, 0.0 ], [ -93.3895795, 47.49247918, 0.0 ], [ -93.38961926, 47.49244866, 0.0 ], [ -93.38966187, 47.49242087, 0.0 ], [ -93.38970711, 47.49239651, 0.0 ], [ -93.38975609, 47.49237393, 0.0 ], [ -93.38980965, 47.49235628, 0.0 ], [ -93.3898671, 47.49234192, 0.0 ], [ -93.38993807, 47.49232996, 0.0 ], [ -93.38998727, 47.49236008, 0.0 ], [ -93.39006185, 47.49235832, 0.0 ], [ -93.39014077, 47.49235968, 0.0 ], [ -93.39020954, 47.49236902, 0.0 ], [ -93.39027239, 47.49237552, 0.0 ], [ -93.39033641, 47.49237434, 0.0 ], [ -93.39039793, 47.49237951, 0.0 ], [ -93.39044841, 47.49238441, 0.0 ], [ -93.39049621, 47.49238902, 0.0 ], [ -93.39054456, 47.49239601, 0.0 ], [ -93.39059149, 47.492404, 0.0 ], [ -93.39039161, 47.49239566, 0.0 ], [ -93.39036148, 47.49239642, 0.0 ], [ -93.39050988, 47.49237447, 0.0 ], [ -93.39053821, 47.49235481, 0.0 ], [ -93.39056294, 47.49237242, 0.0 ], [ -93.39059011, 47.49237641, 0.0 ], [ -93.39061494, 47.49238469, 0.0 ], [ -93.39059253, 47.49240441, 0.0 ], [ -93.39057949, 47.49242096, 0.0 ], [ -93.39055926, 47.49244271, 0.0 ], [ -93.3905289, 47.49246214, 0.0 ], [ -93.39049599, 47.49247384, 0.0 ], [ -93.390453, 47.49247428, 0.0 ], [ -93.39041049, 47.49246499, 0.0 ], [ -93.39036795, 47.49244374, 0.0 ], [ -93.3903236, 47.49241826, 0.0 ], [ -93.39026987, 47.49239264, 0.0 ], [ -93.39021214, 47.49236957, 0.0 ], [ -93.39012114, 47.49236204, 0.0 ], [ -93.39002806, 47.49236299, 0.0 ], [ -93.38993151, 47.49235989, 0.0 ], [ -93.38985381, 47.49234383, 0.0 ], [ -93.38975819, 47.4923398, 0.0 ], [ -93.38967667, 47.492327, 0.0 ], [ -93.38959782, 47.49231954, 0.0 ], [ -93.38952297, 47.49230512, 0.0 ], [ -93.38944256, 47.49228852, 0.0 ], [ -93.38937085, 47.49227012, 0.0 ], [ -93.38931063, 47.49224983, 0.0 ], [ -93.3892338, 47.49222009, 0.0 ], [ -93.38917415, 47.49219631, 0.0 ], [ -93.38910778, 47.49217779, 0.0 ], [ -93.38908158, 47.49217341, 0.0 ], [ -93.38903666, 47.49216076, 0.0 ], [ -93.38900452, 47.49216419, 0.0 ], [ -93.38895128, 47.49216462, 0.0 ], [ -93.3888977, 47.49216313, 0.0 ], [ -93.38884688, 47.49216003, 0.0 ], [ -93.38879395, 47.49215216, 0.0 ], [ -93.38873333, 47.49214509, 0.0 ], [ -93.38866412, 47.49212882, 0.0 ], [ -93.38855782, 47.49210012, 0.0 ], [ -93.38848929, 47.49206723, 0.0 ], [ -93.38843672, 47.49208478, 0.0 ], [ -93.38838555, 47.49207493, 0.0 ], [ -93.38830005, 47.49206002, 0.0 ], [ -93.38823813, 47.49206024, 0.0 ], [ -93.38815184, 47.49204006, 0.0 ], [ -93.38807426, 47.4920391, 0.0 ], [ -93.38799712, 47.49202812, 0.0 ], [ -93.38794016, 47.49201347, 0.0 ], [ -93.38788404, 47.49200532, 0.0 ], [ -93.38779406, 47.49198642, 0.0 ], [ -93.3877196, 47.49197089, 0.0 ], [ -93.38764904, 47.49196711, 0.0 ], [ -93.38757823, 47.49192753, 0.0 ], [ -93.3875087, 47.49190443, 0.0 ], [ -93.38744093, 47.4918781, 0.0 ], [ -93.38738419, 47.49186418, 0.0 ], [ -93.38733675, 47.49186152, 0.0 ], [ -93.38729655, 47.491855, 0.0 ], [ -93.38726929, 47.49184666, 0.0 ], [ -93.38723657, 47.49184284, 0.0 ], [ -93.38719222, 47.49183608, 0.0 ], [ -93.38715427, 47.49181966, 0.0 ], [ -93.38712925, 47.49179541, 0.0 ], [ -93.38710612, 47.49177208, 0.0 ], [ -93.3870848, 47.4917517, 0.0 ], [ -93.38706546, 47.4917264, 0.0 ], [ -93.3870403, 47.49171074, 0.0 ], [ -93.3870104, 47.49169935, 0.0 ], [ -93.38695847, 47.49169511, 0.0 ], [ -93.3868983, 47.49169647, 0.0 ], [ -93.38684225, 47.49169298, 0.0 ], [ -93.38678538, 47.49168522, 0.0 ], [ -93.38673195, 47.49167131, 0.0 ], [ -93.38668103, 47.49165723, 0.0 ], [ -93.3866268, 47.4916533, 0.0 ], [ -93.38657195, 47.49165782, 0.0 ], [ -93.38651749, 47.4916612, 0.0 ], [ -93.3864524, 47.49165485, 0.0 ], [ -93.38639576, 47.49164797, 0.0 ], [ -93.38633582, 47.49163836, 0.0 ], [ -93.38628765, 47.49161983, 0.0 ], [ -93.38626382, 47.49159823, 0.0 ], [ -93.38622642, 47.4915827, 0.0 ], [ -93.38618193, 47.49157148, 0.0 ], [ -93.38614511, 47.49156443, 0.0 ], [ -93.38608826, 47.49156058, 0.0 ], [ -93.38601911, 47.49156523, 0.0 ], [ -93.38596491, 47.4915744, 0.0 ], [ -93.38590842, 47.49158537, 0.0 ], [ -93.38585564, 47.49159706, 0.0 ], [ -93.38581093, 47.49160751, 0.0 ], [ -93.38577225, 47.49161677, 0.0 ], [ -93.38573179, 47.49162384, 0.0 ], [ -93.38568255, 47.49163027, 0.0 ], [ -93.38563349, 47.49163622, 0.0 ], [ -93.38556798, 47.49164168, 0.0 ], [ -93.3855051, 47.4916484, 0.0 ], [ -93.38544699, 47.49165577, 0.0 ], [ -93.38539771, 47.4916631, 0.0 ], [ -93.38533771, 47.49167886, 0.0 ], [ -93.38528151, 47.49169598, 0.0 ], [ -93.38522547, 47.49171243, 0.0 ], [ -93.38515859, 47.49171757, 0.0 ], [ -93.38508775, 47.49171608, 0.0 ], [ -93.38502749, 47.4917078, 0.0 ], [ -93.384991, 47.49168187, 0.0 ], [ -93.38495913, 47.49164529, 0.0 ], [ -93.38492167, 47.49161046, 0.0 ], [ -93.38488227, 47.49158392, 0.0 ], [ -93.38484071, 47.49156265, 0.0 ], [ -93.38480654, 47.49153048, 0.0 ], [ -93.38479347, 47.49150432, 0.0 ], [ -93.38478601, 47.4914713, 0.0 ], [ -93.38477416, 47.49143905, 0.0 ], [ -93.38475844, 47.49140894, 0.0 ], [ -93.38474255, 47.49138307, 0.0 ], [ -93.38472409, 47.4913675, 0.0 ], [ -93.38469715, 47.49135557, 0.0 ], [ -93.38468442, 47.49133829, 0.0 ], [ -93.384657, 47.49132578, 0.0 ], [ -93.38463337, 47.49133648, 0.0 ], [ -93.38466282, 47.49133692, 0.0 ], [ -93.3846856, 47.49132535, 0.0 ], [ -93.38465967, 47.49131358, 0.0 ], [ -93.38464743, 47.49132971, 0.0 ], [ -93.38465154, 47.49135157, 0.0 ], [ -93.38463276, 47.49136731, 0.0 ], [ -93.3846326, 47.49134913, 0.0 ], [ -93.38461891, 47.49132574, 0.0 ], [ -93.38459562, 47.49131131, 0.0 ], [ -93.38456945, 47.49130608, 0.0 ], [ -93.38460743, 47.49131487, 0.0 ], [ -93.38463429, 47.49131471, 0.0 ], [ -93.38465576, 47.49132631, 0.0 ], [ -93.38464294, 47.49134421, 0.0 ], [ -93.38462127, 47.49135666, 0.0 ], [ -93.38465693, 47.49134556, 0.0 ], [ -93.38468375, 47.49133382, 0.0 ], [ -93.38469762, 47.49135196, 0.0 ], [ -93.38473655, 47.49136742, 0.0 ], [ -93.38476071, 47.49139544, 0.0 ], [ -93.3847688, 47.49141812, 0.0 ], [ -93.38478106, 47.4914434, 0.0 ], [ -93.38479889, 47.49146731, 0.0 ], [ -93.38482017, 47.49149171, 0.0 ], [ -93.38484751, 47.49151953, 0.0 ], [ -93.38487616, 47.49154903, 0.0 ], [ -93.38490136, 47.4915682, 0.0 ], [ -93.38491824, 47.49158215, 0.0 ], [ -93.38494102, 47.4916001, 0.0 ], [ -93.38496865, 47.49162176, 0.0 ], [ -93.38499872, 47.49164498, 0.0 ], [ -93.38502961, 47.4916645, 0.0 ], [ -93.38505767, 47.4916838, 0.0 ], [ -93.38508709, 47.49169712, 0.0 ], [ -93.3851157, 47.49170712, 0.0 ], [ -93.38514489, 47.4917147, 0.0 ], [ -93.38518466, 47.49171952, 0.0 ], [ -93.38522483, 47.49171648, 0.0 ], [ -93.38526552, 47.49171121, 0.0 ], [ -93.38531246, 47.49169916, 0.0 ], [ -93.38535553, 47.49168903, 0.0 ], [ -93.38539656, 47.49168198, 0.0 ], [ -93.38543832, 47.49167523, 0.0 ], [ -93.38548165, 47.49167377, 0.0 ], [ -93.38551273, 47.491677, 0.0 ], [ -93.38553723, 47.49166867, 0.0 ], [ -93.38556317, 47.49166228, 0.0 ], [ -93.38559108, 47.49165877, 0.0 ], [ -93.38563157, 47.4916577, 0.0 ], [ -93.38566432, 47.49165591, 0.0 ], [ -93.38571296, 47.49164645, 0.0 ], [ -93.38574342, 47.49163603, 0.0 ], [ -93.38577277, 47.49162376, 0.0 ], [ -93.38581762, 47.49161152, 0.0 ], [ -93.3858479, 47.49160326, 0.0 ], [ -93.38587589, 47.4915985, 0.0 ], [ -93.38590191, 47.49158731, 0.0 ], [ -93.38592103, 47.49156787, 0.0 ], [ -93.38594936, 47.49159833, 0.0 ], [ -93.38597302, 47.49161697, 0.0 ], [ -93.38599633, 47.49163341, 0.0 ], [ -93.38603789, 47.4916458, 0.0 ], [ -93.38608857, 47.49165671, 0.0 ], [ -93.38613481, 47.49166478, 0.0 ], [ -93.38618811, 47.49167172, 0.0 ], [ -93.38624827, 47.49167727, 0.0 ], [ -93.38631022, 47.4916735, 0.0 ], [ -93.38635801, 47.49167254, 0.0 ], [ -93.38641124, 47.49167689, 0.0 ], [ -93.3864719, 47.49168028, 0.0 ], [ -93.38655986, 47.49167982, 0.0 ], [ -93.38662242, 47.49167949, 0.0 ], [ -93.38668475, 47.49167302, 0.0 ], [ -93.38673582, 47.49167598, 0.0 ], [ -93.38678582, 47.49169657, 0.0 ], [ -93.38684353, 47.49170937, 0.0 ], [ -93.38691052, 47.49171435, 0.0 ], [ -93.38697371, 47.4917236, 0.0 ], [ -93.38703502, 47.49172654, 0.0 ], [ -93.38708046, 47.49173038, 0.0 ], [ -93.38710406, 47.49174349, 0.0 ], [ -93.3871353, 47.49176046, 0.0 ], [ -93.38716535, 47.49177958, 0.0 ], [ -93.38718117, 47.49180954, 0.0 ], [ -93.38720091, 47.49183472, 0.0 ], [ -93.38723629, 47.49185517, 0.0 ], [ -93.38727462, 47.49186874, 0.0 ], [ -93.38732939, 47.49187564, 0.0 ], [ -93.38738581, 47.49187889, 0.0 ], [ -93.387432, 47.49188466, 0.0 ], [ -93.38747051, 47.49188953, 0.0 ], [ -93.38745838, 47.49191377, 0.0 ], [ -93.38742235, 47.49192363, 0.0 ], [ -93.38741576, 47.49190176, 0.0 ], [ -93.38736735, 47.49192093, 0.0 ], [ -93.38732439, 47.49193637, 0.0 ], [ -93.38728083, 47.49195507, 0.0 ], [ -93.38724143, 47.49197701, 0.0 ], [ -93.38720502, 47.49199763, 0.0 ], [ -93.38717389, 47.49201576, 0.0 ], [ -93.38714979, 47.49203032, 0.0 ], [ -93.3871155, 47.49204279, 0.0 ], [ -93.38707841, 47.49205622, 0.0 ], [ -93.38705108, 47.49207591, 0.0 ], [ -93.38703945, 47.49210078, 0.0 ], [ -93.38704231, 47.49212378, 0.0 ], [ -93.3870525, 47.49214284, 0.0 ], [ -93.38705862, 47.49217247, 0.0 ], [ -93.38708718, 47.49218872, 0.0 ], [ -93.38712443, 47.49219254, 0.0 ], [ -93.38715181, 47.4921933, 0.0 ], [ -93.38717879, 47.4921993, 0.0 ], [ -93.3871444, 47.49219457, 0.0 ], [ -93.38711998, 47.49218694, 0.0 ], [ -93.38711223, 47.4921658, 0.0 ], [ -93.38712702, 47.49214686, 0.0 ], [ -93.38710152, 47.4921572, 0.0 ], [ -93.38713327, 47.49215668, 0.0 ], [ -93.38712319, 47.49213855, 0.0 ], [ -93.38710807, 47.49215388, 0.0 ], [ -93.38708119, 47.49214377, 0.0 ], [ -93.38703698, 47.49214973, 0.0 ], [ -93.38700355, 47.49215167, 0.0 ], [ -93.38696595, 47.49216187, 0.0 ], [ -93.38691646, 47.49217822, 0.0 ], [ -93.38686335, 47.4921994, 0.0 ], [ -93.38680771, 47.49221974, 0.0 ], [ -93.38675179, 47.49224115, 0.0 ], [ -93.38670163, 47.49225654, 0.0 ], [ -93.38665733, 47.49227202, 0.0 ], [ -93.38661001, 47.49228912, 0.0 ], [ -93.38656488, 47.49230565, 0.0 ], [ -93.38652141, 47.49232365, 0.0 ], [ -93.38647968, 47.49234864, 0.0 ], [ -93.38643855, 47.49236959, 0.0 ], [ -93.38638162, 47.49238723, 0.0 ], [ -93.38634317, 47.49240821, 0.0 ], [ -93.38631049, 47.49243154, 0.0 ], [ -93.38628332, 47.49245845, 0.0 ], [ -93.38625621, 47.4924764, 0.0 ], [ -93.38621106, 47.49249288, 0.0 ], [ -93.38617629, 47.49250755, 0.0 ], [ -93.38613059, 47.49252216, 0.0 ], [ -93.38608774, 47.49252983, 0.0 ], [ -93.38604083, 47.4925359, 0.0 ], [ -93.38600391, 47.49253712, 0.0 ], [ -93.38597532, 47.49253197, 0.0 ], [ -93.38596554, 47.49251425, 0.0 ], [ -93.38600615, 47.49249816, 0.0 ], [ -93.38604283, 47.49249357, 0.0 ], [ -93.38607447, 47.49248422, 0.0 ], [ -93.3860984, 47.49247257, 0.0 ], [ -93.38613023, 47.49247, 0.0 ], [ -93.38616406, 47.49246531, 0.0 ], [ -93.38620678, 47.49245651, 0.0 ], [ -93.38620991, 47.49247465, 0.0 ], [ -93.38622611, 47.49250417, 0.0 ], [ -93.38621911, 47.49248561, 0.0 ], [ -93.38622501, 47.49244625, 0.0 ], [ -93.38626856, 47.49242631, 0.0 ], [ -93.38631862, 47.4924083, 0.0 ], [ -93.38637489, 47.49238761, 0.0 ], [ -93.38643838, 47.4923668, 0.0 ], [ -93.38650121, 47.49234338, 0.0 ], [ -93.3865617, 47.49232083, 0.0 ], [ -93.3866225, 47.49230145, 0.0 ], [ -93.38668604, 47.4922821, 0.0 ], [ -93.38674718, 47.49226501, 0.0 ], [ -93.38680699, 47.49224825, 0.0 ], [ -93.38686539, 47.4922303, 0.0 ], [ -93.38692545, 47.49221156, 0.0 ], [ -93.38698276, 47.49219445, 0.0 ], [ -93.38703374, 47.49218109, 0.0 ], [ -93.38708717, 47.49217666, 0.0 ], [ -93.38713686, 47.49218272, 0.0 ], [ -93.38717039, 47.49219541, 0.0 ], [ -93.38719893, 47.49220397, 0.0 ], [ -93.38723429, 47.49221316, 0.0 ], [ -93.38726845, 47.49221955, 0.0 ], [ -93.38730237, 47.49223417, 0.0 ], [ -93.38733821, 47.49224199, 0.0 ], [ -93.38737285, 47.49225311, 0.0 ], [ -93.38740864, 47.49226298, 0.0 ], [ -93.38744063, 47.49227518, 0.0 ], [ -93.38746547, 47.4922916, 0.0 ], [ -93.38749308, 47.49230326, 0.0 ], [ -93.38753823, 47.4923374, 0.0 ], [ -93.38757064, 47.49235677, 0.0 ], [ -93.38858537, 47.49239012, 0.0 ], [ -93.38862703, 47.49239968, 0.0 ], [ -93.38867618, 47.49240794, 0.0 ], [ -93.38871756, 47.49241742, 0.0 ], [ -93.38875899, 47.49242809, 0.0 ], [ -93.38882564, 47.49246898, 0.0 ], [ -93.38888358, 47.49248529, 0.0 ], [ -93.38896218, 47.49249388, 0.0 ], [ -93.38901042, 47.4925126, 0.0 ], [ -93.38906399, 47.4925351, 0.0 ], [ -93.38911, 47.49255866, 0.0 ], [ -93.38916613, 47.49257612, 0.0 ], [ -93.38922003, 47.49259103, 0.0 ], [ -93.38927072, 47.49260218, 0.0 ], [ -93.38932414, 47.49261049, 0.0 ], [ -93.38937067, 47.49261186, 0.0 ], [ -93.38940927, 47.49260306, 0.0 ], [ -93.38943815, 47.49258142, 0.0 ], [ -93.38945084, 47.4925476, 0.0 ], [ -93.38945312, 47.49251373, 0.0 ], [ -93.38943611, 47.49247024, 0.0 ], [ -93.38942356, 47.49242742, 0.0 ], [ -93.38941202, 47.49238438, 0.0 ], [ -93.38937895, 47.49233545, 0.0 ], [ -93.38935263, 47.49229448, 0.0 ], [ -93.38931367, 47.49225611, 0.0 ], [ -93.38926768, 47.49221851, 0.0 ], [ -93.38919907, 47.49219073, 0.0 ], [ -93.38914673, 47.49215511, 0.0 ], [ -93.38911614, 47.49209609, 0.0 ], [ -93.38907945, 47.49203783, 0.0 ], [ -93.38903728, 47.49198082, 0.0 ], [ -93.38900454, 47.49192072, 0.0 ], [ -93.38896154, 47.49187361, 0.0 ], [ -93.3889103, 47.49182236, 0.0 ], [ -93.38883856, 47.49179109, 0.0 ], [ -93.38879421, 47.49174863, 0.0 ], [ -93.38875105, 47.49171448, 0.0 ], [ -93.38871881, 47.49165934, 0.0 ], [ -93.38870249, 47.49160416, 0.0 ], [ -93.38869115, 47.49155178, 0.0 ], [ -93.38866889, 47.49150173, 0.0 ], [ -93.38867049, 47.49145043, 0.0 ], [ -93.38865445, 47.49140819, 0.0 ], [ -93.38863158, 47.49136649, 0.0 ], [ -93.38857221, 47.49133204, 0.0 ], [ -93.38851647, 47.49129303, 0.0 ], [ -93.38844979, 47.49127124, 0.0 ], [ -93.38839377, 47.4912396, 0.0 ], [ -93.38831992, 47.49120979, 0.0 ], [ -93.38825951, 47.49118072, 0.0 ], [ -93.38818344, 47.49114838, 0.0 ], [ -93.38811044, 47.49111539, 0.0 ], [ -93.38805546, 47.49107809, 0.0 ], [ -93.38800015, 47.49104106, 0.0 ], [ -93.38793782, 47.49100488, 0.0 ], [ -93.38788866, 47.49097874, 0.0 ], [ -93.38785778, 47.49094105, 0.0 ], [ -93.38785257, 47.49089236, 0.0 ], [ -93.38782341, 47.49083295, 0.0 ], [ -93.38780284, 47.49078341, 0.0 ], [ -93.38778823, 47.49072825, 0.0 ], [ -93.38776427, 47.49064854, 0.0 ], [ -93.38775521, 47.49058882, 0.0 ], [ -93.38773334, 47.49052309, 0.0 ], [ -93.38772351, 47.49045737, 0.0 ], [ -93.38771095, 47.49040011, 0.0 ], [ -93.38769026, 47.49034694, 0.0 ], [ -93.38767571, 47.49027694, 0.0 ], [ -93.38766233, 47.49021872, 0.0 ], [ -93.38764954, 47.49017281, 0.0 ], [ -93.3876126, 47.49012995, 0.0 ], [ -93.38755978, 47.49009124, 0.0 ], [ -93.38749993, 47.49005722, 0.0 ], [ -93.38744466, 47.49002016, 0.0 ], [ -93.38738451, 47.48997971, 0.0 ], [ -93.38732953, 47.48994644, 0.0 ], [ -93.38726562, 47.48991496, 0.0 ], [ -93.38719911, 47.48989008, 0.0 ], [ -93.38714043, 47.48987259, 0.0 ], [ -93.38709426, 47.48984613, 0.0 ], [ -93.38706321, 47.48982366, 0.0 ], [ -93.38701097, 47.48981777, 0.0 ], [ -93.38697208, 47.48982313, 0.0 ], [ -93.38694599, 47.48984102, 0.0 ], [ -93.38691276, 47.48986865, 0.0 ], [ -93.38687206, 47.48990325, 0.0 ], [ -93.38683272, 47.48993687, 0.0 ], [ -93.38680155, 47.48996329, 0.0 ], [ -93.38677093, 47.48999109, 0.0 ], [ -93.38674085, 47.49001607, 0.0 ], [ -93.38671235, 47.49004007, 0.0 ], [ -93.38668252, 47.49006921, 0.0 ], [ -93.38665075, 47.49009578, 0.0 ], [ -93.38661298, 47.49011709, 0.0 ], [ -93.38657551, 47.49013017, 0.0 ], [ -93.38653618, 47.49014552, 0.0 ], [ -93.38651132, 47.49016123, 0.0 ], [ -93.38649493, 47.49018597, 0.0 ], [ -93.38646787, 47.49018665, 0.0 ], [ -93.38645851, 47.49016617, 0.0 ], [ -93.38647426, 47.4901832, 0.0 ], [ -93.38649271, 47.49020291, 0.0 ], [ -93.38651834, 47.49022188, 0.0 ], [ -93.38653134, 47.49023765, 0.0 ], [ -93.38653058, 47.49021602, 0.0 ], [ -93.38653221, 47.49019539, 0.0 ], [ -93.38655051, 47.49017732, 0.0 ], [ -93.38654415, 47.49014156, 0.0 ], [ -93.38653281, 47.49012114, 0.0 ], [ -93.38652264, 47.49009422, 0.0 ], [ -93.38651748, 47.49007503, 0.0 ], [ -93.38648622, 47.4900389, 0.0 ], [ -93.38647243, 47.49001186, 0.0 ], [ -93.3864614, 47.48997817, 0.0 ], [ -93.38645279, 47.48993841, 0.0 ], [ -93.38644464, 47.48990793, 0.0 ], [ -93.38643064, 47.48987447, 0.0 ], [ -93.38640828, 47.48984283, 0.0 ], [ -93.38638653, 47.48980699, 0.0 ], [ -93.38637152, 47.48976638, 0.0 ], [ -93.38636501, 47.48973118, 0.0 ], [ -93.38636135, 47.48969954, 0.0 ], [ -93.38636082, 47.48967511, 0.0 ], [ -93.38635918, 47.48965502, 0.0 ], [ -93.3863759, 47.48967285, 0.0 ], [ -93.38639444, 47.48971868, 0.0 ], [ -93.38640276, 47.48976041, 0.0 ], [ -93.38641085, 47.4897946, 0.0 ], [ -93.38641988, 47.48982193, 0.0 ], [ -93.38643317, 47.48985315, 0.0 ], [ -93.38644286, 47.48987868, 0.0 ], [ -93.3864477, 47.48990417, 0.0 ], [ -93.38645621, 47.4899289, 0.0 ], [ -93.38646944, 47.4899575, 0.0 ], [ -93.38648639, 47.489987, 0.0 ], [ -93.38649981, 47.49001565, 0.0 ], [ -93.38650212, 47.49004742, 0.0 ], [ -93.38649462, 47.49006932, 0.0 ], [ -93.38646383, 47.49007522, 0.0 ], [ -93.38642774, 47.49010351, 0.0 ], [ -93.38641405, 47.49012269, 0.0 ], [ -93.38639124, 47.49013801, 0.0 ], [ -93.38635469, 47.49014325, 0.0 ], [ -93.38631711, 47.49013738, 0.0 ], [ -93.38626155, 47.49010727, 0.0 ], [ -93.38620587, 47.49008538, 0.0 ], [ -93.38615231, 47.49006651, 0.0 ], [ -93.38609383, 47.49004522, 0.0 ], [ -93.38603552, 47.49002806, 0.0 ], [ -93.385979, 47.49000706, 0.0 ], [ -93.38591471, 47.48998463, 0.0 ], [ -93.38585289, 47.48995993, 0.0 ], [ -93.38579761, 47.48993323, 0.0 ], [ -93.38574837, 47.48991192, 0.0 ], [ -93.38570094, 47.48989135, 0.0 ], [ -93.38565286, 47.48988046, 0.0 ], [ -93.38561792, 47.48987301, 0.0 ], [ -93.3855763, 47.48986836, 0.0 ], [ -93.38553111, 47.4898583, 0.0 ], [ -93.38549046, 47.48984701, 0.0 ], [ -93.38545249, 47.48983489, 0.0 ], [ -93.38541147, 47.48982547, 0.0 ], [ -93.38537037, 47.48981483, 0.0 ], [ -93.38533882, 47.48980343, 0.0 ], [ -93.38531113, 47.48979487, 0.0 ], [ -93.38528402, 47.48979228, 0.0 ], [ -93.38531539, 47.48979889, 0.0 ], [ -93.38534589, 47.48980458, 0.0 ], [ -93.38537861, 47.48981466, 0.0 ], [ -93.38540899, 47.48982559, 0.0 ], [ -93.38544829, 47.48983463, 0.0 ], [ -93.38548633, 47.48984409, 0.0 ], [ -93.38552745, 47.48985607, 0.0 ], [ -93.38556163, 47.48986864, 0.0 ], [ -93.3856003, 47.4898826, 0.0 ], [ -93.38564603, 47.4898944, 0.0 ], [ -93.3856958, 47.48990705, 0.0 ], [ -93.38574553, 47.48992238, 0.0 ], [ -93.38579142, 47.48994025, 0.0 ], [ -93.38583747, 47.48996007, 0.0 ], [ -93.38589186, 47.48997837, 0.0 ], [ -93.38594518, 47.48999374, 0.0 ], [ -93.38599059, 47.49001149, 0.0 ], [ -93.38601601, 47.49002475, 0.0 ], [ -93.38606481, 47.49004315, 0.0 ], [ -93.38610592, 47.49004774, 0.0 ], [ -93.3861638, 47.49007167, 0.0 ], [ -93.38620792, 47.49009265, 0.0 ], [ -93.38624882, 47.49011427, 0.0 ], [ -93.38627598, 47.49012724, 0.0 ], [ -93.3862328, 47.49010323, 0.0 ], [ -93.38619703, 47.49007993, 0.0 ], [ -93.38616066, 47.49006088, 0.0 ], [ -93.38610988, 47.49005369, 0.0 ], [ -93.38606383, 47.4900653, 0.0 ], [ -93.38604697, 47.49009199, 0.0 ], [ -93.38605036, 47.49011935, 0.0 ], [ -93.38603672, 47.49015186, 0.0 ], [ -93.3860113, 47.49016683, 0.0 ], [ -93.38594957, 47.49016654, 0.0 ], [ -93.38588814, 47.49015803, 0.0 ], [ -93.3858351, 47.49015285, 0.0 ], [ -93.38579176, 47.49014987, 0.0 ], [ -93.38575922, 47.49014409, 0.0 ], [ -93.38573121, 47.4901453, 0.0 ], [ -93.38568839, 47.4901314, 0.0 ], [ -93.38565982, 47.4901148, 0.0 ], [ -93.3856339, 47.49011067, 0.0 ], [ -93.38568067, 47.49013913, 0.0 ], [ -93.38573035, 47.49015588, 0.0 ], [ -93.38577091, 47.49016727, 0.0 ], [ -93.38577775, 47.49019137, 0.0 ], [ -93.38581066, 47.49017461, 0.0 ], [ -93.38584978, 47.49016241, 0.0 ], [ -93.38587832, 47.49015786, 0.0 ], [ -93.38595519, 47.49016726, 0.0 ], [ -93.3860151, 47.49017495, 0.0 ], [ -93.38607064, 47.49018313, 0.0 ], [ -93.38612779, 47.49020296, 0.0 ], [ -93.38618347, 47.49022656, 0.0 ], [ -93.38623883, 47.49024808, 0.0 ], [ -93.38628456, 47.49026598, 0.0 ], [ -93.38631271, 47.49028137, 0.0 ], [ -93.38630258, 47.49030052, 0.0 ], [ -93.38627477, 47.49032109, 0.0 ], [ -93.38625371, 47.49033834, 0.0 ], [ -93.38623196, 47.49034944, 0.0 ], [ -93.38620816, 47.49035928, 0.0 ], [ -93.38617439, 47.49038223, 0.0 ], [ -93.38613459, 47.49040362, 0.0 ], [ -93.38610609, 47.49041562, 0.0 ], [ -93.38607677, 47.49042602, 0.0 ], [ -93.38609894, 47.49039034, 0.0 ], [ -93.38613595, 47.4903739, 0.0 ], [ -93.38616697, 47.49035389, 0.0 ], [ -93.38618224, 47.49033745, 0.0 ], [ -93.38621141, 47.49032399, 0.0 ], [ -93.38627742, 47.49033243, 0.0 ], [ -93.38632473, 47.49032037, 0.0 ], [ -93.38635134, 47.49030447, 0.0 ], [ -93.38637448, 47.49029305, 0.0 ], [ -93.3864111, 47.49030342, 0.0 ], [ -93.38641012, 47.49033459, 0.0 ], [ -93.38641111, 47.49035722, 0.0 ], [ -93.38641375, 47.49038631, 0.0 ], [ -93.38640655, 47.49040464, 0.0 ], [ -93.38639169, 47.49042369, 0.0 ], [ -93.38638042, 47.49044556, 0.0 ], [ -93.38637418, 47.49046462, 0.0 ], [ -93.38637668, 47.49043584, 0.0 ], [ -93.38639745, 47.4903968, 0.0 ], [ -93.38641114, 47.49036992, 0.0 ], [ -93.38641447, 47.49033959, 0.0 ], [ -93.38641586, 47.49030915, 0.0 ], [ -93.38641463, 47.49028363, 0.0 ], [ -93.38646114, 47.49028488, 0.0 ], [ -93.38650204, 47.49028137, 0.0 ], [ -93.38653977, 47.49026976, 0.0 ], [ -93.3865626, 47.49025758, 0.0 ], [ -93.38658755, 47.49023728, 0.0 ], [ -93.38660954, 47.49021117, 0.0 ], [ -93.38662407, 47.49018204, 0.0 ], [ -93.38663718, 47.49015469, 0.0 ], [ -93.3866559, 47.49012927, 0.0 ], [ -93.38668379, 47.49010348, 0.0 ], [ -93.38670693, 47.49008466, 0.0 ], [ -93.38670013, 47.49006256, 0.0 ], [ -93.38665271, 47.49004675, 0.0 ], [ -93.38661473, 47.49003377, 0.0 ], [ -93.38657957, 47.49001531, 0.0 ], [ -93.38655254, 47.4899983, 0.0 ], [ -93.38653302, 47.48997569, 0.0 ], [ -93.38652461, 47.48995362, 0.0 ], [ -93.38652239, 47.48993025, 0.0 ], [ -93.38651935, 47.48991117, 0.0 ], [ -93.38652037, 47.48989052, 0.0 ], [ -93.3865426, 47.48991776, 0.0 ], [ -93.38655161, 47.48994628, 0.0 ], [ -93.38656621, 47.48997909, 0.0 ], [ -93.38659246, 47.48999656, 0.0 ], [ -93.38662543, 47.49000318, 0.0 ], [ -93.38664687, 47.48997441, 0.0 ], [ -93.38664069, 47.48994057, 0.0 ], [ -93.38663666, 47.48991124, 0.0 ], [ -93.38662175, 47.48988472, 0.0 ], [ -93.38662029, 47.48990506, 0.0 ], [ -93.38659623, 47.48992707, 0.0 ], [ -93.38659763, 47.48995336, 0.0 ], [ -93.38659889, 47.48997767, 0.0 ], [ -93.38659947, 47.49000459, 0.0 ], [ -93.38660886, 47.49003701, 0.0 ], [ -93.38662664, 47.49006275, 0.0 ], [ -93.38664818, 47.49008446, 0.0 ], [ -93.38670216, 47.49007239, 0.0 ], [ -93.38673763, 47.49003646, 0.0 ], [ -93.38676543, 47.49001235, 0.0 ], [ -93.38679481, 47.48998529, 0.0 ], [ -93.38682312, 47.48995713, 0.0 ], [ -93.38685554, 47.48992733, 0.0 ], [ -93.38689299, 47.48989543, 0.0 ], [ -93.38693256, 47.48986586, 0.0 ], [ -93.38696463, 47.48984084, 0.0 ], [ -93.38698956, 47.4898156, 0.0 ], [ -93.38700557, 47.48979375, 0.0 ], [ -93.38701406, 47.48976974, 0.0 ], [ -93.38701493, 47.48973675, 0.0 ], [ -93.38700758, 47.48970307, 0.0 ], [ -93.38699031, 47.4896748, 0.0 ], [ -93.38697437, 47.48965141, 0.0 ], [ -93.38696475, 47.489632, 0.0 ], [ -93.38693776, 47.4896023, 0.0 ], [ -93.386953, 47.48962148, 0.0 ], [ -93.38693714, 47.48959987, 0.0 ], [ -93.38698507, 47.48980668, 0.0 ], [ -93.3869794, 47.48982444, 0.0 ], [ -93.38700793, 47.48981359, 0.0 ], [ -93.38704517, 47.48982148, 0.0 ], [ -93.38707574, 47.48982996, 0.0 ], [ -93.38710846, 47.48984509, 0.0 ], [ -93.38714294, 47.48986804, 0.0 ], [ -93.38719602, 47.4898916, 0.0 ], [ -93.38725588, 47.48991334, 0.0 ], [ -93.38731887, 47.48993468, 0.0 ], [ -93.38738822, 47.48996759, 0.0 ], [ -93.38743091, 47.48999733, 0.0 ], [ -93.38747237, 47.49002218, 0.0 ], [ -93.38750654, 47.49005105, 0.0 ], [ -93.38755752, 47.490081, 0.0 ], [ -93.3876009, 47.49010983, 0.0 ], [ -93.38763913, 47.49014314, 0.0 ], [ -93.38766378, 47.49017005, 0.0 ], [ -93.38769543, 47.49018459, 0.0 ], [ -93.38775886, 47.4901518, 0.0 ], [ -93.38780837, 47.49015127, 0.0 ], [ -93.38787113, 47.4901948, 0.0 ], [ -93.38791432, 47.4902029, 0.0 ], [ -93.38796492, 47.49019878, 0.0 ], [ -93.38800022, 47.49019159, 0.0 ], [ -93.38797096, 47.49015617, 0.0 ], [ -93.38797005, 47.49011134, 0.0 ], [ -93.38796252, 47.49007261, 0.0 ], [ -93.38794125, 47.49003731, 0.0 ], [ -93.38791737, 47.49000589, 0.0 ], [ -93.38789832, 47.48997719, 0.0 ], [ -93.3878757, 47.48994469, 0.0 ], [ -93.38785416, 47.48991105, 0.0 ], [ -93.38782559, 47.48987918, 0.0 ], [ -93.38780601, 47.48985224, 0.0 ], [ -93.38779762, 47.48982801, 0.0 ], [ -93.38778692, 47.48980071, 0.0 ], [ -93.38777489, 47.48977604, 0.0 ], [ -93.38775413, 47.4897485, 0.0 ], [ -93.38773103, 47.4897226, 0.0 ], [ -93.38771644, 47.48969806, 0.0 ], [ -93.38771383, 47.48966958, 0.0 ], [ -93.38771476, 47.48964337, 0.0 ], [ -93.38771588, 47.48961895, 0.0 ], [ -93.38772622, 47.48959349, 0.0 ], [ -93.38774376, 47.48956786, 0.0 ], [ -93.38776116, 47.48953887, 0.0 ], [ -93.38778244, 47.48950826, 0.0 ], [ -93.38780501, 47.48948083, 0.0 ], [ -93.38782271, 47.48945592, 0.0 ], [ -93.38786062, 47.48944095, 0.0 ], [ -93.38788211, 47.48942032, 0.0 ], [ -93.38788097, 47.48939871, 0.0 ], [ -93.38789856, 47.48937837, 0.0 ], [ -93.38791974, 47.48935591, 0.0 ], [ -93.38790427, 47.48937602, 0.0 ], [ -93.38789398, 47.48935641, 0.0 ], [ -93.38791606, 47.48936853, 0.0 ], [ -93.38792635, 47.48938596, 0.0 ], [ -93.38791835, 47.48936372, 0.0 ], [ -93.38788318, 47.48938484, 0.0 ], [ -93.38787477, 47.48940982, 0.0 ], [ -93.38786358, 47.48943358, 0.0 ], [ -93.38785105, 47.48945352, 0.0 ], [ -93.38782226, 47.48948108, 0.0 ], [ -93.38780491, 47.48950105, 0.0 ], [ -93.38778474, 47.48952942, 0.0 ], [ -93.3877648, 47.48955353, 0.0 ], [ -93.38773897, 47.48956407, 0.0 ], [ -93.38772131, 47.4895946, 0.0 ], [ -93.38771035, 47.4896179, 0.0 ], [ -93.38770143, 47.48964249, 0.0 ], [ -93.38770302, 47.48966695, 0.0 ], [ -93.38770844, 47.48969187, 0.0 ], [ -93.38771762, 47.48971564, 0.0 ], [ -93.38773659, 47.48974253, 0.0 ], [ -93.38776236, 47.48976945, 0.0 ], [ -93.38778263, 47.48979215, 0.0 ], [ -93.38779676, 47.48981232, 0.0 ], [ -93.38781294, 47.48983948, 0.0 ], [ -93.38783438, 47.48986772, 0.0 ], [ -93.3878621, 47.48989646, 0.0 ], [ -93.38788789, 47.48992336, 0.0 ], [ -93.38790834, 47.48995068, 0.0 ], [ -93.387929, 47.48997945, 0.0 ], [ -93.38795136, 47.49000779, 0.0 ], [ -93.38797632, 47.49003622, 0.0 ], [ -93.38799922, 47.49006422, 0.0 ], [ -93.38801145, 47.49008585, 0.0 ], [ -93.38800189, 47.49010657, 0.0 ], [ -93.3880091, 47.49008716, 0.0 ], [ -93.38803645, 47.49007556, 0.0 ], [ -93.388027, 47.49009885, 0.0 ], [ -93.38802461, 47.49011784, 0.0 ], [ -93.38802783, 47.49014139, 0.0 ], [ -93.38803685, 47.49017111, 0.0 ], [ -93.38804757, 47.49018884, 0.0 ], [ -93.38807894, 47.49019966, 0.0 ], [ -93.38811636, 47.49020471, 0.0 ], [ -93.38814843, 47.4902053, 0.0 ], [ -93.38818439, 47.49021197, 0.0 ], [ -93.38821644, 47.49021385, 0.0 ], [ -93.38824382, 47.49021076, 0.0 ], [ -93.38827976, 47.49021707, 0.0 ], [ -93.3883349, 47.49022064, 0.0 ], [ -93.38838534, 47.49022482, 0.0 ], [ -93.38843731, 47.4902283, 0.0 ], [ -93.38849523, 47.49022033, 0.0 ], [ -93.38855073, 47.49020198, 0.0 ], [ -93.38860325, 47.49017799, 0.0 ], [ -93.38863077, 47.49011458, 0.0 ], [ -93.38863853, 47.49009093, 0.0 ], [ -93.3886399, 47.49005813, 0.0 ], [ -93.38862629, 47.49002594, 0.0 ], [ -93.38861332, 47.48998003, 0.0 ], [ -93.38863398, 47.4899585, 0.0 ], [ -93.38864279, 47.48993077, 0.0 ], [ -93.38865609, 47.48990955, 0.0 ], [ -93.38867209, 47.48988845, 0.0 ], [ -93.38869803, 47.48986525, 0.0 ], [ -93.38873646, 47.48984846, 0.0 ], [ -93.38878767, 47.48983404, 0.0 ], [ -93.38884308, 47.48981785, 0.0 ], [ -93.38888736, 47.48980388, 0.0 ], [ -93.38892939, 47.48978348, 0.0 ], [ -93.38897513, 47.48976239, 0.0 ], [ -93.38902484, 47.48973533, 0.0 ], [ -93.389081, 47.48968354, 0.0 ], [ -93.38913469, 47.48964956, 0.0 ], [ -93.38914353, 47.48961481, 0.0 ], [ -93.38919441, 47.48958101, 0.0 ], [ -93.38923593, 47.48956488, 0.0 ], [ -93.38927767, 47.48954507, 0.0 ], [ -93.38929959, 47.48951427, 0.0 ], [ -93.38931991, 47.48948477, 0.0 ], [ -93.38930377, 47.4894532, 0.0 ], [ -93.38925876, 47.48942418, 0.0 ], [ -93.38923155, 47.48939614, 0.0 ], [ -93.3892373, 47.48936542, 0.0 ], [ -93.38926551, 47.48933939, 0.0 ], [ -93.38929772, 47.48931395, 0.0 ], [ -93.38932679, 47.48928914, 0.0 ], [ -93.38941306, 47.48927285, 0.0 ], [ -93.3894639, 47.48925131, 0.0 ], [ -93.38951205, 47.48922687, 0.0 ], [ -93.38958864, 47.48921383, 0.0 ], [ -93.38962508, 47.48918996, 0.0 ], [ -93.38966536, 47.48916823, 0.0 ], [ -93.38971557, 47.48917069, 0.0 ], [ -93.38976106, 47.48915776, 0.0 ], [ -93.38981213, 47.48915577, 0.0 ], [ -93.38984812, 47.48914322, 0.0 ], [ -93.38987366, 47.48911504, 0.0 ], [ -93.38990053, 47.48908473, 0.0 ], [ -93.38988722, 47.48905537, 0.0 ], [ -93.38985934, 47.48902997, 0.0 ], [ -93.38983404, 47.48899908, 0.0 ], [ -93.38980811, 47.48897866, 0.0 ], [ -93.38976093, 47.48896706, 0.0 ], [ -93.38973872, 47.48895611, 0.0 ], [ -93.3897531, 47.48893836, 0.0 ], [ -93.38975535, 47.4889105, 0.0 ], [ -93.38975057, 47.48888843, 0.0 ], [ -93.38978247, 47.48888721, 0.0 ], [ -93.38976495, 47.48890159, 0.0 ], [ -93.38978916, 47.48888794, 0.0 ], [ -93.38978823, 47.48886525, 0.0 ], [ -93.38976295, 47.48885534, 0.0 ], [ -93.38978429, 47.48886754, 0.0 ], [ -93.38977153, 47.48888521, 0.0 ], [ -93.38977933, 47.48890643, 0.0 ], [ -93.38977833, 47.48893044, 0.0 ], [ -93.3897839, 47.48895338, 0.0 ], [ -93.389789, 47.48897576, 0.0 ], [ -93.38980242, 47.4889995, 0.0 ], [ -93.38980552, 47.48902282, 0.0 ], [ -93.38981178, 47.48905354, 0.0 ], [ -93.38982225, 47.48907389, 0.0 ], [ -93.3898174, 47.48909312, 0.0 ], [ -93.38979678, 47.48911061, 0.0 ], [ -93.38976751, 47.48912195, 0.0 ], [ -93.38972606, 47.48913483, 0.0 ], [ -93.3896788, 47.48915058, 0.0 ], [ -93.38963107, 47.48916865, 0.0 ], [ -93.38958608, 47.48919077, 0.0 ], [ -93.38953951, 47.48921454, 0.0 ], [ -93.38949658, 47.48924007, 0.0 ], [ -93.38944631, 47.48926247, 0.0 ], [ -93.38939162, 47.48928456, 0.0 ], [ -93.38933979, 47.48930904, 0.0 ], [ -93.38929558, 47.48933622, 0.0 ], [ -93.3892572, 47.48936526, 0.0 ], [ -93.38922611, 47.48939528, 0.0 ], [ -93.38921493, 47.48943388, 0.0 ], [ -93.38925933, 47.48947371, 0.0 ], [ -93.38928094, 47.4895101, 0.0 ], [ -93.38927943, 47.4895431, 0.0 ], [ -93.38926444, 47.48956638, 0.0 ], [ -93.38924049, 47.48958866, 0.0 ], [ -93.38919965, 47.4896097, 0.0 ], [ -93.38916816, 47.48964033, 0.0 ], [ -93.38914515, 47.48967283, 0.0 ], [ -93.38912201, 47.48969988, 0.0 ], [ -93.38908626, 47.48972509, 0.0 ], [ -93.38903746, 47.48975116, 0.0 ], [ -93.38897386, 47.48977917, 0.0 ], [ -93.38892253, 47.48980056, 0.0 ], [ -93.38886201, 47.48982452, 0.0 ], [ -93.38881056, 47.48983323, 0.0 ], [ -93.38876166, 47.48985328, 0.0 ], [ -93.38871732, 47.48987576, 0.0 ], [ -93.38868296, 47.4899016, 0.0 ], [ -93.38865228, 47.48993111, 0.0 ], [ -93.38862448, 47.48995496, 0.0 ], [ -93.38860416, 47.48998338, 0.0 ], [ -93.38860258, 47.49002087, 0.0 ], [ -93.38860865, 47.49006516, 0.0 ], [ -93.3886074, 47.49010577, 0.0 ], [ -93.38858105, 47.49014165, 0.0 ], [ -93.38854033, 47.49016899, 0.0 ], [ -93.38848792, 47.49018722, 0.0 ], [ -93.38843528, 47.49019706, 0.0 ], [ -93.38838197, 47.49020606, 0.0 ], [ -93.38832295, 47.4902146, 0.0 ], [ -93.38825942, 47.49021381, 0.0 ], [ -93.38819956, 47.49020591, 0.0 ], [ -93.38814374, 47.49019945, 0.0 ], [ -93.38809057, 47.4901938, 0.0 ], [ -93.38803707, 47.49018478, 0.0 ], [ -93.38798078, 47.49017151, 0.0 ], [ -93.38792744, 47.49015965, 0.0 ], [ -93.38787116, 47.49015113, 0.0 ], [ -93.38781111, 47.49014949, 0.0 ], [ -93.38775471, 47.4901545, 0.0 ], [ -93.38770878, 47.4901649, 0.0 ], [ -93.38767455, 47.49018364, 0.0 ], [ -93.38766417, 47.4902174, 0.0 ], [ -93.38767427, 47.49025349, 0.0 ], [ -93.3876883, 47.49029175, 0.0 ], [ -93.38770206, 47.49033649, 0.0 ], [ -93.38771214, 47.49038948, 0.0 ], [ -93.38771578, 47.49043525, 0.0 ], [ -93.38773009, 47.4904776, 0.0 ], [ -93.38773997, 47.49053216, 0.0 ], [ -93.38774692, 47.49057834, 0.0 ], [ -93.38775582, 47.49062081, 0.0 ], [ -93.38776879, 47.49065731, 0.0 ], [ -93.3877898, 47.490695, 0.0 ], [ -93.38781909, 47.49073668, 0.0 ], [ -93.38783043, 47.49077644, 0.0 ], [ -93.38783878, 47.49081255, 0.0 ], [ -93.38785509, 47.49085532, 0.0 ], [ -93.38787193, 47.4908988, 0.0 ], [ -93.3878911, 47.49093342, 0.0 ], [ -93.3879116, 47.49096603, 0.0 ], [ -93.38795032, 47.49100522, 0.0 ], [ -93.38801105, 47.49104429, 0.0 ], [ -93.38806562, 47.4910805, 0.0 ], [ -93.38812144, 47.49110003, 0.0 ], [ -93.38817138, 47.49112195, 0.0 ], [ -93.38821925, 47.49114944, 0.0 ], [ -93.38827865, 47.4911748, 0.0 ], [ -93.38833488, 47.4911984, 0.0 ], [ -93.3883832, 47.49122415, 0.0 ], [ -93.3884289, 47.49124866, 0.0 ], [ -93.38847307, 47.49126893, 0.0 ], [ -93.38853071, 47.49128931, 0.0 ], [ -93.38857963, 47.49130676, 0.0 ], [ -93.38862283, 47.49133249, 0.0 ], [ -93.38866345, 47.49136333, 0.0 ], [ -93.38869786, 47.49139489, 0.0 ], [ -93.38871912, 47.49142456, 0.0 ], [ -93.38872534, 47.49145757, 0.0 ], [ -93.38872551, 47.49148174, 0.0 ], [ -93.38872599, 47.49151172, 0.0 ], [ -93.38872905, 47.49155129, 0.0 ], [ -93.38873401, 47.4915924, 0.0 ], [ -93.38874533, 47.49163096, 0.0 ], [ -93.38876371, 47.49166745, 0.0 ], [ -93.38878795, 47.49170263, 0.0 ], [ -93.38881557, 47.49173849, 0.0 ], [ -93.38884417, 47.49176877, 0.0 ], [ -93.38887642, 47.49179004, 0.0 ], [ -93.38891526, 47.49181779, 0.0 ], [ -93.3889481, 47.49184367, 0.0 ], [ -93.38898279, 47.49186689, 0.0 ], [ -93.38901448, 47.49189329, 0.0 ], [ -93.38904005, 47.49192477, 0.0 ], [ -93.38906045, 47.4919589, 0.0 ], [ -93.38907925, 47.49199536, 0.0 ], [ -93.38909604, 47.49202827, 0.0 ], [ -93.38911688, 47.49206167, 0.0 ], [ -93.38913995, 47.49209703, 0.0 ], [ -93.38916392, 47.49213191, 0.0 ], [ -93.38919207, 47.49216292, 0.0 ], [ -93.38922646, 47.49219017, 0.0 ], [ -93.3892693, 47.49221298, 0.0 ], [ -93.38931433, 47.49223288, 0.0 ], [ -93.3893616, 47.49225168, 0.0 ], [ -93.38941534, 47.49226965, 0.0 ], [ -93.38947843, 47.49228549, 0.0 ], [ -93.38954531, 47.49229847, 0.0 ], [ -93.38960703, 47.49230989, 0.0 ], [ -93.38966374, 47.49231879, 0.0 ], [ -93.38971792, 47.49232459, 0.0 ], [ -93.38977691, 47.49232758, 0.0 ], [ -93.38984188, 47.49233041, 0.0 ], [ -93.38990622, 47.49233518, 0.0 ], [ -93.38997066, 47.49234125, 0.0 ], [ -93.3900414, 47.4923472, 0.0 ], [ -93.39011178, 47.49234855, 0.0 ], [ -93.39017898, 47.4923517, 0.0 ], [ -93.39024242, 47.49235619, 0.0 ], [ -93.39029828, 47.4923617, 0.0 ], [ -93.39034746, 47.49237184, 0.0 ], [ -93.39039388, 47.49238125, 0.0 ], [ -93.39043417, 47.49238807, 0.0 ], [ -93.39047614, 47.49239745, 0.0 ], [ -93.39051647, 47.49240836, 0.0 ], [ -93.39055808, 47.49241938, 0.0 ], [ -93.39059498, 47.49243001, 0.0 ], [ -93.39062518, 47.49244725, 0.0 ], [ -93.39064853, 47.49243471, 0.0 ], [ -93.3906495, 47.49240468, 0.0 ], [ -93.39064898, 47.49237451, 0.0 ], [ -93.39065591, 47.49234834, 0.0 ], [ -93.39065987, 47.4923223, 0.0 ], [ -93.39068834, 47.49231193, 0.0 ], [ -93.39088226, 47.49226693, 0.0 ], [ -93.39065709, 47.49235214, 0.0 ], [ -93.39064921, 47.49236933, 0.0 ], [ -93.39062109, 47.49237567, 0.0 ], [ -93.39060257, 47.49238912, 0.0 ], [ -93.39058283, 47.49240125, 0.0 ], [ -93.39054463, 47.49241947, 0.0 ], [ -93.39051822, 47.49244287, 0.0 ], [ -93.39056012, 47.49245744, 0.0 ], [ -93.39058676, 47.49245117, 0.0 ], [ -93.39060682, 47.49243933, 0.0 ], [ -93.39063484, 47.49245533, 0.0 ], [ -93.39065415, 47.49247792, 0.0 ], [ -93.39066179, 47.49250982, 0.0 ], [ -93.39066323, 47.49254864, 0.0 ], [ -93.39067033, 47.49259828, 0.0 ], [ -93.39069192, 47.49265782, 0.0 ], [ -93.39076757, 47.49271365, 0.0 ], [ -93.39082496, 47.49276298, 0.0 ], [ -93.39087831, 47.49281468, 0.0 ], [ -93.3909322, 47.49285931, 0.0 ], [ -93.39097178, 47.49289932, 0.0 ], [ -93.39101249, 47.49293918, 0.0 ], [ -93.39105493, 47.49297534, 0.0 ], [ -93.39110214, 47.49301764, 0.0 ], [ -93.39115188, 47.49306498, 0.0 ], [ -93.39118936, 47.49311208, 0.0 ], [ -93.39121946, 47.49315272, 0.0 ], [ -93.39123653, 47.49319415, 0.0 ], [ -93.3912562, 47.49323593, 0.0 ], [ -93.39129554, 47.49327247, 0.0 ], [ -93.39134662, 47.49330535, 0.0 ], [ -93.39140062, 47.49333983, 0.0 ], [ -93.39143461, 47.49336938, 0.0 ], [ -93.39146225, 47.49340335, 0.0 ], [ -93.39150567, 47.49343297, 0.0 ], [ -93.39156008, 47.49345624, 0.0 ], [ -93.39161672, 47.49347104, 0.0 ], [ -93.39167083, 47.49348952, 0.0 ], [ -93.39171988, 47.49351003, 0.0 ], [ -93.39176888, 47.49353149, 0.0 ], [ -93.3918238, 47.49355653, 0.0 ], [ -93.39187372, 47.49357834, 0.0 ], [ -93.39192874, 47.49359898, 0.0 ], [ -93.39198076, 47.49361922, 0.0 ], [ -93.39202602, 47.49363565, 0.0 ], [ -93.3920775, 47.49364333, 0.0 ], [ -93.39213072, 47.49363409, 0.0 ], [ -93.39219114, 47.49362164, 0.0 ], [ -93.39224142, 47.49360681, 0.0 ], [ -93.39229291, 47.49359219, 0.0 ], [ -93.3923501, 47.49357626, 0.0 ], [ -93.39240702, 47.49357004, 0.0 ], [ -93.3924588, 47.49357148, 0.0 ], [ -93.39251898, 47.49357826, 0.0 ], [ -93.39256, 47.49358425, 0.0 ], [ -93.39258649, 47.49359061, 0.0 ], [ -93.39261704, 47.49359761, 0.0 ], [ -93.39264328, 47.49360223, 0.0 ], [ -93.39267399, 47.49360729, 0.0 ], [ -93.3926998, 47.49361519, 0.0 ], [ -93.39272954, 47.49362784, 0.0 ], [ -93.39275733, 47.49363835, 0.0 ], [ -93.39279133, 47.49366144, 0.0 ], [ -93.39282354, 47.49367758, 0.0 ], [ -93.39285992, 47.49368736, 0.0 ], [ -93.39289532, 47.49370053, 0.0 ], [ -93.39293301, 47.49372054, 0.0 ], [ -93.39297157, 47.49373878, 0.0 ], [ -93.39300712, 47.49375688, 0.0 ], [ -93.39304151, 47.49378138, 0.0 ], [ -93.3930777, 47.49380607, 0.0 ], [ -93.39311195, 47.49383126, 0.0 ], [ -93.39314365, 47.49385405, 0.0 ], [ -93.39317175, 47.49387236, 0.0 ], [ -93.39320141, 47.49389247, 0.0 ], [ -93.39322992, 47.49391141, 0.0 ], [ -93.39326503, 47.49392685, 0.0 ], [ -93.39329401, 47.49394168, 0.0 ], [ -93.39331781, 47.49395613, 0.0 ], [ -93.39335061, 47.49397023, 0.0 ], [ -93.39338588, 47.49398539, 0.0 ], [ -93.39341754, 47.49400111, 0.0 ], [ -93.39345127, 47.49402164, 0.0 ], [ -93.39347867, 47.49404425, 0.0 ], [ -93.39350453, 47.4940666, 0.0 ], [ -93.39352235, 47.49408339, 0.0 ], [ -93.39352816, 47.49410282, 0.0 ], [ -93.39356119, 47.49412094, 0.0 ], [ -93.39359085, 47.49414811, 0.0 ], [ -93.39356523, 47.49413052, 0.0 ], [ -93.3935423, 47.49411988, 0.0 ], [ -93.39352055, 47.49410439, 0.0 ], [ -93.39349646, 47.49408595, 0.0 ], [ -93.39350352, 47.49410737, 0.0 ], [ -93.39352512, 47.49412179, 0.0 ], [ -93.39355324, 47.49414288, 0.0 ], [ -93.39358523, 47.49416614, 0.0 ], [ -93.39361695, 47.49419189, 0.0 ], [ -93.39364114, 47.4942188, 0.0 ], [ -93.39366271, 47.49424735, 0.0 ], [ -93.39367565, 47.4942752, 0.0 ], [ -93.39367176, 47.49429479, 0.0 ], [ -93.39367026, 47.4943202, 0.0 ], [ -93.39367815, 47.49435148, 0.0 ], [ -93.39368677, 47.49438068, 0.0 ], [ -93.39369154, 47.49440212, 0.0 ], [ -93.3936985, 47.49443275, 0.0 ], [ -93.39370466, 47.49446196, 0.0 ], [ -93.39371477, 47.49448856, 0.0 ], [ -93.39372445, 47.49451909, 0.0 ], [ -93.39373404, 47.49454746, 0.0 ], [ -93.39374701, 47.4945774, 0.0 ], [ -93.39375835, 47.49461238, 0.0 ], [ -93.39376915, 47.49464569, 0.0 ], [ -93.39377735, 47.49466355, 0.0 ], [ -93.39378928, 47.49468248, 0.0 ], [ -93.39378231, 47.49470633, 0.0 ], [ -93.39377479, 47.49472844, 0.0 ], [ -93.39376603, 47.4947607, 0.0 ], [ -93.39375425, 47.49479337, 0.0 ], [ -93.39372415, 47.49483236, 0.0 ], [ -93.39369118, 47.49487144, 0.0 ], [ -93.39366795, 47.49490521, 0.0 ], [ -93.39365626, 47.49493218, 0.0 ], [ -93.393653, 47.4949551, 0.0 ], [ -93.39365459, 47.49497781, 0.0 ], [ -93.39366124, 47.49499644, 0.0 ], [ -93.39366998, 47.49501557, 0.0 ], [ -93.3936794, 47.4950352, 0.0 ], [ -93.39369353, 47.49505472, 0.0 ], [ -93.39371637, 47.49507246, 0.0 ], [ -93.39373203, 47.49510018, 0.0 ], [ -93.39376439, 47.49513937, 0.0 ], [ -93.39380281, 47.4951742, 0.0 ], [ -93.39383254, 47.49520706, 0.0 ], [ -93.39385564, 47.49524311, 0.0 ], [ -93.39387521, 47.49527929, 0.0 ], [ -93.39389317, 47.49531764, 0.0 ], [ -93.39390685, 47.495354, 0.0 ], [ -93.39391801, 47.49538725, 0.0 ], [ -93.39392714, 47.4954172, 0.0 ], [ -93.3939354, 47.49544542, 0.0 ], [ -93.3939465, 47.49547424, 0.0 ], [ -93.39396426, 47.49550481, 0.0 ], [ -93.39398997, 47.49552939, 0.0 ], [ -93.39403227, 47.49556311, 0.0 ], [ -93.39406467, 47.49558094, 0.0 ], [ -93.39409005, 47.49559409, 0.0 ], [ -93.39412161, 47.49560452, 0.0 ], [ -93.39414984, 47.49559855, 0.0 ], [ -93.39418051, 47.49558247, 0.0 ], [ -93.39419673, 47.49556578, 0.0 ], [ -93.39421321, 47.49554188, 0.0 ], [ -93.39422679, 47.49551965, 0.0 ], [ -93.39424232, 47.49550118, 0.0 ], [ -93.39426239, 47.49547913, 0.0 ], [ -93.39427724, 47.49545905, 0.0 ], [ -93.39428862, 47.49544025, 0.0 ], [ -93.39426723, 47.49545522, 0.0 ], [ -93.39425454, 47.49547397, 0.0 ], [ -93.39423836, 47.49549268, 0.0 ], [ -93.39421763, 47.49551057, 0.0 ], [ -93.39420462, 47.4955306, 0.0 ], [ -93.39420002, 47.49555225, 0.0 ], [ -93.39420821, 47.49557107, 0.0 ], [ -93.39423594, 47.49558006, 0.0 ], [ -93.39427635, 47.49558226, 0.0 ], [ -93.39430771, 47.49557366, 0.0 ], [ -93.39432972, 47.49556035, 0.0 ], [ -93.39435721, 47.49554884, 0.0 ], [ -93.39438856, 47.49554124, 0.0 ], [ -93.3944276, 47.49554889, 0.0 ], [ -93.39446048, 47.49553992, 0.0 ], [ -93.39449192, 47.49552658, 0.0 ], [ -93.39452425, 47.49551055, 0.0 ], [ -93.39454813, 47.49549378, 0.0 ], [ -93.39456524, 47.49547416, 0.0 ], [ -93.39453976, 47.49548384, 0.0 ], [ -93.39450064, 47.49549883, 0.0 ], [ -93.39445415, 47.49551689, 0.0 ], [ -93.39441166, 47.49552711, 0.0 ], [ -93.39437021, 47.49553861, 0.0 ], [ -93.39434041, 47.49554981, 0.0 ], [ -93.3942878, 47.49557246, 0.0 ], [ -93.39425333, 47.495587, 0.0 ], [ -93.39422162, 47.4955967, 0.0 ], [ -93.39418701, 47.49560349, 0.0 ], [ -93.39415126, 47.49561066, 0.0 ], [ -93.39412164, 47.49561964, 0.0 ], [ -93.39409747, 47.49563558, 0.0 ], [ -93.39407633, 47.49565974, 0.0 ], [ -93.39408118, 47.49568596, 0.0 ], [ -93.39410408, 47.49571265, 0.0 ], [ -93.39412164, 47.49574329, 0.0 ], [ -93.39414138, 47.49577833, 0.0 ], [ -93.39416479, 47.49581073, 0.0 ], [ -93.39418729, 47.49584294, 0.0 ], [ -93.39421405, 47.49587267, 0.0 ], [ -93.39424137, 47.4959018, 0.0 ], [ -93.39426709, 47.49592922, 0.0 ], [ -93.39428865, 47.49595895, 0.0 ], [ -93.39430613, 47.49598835, 0.0 ], [ -93.3943202, 47.49602208, 0.0 ], [ -93.39433296, 47.49605033, 0.0 ], [ -93.3943448, 47.49607178, 0.0 ], [ -93.39436764, 47.49609987, 0.0 ], [ -93.3943895, 47.49612681, 0.0 ], [ -93.39440207, 47.49614807, 0.0 ], [ -93.39441537, 47.49617734, 0.0 ], [ -93.39442499, 47.49620711, 0.0 ], [ -93.3944319, 47.4962342, 0.0 ], [ -93.39443976, 47.4962609, 0.0 ], [ -93.39445867, 47.49628999, 0.0 ], [ -93.39449121, 47.49631935, 0.0 ], [ -93.3945323, 47.49634658, 0.0 ], [ -93.39455936, 47.49638513, 0.0 ], [ -93.3945788, 47.49642268, 0.0 ], [ -93.39459779, 47.49645852, 0.0 ], [ -93.3946153, 47.49649147, 0.0 ], [ -93.39463282, 47.49652228, 0.0 ], [ -93.39465438, 47.49655235, 0.0 ], [ -93.39467729, 47.49658541, 0.0 ], [ -93.3946918, 47.49661667, 0.0 ], [ -93.39470006, 47.49664252, 0.0 ], [ -93.3947111, 47.4966651, 0.0 ], [ -93.39472843, 47.49668786, 0.0 ], [ -93.3947457, 47.49672111, 0.0 ], [ -93.39475861, 47.49674203, 0.0 ], [ -93.39477218, 47.49676442, 0.0 ], [ -93.39478127, 47.49678861, 0.0 ], [ -93.39478856, 47.49680735, 0.0 ], [ -93.39478229, 47.49683389, 0.0 ], [ -93.39475406, 47.49684556, 0.0 ], [ -93.39478283, 47.49684747, 0.0 ], [ -93.39477398, 47.49682223, 0.0 ], [ -93.39477352, 47.496802, 0.0 ], [ -93.39476719, 47.49676878, 0.0 ], [ -93.39475566, 47.49674829, 0.0 ], [ -93.39474081, 47.49672631, 0.0 ], [ -93.394736, 47.49670537, 0.0 ], [ -93.39472222, 47.49667353, 0.0 ], [ -93.39470003, 47.4966536, 0.0 ], [ -93.39467719, 47.49662579, 0.0 ], [ -93.39465605, 47.49659061, 0.0 ], [ -93.39463298, 47.49655206, 0.0 ], [ -93.39461445, 47.49651228, 0.0 ], [ -93.39459108, 47.4964793, 0.0 ], [ -93.39455502, 47.49644648, 0.0 ], [ -93.39452437, 47.49641535, 0.0 ], [ -93.39450117, 47.49638262, 0.0 ], [ -93.39447857, 47.49634791, 0.0 ], [ -93.39445796, 47.49631566, 0.0 ], [ -93.39444878, 47.49628773, 0.0 ], [ -93.39443439, 47.49626535, 0.0 ], [ -93.39440816, 47.49624319, 0.0 ], [ -93.394388, 47.49621482, 0.0 ], [ -93.39437183, 47.49618122, 0.0 ], [ -93.39436289, 47.49615761, 0.0 ], [ -93.39435619, 47.49614017, 0.0 ], [ -93.3943481, 47.49612009, 0.0 ], [ -93.39433205, 47.49609783, 0.0 ], [ -93.39431738, 47.4960794, 0.0 ], [ -93.39430907, 47.49605623, 0.0 ], [ -93.39429357, 47.49603275, 0.0 ], [ -93.39427632, 47.49599776, 0.0 ], [ -93.39426581, 47.49596435, 0.0 ], [ -93.39425917, 47.49592847, 0.0 ], [ -93.39424879, 47.49589921, 0.0 ], [ -93.39423095, 47.49587316, 0.0 ], [ -93.39421734, 47.49584931, 0.0 ], [ -93.39420089, 47.49582283, 0.0 ], [ -93.39418683, 47.49579771, 0.0 ], [ -93.39417564, 47.49577068, 0.0 ], [ -93.39416219, 47.49573903, 0.0 ], [ -93.39415052, 47.49571254, 0.0 ], [ -93.39414003, 47.49568497, 0.0 ], [ -93.39412645, 47.49565923, 0.0 ], [ -93.39410929, 47.49563094, 0.0 ], [ -93.39408964, 47.49560076, 0.0 ], [ -93.39406662, 47.49557853, 0.0 ], [ -93.39403803, 47.49556112, 0.0 ], [ -93.3940027, 47.49554079, 0.0 ], [ -93.39396648, 47.49551561, 0.0 ], [ -93.39393554, 47.49548514, 0.0 ], [ -93.39391418, 47.49545041, 0.0 ], [ -93.39389893, 47.49541217, 0.0 ], [ -93.39388779, 47.49537033, 0.0 ], [ -93.3938805, 47.49532307, 0.0 ], [ -93.39386483, 47.49527812, 0.0 ], [ -93.39385013, 47.49523784, 0.0 ], [ -93.39382023, 47.49520107, 0.0 ], [ -93.39379125, 47.49516594, 0.0 ], [ -93.39376375, 47.49514053, 0.0 ], [ -93.3937414, 47.49511596, 0.0 ], [ -93.39372316, 47.49509505, 0.0 ], [ -93.39370606, 47.49507176, 0.0 ], [ -93.39368793, 47.49504259, 0.0 ], [ -93.39368116, 47.49502215, 0.0 ], [ -93.3936759, 47.49499929, 0.0 ], [ -93.39366621, 47.49497197, 0.0 ], [ -93.39364986, 47.49494754, 0.0 ], [ -93.39363035, 47.49492878, 0.0 ], [ -93.39359018, 47.4949192, 0.0 ], [ -93.39355182, 47.49491772, 0.0 ], [ -93.39352177, 47.49492149, 0.0 ], [ -93.3934893, 47.49494215, 0.0 ], [ -93.39345325, 47.49497063, 0.0 ], [ -93.39341139, 47.49499849, 0.0 ], [ -93.39337081, 47.49502535, 0.0 ], [ -93.39334904, 47.49505019, 0.0 ], [ -93.39333482, 47.49507794, 0.0 ], [ -93.39331013, 47.49511295, 0.0 ], [ -93.39327152, 47.49516197, 0.0 ], [ -93.39323853, 47.49519901, 0.0 ], [ -93.39321696, 47.49522954, 0.0 ], [ -93.39319731, 47.49525804, 0.0 ], [ -93.39317043, 47.49527211, 0.0 ], [ -93.39314504, 47.49529486, 0.0 ], [ -93.39311407, 47.4953178, 0.0 ], [ -93.39307168, 47.4953838, 0.0 ], [ -93.39304597, 47.49541647, 0.0 ], [ -93.39298253, 47.49545727, 0.0 ], [ -93.392929, 47.49549876, 0.0 ], [ -93.39285955, 47.4955306, 0.0 ], [ -93.39280295, 47.49556149, 0.0 ], [ -93.39270648, 47.49558004, 0.0 ], [ -93.39261607, 47.4955899, 0.0 ], [ -93.39253174, 47.49560526, 0.0 ], [ -93.39243881, 47.49561698, 0.0 ], [ -93.39234887, 47.49562924, 0.0 ], [ -93.39226631, 47.49563836, 0.0 ], [ -93.39219651, 47.49564144, 0.0 ], [ -93.39212164, 47.49564079, 0.0 ], [ -93.39206072, 47.49565271, 0.0 ], [ -93.3919613, 47.49566347, 0.0 ], [ -93.39188092, 47.49567286, 0.0 ], [ -93.39180005, 47.4956823, 0.0 ], [ -93.39172386, 47.49569208, 0.0 ], [ -93.39164577, 47.49570377, 0.0 ], [ -93.39156547, 47.49571656, 0.0 ], [ -93.39150028, 47.49572669, 0.0 ], [ -93.39142738, 47.49573236, 0.0 ], [ -93.39136318, 47.49574107, 0.0 ], [ -93.39129516, 47.49574408, 0.0 ], [ -93.39122617, 47.49575369, 0.0 ], [ -93.3911466, 47.49576044, 0.0 ], [ -93.39107464, 47.49577544, 0.0 ], [ -93.39099129, 47.49579211, 0.0 ], [ -93.39091514, 47.49582275, 0.0 ], [ -93.39084692, 47.49584288, 0.0 ], [ -93.39077508, 47.49586013, 0.0 ], [ -93.39072048, 47.49588149, 0.0 ], [ -93.39066508, 47.49589155, 0.0 ], [ -93.39059085, 47.49590249, 0.0 ], [ -93.3905278, 47.49591388, 0.0 ], [ -93.39045843, 47.49592546, 0.0 ], [ -93.39039243, 47.49596598, 0.0 ], [ -93.39031897, 47.496001, 0.0 ], [ -93.39024703, 47.49603797, 0.0 ], [ -93.39017367, 47.49607603, 0.0 ], [ -93.39012261, 47.49611161, 0.0 ], [ -93.39005798, 47.49614849, 0.0 ], [ -93.38999621, 47.49618811, 0.0 ], [ -93.38993121, 47.49622144, 0.0 ], [ -93.38986979, 47.49625935, 0.0 ], [ -93.38978645, 47.49628924, 0.0 ], [ -93.38969959, 47.49632306, 0.0 ], [ -93.38962862, 47.49635671, 0.0 ], [ -93.38955655, 47.49638647, 0.0 ], [ -93.38949029, 47.49641817, 0.0 ], [ -93.38942362, 47.49643807, 0.0 ], [ -93.38936386, 47.49646835, 0.0 ], [ -93.38929176, 47.49649909, 0.0 ], [ -93.38923663, 47.49651092, 0.0 ], [ -93.38914927, 47.49653421, 0.0 ], [ -93.38911299, 47.49654683, 0.0 ], [ -93.38904608, 47.49656787, 0.0 ], [ -93.38899392, 47.49659287, 0.0 ], [ -93.3889231, 47.49661639, 0.0 ], [ -93.38885001, 47.49664021, 0.0 ], [ -93.38879874, 47.49665634, 0.0 ], [ -93.3887449, 47.49666848, 0.0 ], [ -93.38866101, 47.49668102, 0.0 ], [ -93.38858877, 47.49669097, 0.0 ], [ -93.38851279, 47.49669276, 0.0 ], [ -93.38844448, 47.4966965, 0.0 ], [ -93.3883785, 47.49669194, 0.0 ], [ -93.38829571, 47.49667501, 0.0 ], [ -93.388228, 47.49664916, 0.0 ], [ -93.38814563, 47.4966269, 0.0 ], [ -93.38808689, 47.49661501, 0.0 ], [ -93.38802282, 47.49659089, 0.0 ], [ -93.38795859, 47.4965773, 0.0 ], [ -93.38791724, 47.49656252, 0.0 ], [ -93.38785343, 47.49654592, 0.0 ], [ -93.38778185, 47.49653868, 0.0 ], [ -93.38772751, 47.49653251, 0.0 ], [ -93.38767472, 47.49651773, 0.0 ], [ -93.38762708, 47.49652132, 0.0 ], [ -93.38760048, 47.49652148, 0.0 ], [ -93.38756952, 47.49652088, 0.0 ], [ -93.38761843, 47.49652782, 0.0 ], [ -93.38764988, 47.4965301, 0.0 ], [ -93.38768203, 47.49653138, 0.0 ], [ -93.38773359, 47.4965345, 0.0 ], [ -93.3877664, 47.49653782, 0.0 ], [ -93.38780104, 47.4965444, 0.0 ], [ -93.38783468, 47.49655378, 0.0 ], [ -93.38787587, 47.49656377, 0.0 ], [ -93.38792584, 47.49657364, 0.0 ], [ -93.38796294, 47.49658187, 0.0 ], [ -93.3879926, 47.49658747, 0.0 ], [ -93.38802599, 47.49659327, 0.0 ], [ -93.38806334, 47.49660322, 0.0 ], [ -93.38810194, 47.49661478, 0.0 ], [ -93.38813211, 47.49661998, 0.0 ], [ -93.38816002, 47.49662605, 0.0 ], [ -93.38818899, 47.49663577, 0.0 ], [ -93.38823607, 47.4966494, 0.0 ], [ -93.3882749, 47.49665958, 0.0 ], [ -93.38830748, 47.49666703, 0.0 ], [ -93.38832734, 47.49670022, 0.0 ], [ -93.38833214, 47.49672243, 0.0 ], [ -93.38831958, 47.49674763, 0.0 ], [ -93.3883021, 47.49677719, 0.0 ], [ -93.38826337, 47.49680639, 0.0 ], [ -93.38822963, 47.49681559, 0.0 ], [ -93.38818895, 47.49682513, 0.0 ], [ -93.38815215, 47.49683471, 0.0 ], [ -93.38819148, 47.49682054, 0.0 ], [ -93.38822147, 47.49680115, 0.0 ], [ -93.38824832, 47.49678506, 0.0 ], [ -93.38827496, 47.49677158, 0.0 ], [ -93.38830782, 47.49675797, 0.0 ], [ -93.38833967, 47.49675302, 0.0 ], [ -93.3883697, 47.49674902, 0.0 ], [ -93.38839965, 47.49677102, 0.0 ], [ -93.38841507, 47.49680559, 0.0 ], [ -93.38841707, 47.4968364, 0.0 ], [ -93.38841725, 47.49685768, 0.0 ], [ -93.38841526, 47.49687639, 0.0 ], [ -93.38839942, 47.49690995, 0.0 ], [ -93.3884097, 47.49692819, 0.0 ], [ -93.38844231, 47.49689724, 0.0 ], [ -93.38844352, 47.49686694, 0.0 ], [ -93.3884444, 47.49683683, 0.0 ], [ -93.38844682, 47.49681395, 0.0 ], [ -93.38844734, 47.49678985, 0.0 ], [ -93.38844855, 47.49676769, 0.0 ], [ -93.38848601, 47.4967497, 0.0 ], [ -93.38853492, 47.4967311, 0.0 ], [ -93.3885708, 47.49671456, 0.0 ], [ -93.3886196, 47.49668827, 0.0 ], [ -93.3886785, 47.49666582, 0.0 ], [ -93.38874793, 47.49664503, 0.0 ], [ -93.38881673, 47.49663125, 0.0 ], [ -93.38889038, 47.49661523, 0.0 ], [ -93.38896923, 47.49659106, 0.0 ], [ -93.38904495, 47.49656683, 0.0 ], [ -93.38912778, 47.49654773, 0.0 ], [ -93.38920775, 47.49653076, 0.0 ], [ -93.38928233, 47.49651143, 0.0 ], [ -93.38934572, 47.49648962, 0.0 ], [ -93.3894064, 47.49646887, 0.0 ], [ -93.3894688, 47.49644992, 0.0 ], [ -93.38953241, 47.49642944, 0.0 ], [ -93.38959588, 47.49640234, 0.0 ], [ -93.38965912, 47.49637225, 0.0 ], [ -93.3897223, 47.49634129, 0.0 ], [ -93.38978481, 47.49631338, 0.0 ], [ -93.38984634, 47.49628646, 0.0 ], [ -93.3899064, 47.4962584, 0.0 ], [ -93.38996674, 47.49622712, 0.0 ], [ -93.39002822, 47.49619289, 0.0 ], [ -93.39008989, 47.4961573, 0.0 ], [ -93.39015013, 47.49612243, 0.0 ], [ -93.39020421, 47.49608726, 0.0 ], [ -93.39026384, 47.49605432, 0.0 ], [ -93.39032229, 47.49601369, 0.0 ], [ -93.39036405, 47.49597692, 0.0 ], [ -93.39041836, 47.49594563, 0.0 ], [ -93.3904808, 47.49592904, 0.0 ], [ -93.39054999, 47.49591412, 0.0 ], [ -93.39061654, 47.49590035, 0.0 ], [ -93.39068634, 47.49589088, 0.0 ], [ -93.39074388, 47.49587382, 0.0 ], [ -93.39080766, 47.4958545, 0.0 ], [ -93.39086924, 47.49583916, 0.0 ], [ -93.39093201, 47.49582004, 0.0 ], [ -93.39099701, 47.49580199, 0.0 ], [ -93.39105852, 47.49578321, 0.0 ], [ -93.39111379, 47.49576762, 0.0 ], [ -93.3911577, 47.49575227, 0.0 ], [ -93.3911964, 47.4957271, 0.0 ], [ -93.39121015, 47.49569704, 0.0 ], [ -93.3912007, 47.49566539, 0.0 ], [ -93.391178, 47.49563225, 0.0 ], [ -93.39115352, 47.49558858, 0.0 ], [ -93.39113103, 47.49554218, 0.0 ], [ -93.39110239, 47.49549668, 0.0 ], [ -93.39106639, 47.49544771, 0.0 ], [ -93.39103667, 47.49539314, 0.0 ], [ -93.39100436, 47.49533873, 0.0 ], [ -93.39096957, 47.49528123, 0.0 ], [ -93.3909355, 47.49522239, 0.0 ], [ -93.39091176, 47.49516559, 0.0 ], [ -93.3908863, 47.49511149, 0.0 ], [ -93.3908649, 47.49506081, 0.0 ], [ -93.39084174, 47.49501252, 0.0 ], [ -93.39082338, 47.49496812, 0.0 ], [ -93.39080952, 47.49492294, 0.0 ], [ -93.39080086, 47.49488101, 0.0 ], [ -93.39077747, 47.49483561, 0.0 ], [ -93.39075757, 47.49480167, 0.0 ], [ -93.39073336, 47.49476761, 0.0 ], [ -93.39069641, 47.4947513, 0.0 ], [ -93.39067138, 47.49474126, 0.0 ], [ -93.39064041, 47.49473218, 0.0 ], [ -93.39060305, 47.4947467, 0.0 ], [ -93.39056683, 47.49475719, 0.0 ], [ -93.39052623, 47.49477469, 0.0 ], [ -93.39049472, 47.49479345, 0.0 ], [ -93.39044058, 47.49482966, 0.0 ], [ -93.39037902, 47.49484551, 0.0 ], [ -93.39032729, 47.49487313, 0.0 ], [ -93.39027773, 47.49489197, 0.0 ], [ -93.39023795, 47.49491247, 0.0 ], [ -93.39019687, 47.49493665, 0.0 ], [ -93.39015237, 47.49494915, 0.0 ], [ -93.39009561, 47.49496341, 0.0 ], [ -93.3900426, 47.49497876, 0.0 ], [ -93.38999311, 47.49499391, 0.0 ], [ -93.38994888, 47.49500361, 0.0 ], [ -93.38989915, 47.49501477, 0.0 ], [ -93.38985221, 47.49502723, 0.0 ], [ -93.38980729, 47.49503898, 0.0 ], [ -93.38976111, 47.49505053, 0.0 ], [ -93.38970691, 47.49506153, 0.0 ], [ -93.38965627, 47.49507871, 0.0 ], [ -93.38960775, 47.49510221, 0.0 ], [ -93.38956227, 47.49512387, 0.0 ], [ -93.38950889, 47.49514526, 0.0 ], [ -93.38945361, 47.49516142, 0.0 ], [ -93.38939802, 47.49518039, 0.0 ], [ -93.38934165, 47.49520189, 0.0 ], [ -93.38929141, 47.4952201, 0.0 ], [ -93.38923978, 47.49524043, 0.0 ], [ -93.38918177, 47.49526172, 0.0 ], [ -93.38913227, 47.49527633, 0.0 ], [ -93.3890868, 47.49529217, 0.0 ], [ -93.38903667, 47.4953137, 0.0 ], [ -93.38898849, 47.49533863, 0.0 ], [ -93.38893834, 47.49535435, 0.0 ], [ -93.38890039, 47.49536679, 0.0 ], [ -93.3888604, 47.49538191, 0.0 ], [ -93.38881674, 47.49539756, 0.0 ], [ -93.38876563, 47.49540984, 0.0 ], [ -93.38870811, 47.4954174, 0.0 ], [ -93.38865229, 47.49541876, 0.0 ], [ -93.38856948, 47.49541459, 0.0 ], [ -93.38850786, 47.49541958, 0.0 ], [ -93.38843701, 47.49542831, 0.0 ], [ -93.38836291, 47.49542441, 0.0 ], [ -93.38830319, 47.49543138, 0.0 ], [ -93.38823555, 47.49542936, 0.0 ], [ -93.38816764, 47.4954219, 0.0 ], [ -93.38809115, 47.49540994, 0.0 ], [ -93.38801298, 47.49539327, 0.0 ], [ -93.38793594, 47.4953819, 0.0 ], [ -93.38788076, 47.495365, 0.0 ], [ -93.38780126, 47.49535908, 0.0 ], [ -93.38773759, 47.49534942, 0.0 ], [ -93.38767828, 47.49533017, 0.0 ], [ -93.38761311, 47.49531196, 0.0 ], [ -93.3875526, 47.49529146, 0.0 ], [ -93.38750331, 47.49527896, 0.0 ], [ -93.387434, 47.49526515, 0.0 ], [ -93.38737893, 47.49525217, 0.0 ], [ -93.38730004, 47.49524198, 0.0 ], [ -93.38724259, 47.49522325, 0.0 ], [ -93.38718107, 47.49521877, 0.0 ], [ -93.38712499, 47.49520196, 0.0 ], [ -93.38708992, 47.4952042, 0.0 ], [ -93.38706333, 47.49521058, 0.0 ], [ -93.38703664, 47.49522326, 0.0 ], [ -93.38701637, 47.49524179, 0.0 ], [ -93.38701171, 47.49526398, 0.0 ], [ -93.38702051, 47.49529371, 0.0 ], [ -93.38703029, 47.49531504, 0.0 ], [ -93.38703098, 47.49533328, 0.0 ], [ -93.38705282, 47.49534423, 0.0 ], [ -93.3870377, 47.4953842, 0.0 ], [ -93.38704955, 47.49541642, 0.0 ], [ -93.38705989, 47.49544209, 0.0 ], [ -93.38706615, 47.49547132, 0.0 ], [ -93.38706717, 47.49551315, 0.0 ], [ -93.3870622, 47.49555379, 0.0 ], [ -93.38706137, 47.49559432, 0.0 ], [ -93.38706038, 47.49562448, 0.0 ], [ -93.38706236, 47.49564573, 0.0 ], [ -93.38706254, 47.49567131, 0.0 ], [ -93.38705951, 47.49569149, 0.0 ], [ -93.38704712, 47.49566202, 0.0 ], [ -93.38703942, 47.49563635, 0.0 ], [ -93.38703682, 47.49560921, 0.0 ], [ -93.38703501, 47.49558529, 0.0 ], [ -93.38703685, 47.49555306, 0.0 ], [ -93.38704069, 47.49552647, 0.0 ], [ -93.38704163, 47.49549237, 0.0 ], [ -93.38703742, 47.49545562, 0.0 ], [ -93.38703256, 47.49543458, 0.0 ], [ -93.38702703, 47.4954007, 0.0 ], [ -93.38703258, 47.49536499, 0.0 ], [ -93.3870325, 47.49534458, 0.0 ], [ -93.38702414, 47.49532638, 0.0 ], [ -93.38701884, 47.49530187, 0.0 ], [ -93.38702505, 47.49532507, 0.0 ], [ -93.38701838, 47.49528842, 0.0 ], [ -93.38702078, 47.49527024, 0.0 ], [ -93.38703649, 47.49524539, 0.0 ], [ -93.38701223, 47.49525719, 0.0 ], [ -93.38694588, 47.49525221, 0.0 ], [ -93.38688916, 47.49525163, 0.0 ], [ -93.38683811, 47.49525524, 0.0 ], [ -93.38679117, 47.49526098, 0.0 ], [ -93.38674072, 47.49526664, 0.0 ], [ -93.3866893, 47.49527144, 0.0 ], [ -93.38663699, 47.49527347, 0.0 ], [ -93.38658515, 47.4952705, 0.0 ], [ -93.38653496, 47.49526996, 0.0 ], [ -93.3864865, 47.49527656, 0.0 ], [ -93.38645681, 47.49528643, 0.0 ], [ -93.38641944, 47.49529701, 0.0 ], [ -93.38638378, 47.49530158, 0.0 ], [ -93.38635552, 47.49530727, 0.0 ], [ -93.38632646, 47.49531398, 0.0 ], [ -93.38629437, 47.49532117, 0.0 ], [ -93.38626385, 47.49532892, 0.0 ], [ -93.38623654, 47.49533559, 0.0 ], [ -93.3861919, 47.49534151, 0.0 ], [ -93.38621832, 47.4953361, 0.0 ], [ -93.38626066, 47.49532431, 0.0 ], [ -93.38630959, 47.49531552, 0.0 ], [ -93.3863444, 47.49531042, 0.0 ], [ -93.38638492, 47.49530622, 0.0 ], [ -93.38643975, 47.49529828, 0.0 ], [ -93.38647511, 47.4953465, 0.0 ], [ -93.38647033, 47.49537333, 0.0 ], [ -93.38647957, 47.49539572, 0.0 ], [ -93.3864916, 47.49541406, 0.0 ], [ -93.38651424, 47.49542614, 0.0 ], [ -93.38653997, 47.49543592, 0.0 ], [ -93.38657901, 47.49541955, 0.0 ], [ -93.38660401, 47.49540077, 0.0 ], [ -93.38663158, 47.49540899, 0.0 ], [ -93.38667872, 47.49540557, 0.0 ], [ -93.38672454, 47.49539686, 0.0 ], [ -93.38675292, 47.49539324, 0.0 ], [ -93.38677635, 47.49537992, 0.0 ], [ -93.38679992, 47.49536606, 0.0 ], [ -93.38682527, 47.49535134, 0.0 ], [ -93.38683154, 47.49532876, 0.0 ], [ -93.38683698, 47.49530663, 0.0 ], [ -93.38684439, 47.49528681, 0.0 ], [ -93.38685463, 47.49526557, 0.0 ], [ -93.38687363, 47.49523985, 0.0 ], [ -93.38689501, 47.49520635, 0.0 ], [ -93.38690571, 47.49518763, 0.0 ], [ -93.38691566, 47.49516981, 0.0 ], [ -93.38692254, 47.49513717, 0.0 ], [ -93.38692987, 47.49510385, 0.0 ], [ -93.38693423, 47.4950861, 0.0 ], [ -93.38695602, 47.495065, 0.0 ], [ -93.38696762, 47.49504629, 0.0 ], [ -93.3869835, 47.49501528, 0.0 ], [ -93.38701498, 47.49499327, 0.0 ], [ -93.38703435, 47.49497382, 0.0 ], [ -93.38707721, 47.49496372, 0.0 ], [ -93.38710604, 47.49495615, 0.0 ], [ -93.38713169, 47.49495039, 0.0 ], [ -93.38716577, 47.49496691, 0.0 ], [ -93.387197, 47.49497202, 0.0 ], [ -93.38714517, 47.49502596, 0.0 ], [ -93.38662773, 47.49517963, 0.0 ], [ -93.38659922, 47.49515857, 0.0 ], [ -93.38655339, 47.49514784, 0.0 ], [ -93.38651962, 47.4951417, 0.0 ], [ -93.38648481, 47.49513458, 0.0 ], [ -93.38645782, 47.49512914, 0.0 ], [ -93.38642827, 47.4951219, 0.0 ], [ -93.38646721, 47.49512744, 0.0 ], [ -93.38649943, 47.49513234, 0.0 ], [ -93.38652707, 47.49513658, 0.0 ], [ -93.38655802, 47.49514461, 0.0 ], [ -93.38658627, 47.49515235, 0.0 ], [ -93.38663366, 47.49515839, 0.0 ], [ -93.38668149, 47.49516494, 0.0 ], [ -93.38672352, 47.49516429, 0.0 ], [ -93.38675051, 47.49516084, 0.0 ], [ -93.38677881, 47.49516476, 0.0 ], [ -93.3868083, 47.49516953, 0.0 ], [ -93.38683941, 47.49517215, 0.0 ], [ -93.38687286, 47.49517056, 0.0 ], [ -93.38690227, 47.49516786, 0.0 ], [ -93.38693685, 47.49518328, 0.0 ], [ -93.38693383, 47.49520889, 0.0 ], [ -93.38696094, 47.49520497, 0.0 ], [ -93.38700905, 47.49520365, 0.0 ], [ -93.38703431, 47.49520992, 0.0 ], [ -93.38707621, 47.4952055, 0.0 ], [ -93.38710742, 47.49520805, 0.0 ], [ -93.3871598, 47.49521262, 0.0 ], [ -93.38721005, 47.49521483, 0.0 ], [ -93.38726637, 47.49521596, 0.0 ], [ -93.38732337, 47.49522084, 0.0 ], [ -93.38737917, 47.49522924, 0.0 ], [ -93.38743884, 47.49523974, 0.0 ], [ -93.38749557, 47.49525365, 0.0 ], [ -93.38755864, 47.4952695, 0.0 ], [ -93.38761752, 47.4952864, 0.0 ], [ -93.38767075, 47.49529661, 0.0 ], [ -93.38772218, 47.4953056, 0.0 ], [ -93.38775779, 47.49532086, 0.0 ], [ -93.38781739, 47.495327, 0.0 ], [ -93.38788275, 47.4953353, 0.0 ], [ -93.38793586, 47.49535095, 0.0 ], [ -93.38800254, 47.49535515, 0.0 ], [ -93.38806207, 47.49536257, 0.0 ], [ -93.38811712, 47.49537433, 0.0 ], [ -93.38817096, 47.49538587, 0.0 ], [ -93.38823092, 47.49539029, 0.0 ], [ -93.38830197, 47.49539419, 0.0 ], [ -93.38837088, 47.49538855, 0.0 ], [ -93.38842575, 47.4953861, 0.0 ], [ -93.38848808, 47.49538612, 0.0 ], [ -93.38854633, 47.49538035, 0.0 ], [ -93.38860812, 47.49538191, 0.0 ], [ -93.38866037, 47.49538218, 0.0 ], [ -93.38871577, 47.49537997, 0.0 ], [ -93.38877745, 47.49537452, 0.0 ], [ -93.38884036, 47.49536587, 0.0 ], [ -93.38890008, 47.495351, 0.0 ], [ -93.38894529, 47.49533148, 0.0 ], [ -93.38898658, 47.49531204, 0.0 ], [ -93.38902706, 47.49529426, 0.0 ], [ -93.38907113, 47.49526998, 0.0 ], [ -93.38912248, 47.49524486, 0.0 ], [ -93.38916932, 47.4952297, 0.0 ], [ -93.38922074, 47.49521435, 0.0 ], [ -93.38927669, 47.49519592, 0.0 ], [ -93.38933486, 47.4951771, 0.0 ], [ -93.3893862, 47.49515423, 0.0 ], [ -93.38943679, 47.49513001, 0.0 ], [ -93.38949618, 47.49511095, 0.0 ], [ -93.3895565, 47.49509379, 0.0 ], [ -93.38960544, 47.49507341, 0.0 ], [ -93.3896558, 47.49505159, 0.0 ], [ -93.38971764, 47.49503516, 0.0 ], [ -93.38980237, 47.49503062, 0.0 ], [ -93.38985726, 47.4950067, 0.0 ], [ -93.3899184, 47.49499879, 0.0 ], [ -93.3899699, 47.49498531, 0.0 ], [ -93.39002643, 47.49497741, 0.0 ], [ -93.39007358, 47.49496127, 0.0 ], [ -93.39012638, 47.49494656, 0.0 ], [ -93.39017868, 47.49492919, 0.0 ], [ -93.39023143, 47.49491081, 0.0 ], [ -93.39028259, 47.49489434, 0.0 ], [ -93.39032917, 47.49487558, 0.0 ], [ -93.39037051, 47.49485089, 0.0 ], [ -93.39042868, 47.49481777, 0.0 ], [ -93.39047365, 47.49478643, 0.0 ], [ -93.39053079, 47.49477893, 0.0 ], [ -93.39056924, 47.49476325, 0.0 ], [ -93.39061401, 47.49473994, 0.0 ], [ -93.39065769, 47.49472595, 0.0 ], [ -93.39069199, 47.49470847, 0.0 ], [ -93.39073251, 47.49469367, 0.0 ], [ -93.390772, 47.49467554, 0.0 ], [ -93.39080549, 47.49465276, 0.0 ], [ -93.39082047, 47.49462611, 0.0 ], [ -93.3908274, 47.49459709, 0.0 ], [ -93.39084249, 47.49457305, 0.0 ], [ -93.39087136, 47.4945513, 0.0 ], [ -93.39089205, 47.49452246, 0.0 ], [ -93.39089885, 47.49449707, 0.0 ], [ -93.39090756, 47.49447566, 0.0 ], [ -93.39094503, 47.49446506, 0.0 ], [ -93.39097518, 47.49445734, 0.0 ], [ -93.39099986, 47.49443492, 0.0 ], [ -93.39100585, 47.49439825, 0.0 ], [ -93.39099912, 47.49435666, 0.0 ], [ -93.39099895, 47.49431401, 0.0 ], [ -93.39101308, 47.49427257, 0.0 ], [ -93.39101737, 47.49423286, 0.0 ], [ -93.39103419, 47.49420119, 0.0 ], [ -93.39103149, 47.49417029, 0.0 ], [ -93.39103882, 47.4941353, 0.0 ], [ -93.39103632, 47.49409752, 0.0 ], [ -93.39103061, 47.4940547, 0.0 ], [ -93.39101763, 47.49400468, 0.0 ], [ -93.39101406, 47.49395285, 0.0 ], [ -93.39100837, 47.49389736, 0.0 ], [ -93.39099928, 47.49384618, 0.0 ], [ -93.39099099, 47.49379712, 0.0 ], [ -93.39097782, 47.49374785, 0.0 ], [ -93.39096867, 47.49370336, 0.0 ], [ -93.39095799, 47.49365692, 0.0 ], [ -93.39094975, 47.49361651, 0.0 ], [ -93.39094155, 47.49357744, 0.0 ], [ -93.39093138, 47.49353312, 0.0 ], [ -93.39091754, 47.49348714, 0.0 ], [ -93.39091318, 47.49344183, 0.0 ], [ -93.39091592, 47.49339564, 0.0 ], [ -93.39091948, 47.49334661, 0.0 ], [ -93.39091865, 47.49329461, 0.0 ], [ -93.39092193, 47.4932467, 0.0 ], [ -93.39092341, 47.49319832, 0.0 ], [ -93.39092895, 47.49314922, 0.0 ], [ -93.39093255, 47.49310271, 0.0 ], [ -93.39093733, 47.49306003, 0.0 ], [ -93.39094835, 47.49302114, 0.0 ], [ -93.3909468, 47.49299492, 0.0 ], [ -93.3909408, 47.49296975, 0.0 ], [ -93.39092065, 47.49293463, 0.0 ], [ -93.39088943, 47.49289385, 0.0 ], [ -93.39084827, 47.49285075, 0.0 ], [ -93.39078964, 47.49280605, 0.0 ], [ -93.39073085, 47.49275668, 0.0 ], [ -93.39067545, 47.49270304, 0.0 ], [ -93.39062414, 47.49264193, 0.0 ], [ -93.39057692, 47.49258527, 0.0 ], [ -93.39053055, 47.49254066, 0.0 ], [ -93.39048991, 47.49250134, 0.0 ], [ -93.39044555, 47.4924698, 0.0 ], [ -93.39041095, 47.49244623, 0.0 ], [ -93.39037576, 47.49242595, 0.0 ], [ -93.39035866, 47.49240604, 0.0 ], [ -93.39033075, 47.49241259, 0.0 ], [ -93.39030604, 47.49242458, 0.0 ], [ -93.39027349, 47.49244057, 0.0 ], [ -93.39025383, 47.4924584, 0.0 ], [ -93.39028156, 47.49243792, 0.0 ], [ -93.39027363, 47.49246062, 0.0 ], [ -93.39030062, 47.49245096, 0.0 ], [ -93.39034815, 47.49244317, 0.0 ], [ -93.39037523, 47.49243578, 0.0 ], [ -93.39038755, 47.49241396, 0.0 ], [ -93.39036929, 47.49238255, 0.0 ], [ -93.3903361, 47.49236017, 0.0 ], [ -93.39031497, 47.49232914, 0.0 ], [ -93.39029373, 47.49229773, 0.0 ], [ -93.39027479, 47.49226989, 0.0 ], [ -93.39025641, 47.4922438, 0.0 ], [ -93.39028409, 47.4922486, 0.0 ], [ -93.39032829, 47.49226209, 0.0 ], [ -93.39035645, 47.49226426, 0.0 ], [ -93.39040427, 47.49226477, 0.0 ], [ -93.39043586, 47.4922632, 0.0 ], [ -93.39047625, 47.49225656, 0.0 ], [ -93.39051596, 47.49225616, 0.0 ], [ -93.39054321, 47.49224815, 0.0 ], [ -93.39056835, 47.49225704, 0.0 ], [ -93.39052432, 47.49225915, 0.0 ], [ -93.39052784, 47.49228258, 0.0 ], [ -93.39053261, 47.49230045, 0.0 ], [ -93.39056511, 47.49228679, 0.0 ], [ -93.39057247, 47.49230613, 0.0 ], [ -93.39059561, 47.4923212, 0.0 ], [ -93.39060414, 47.49234317, 0.0 ], [ -93.39062096, 47.49235795, 0.0 ], [ -93.3906541, 47.4923656, 0.0 ], [ -93.39062487, 47.49235056, 0.0 ], [ -93.39058936, 47.49234905, 0.0 ], [ -93.39056345, 47.49233342, 0.0 ], [ -93.39053816, 47.49232656, 0.0 ], [ -93.39049894, 47.49231833, 0.0 ], [ -93.39047033, 47.49232961, 0.0 ], [ -93.39051744, 47.49233089, 0.0 ], [ -93.39048307, 47.49232301, 0.0 ], [ -93.39051017, 47.49234107, 0.0 ], [ -93.39053867, 47.49234149, 0.0 ], [ -93.39057433, 47.49235201, 0.0 ], [ -93.39061421, 47.49234665, 0.0 ], [ -93.39064958, 47.49233839, 0.0 ], [ -93.39065786, 47.49231932, 0.0 ], [ -93.39063997, 47.49229965, 0.0 ], [ -93.39062017, 47.4923166, 0.0 ], [ -93.39064661, 47.49232513, 0.0 ], [ -93.39068655, 47.49231027, 0.0 ], [ -93.39070763, 47.49233024, 0.0 ], [ -93.39073623, 47.49235066, 0.0 ], [ -93.39060437, 47.49222389, 0.0 ], [ -93.39057965, 47.49216236, 0.0 ], [ -93.39058011, 47.49220167, 0.0 ], [ -93.3905707, 47.49222364, 0.0 ], [ -93.3905453, 47.49225595, 0.0 ], [ -93.39053532, 47.49227864, 0.0 ], [ -93.39051489, 47.49229299, 0.0 ], [ -93.3904863, 47.49230818, 0.0 ], [ -93.39045363, 47.4923198, 0.0 ], [ -93.39041757, 47.49232644, 0.0 ], [ -93.39037761, 47.49234566, 0.0 ], [ -93.3903268, 47.49234891, 0.0 ], [ -93.39028265, 47.49235077, 0.0 ], [ -93.39024403, 47.49235351, 0.0 ], [ -93.39021082, 47.49235609, 0.0 ], [ -93.39018035, 47.49234958, 0.0 ], [ -93.39015049, 47.49233813, 0.0 ], [ -93.39011818, 47.49232737, 0.0 ], [ -93.390084, 47.49233128, 0.0 ], [ -93.39004775, 47.49231963, 0.0 ], [ -93.39001863, 47.49231754, 0.0 ], [ -93.38998881, 47.49231437, 0.0 ], [ -93.38994873, 47.49230588, 0.0 ], [ -93.38991115, 47.49230482, 0.0 ], [ -93.38988347, 47.49230042, 0.0 ], [ -93.38985389, 47.49229755, 0.0 ], [ -93.38981202, 47.49229697, 0.0 ], [ -93.3897803, 47.4922956, 0.0 ], [ -93.38972884, 47.49229335, 0.0 ], [ -93.38969985, 47.49229508, 0.0 ], [ -93.38966201, 47.49229216, 0.0 ], [ -93.38962309, 47.49228807, 0.0 ], [ -93.38958876, 47.49228239, 0.0 ], [ -93.3895596, 47.49227665, 0.0 ], [ -93.38952343, 47.49226754, 0.0 ], [ -93.38949167, 47.49226385, 0.0 ], [ -93.38945854, 47.49225654, 0.0 ], [ -93.3894241, 47.49225002, 0.0 ], [ -93.38939006, 47.492241, 0.0 ], [ -93.38935818, 47.49223469, 0.0 ], [ -93.38931981, 47.49223044, 0.0 ], [ -93.38928984, 47.49221889, 0.0 ], [ -93.38925383, 47.49220242, 0.0 ], [ -93.38922839, 47.4921867, 0.0 ], [ -93.38920496, 47.49217101, 0.0 ], [ -93.3891812, 47.49215823, 0.0 ], [ -93.38915235, 47.49214265, 0.0 ], [ -93.38912759, 47.4921298, 0.0 ], [ -93.38910889, 47.49211317, 0.0 ], [ -93.38908787, 47.49209472, 0.0 ], [ -93.38907553, 47.49207482, 0.0 ], [ -93.38907111, 47.49205428, 0.0 ], [ -93.38906711, 47.49203442, 0.0 ], [ -93.38906445, 47.49201301, 0.0 ], [ -93.38905124, 47.49199356, 0.0 ], [ -93.38903689, 47.49197395, 0.0 ], [ -93.38902812, 47.49195254, 0.0 ], [ -93.38901692, 47.49193543, 0.0 ], [ -93.38900586, 47.49191781, 0.0 ], [ -93.38899394, 47.49189921, 0.0 ], [ -93.38898484, 47.49188147, 0.0 ], [ -93.38897774, 47.49186198, 0.0 ], [ -93.38897176, 47.49183713, 0.0 ], [ -93.38894198, 47.49181988, 0.0 ], [ -93.388912, 47.49180998, 0.0 ], [ -93.38888906, 47.49179525, 0.0 ], [ -93.38885881, 47.49178071, 0.0 ], [ -93.38883131, 47.49176739, 0.0 ], [ -93.3888113, 47.49175451, 0.0 ], [ -93.38878653, 47.49173359, 0.0 ], [ -93.3887615, 47.491705, 0.0 ], [ -93.38873403, 47.49168041, 0.0 ], [ -93.38871453, 47.49165783, 0.0 ], [ -93.38870146, 47.49163322, 0.0 ], [ -93.38868415, 47.49160257, 0.0 ], [ -93.38867974, 47.49157086, 0.0 ], [ -93.38867364, 47.49154251, 0.0 ], [ -93.38868169, 47.49152327, 0.0 ], [ -93.38869335, 47.49149709, 0.0 ], [ -93.38868769, 47.49147914, 0.0 ], [ -93.38868027, 47.4914497, 0.0 ], [ -93.38868366, 47.49142237, 0.0 ], [ -93.38869475, 47.49139664, 0.0 ], [ -93.38868186, 47.49136769, 0.0 ], [ -93.38866834, 47.49135038, 0.0 ], [ -93.3886904, 47.49132442, 0.0 ], [ -93.38870395, 47.49130756, 0.0 ], [ -93.38868431, 47.49128774, 0.0 ], [ -93.38866012, 47.49127653, 0.0 ], [ -93.38863348, 47.49126931, 0.0 ], [ -93.38858144, 47.49127108, 0.0 ], [ -93.38853125, 47.49126418, 0.0 ], [ -93.38849658, 47.4912462, 0.0 ], [ -93.38846249, 47.49122549, 0.0 ], [ -93.38843042, 47.49121593, 0.0 ], [ -93.38840067, 47.49120865, 0.0 ], [ -93.38836184, 47.4911967, 0.0 ], [ -93.3883305, 47.49118296, 0.0 ], [ -93.38830334, 47.49117339, 0.0 ], [ -93.38827338, 47.49116072, 0.0 ], [ -93.38824364, 47.4911475, 0.0 ], [ -93.38821204, 47.49113984, 0.0 ], [ -93.38817937, 47.4911315, 0.0 ], [ -93.38814562, 47.49112141, 0.0 ], [ -93.3881125, 47.49110386, 0.0 ], [ -93.38808224, 47.4910801, 0.0 ], [ -93.38804917, 47.49106489, 0.0 ], [ -93.38801776, 47.49104986, 0.0 ], [ -93.38798182, 47.49103043, 0.0 ], [ -93.3879553, 47.49101931, 0.0 ], [ -93.38792383, 47.49100053, 0.0 ], [ -93.38789265, 47.49098463, 0.0 ], [ -93.38786665, 47.49096859, 0.0 ], [ -93.38783687, 47.49095557, 0.0 ], [ -93.38780824, 47.49093925, 0.0 ], [ -93.38778978, 47.49092431, 0.0 ], [ -93.38776319, 47.49090679, 0.0 ], [ -93.38773479, 47.49088746, 0.0 ], [ -93.38771859, 47.49087173, 0.0 ], [ -93.38772654, 47.49085411, 0.0 ], [ -93.38772545, 47.49083028, 0.0 ], [ -93.38773141, 47.49080404, 0.0 ], [ -93.38774257, 47.49078468, 0.0 ], [ -93.38776, 47.49075873, 0.0 ], [ -93.38775877, 47.49073171, 0.0 ], [ -93.38774452, 47.49071365, 0.0 ], [ -93.38773875, 47.49068871, 0.0 ], [ -93.38772827, 47.49066154, 0.0 ], [ -93.38772499, 47.49063354, 0.0 ], [ -93.38771871, 47.49061021, 0.0 ], [ -93.38770758, 47.49059259, 0.0 ], [ -93.38772551, 47.49056566, 0.0 ], [ -93.3877368, 47.49054096, 0.0 ], [ -93.3877349, 47.49052039, 0.0 ], [ -93.38773248, 47.49049888, 0.0 ], [ -93.38772065, 47.49047796, 0.0 ], [ -93.38770545, 47.49045389, 0.0 ], [ -93.38770533, 47.49043124, 0.0 ], [ -93.38770269, 47.4904081, 0.0 ], [ -93.38768354, 47.4903892, 0.0 ], [ -93.38767639, 47.49036224, 0.0 ], [ -93.38766952, 47.49033941, 0.0 ], [ -93.38766896, 47.49031729, 0.0 ], [ -93.38767271, 47.49029525, 0.0 ], [ -93.38767972, 47.49027573, 0.0 ], [ -93.38768742, 47.49025849, 0.0 ], [ -93.38767971, 47.4902357, 0.0 ], [ -93.38766338, 47.49021107, 0.0 ], [ -93.3876465, 47.49018698, 0.0 ], [ -93.3876296, 47.49016229, 0.0 ], [ -93.3876301, 47.49014063, 0.0 ], [ -93.38765266, 47.4901279, 0.0 ], [ -93.38761295, 47.49012098, 0.0 ], [ -93.38763674, 47.4901317, 0.0 ], [ -93.38766982, 47.49012881, 0.0 ], [ -93.38769922, 47.49013644, 0.0 ], [ -93.3877292, 47.4901454, 0.0 ], [ -93.38776236, 47.49014707, 0.0 ], [ -93.38779412, 47.49014438, 0.0 ], [ -93.38782013, 47.49013742, 0.0 ], [ -93.38787093, 47.49012701, 0.0 ], [ -93.38790038, 47.4901256, 0.0 ], [ -93.38792601, 47.49013036, 0.0 ], [ -93.38797503, 47.49012833, 0.0 ], [ -93.38800935, 47.49011775, 0.0 ], [ -93.38803686, 47.49012257, 0.0 ], [ -93.38805634, 47.49010901, 0.0 ], [ -93.38805216, 47.49008413, 0.0 ], [ -93.38803912, 47.49005527, 0.0 ], [ -93.38802739, 47.49002844, 0.0 ], [ -93.3880161, 47.49001076, 0.0 ], [ -93.38799708, 47.48999254, 0.0 ], [ -93.38797772, 47.4899775, 0.0 ], [ -93.38796076, 47.48996249, 0.0 ], [ -93.38794077, 47.48993983, 0.0 ], [ -93.38791336, 47.48991731, 0.0 ], [ -93.38789218, 47.48989986, 0.0 ], [ -93.38786886, 47.48988288, 0.0 ], [ -93.38783761, 47.48986359, 0.0 ], [ -93.38781937, 47.48984639, 0.0 ], [ -93.38780482, 47.48982433, 0.0 ], [ -93.38779209, 47.48980096, 0.0 ], [ -93.38777509, 47.48978151, 0.0 ], [ -93.3877601, 47.48975465, 0.0 ], [ -93.38773552, 47.48972807, 0.0 ], [ -93.38771702, 47.48970698, 0.0 ], [ -93.38769568, 47.48968632, 0.0 ], [ -93.38768825, 47.48966207, 0.0 ], [ -93.38769618, 47.48964211, 0.0 ], [ -93.38770846, 47.48962559, 0.0 ], [ -93.38772317, 47.4896007, 0.0 ], [ -93.38773199, 47.48958331, 0.0 ], [ -93.38775225, 47.48955888, 0.0 ], [ -93.38776387, 47.48953487, 0.0 ], [ -93.38778665, 47.4895052, 0.0 ], [ -93.38779943, 47.4894861, 0.0 ], [ -93.38781913, 47.48945408, 0.0 ], [ -93.38782847, 47.48942765, 0.0 ], [ -93.38785397, 47.48940776, 0.0 ], [ -93.38787859, 47.48938966, 0.0 ], [ -93.38789013, 47.48937058, 0.0 ], [ -93.38790946, 47.48935517, 0.0 ], [ -93.38792735, 47.48933958, 0.0 ], [ -93.38792247, 47.48938827, 0.0 ], [ -93.38792, 47.48941065, 0.0 ], [ -93.38789526, 47.48940232, 0.0 ], [ -93.38792056, 47.48939621, 0.0 ], [ -93.38792638, 47.48937564, 0.0 ], [ -93.38791785, 47.48935772, 0.0 ], [ -93.38789213, 47.48935139, 0.0 ] ] } } +] +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..93be9ae --- /dev/null +++ b/index.html @@ -0,0 +1,24 @@ + + + + + + Lawrence Deer Club + + + +

welcome to the

+

Lawrence Deer Club

+ + + diff --git a/leaflet/images/layers-2x.png b/leaflet/images/layers-2x.png new file mode 100644 index 0000000..200c333 Binary files /dev/null and b/leaflet/images/layers-2x.png differ diff --git a/leaflet/images/layers.png b/leaflet/images/layers.png new file mode 100644 index 0000000..1a72e57 Binary files /dev/null and b/leaflet/images/layers.png differ diff --git a/leaflet/images/marker-icon-2x.png b/leaflet/images/marker-icon-2x.png new file mode 100644 index 0000000..88f9e50 Binary files /dev/null and b/leaflet/images/marker-icon-2x.png differ diff --git a/leaflet/images/marker-icon.png b/leaflet/images/marker-icon.png new file mode 100644 index 0000000..950edf2 Binary files /dev/null and b/leaflet/images/marker-icon.png differ diff --git a/leaflet/images/marker-shadow.png b/leaflet/images/marker-shadow.png new file mode 100644 index 0000000..9fd2979 Binary files /dev/null and b/leaflet/images/marker-shadow.png differ diff --git a/leaflet/leaflet-src.esm.js b/leaflet/leaflet-src.esm.js new file mode 100644 index 0000000..8f91d5d --- /dev/null +++ b/leaflet/leaflet-src.esm.js @@ -0,0 +1,14419 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ + +var version = "1.9.4"; + +/* + * @namespace Util + * + * Various utility functions, used by Leaflet internally. + */ + +// @function extend(dest: Object, src?: Object): Object +// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut. +function extend(dest) { + var i, j, len, src; + + for (j = 1, len = arguments.length; j < len; j++) { + src = arguments[j]; + for (i in src) { + dest[i] = src[i]; + } + } + return dest; +} + +// @function create(proto: Object, properties?: Object): Object +// Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create) +var create$2 = Object.create || (function () { + function F() {} + return function (proto) { + F.prototype = proto; + return new F(); + }; +})(); + +// @function bind(fn: Function, …): Function +// Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind). +// Has a `L.bind()` shortcut. +function bind(fn, obj) { + var slice = Array.prototype.slice; + + if (fn.bind) { + return fn.bind.apply(fn, slice.call(arguments, 1)); + } + + var args = slice.call(arguments, 2); + + return function () { + return fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments); + }; +} + +// @property lastId: Number +// Last unique ID used by [`stamp()`](#util-stamp) +var lastId = 0; + +// @function stamp(obj: Object): Number +// Returns the unique ID of an object, assigning it one if it doesn't have it. +function stamp(obj) { + if (!('_leaflet_id' in obj)) { + obj['_leaflet_id'] = ++lastId; + } + return obj._leaflet_id; +} + +// @function throttle(fn: Function, time: Number, context: Object): Function +// Returns a function which executes function `fn` with the given scope `context` +// (so that the `this` keyword refers to `context` inside `fn`'s code). The function +// `fn` will be called no more than one time per given amount of `time`. The arguments +// received by the bound function will be any arguments passed when binding the +// function, followed by any arguments passed when invoking the bound function. +// Has an `L.throttle` shortcut. +function throttle(fn, time, context) { + var lock, args, wrapperFn, later; + + later = function () { + // reset lock and call if queued + lock = false; + if (args) { + wrapperFn.apply(context, args); + args = false; + } + }; + + wrapperFn = function () { + if (lock) { + // called too soon, queue to call later + args = arguments; + + } else { + // call and lock until later + fn.apply(context, arguments); + setTimeout(later, time); + lock = true; + } + }; + + return wrapperFn; +} + +// @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number +// Returns the number `num` modulo `range` in such a way so it lies within +// `range[0]` and `range[1]`. The returned value will be always smaller than +// `range[1]` unless `includeMax` is set to `true`. +function wrapNum(x, range, includeMax) { + var max = range[1], + min = range[0], + d = max - min; + return x === max && includeMax ? x : ((x - min) % d + d) % d + min; +} + +// @function falseFn(): Function +// Returns a function which always returns `false`. +function falseFn() { return false; } + +// @function formatNum(num: Number, precision?: Number|false): Number +// Returns the number `num` rounded with specified `precision`. +// The default `precision` value is 6 decimal places. +// `false` can be passed to skip any processing (can be useful to avoid round-off errors). +function formatNum(num, precision) { + if (precision === false) { return num; } + var pow = Math.pow(10, precision === undefined ? 6 : precision); + return Math.round(num * pow) / pow; +} + +// @function trim(str: String): String +// Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) +function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); +} + +// @function splitWords(str: String): String[] +// Trims and splits the string on whitespace and returns the array of parts. +function splitWords(str) { + return trim(str).split(/\s+/); +} + +// @function setOptions(obj: Object, options: Object): Object +// Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut. +function setOptions(obj, options) { + if (!Object.prototype.hasOwnProperty.call(obj, 'options')) { + obj.options = obj.options ? create$2(obj.options) : {}; + } + for (var i in options) { + obj.options[i] = options[i]; + } + return obj.options; +} + +// @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String +// Converts an object into a parameter URL string, e.g. `{a: "foo", b: "bar"}` +// translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will +// be appended at the end. If `uppercase` is `true`, the parameter names will +// be uppercased (e.g. `'?A=foo&B=bar'`) +function getParamString(obj, existingUrl, uppercase) { + var params = []; + for (var i in obj) { + params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i])); + } + return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&'); +} + +var templateRe = /\{ *([\w_ -]+) *\}/g; + +// @function template(str: String, data: Object): String +// Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'` +// and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string +// `('Hello foo, bar')`. You can also specify functions instead of strings for +// data values — they will be evaluated passing `data` as an argument. +function template(str, data) { + return str.replace(templateRe, function (str, key) { + var value = data[key]; + + if (value === undefined) { + throw new Error('No value provided for variable ' + str); + + } else if (typeof value === 'function') { + value = value(data); + } + return value; + }); +} + +// @function isArray(obj): Boolean +// Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray) +var isArray = Array.isArray || function (obj) { + return (Object.prototype.toString.call(obj) === '[object Array]'); +}; + +// @function indexOf(array: Array, el: Object): Number +// Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) +function indexOf(array, el) { + for (var i = 0; i < array.length; i++) { + if (array[i] === el) { return i; } + } + return -1; +} + +// @property emptyImageUrl: String +// Data URI string containing a base64-encoded empty GIF image. +// Used as a hack to free memory from unused images on WebKit-powered +// mobile devices (by setting image `src` to this string). +var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='; + +// inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/ + +function getPrefixed(name) { + return window['webkit' + name] || window['moz' + name] || window['ms' + name]; +} + +var lastTime = 0; + +// fallback for IE 7-8 +function timeoutDefer(fn) { + var time = +new Date(), + timeToCall = Math.max(0, 16 - (time - lastTime)); + + lastTime = time + timeToCall; + return window.setTimeout(fn, timeToCall); +} + +var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer; +var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') || + getPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); }; + +// @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number +// Schedules `fn` to be executed when the browser repaints. `fn` is bound to +// `context` if given. When `immediate` is set, `fn` is called immediately if +// the browser doesn't have native support for +// [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame), +// otherwise it's delayed. Returns a request ID that can be used to cancel the request. +function requestAnimFrame(fn, context, immediate) { + if (immediate && requestFn === timeoutDefer) { + fn.call(context); + } else { + return requestFn.call(window, bind(fn, context)); + } +} + +// @function cancelAnimFrame(id: Number): undefined +// Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame). +function cancelAnimFrame(id) { + if (id) { + cancelFn.call(window, id); + } +} + +var Util = { + __proto__: null, + extend: extend, + create: create$2, + bind: bind, + get lastId () { return lastId; }, + stamp: stamp, + throttle: throttle, + wrapNum: wrapNum, + falseFn: falseFn, + formatNum: formatNum, + trim: trim, + splitWords: splitWords, + setOptions: setOptions, + getParamString: getParamString, + template: template, + isArray: isArray, + indexOf: indexOf, + emptyImageUrl: emptyImageUrl, + requestFn: requestFn, + cancelFn: cancelFn, + requestAnimFrame: requestAnimFrame, + cancelAnimFrame: cancelAnimFrame +}; + +// @class Class +// @aka L.Class + +// @section +// @uninheritable + +// Thanks to John Resig and Dean Edwards for inspiration! + +function Class() {} + +Class.extend = function (props) { + + // @function extend(props: Object): Function + // [Extends the current class](#class-inheritance) given the properties to be included. + // Returns a Javascript function that is a class constructor (to be called with `new`). + var NewClass = function () { + + setOptions(this); + + // call the constructor + if (this.initialize) { + this.initialize.apply(this, arguments); + } + + // call all constructor hooks + this.callInitHooks(); + }; + + var parentProto = NewClass.__super__ = this.prototype; + + var proto = create$2(parentProto); + proto.constructor = NewClass; + + NewClass.prototype = proto; + + // inherit parent's statics + for (var i in this) { + if (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') { + NewClass[i] = this[i]; + } + } + + // mix static properties into the class + if (props.statics) { + extend(NewClass, props.statics); + } + + // mix includes into the prototype + if (props.includes) { + checkDeprecatedMixinEvents(props.includes); + extend.apply(null, [proto].concat(props.includes)); + } + + // mix given properties into the prototype + extend(proto, props); + delete proto.statics; + delete proto.includes; + + // merge options + if (proto.options) { + proto.options = parentProto.options ? create$2(parentProto.options) : {}; + extend(proto.options, props.options); + } + + proto._initHooks = []; + + // add method for calling all hooks + proto.callInitHooks = function () { + + if (this._initHooksCalled) { return; } + + if (parentProto.callInitHooks) { + parentProto.callInitHooks.call(this); + } + + this._initHooksCalled = true; + + for (var i = 0, len = proto._initHooks.length; i < len; i++) { + proto._initHooks[i].call(this); + } + }; + + return NewClass; +}; + + +// @function include(properties: Object): this +// [Includes a mixin](#class-includes) into the current class. +Class.include = function (props) { + var parentOptions = this.prototype.options; + extend(this.prototype, props); + if (props.options) { + this.prototype.options = parentOptions; + this.mergeOptions(props.options); + } + return this; +}; + +// @function mergeOptions(options: Object): this +// [Merges `options`](#class-options) into the defaults of the class. +Class.mergeOptions = function (options) { + extend(this.prototype.options, options); + return this; +}; + +// @function addInitHook(fn: Function): this +// Adds a [constructor hook](#class-constructor-hooks) to the class. +Class.addInitHook = function (fn) { // (Function) || (String, args...) + var args = Array.prototype.slice.call(arguments, 1); + + var init = typeof fn === 'function' ? fn : function () { + this[fn].apply(this, args); + }; + + this.prototype._initHooks = this.prototype._initHooks || []; + this.prototype._initHooks.push(init); + return this; +}; + +function checkDeprecatedMixinEvents(includes) { + /* global L: true */ + if (typeof L === 'undefined' || !L || !L.Mixin) { return; } + + includes = isArray(includes) ? includes : [includes]; + + for (var i = 0; i < includes.length; i++) { + if (includes[i] === L.Mixin.Events) { + console.warn('Deprecated include of L.Mixin.Events: ' + + 'this property will be removed in future releases, ' + + 'please inherit from L.Evented instead.', new Error().stack); + } + } +} + +/* + * @class Evented + * @aka L.Evented + * @inherits Class + * + * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event). + * + * @example + * + * ```js + * map.on('click', function(e) { + * alert(e.latlng); + * } ); + * ``` + * + * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function: + * + * ```js + * function onClick(e) { ... } + * + * map.on('click', onClick); + * map.off('click', onClick); + * ``` + */ + +var Events = { + /* @method on(type: String, fn: Function, context?: Object): this + * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`). + * + * @alternative + * @method on(eventMap: Object): this + * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}` + */ + on: function (types, fn, context) { + + // types can be a map of types/handlers + if (typeof types === 'object') { + for (var type in types) { + // we don't process space-separated events here for performance; + // it's a hot path since Layer uses the on(obj) syntax + this._on(type, types[type], fn); + } + + } else { + // types can be a string of space-separated words + types = splitWords(types); + + for (var i = 0, len = types.length; i < len; i++) { + this._on(types[i], fn, context); + } + } + + return this; + }, + + /* @method off(type: String, fn?: Function, context?: Object): this + * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener. + * + * @alternative + * @method off(eventMap: Object): this + * Removes a set of type/listener pairs. + * + * @alternative + * @method off: this + * Removes all listeners to all events on the object. This includes implicitly attached events. + */ + off: function (types, fn, context) { + + if (!arguments.length) { + // clear all listeners if called without arguments + delete this._events; + + } else if (typeof types === 'object') { + for (var type in types) { + this._off(type, types[type], fn); + } + + } else { + types = splitWords(types); + + var removeAll = arguments.length === 1; + for (var i = 0, len = types.length; i < len; i++) { + if (removeAll) { + this._off(types[i]); + } else { + this._off(types[i], fn, context); + } + } + } + + return this; + }, + + // attach listener (without syntactic sugar now) + _on: function (type, fn, context, _once) { + if (typeof fn !== 'function') { + console.warn('wrong listener type: ' + typeof fn); + return; + } + + // check if fn already there + if (this._listens(type, fn, context) !== false) { + return; + } + + if (context === this) { + // Less memory footprint. + context = undefined; + } + + var newListener = {fn: fn, ctx: context}; + if (_once) { + newListener.once = true; + } + + this._events = this._events || {}; + this._events[type] = this._events[type] || []; + this._events[type].push(newListener); + }, + + _off: function (type, fn, context) { + var listeners, + i, + len; + + if (!this._events) { + return; + } + + listeners = this._events[type]; + if (!listeners) { + return; + } + + if (arguments.length === 1) { // remove all + if (this._firingCount) { + // Set all removed listeners to noop + // so they are not called if remove happens in fire + for (i = 0, len = listeners.length; i < len; i++) { + listeners[i].fn = falseFn; + } + } + // clear all listeners for a type if function isn't specified + delete this._events[type]; + return; + } + + if (typeof fn !== 'function') { + console.warn('wrong listener type: ' + typeof fn); + return; + } + + // find fn and remove it + var index = this._listens(type, fn, context); + if (index !== false) { + var listener = listeners[index]; + if (this._firingCount) { + // set the removed listener to noop so that's not called if remove happens in fire + listener.fn = falseFn; + + /* copy array in case events are being fired */ + this._events[type] = listeners = listeners.slice(); + } + listeners.splice(index, 1); + } + }, + + // @method fire(type: String, data?: Object, propagate?: Boolean): this + // Fires an event of the specified type. You can optionally provide a data + // object — the first argument of the listener function will contain its + // properties. The event can optionally be propagated to event parents. + fire: function (type, data, propagate) { + if (!this.listens(type, propagate)) { return this; } + + var event = extend({}, data, { + type: type, + target: this, + sourceTarget: data && data.sourceTarget || this + }); + + if (this._events) { + var listeners = this._events[type]; + if (listeners) { + this._firingCount = (this._firingCount + 1) || 1; + for (var i = 0, len = listeners.length; i < len; i++) { + var l = listeners[i]; + // off overwrites l.fn, so we need to copy fn to a var + var fn = l.fn; + if (l.once) { + this.off(type, fn, l.ctx); + } + fn.call(l.ctx || this, event); + } + + this._firingCount--; + } + } + + if (propagate) { + // propagate the event to parents (set with addEventParent) + this._propagateEvent(event); + } + + return this; + }, + + // @method listens(type: String, propagate?: Boolean): Boolean + // @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean + // Returns `true` if a particular event type has any listeners attached to it. + // The verification can optionally be propagated, it will return `true` if parents have the listener attached to it. + listens: function (type, fn, context, propagate) { + if (typeof type !== 'string') { + console.warn('"string" type argument expected'); + } + + // we don't overwrite the input `fn` value, because we need to use it for propagation + var _fn = fn; + if (typeof fn !== 'function') { + propagate = !!fn; + _fn = undefined; + context = undefined; + } + + var listeners = this._events && this._events[type]; + if (listeners && listeners.length) { + if (this._listens(type, _fn, context) !== false) { + return true; + } + } + + if (propagate) { + // also check parents for listeners if event propagates + for (var id in this._eventParents) { + if (this._eventParents[id].listens(type, fn, context, propagate)) { return true; } + } + } + return false; + }, + + // returns the index (number) or false + _listens: function (type, fn, context) { + if (!this._events) { + return false; + } + + var listeners = this._events[type] || []; + if (!fn) { + return !!listeners.length; + } + + if (context === this) { + // Less memory footprint. + context = undefined; + } + + for (var i = 0, len = listeners.length; i < len; i++) { + if (listeners[i].fn === fn && listeners[i].ctx === context) { + return i; + } + } + return false; + + }, + + // @method once(…): this + // Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed. + once: function (types, fn, context) { + + // types can be a map of types/handlers + if (typeof types === 'object') { + for (var type in types) { + // we don't process space-separated events here for performance; + // it's a hot path since Layer uses the on(obj) syntax + this._on(type, types[type], fn, true); + } + + } else { + // types can be a string of space-separated words + types = splitWords(types); + + for (var i = 0, len = types.length; i < len; i++) { + this._on(types[i], fn, context, true); + } + } + + return this; + }, + + // @method addEventParent(obj: Evented): this + // Adds an event parent - an `Evented` that will receive propagated events + addEventParent: function (obj) { + this._eventParents = this._eventParents || {}; + this._eventParents[stamp(obj)] = obj; + return this; + }, + + // @method removeEventParent(obj: Evented): this + // Removes an event parent, so it will stop receiving propagated events + removeEventParent: function (obj) { + if (this._eventParents) { + delete this._eventParents[stamp(obj)]; + } + return this; + }, + + _propagateEvent: function (e) { + for (var id in this._eventParents) { + this._eventParents[id].fire(e.type, extend({ + layer: e.target, + propagatedFrom: e.target + }, e), true); + } + } +}; + +// aliases; we should ditch those eventually + +// @method addEventListener(…): this +// Alias to [`on(…)`](#evented-on) +Events.addEventListener = Events.on; + +// @method removeEventListener(…): this +// Alias to [`off(…)`](#evented-off) + +// @method clearAllEventListeners(…): this +// Alias to [`off()`](#evented-off) +Events.removeEventListener = Events.clearAllEventListeners = Events.off; + +// @method addOneTimeEventListener(…): this +// Alias to [`once(…)`](#evented-once) +Events.addOneTimeEventListener = Events.once; + +// @method fireEvent(…): this +// Alias to [`fire(…)`](#evented-fire) +Events.fireEvent = Events.fire; + +// @method hasEventListeners(…): Boolean +// Alias to [`listens(…)`](#evented-listens) +Events.hasEventListeners = Events.listens; + +var Evented = Class.extend(Events); + +/* + * @class Point + * @aka L.Point + * + * Represents a point with `x` and `y` coordinates in pixels. + * + * @example + * + * ```js + * var point = L.point(200, 300); + * ``` + * + * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent: + * + * ```js + * map.panBy([200, 300]); + * map.panBy(L.point(200, 300)); + * ``` + * + * Note that `Point` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function Point(x, y, round) { + // @property x: Number; The `x` coordinate of the point + this.x = (round ? Math.round(x) : x); + // @property y: Number; The `y` coordinate of the point + this.y = (round ? Math.round(y) : y); +} + +var trunc = Math.trunc || function (v) { + return v > 0 ? Math.floor(v) : Math.ceil(v); +}; + +Point.prototype = { + + // @method clone(): Point + // Returns a copy of the current point. + clone: function () { + return new Point(this.x, this.y); + }, + + // @method add(otherPoint: Point): Point + // Returns the result of addition of the current and the given points. + add: function (point) { + // non-destructive, returns a new point + return this.clone()._add(toPoint(point)); + }, + + _add: function (point) { + // destructive, used directly for performance in situations where it's safe to modify existing point + this.x += point.x; + this.y += point.y; + return this; + }, + + // @method subtract(otherPoint: Point): Point + // Returns the result of subtraction of the given point from the current. + subtract: function (point) { + return this.clone()._subtract(toPoint(point)); + }, + + _subtract: function (point) { + this.x -= point.x; + this.y -= point.y; + return this; + }, + + // @method divideBy(num: Number): Point + // Returns the result of division of the current point by the given number. + divideBy: function (num) { + return this.clone()._divideBy(num); + }, + + _divideBy: function (num) { + this.x /= num; + this.y /= num; + return this; + }, + + // @method multiplyBy(num: Number): Point + // Returns the result of multiplication of the current point by the given number. + multiplyBy: function (num) { + return this.clone()._multiplyBy(num); + }, + + _multiplyBy: function (num) { + this.x *= num; + this.y *= num; + return this; + }, + + // @method scaleBy(scale: Point): Point + // Multiply each coordinate of the current point by each coordinate of + // `scale`. In linear algebra terms, multiply the point by the + // [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation) + // defined by `scale`. + scaleBy: function (point) { + return new Point(this.x * point.x, this.y * point.y); + }, + + // @method unscaleBy(scale: Point): Point + // Inverse of `scaleBy`. Divide each coordinate of the current point by + // each coordinate of `scale`. + unscaleBy: function (point) { + return new Point(this.x / point.x, this.y / point.y); + }, + + // @method round(): Point + // Returns a copy of the current point with rounded coordinates. + round: function () { + return this.clone()._round(); + }, + + _round: function () { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this; + }, + + // @method floor(): Point + // Returns a copy of the current point with floored coordinates (rounded down). + floor: function () { + return this.clone()._floor(); + }, + + _floor: function () { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + return this; + }, + + // @method ceil(): Point + // Returns a copy of the current point with ceiled coordinates (rounded up). + ceil: function () { + return this.clone()._ceil(); + }, + + _ceil: function () { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + return this; + }, + + // @method trunc(): Point + // Returns a copy of the current point with truncated coordinates (rounded towards zero). + trunc: function () { + return this.clone()._trunc(); + }, + + _trunc: function () { + this.x = trunc(this.x); + this.y = trunc(this.y); + return this; + }, + + // @method distanceTo(otherPoint: Point): Number + // Returns the cartesian distance between the current and the given points. + distanceTo: function (point) { + point = toPoint(point); + + var x = point.x - this.x, + y = point.y - this.y; + + return Math.sqrt(x * x + y * y); + }, + + // @method equals(otherPoint: Point): Boolean + // Returns `true` if the given point has the same coordinates. + equals: function (point) { + point = toPoint(point); + + return point.x === this.x && + point.y === this.y; + }, + + // @method contains(otherPoint: Point): Boolean + // Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values). + contains: function (point) { + point = toPoint(point); + + return Math.abs(point.x) <= Math.abs(this.x) && + Math.abs(point.y) <= Math.abs(this.y); + }, + + // @method toString(): String + // Returns a string representation of the point for debugging purposes. + toString: function () { + return 'Point(' + + formatNum(this.x) + ', ' + + formatNum(this.y) + ')'; + } +}; + +// @factory L.point(x: Number, y: Number, round?: Boolean) +// Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values. + +// @alternative +// @factory L.point(coords: Number[]) +// Expects an array of the form `[x, y]` instead. + +// @alternative +// @factory L.point(coords: Object) +// Expects a plain object of the form `{x: Number, y: Number}` instead. +function toPoint(x, y, round) { + if (x instanceof Point) { + return x; + } + if (isArray(x)) { + return new Point(x[0], x[1]); + } + if (x === undefined || x === null) { + return x; + } + if (typeof x === 'object' && 'x' in x && 'y' in x) { + return new Point(x.x, x.y); + } + return new Point(x, y, round); +} + +/* + * @class Bounds + * @aka L.Bounds + * + * Represents a rectangular area in pixel coordinates. + * + * @example + * + * ```js + * var p1 = L.point(10, 10), + * p2 = L.point(40, 60), + * bounds = L.bounds(p1, p2); + * ``` + * + * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: + * + * ```js + * otherBounds.intersects([[10, 10], [40, 60]]); + * ``` + * + * Note that `Bounds` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function Bounds(a, b) { + if (!a) { return; } + + var points = b ? [a, b] : a; + + for (var i = 0, len = points.length; i < len; i++) { + this.extend(points[i]); + } +} + +Bounds.prototype = { + // @method extend(point: Point): this + // Extends the bounds to contain the given point. + + // @alternative + // @method extend(otherBounds: Bounds): this + // Extend the bounds to contain the given bounds + extend: function (obj) { + var min2, max2; + if (!obj) { return this; } + + if (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) { + min2 = max2 = toPoint(obj); + } else { + obj = toBounds(obj); + min2 = obj.min; + max2 = obj.max; + + if (!min2 || !max2) { return this; } + } + + // @property min: Point + // The top left corner of the rectangle. + // @property max: Point + // The bottom right corner of the rectangle. + if (!this.min && !this.max) { + this.min = min2.clone(); + this.max = max2.clone(); + } else { + this.min.x = Math.min(min2.x, this.min.x); + this.max.x = Math.max(max2.x, this.max.x); + this.min.y = Math.min(min2.y, this.min.y); + this.max.y = Math.max(max2.y, this.max.y); + } + return this; + }, + + // @method getCenter(round?: Boolean): Point + // Returns the center point of the bounds. + getCenter: function (round) { + return toPoint( + (this.min.x + this.max.x) / 2, + (this.min.y + this.max.y) / 2, round); + }, + + // @method getBottomLeft(): Point + // Returns the bottom-left point of the bounds. + getBottomLeft: function () { + return toPoint(this.min.x, this.max.y); + }, + + // @method getTopRight(): Point + // Returns the top-right point of the bounds. + getTopRight: function () { // -> Point + return toPoint(this.max.x, this.min.y); + }, + + // @method getTopLeft(): Point + // Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)). + getTopLeft: function () { + return this.min; // left, top + }, + + // @method getBottomRight(): Point + // Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)). + getBottomRight: function () { + return this.max; // right, bottom + }, + + // @method getSize(): Point + // Returns the size of the given bounds + getSize: function () { + return this.max.subtract(this.min); + }, + + // @method contains(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle contains the given one. + // @alternative + // @method contains(point: Point): Boolean + // Returns `true` if the rectangle contains the given point. + contains: function (obj) { + var min, max; + + if (typeof obj[0] === 'number' || obj instanceof Point) { + obj = toPoint(obj); + } else { + obj = toBounds(obj); + } + + if (obj instanceof Bounds) { + min = obj.min; + max = obj.max; + } else { + min = max = obj; + } + + return (min.x >= this.min.x) && + (max.x <= this.max.x) && + (min.y >= this.min.y) && + (max.y <= this.max.y); + }, + + // @method intersects(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle intersects the given bounds. Two bounds + // intersect if they have at least one point in common. + intersects: function (bounds) { // (Bounds) -> Boolean + bounds = toBounds(bounds); + + var min = this.min, + max = this.max, + min2 = bounds.min, + max2 = bounds.max, + xIntersects = (max2.x >= min.x) && (min2.x <= max.x), + yIntersects = (max2.y >= min.y) && (min2.y <= max.y); + + return xIntersects && yIntersects; + }, + + // @method overlaps(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle overlaps the given bounds. Two bounds + // overlap if their intersection is an area. + overlaps: function (bounds) { // (Bounds) -> Boolean + bounds = toBounds(bounds); + + var min = this.min, + max = this.max, + min2 = bounds.min, + max2 = bounds.max, + xOverlaps = (max2.x > min.x) && (min2.x < max.x), + yOverlaps = (max2.y > min.y) && (min2.y < max.y); + + return xOverlaps && yOverlaps; + }, + + // @method isValid(): Boolean + // Returns `true` if the bounds are properly initialized. + isValid: function () { + return !!(this.min && this.max); + }, + + + // @method pad(bufferRatio: Number): Bounds + // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. + // For example, a ratio of 0.5 extends the bounds by 50% in each direction. + // Negative values will retract the bounds. + pad: function (bufferRatio) { + var min = this.min, + max = this.max, + heightBuffer = Math.abs(min.x - max.x) * bufferRatio, + widthBuffer = Math.abs(min.y - max.y) * bufferRatio; + + + return toBounds( + toPoint(min.x - heightBuffer, min.y - widthBuffer), + toPoint(max.x + heightBuffer, max.y + widthBuffer)); + }, + + + // @method equals(otherBounds: Bounds): Boolean + // Returns `true` if the rectangle is equivalent to the given bounds. + equals: function (bounds) { + if (!bounds) { return false; } + + bounds = toBounds(bounds); + + return this.min.equals(bounds.getTopLeft()) && + this.max.equals(bounds.getBottomRight()); + }, +}; + + +// @factory L.bounds(corner1: Point, corner2: Point) +// Creates a Bounds object from two corners coordinate pairs. +// @alternative +// @factory L.bounds(points: Point[]) +// Creates a Bounds object from the given array of points. +function toBounds(a, b) { + if (!a || a instanceof Bounds) { + return a; + } + return new Bounds(a, b); +} + +/* + * @class LatLngBounds + * @aka L.LatLngBounds + * + * Represents a rectangular geographical area on a map. + * + * @example + * + * ```js + * var corner1 = L.latLng(40.712, -74.227), + * corner2 = L.latLng(40.774, -74.125), + * bounds = L.latLngBounds(corner1, corner2); + * ``` + * + * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this: + * + * ```js + * map.fitBounds([ + * [40.712, -74.227], + * [40.774, -74.125] + * ]); + * ``` + * + * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range. + * + * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[]) + if (!corner1) { return; } + + var latlngs = corner2 ? [corner1, corner2] : corner1; + + for (var i = 0, len = latlngs.length; i < len; i++) { + this.extend(latlngs[i]); + } +} + +LatLngBounds.prototype = { + + // @method extend(latlng: LatLng): this + // Extend the bounds to contain the given point + + // @alternative + // @method extend(otherBounds: LatLngBounds): this + // Extend the bounds to contain the given bounds + extend: function (obj) { + var sw = this._southWest, + ne = this._northEast, + sw2, ne2; + + if (obj instanceof LatLng) { + sw2 = obj; + ne2 = obj; + + } else if (obj instanceof LatLngBounds) { + sw2 = obj._southWest; + ne2 = obj._northEast; + + if (!sw2 || !ne2) { return this; } + + } else { + return obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this; + } + + if (!sw && !ne) { + this._southWest = new LatLng(sw2.lat, sw2.lng); + this._northEast = new LatLng(ne2.lat, ne2.lng); + } else { + sw.lat = Math.min(sw2.lat, sw.lat); + sw.lng = Math.min(sw2.lng, sw.lng); + ne.lat = Math.max(ne2.lat, ne.lat); + ne.lng = Math.max(ne2.lng, ne.lng); + } + + return this; + }, + + // @method pad(bufferRatio: Number): LatLngBounds + // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction. + // For example, a ratio of 0.5 extends the bounds by 50% in each direction. + // Negative values will retract the bounds. + pad: function (bufferRatio) { + var sw = this._southWest, + ne = this._northEast, + heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio, + widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio; + + return new LatLngBounds( + new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer), + new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer)); + }, + + // @method getCenter(): LatLng + // Returns the center point of the bounds. + getCenter: function () { + return new LatLng( + (this._southWest.lat + this._northEast.lat) / 2, + (this._southWest.lng + this._northEast.lng) / 2); + }, + + // @method getSouthWest(): LatLng + // Returns the south-west point of the bounds. + getSouthWest: function () { + return this._southWest; + }, + + // @method getNorthEast(): LatLng + // Returns the north-east point of the bounds. + getNorthEast: function () { + return this._northEast; + }, + + // @method getNorthWest(): LatLng + // Returns the north-west point of the bounds. + getNorthWest: function () { + return new LatLng(this.getNorth(), this.getWest()); + }, + + // @method getSouthEast(): LatLng + // Returns the south-east point of the bounds. + getSouthEast: function () { + return new LatLng(this.getSouth(), this.getEast()); + }, + + // @method getWest(): Number + // Returns the west longitude of the bounds + getWest: function () { + return this._southWest.lng; + }, + + // @method getSouth(): Number + // Returns the south latitude of the bounds + getSouth: function () { + return this._southWest.lat; + }, + + // @method getEast(): Number + // Returns the east longitude of the bounds + getEast: function () { + return this._northEast.lng; + }, + + // @method getNorth(): Number + // Returns the north latitude of the bounds + getNorth: function () { + return this._northEast.lat; + }, + + // @method contains(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle contains the given one. + + // @alternative + // @method contains (latlng: LatLng): Boolean + // Returns `true` if the rectangle contains the given point. + contains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean + if (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) { + obj = toLatLng(obj); + } else { + obj = toLatLngBounds(obj); + } + + var sw = this._southWest, + ne = this._northEast, + sw2, ne2; + + if (obj instanceof LatLngBounds) { + sw2 = obj.getSouthWest(); + ne2 = obj.getNorthEast(); + } else { + sw2 = ne2 = obj; + } + + return (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) && + (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng); + }, + + // @method intersects(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common. + intersects: function (bounds) { + bounds = toLatLngBounds(bounds); + + var sw = this._southWest, + ne = this._northEast, + sw2 = bounds.getSouthWest(), + ne2 = bounds.getNorthEast(), + + latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat), + lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng); + + return latIntersects && lngIntersects; + }, + + // @method overlaps(otherBounds: LatLngBounds): Boolean + // Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area. + overlaps: function (bounds) { + bounds = toLatLngBounds(bounds); + + var sw = this._southWest, + ne = this._northEast, + sw2 = bounds.getSouthWest(), + ne2 = bounds.getNorthEast(), + + latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat), + lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng); + + return latOverlaps && lngOverlaps; + }, + + // @method toBBoxString(): String + // Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data. + toBBoxString: function () { + return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(','); + }, + + // @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean + // Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number. + equals: function (bounds, maxMargin) { + if (!bounds) { return false; } + + bounds = toLatLngBounds(bounds); + + return this._southWest.equals(bounds.getSouthWest(), maxMargin) && + this._northEast.equals(bounds.getNorthEast(), maxMargin); + }, + + // @method isValid(): Boolean + // Returns `true` if the bounds are properly initialized. + isValid: function () { + return !!(this._southWest && this._northEast); + } +}; + +// TODO International date line? + +// @factory L.latLngBounds(corner1: LatLng, corner2: LatLng) +// Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle. + +// @alternative +// @factory L.latLngBounds(latlngs: LatLng[]) +// Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds). +function toLatLngBounds(a, b) { + if (a instanceof LatLngBounds) { + return a; + } + return new LatLngBounds(a, b); +} + +/* @class LatLng + * @aka L.LatLng + * + * Represents a geographical point with a certain latitude and longitude. + * + * @example + * + * ``` + * var latlng = L.latLng(50.5, 30.5); + * ``` + * + * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent: + * + * ``` + * map.panTo([50, 30]); + * map.panTo({lon: 30, lat: 50}); + * map.panTo({lat: 50, lng: 30}); + * map.panTo(L.latLng(50, 30)); + * ``` + * + * Note that `LatLng` does not inherit from Leaflet's `Class` object, + * which means new classes can't inherit from it, and new methods + * can't be added to it with the `include` function. + */ + +function LatLng(lat, lng, alt) { + if (isNaN(lat) || isNaN(lng)) { + throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')'); + } + + // @property lat: Number + // Latitude in degrees + this.lat = +lat; + + // @property lng: Number + // Longitude in degrees + this.lng = +lng; + + // @property alt: Number + // Altitude in meters (optional) + if (alt !== undefined) { + this.alt = +alt; + } +} + +LatLng.prototype = { + // @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean + // Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number. + equals: function (obj, maxMargin) { + if (!obj) { return false; } + + obj = toLatLng(obj); + + var margin = Math.max( + Math.abs(this.lat - obj.lat), + Math.abs(this.lng - obj.lng)); + + return margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin); + }, + + // @method toString(): String + // Returns a string representation of the point (for debugging purposes). + toString: function (precision) { + return 'LatLng(' + + formatNum(this.lat, precision) + ', ' + + formatNum(this.lng, precision) + ')'; + }, + + // @method distanceTo(otherLatLng: LatLng): Number + // Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines). + distanceTo: function (other) { + return Earth.distance(this, toLatLng(other)); + }, + + // @method wrap(): LatLng + // Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees. + wrap: function () { + return Earth.wrapLatLng(this); + }, + + // @method toBounds(sizeInMeters: Number): LatLngBounds + // Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`. + toBounds: function (sizeInMeters) { + var latAccuracy = 180 * sizeInMeters / 40075017, + lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat); + + return toLatLngBounds( + [this.lat - latAccuracy, this.lng - lngAccuracy], + [this.lat + latAccuracy, this.lng + lngAccuracy]); + }, + + clone: function () { + return new LatLng(this.lat, this.lng, this.alt); + } +}; + + + +// @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng +// Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude). + +// @alternative +// @factory L.latLng(coords: Array): LatLng +// Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead. + +// @alternative +// @factory L.latLng(coords: Object): LatLng +// Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead. + +function toLatLng(a, b, c) { + if (a instanceof LatLng) { + return a; + } + if (isArray(a) && typeof a[0] !== 'object') { + if (a.length === 3) { + return new LatLng(a[0], a[1], a[2]); + } + if (a.length === 2) { + return new LatLng(a[0], a[1]); + } + return null; + } + if (a === undefined || a === null) { + return a; + } + if (typeof a === 'object' && 'lat' in a) { + return new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt); + } + if (b === undefined) { + return null; + } + return new LatLng(a, b, c); +} + +/* + * @namespace CRS + * @crs L.CRS.Base + * Object that defines coordinate reference systems for projecting + * geographical points into pixel (screen) coordinates and back (and to + * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See + * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system). + * + * Leaflet defines the most usual CRSs by default. If you want to use a + * CRS not defined by default, take a look at the + * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin. + * + * Note that the CRS instances do not inherit from Leaflet's `Class` object, + * and can't be instantiated. Also, new classes can't inherit from them, + * and methods can't be added to them with the `include` function. + */ + +var CRS = { + // @method latLngToPoint(latlng: LatLng, zoom: Number): Point + // Projects geographical coordinates into pixel coordinates for a given zoom. + latLngToPoint: function (latlng, zoom) { + var projectedPoint = this.projection.project(latlng), + scale = this.scale(zoom); + + return this.transformation._transform(projectedPoint, scale); + }, + + // @method pointToLatLng(point: Point, zoom: Number): LatLng + // The inverse of `latLngToPoint`. Projects pixel coordinates on a given + // zoom into geographical coordinates. + pointToLatLng: function (point, zoom) { + var scale = this.scale(zoom), + untransformedPoint = this.transformation.untransform(point, scale); + + return this.projection.unproject(untransformedPoint); + }, + + // @method project(latlng: LatLng): Point + // Projects geographical coordinates into coordinates in units accepted for + // this CRS (e.g. meters for EPSG:3857, for passing it to WMS services). + project: function (latlng) { + return this.projection.project(latlng); + }, + + // @method unproject(point: Point): LatLng + // Given a projected coordinate returns the corresponding LatLng. + // The inverse of `project`. + unproject: function (point) { + return this.projection.unproject(point); + }, + + // @method scale(zoom: Number): Number + // Returns the scale used when transforming projected coordinates into + // pixel coordinates for a particular zoom. For example, it returns + // `256 * 2^zoom` for Mercator-based CRS. + scale: function (zoom) { + return 256 * Math.pow(2, zoom); + }, + + // @method zoom(scale: Number): Number + // Inverse of `scale()`, returns the zoom level corresponding to a scale + // factor of `scale`. + zoom: function (scale) { + return Math.log(scale / 256) / Math.LN2; + }, + + // @method getProjectedBounds(zoom: Number): Bounds + // Returns the projection's bounds scaled and transformed for the provided `zoom`. + getProjectedBounds: function (zoom) { + if (this.infinite) { return null; } + + var b = this.projection.bounds, + s = this.scale(zoom), + min = this.transformation.transform(b.min, s), + max = this.transformation.transform(b.max, s); + + return new Bounds(min, max); + }, + + // @method distance(latlng1: LatLng, latlng2: LatLng): Number + // Returns the distance between two geographical coordinates. + + // @property code: String + // Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`) + // + // @property wrapLng: Number[] + // An array of two numbers defining whether the longitude (horizontal) coordinate + // axis wraps around a given range and how. Defaults to `[-180, 180]` in most + // geographical CRSs. If `undefined`, the longitude axis does not wrap around. + // + // @property wrapLat: Number[] + // Like `wrapLng`, but for the latitude (vertical) axis. + + // wrapLng: [min, max], + // wrapLat: [min, max], + + // @property infinite: Boolean + // If true, the coordinate space will be unbounded (infinite in both axes) + infinite: false, + + // @method wrapLatLng(latlng: LatLng): LatLng + // Returns a `LatLng` where lat and lng has been wrapped according to the + // CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds. + wrapLatLng: function (latlng) { + var lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng, + lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat, + alt = latlng.alt; + + return new LatLng(lat, lng, alt); + }, + + // @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds + // Returns a `LatLngBounds` with the same size as the given one, ensuring + // that its center is within the CRS's bounds. + // Only accepts actual `L.LatLngBounds` instances, not arrays. + wrapLatLngBounds: function (bounds) { + var center = bounds.getCenter(), + newCenter = this.wrapLatLng(center), + latShift = center.lat - newCenter.lat, + lngShift = center.lng - newCenter.lng; + + if (latShift === 0 && lngShift === 0) { + return bounds; + } + + var sw = bounds.getSouthWest(), + ne = bounds.getNorthEast(), + newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift), + newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift); + + return new LatLngBounds(newSw, newNe); + } +}; + +/* + * @namespace CRS + * @crs L.CRS.Earth + * + * Serves as the base for CRS that are global such that they cover the earth. + * Can only be used as the base for other CRS and cannot be used directly, + * since it does not have a `code`, `projection` or `transformation`. `distance()` returns + * meters. + */ + +var Earth = extend({}, CRS, { + wrapLng: [-180, 180], + + // Mean Earth Radius, as recommended for use by + // the International Union of Geodesy and Geophysics, + // see https://rosettacode.org/wiki/Haversine_formula + R: 6371000, + + // distance between two geographical points using spherical law of cosines approximation + distance: function (latlng1, latlng2) { + var rad = Math.PI / 180, + lat1 = latlng1.lat * rad, + lat2 = latlng2.lat * rad, + sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2), + sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2), + a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon, + c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + return this.R * c; + } +}); + +/* + * @namespace Projection + * @projection L.Projection.SphericalMercator + * + * Spherical Mercator projection — the most common projection for online maps, + * used by almost all free and commercial tile providers. Assumes that Earth is + * a sphere. Used by the `EPSG:3857` CRS. + */ + +var earthRadius = 6378137; + +var SphericalMercator = { + + R: earthRadius, + MAX_LATITUDE: 85.0511287798, + + project: function (latlng) { + var d = Math.PI / 180, + max = this.MAX_LATITUDE, + lat = Math.max(Math.min(max, latlng.lat), -max), + sin = Math.sin(lat * d); + + return new Point( + this.R * latlng.lng * d, + this.R * Math.log((1 + sin) / (1 - sin)) / 2); + }, + + unproject: function (point) { + var d = 180 / Math.PI; + + return new LatLng( + (2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d, + point.x * d / this.R); + }, + + bounds: (function () { + var d = earthRadius * Math.PI; + return new Bounds([-d, -d], [d, d]); + })() +}; + +/* + * @class Transformation + * @aka L.Transformation + * + * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d` + * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing + * the reverse. Used by Leaflet in its projections code. + * + * @example + * + * ```js + * var transformation = L.transformation(2, 5, -1, 10), + * p = L.point(1, 2), + * p2 = transformation.transform(p), // L.point(7, 8) + * p3 = transformation.untransform(p2); // L.point(1, 2) + * ``` + */ + + +// factory new L.Transformation(a: Number, b: Number, c: Number, d: Number) +// Creates a `Transformation` object with the given coefficients. +function Transformation(a, b, c, d) { + if (isArray(a)) { + // use array properties + this._a = a[0]; + this._b = a[1]; + this._c = a[2]; + this._d = a[3]; + return; + } + this._a = a; + this._b = b; + this._c = c; + this._d = d; +} + +Transformation.prototype = { + // @method transform(point: Point, scale?: Number): Point + // Returns a transformed point, optionally multiplied by the given scale. + // Only accepts actual `L.Point` instances, not arrays. + transform: function (point, scale) { // (Point, Number) -> Point + return this._transform(point.clone(), scale); + }, + + // destructive transform (faster) + _transform: function (point, scale) { + scale = scale || 1; + point.x = scale * (this._a * point.x + this._b); + point.y = scale * (this._c * point.y + this._d); + return point; + }, + + // @method untransform(point: Point, scale?: Number): Point + // Returns the reverse transformation of the given point, optionally divided + // by the given scale. Only accepts actual `L.Point` instances, not arrays. + untransform: function (point, scale) { + scale = scale || 1; + return new Point( + (point.x / scale - this._b) / this._a, + (point.y / scale - this._d) / this._c); + } +}; + +// factory L.transformation(a: Number, b: Number, c: Number, d: Number) + +// @factory L.transformation(a: Number, b: Number, c: Number, d: Number) +// Instantiates a Transformation object with the given coefficients. + +// @alternative +// @factory L.transformation(coefficients: Array): Transformation +// Expects an coefficients array of the form +// `[a: Number, b: Number, c: Number, d: Number]`. + +function toTransformation(a, b, c, d) { + return new Transformation(a, b, c, d); +} + +/* + * @namespace CRS + * @crs L.CRS.EPSG3857 + * + * The most common CRS for online maps, used by almost all free and commercial + * tile providers. Uses Spherical Mercator projection. Set in by default in + * Map's `crs` option. + */ + +var EPSG3857 = extend({}, Earth, { + code: 'EPSG:3857', + projection: SphericalMercator, + + transformation: (function () { + var scale = 0.5 / (Math.PI * SphericalMercator.R); + return toTransformation(scale, 0.5, -scale, 0.5); + }()) +}); + +var EPSG900913 = extend({}, EPSG3857, { + code: 'EPSG:900913' +}); + +// @namespace SVG; @section +// There are several static functions which can be called without instantiating L.SVG: + +// @function create(name: String): SVGElement +// Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement), +// corresponding to the class name passed. For example, using 'line' will return +// an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement). +function svgCreate(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); +} + +// @function pointsToPath(rings: Point[], closed: Boolean): String +// Generates a SVG path string for multiple rings, with each ring turning +// into "M..L..L.." instructions +function pointsToPath(rings, closed) { + var str = '', + i, j, len, len2, points, p; + + for (i = 0, len = rings.length; i < len; i++) { + points = rings[i]; + + for (j = 0, len2 = points.length; j < len2; j++) { + p = points[j]; + str += (j ? 'L' : 'M') + p.x + ' ' + p.y; + } + + // closes the ring for polygons; "x" is VML syntax + str += closed ? (Browser.svg ? 'z' : 'x') : ''; + } + + // SVG complains about empty path strings + return str || 'M0 0'; +} + +/* + * @namespace Browser + * @aka L.Browser + * + * A namespace with static properties for browser/feature detection used by Leaflet internally. + * + * @example + * + * ```js + * if (L.Browser.ielt9) { + * alert('Upgrade your browser, dude!'); + * } + * ``` + */ + +var style = document.documentElement.style; + +// @property ie: Boolean; `true` for all Internet Explorer versions (not Edge). +var ie = 'ActiveXObject' in window; + +// @property ielt9: Boolean; `true` for Internet Explorer versions less than 9. +var ielt9 = ie && !document.addEventListener; + +// @property edge: Boolean; `true` for the Edge web browser. +var edge = 'msLaunchUri' in navigator && !('documentMode' in document); + +// @property webkit: Boolean; +// `true` for webkit-based browsers like Chrome and Safari (including mobile versions). +var webkit = userAgentContains('webkit'); + +// @property android: Boolean +// **Deprecated.** `true` for any browser running on an Android platform. +var android = userAgentContains('android'); + +// @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3. +var android23 = userAgentContains('android 2') || userAgentContains('android 3'); + +/* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */ +var webkitVer = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit +// @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome) +var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window); + +// @property opera: Boolean; `true` for the Opera browser +var opera = !!window.opera; + +// @property chrome: Boolean; `true` for the Chrome browser. +var chrome = !edge && userAgentContains('chrome'); + +// @property gecko: Boolean; `true` for gecko-based browsers like Firefox. +var gecko = userAgentContains('gecko') && !webkit && !opera && !ie; + +// @property safari: Boolean; `true` for the Safari browser. +var safari = !chrome && userAgentContains('safari'); + +var phantom = userAgentContains('phantom'); + +// @property opera12: Boolean +// `true` for the Opera browser supporting CSS transforms (version 12 or later). +var opera12 = 'OTransition' in style; + +// @property win: Boolean; `true` when the browser is running in a Windows platform +var win = navigator.platform.indexOf('Win') === 0; + +// @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms. +var ie3d = ie && ('transition' in style); + +// @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms. +var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23; + +// @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms. +var gecko3d = 'MozPerspective' in style; + +// @property any3d: Boolean +// `true` for all browsers supporting CSS transforms. +var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom; + +// @property mobile: Boolean; `true` for all browsers running in a mobile device. +var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile'); + +// @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device. +var mobileWebkit = mobile && webkit; + +// @property mobileWebkit3d: Boolean +// `true` for all webkit-based browsers in a mobile device supporting CSS transforms. +var mobileWebkit3d = mobile && webkit3d; + +// @property msPointer: Boolean +// `true` for browsers implementing the Microsoft touch events model (notably IE10). +var msPointer = !window.PointerEvent && window.MSPointerEvent; + +// @property pointer: Boolean +// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx). +var pointer = !!(window.PointerEvent || msPointer); + +// @property touchNative: Boolean +// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events). +// **This does not necessarily mean** that the browser is running in a computer with +// a touchscreen, it only means that the browser is capable of understanding +// touch events. +var touchNative = 'ontouchstart' in window || !!window.TouchEvent; + +// @property touch: Boolean +// `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events. +// Note: pointer events will be preferred (if available), and processed for all `touch*` listeners. +var touch = !window.L_NO_TOUCH && (touchNative || pointer); + +// @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device. +var mobileOpera = mobile && opera; + +// @property mobileGecko: Boolean +// `true` for gecko-based browsers running in a mobile device. +var mobileGecko = mobile && gecko; + +// @property retina: Boolean +// `true` for browsers on a high-resolution "retina" screen or on any screen when browser's display zoom is more than 100%. +var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1; + +// @property passiveEvents: Boolean +// `true` for browsers that support passive events. +var passiveEvents = (function () { + var supportsPassiveOption = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function () { // eslint-disable-line getter-return + supportsPassiveOption = true; + } + }); + window.addEventListener('testPassiveEventSupport', falseFn, opts); + window.removeEventListener('testPassiveEventSupport', falseFn, opts); + } catch (e) { + // Errors can safely be ignored since this is only a browser support test. + } + return supportsPassiveOption; +}()); + +// @property canvas: Boolean +// `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API). +var canvas$1 = (function () { + return !!document.createElement('canvas').getContext; +}()); + +// @property svg: Boolean +// `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG). +var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect); + +var inlineSvg = !!svg$1 && (function () { + var div = document.createElement('div'); + div.innerHTML = ''; + return (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg'; +})(); + +// @property vml: Boolean +// `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language). +var vml = !svg$1 && (function () { + try { + var div = document.createElement('div'); + div.innerHTML = ''; + + var shape = div.firstChild; + shape.style.behavior = 'url(#default#VML)'; + + return shape && (typeof shape.adj === 'object'); + + } catch (e) { + return false; + } +}()); + + +// @property mac: Boolean; `true` when the browser is running in a Mac platform +var mac = navigator.platform.indexOf('Mac') === 0; + +// @property mac: Boolean; `true` when the browser is running in a Linux platform +var linux = navigator.platform.indexOf('Linux') === 0; + +function userAgentContains(str) { + return navigator.userAgent.toLowerCase().indexOf(str) >= 0; +} + + +var Browser = { + ie: ie, + ielt9: ielt9, + edge: edge, + webkit: webkit, + android: android, + android23: android23, + androidStock: androidStock, + opera: opera, + chrome: chrome, + gecko: gecko, + safari: safari, + phantom: phantom, + opera12: opera12, + win: win, + ie3d: ie3d, + webkit3d: webkit3d, + gecko3d: gecko3d, + any3d: any3d, + mobile: mobile, + mobileWebkit: mobileWebkit, + mobileWebkit3d: mobileWebkit3d, + msPointer: msPointer, + pointer: pointer, + touch: touch, + touchNative: touchNative, + mobileOpera: mobileOpera, + mobileGecko: mobileGecko, + retina: retina, + passiveEvents: passiveEvents, + canvas: canvas$1, + svg: svg$1, + vml: vml, + inlineSvg: inlineSvg, + mac: mac, + linux: linux +}; + +/* + * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices. + */ + +var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown'; +var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove'; +var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup'; +var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel'; +var pEvent = { + touchstart : POINTER_DOWN, + touchmove : POINTER_MOVE, + touchend : POINTER_UP, + touchcancel : POINTER_CANCEL +}; +var handle = { + touchstart : _onPointerStart, + touchmove : _handlePointer, + touchend : _handlePointer, + touchcancel : _handlePointer +}; +var _pointers = {}; +var _pointerDocListener = false; + +// Provides a touch events wrapper for (ms)pointer events. +// ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890 + +function addPointerListener(obj, type, handler) { + if (type === 'touchstart') { + _addPointerDocListener(); + } + if (!handle[type]) { + console.warn('wrong event specified:', type); + return falseFn; + } + handler = handle[type].bind(this, handler); + obj.addEventListener(pEvent[type], handler, false); + return handler; +} + +function removePointerListener(obj, type, handler) { + if (!pEvent[type]) { + console.warn('wrong event specified:', type); + return; + } + obj.removeEventListener(pEvent[type], handler, false); +} + +function _globalPointerDown(e) { + _pointers[e.pointerId] = e; +} + +function _globalPointerMove(e) { + if (_pointers[e.pointerId]) { + _pointers[e.pointerId] = e; + } +} + +function _globalPointerUp(e) { + delete _pointers[e.pointerId]; +} + +function _addPointerDocListener() { + // need to keep track of what pointers and how many are active to provide e.touches emulation + if (!_pointerDocListener) { + // we listen document as any drags that end by moving the touch off the screen get fired there + document.addEventListener(POINTER_DOWN, _globalPointerDown, true); + document.addEventListener(POINTER_MOVE, _globalPointerMove, true); + document.addEventListener(POINTER_UP, _globalPointerUp, true); + document.addEventListener(POINTER_CANCEL, _globalPointerUp, true); + + _pointerDocListener = true; + } +} + +function _handlePointer(handler, e) { + if (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; } + + e.touches = []; + for (var i in _pointers) { + e.touches.push(_pointers[i]); + } + e.changedTouches = [e]; + + handler(e); +} + +function _onPointerStart(handler, e) { + // IE10 specific: MsTouch needs preventDefault. See #2000 + if (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) { + preventDefault(e); + } + _handlePointer(handler, e); +} + +/* + * Extends the event handling code with double tap support for mobile browsers. + * + * Note: currently most browsers fire native dblclick, with only a few exceptions + * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386) + */ + +function makeDblclick(event) { + // in modern browsers `type` cannot be just overridden: + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only + var newEvent = {}, + prop, i; + for (i in event) { + prop = event[i]; + newEvent[i] = prop && prop.bind ? prop.bind(event) : prop; + } + event = newEvent; + newEvent.type = 'dblclick'; + newEvent.detail = 2; + newEvent.isTrusted = false; + newEvent._simulated = true; // for debug purposes + return newEvent; +} + +var delay = 200; +function addDoubleTapListener(obj, handler) { + // Most browsers handle double tap natively + obj.addEventListener('dblclick', handler); + + // On some platforms the browser doesn't fire native dblclicks for touch events. + // It seems that in all such cases `detail` property of `click` event is always `1`. + // So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed. + var last = 0, + detail; + function simDblclick(e) { + if (e.detail !== 1) { + detail = e.detail; // keep in sync to avoid false dblclick in some cases + return; + } + + if (e.pointerType === 'mouse' || + (e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) { + + return; + } + + // When clicking on an , the browser generates a click on its + //