diff --git a/code/sitesmap2.R b/code/sitesmap2.R deleted file mode 100644 index 941e4fe..0000000 --- a/code/sitesmap2.R +++ /dev/null @@ -1,43 +0,0 @@ -# sitesmap2.R -# An interactive web map using the R leaflet package. - -library(leaflet) -library(maps) -library(htmlwidgets) # To save the map as a web page. - -# The data to map. -sites <- read.csv("https://richardlent.github.io/rnotebooks/sites.csv") - -# State boundaries from the maps package. The fill option must be TRUE. -bounds <- map('state', c('Massachusetts', 'Vermont', 'New Hampshire'), fill=TRUE) - -# A custom icon. -icons <- awesomeIcons( - icon = 'disc', - iconColor = 'black', - library = 'ion', # Options are 'glyphicon', 'fa', 'ion'. - markerColor = 'blue', - squareMarker = FALSE -) - -map <- leaflet(data = sites) %>% - addTiles(group = "OpenStreetMap") %>% # Adds default OpenStreetMap base map. - addProviderTiles("CartoDB.Positron", group = "Grey Scale") %>% - addProviderTiles("Esri.WorldImagery", group = "Satellite") %>% - addProviderTiles("Esri.WorldShadedRelief", group = "Relief") %>% - addProviderTiles("Stamen.Watercolor", group = "Other") %>% - addMarkers(~lon_dd, ~lat_dd, label = ~locality, - popup = "", - group = "Sites") %>% - # addAwesomeMarkers(~lon_dd, ~lat_dd, label = ~locality, - # popup = "RStudio", - # group = "Sites", icon=icons) %>% - addPolygons(data=bounds, group="States", weight=3.5, fillOpacity = 0) %>% - addLayersControl( - baseGroups = c("OpenStreetMap", "Grey Scale", "Satellite", "Relief", "Other"), - overlayGroups = c("Sites", "States"), - options = layersControlOptions(collapsed = FALSE) - ) - -print(map) -saveWidget(map, file="sitesmap2.html", selfcontained=TRUE) diff --git a/css/blackburn.css b/css/blackburn.css deleted file mode 100644 index 0ddd380..0000000 --- a/css/blackburn.css +++ /dev/null @@ -1,89 +0,0 @@ -.header { - font-family: "Raleway", Helvetica, Arial, sans-serif -} - -a { - color: #3b8bba; - text-decoration: none; -} -a:hover, -a:focus { - text-decoration: underline; -} -a:visited { - color: #265778; -} - -.small-print { - font-size: 0.8em; - margin: 0.6em; -} - -.post-meta { - font-size: 90%; -} - -article > footer { - text-align: right; -} - -.prev-next-post { - margin-top: 2em; - padding-top: 2em; - padding-bottom: 2em; - border-top: 1px solid #eee; - border-bottom: 1px solid #eee; -} - -.prev-next-post .prev { - float: left; - text-align: left; - overflow: hidden; -} - -.prev-next-post .next { - float: right; - text-align: right; - overflow: hidden; -} - -#menu { - overflow-y: visible; -} - -#menu a { - padding: 0.6em; -} - -#menu .brand { - font-family: Raleway; - font-weight: bold; - font-size: 1em; - letter-spacing: 0.1em; - text-transform: none; - background: transparent; - text-decoration: none; - margin: 0.5em 0; -} - -#menu .pure-menu { - font-size: 0.9em; -} - -#menu .pure-menu ul.pure-menu-children { - border-top: none; -} - -i { - display: inline-block; - margin-right: 0.2em; -} - -.pagination { - text-align: center; - margin-top: 3em; -} - -.pagination a { - color: #265778; -} \ No newline at end of file diff --git a/css/side-menu-old-ie.css b/css/side-menu-old-ie.css deleted file mode 100644 index 5cfc146..0000000 --- a/css/side-menu-old-ie.css +++ /dev/null @@ -1,255 +0,0 @@ -body { - color: #777; -} - -.pure-img-responsive { - max-width: 100%; - height: auto; -} - -/* -Add transition to containers so they can push in and out. -*/ - -#layout, -#menu, -.menu-link { - -webkit-transition: all 0.2s ease-out; - -moz-transition: all 0.2s ease-out; - -ms-transition: all 0.2s ease-out; - -o-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} - -/* -This is the parent `
` that contains the menu and the content area. -*/ - -#layout { - position: relative; - left: 0; - padding-left: 0; -} - -#layout.active #menu { - left: 150px; - width: 150px; -} - -#layout.active .menu-link { - left: 150px; -} - -/* -The content `
` is where all your content goes. -*/ - -.content { - margin: 0 auto; - padding: 0 2em; - max-width: 800px; - margin-bottom: 50px; - line-height: 1.6em; -} - -.header { - margin: 0; - color: #333; - text-align: center; - padding: 2.5em 2em 0; - border-bottom: 1px solid #eee; -} - -.header h1 { - margin: 0.2em 0; - font-size: 3em; - font-weight: 300; -} - -.header h2 { - font-weight: 300; - color: #ccc; - padding: 0; - margin-top: 0; -} - -.content-subhead { - margin: 50px 0 20px 0; - font-weight: 300; - color: #888; -} - -/* -The `#menu` `
` is the parent `
` that contains the `.pure-menu` that -appears on the left side of the page. -*/ - -#menu { - margin-left: -150px; - /* "#menu" width */ - width: 150px; - position: fixed; - top: 0; - left: 0; - bottom: 0; - z-index: 1000; - /* so the menu or its navicon stays above all content */ - background: #191818; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - -/* - All anchors inside the menu should be styled like this. - */ - -#menu a { - color: #999; - border: none; - padding: 0.6em 0 0.6em 0.6em; -} - -/* - Remove all background/borders, since we are applying them to #menu. - */ - -#menu .pure-menu, -#menu .pure-menu ul { - border: none; - background: transparent; -} - -/* - Add that light border to separate items into groups. - */ - -#menu .pure-menu ul, -#menu .pure-menu .menu-item-divided { - border-top: 1px solid #333; -} - -/* - Change color of the anchor links on hover/focus. - */ - -#menu .pure-menu li a:hover, -#menu .pure-menu li a:focus { - background: #333; -} - -/* - This styles the selected menu item `
  • `. - */ - -#menu .pure-menu-selected, -#menu .pure-menu-heading { - background: #1f8dd6; -} - -/* - This styles a link within a selected menu item `
  • `. - */ - -#menu .pure-menu-selected a { - color: #fff; -} - -/* - This styles the menu heading. - */ - -#menu .pure-menu-heading { - font-size: 110%; - color: #fff; - margin: 0; -} - -/* -- Dynamic Button For Responsive Menu -------------------------------------*/ - -/* -The button to open/close the Menu is custom-made and not part of Pure. Here's -how it works: -*/ - -/* -`.menu-link` represents the responsive menu toggle that shows/hides on -small screens. -*/ - -.menu-link { - position: fixed; - display: block; - /* show this only on small screens */ - top: 0; - left: 0; - /* "#menu width" */ - background: #000; - background: rgba(0,0,0,0.7); - font-size: 10px; - /* change this value to increase/decrease button size */ - z-index: 10; - width: 2em; - height: auto; - padding: 2.1em 1.6em; -} - -.menu-link:hover, -.menu-link:focus { - background: #000; -} - -.menu-link span { - position: relative; - display: block; -} - -.menu-link span, -.menu-link span:before, -.menu-link span:after { - background-color: #fff; - width: 100%; - height: 0.2em; -} - -.menu-link span:before, -.menu-link span:after { - position: absolute; - margin-top: -0.6em; - content: " "; -} - -.menu-link span:after { - margin-top: 0.6em; -} - -/* -- Responsive Styles (Media Queries) ------------------------------------- */ - -/* -Hides the menu at `48em`, but modify this based on your app's needs. -*/ - -.header, -.content { - padding-left: 2em; - padding-right: 2em; -} - -#layout { - padding-left: 150px; - /* left col width "#menu" */ - left: 0; -} - -#menu { - left: 150px; -} - -.menu-link { - position: fixed; - left: 150px; - display: none; -} - -#layout.active .menu-link { - left: 150px; -} \ No newline at end of file diff --git a/css/side-menu.css b/css/side-menu.css deleted file mode 100644 index 7abd61c..0000000 --- a/css/side-menu.css +++ /dev/null @@ -1,248 +0,0 @@ -body { - color: #777; -} - -.pure-img-responsive { - max-width: 100%; - height: auto; -} - -/* -Add transition to containers so they can push in and out. -*/ -#layout, -#menu, -.menu-link { - -webkit-transition: all 0.2s ease-out; - -moz-transition: all 0.2s ease-out; - -ms-transition: all 0.2s ease-out; - -o-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} - -/* -This is the parent `
    ` that contains the menu and the content area. -*/ -#layout { - position: relative; - left: 0; - padding-left: 0; -} - #layout.active #menu { - left: 150px; - width: 150px; - } - - #layout.active .menu-link { - left: 150px; - } -/* -The content `
    ` is where all your content goes. -*/ -.content { - margin: 0 auto; - padding: 0 2em; - max-width: 800px; - margin-bottom: 50px; - line-height: 1.6em; -} - -.header { - margin: 0; - color: #333; - text-align: center; - padding: 2.5em 2em 0; - border-bottom: 1px solid #eee; - } - .header h1 { - margin: 0.2em 0; - font-size: 3em; - font-weight: 300; - } - .header h2 { - font-weight: 300; - color: #ccc; - padding: 0; - margin-top: 0; - } - -.content-subhead { - margin: 50px 0 20px 0; - font-weight: 300; - color: #888; -} - - - -/* -The `#menu` `
    ` is the parent `
    ` that contains the `.pure-menu` that -appears on the left side of the page. -*/ - -#menu { - margin-left: -150px; /* "#menu" width */ - width: 150px; - position: fixed; - top: 0; - left: 0; - bottom: 0; - z-index: 1000; /* so the menu or its navicon stays above all content */ - background: #191818; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - /* - All anchors inside the menu should be styled like this. - */ - #menu a { - color: #999; - border: none; - padding: 0.6em 0 0.6em 0.6em; - } - - /* - Remove all background/borders, since we are applying them to #menu. - */ - #menu .pure-menu, - #menu .pure-menu ul { - border: none; - background: transparent; - } - - /* - Add that light border to separate items into groups. - */ - #menu .pure-menu ul, - #menu .pure-menu .menu-item-divided { - border-top: 1px solid #333; - } - /* - Change color of the anchor links on hover/focus. - */ - #menu .pure-menu li a:hover, - #menu .pure-menu li a:focus { - background: #333; - } - - /* - This styles the selected menu item `
  • `. - */ - #menu .pure-menu-selected, - #menu .pure-menu-heading { - background: #1f8dd6; - } - /* - This styles a link within a selected menu item `
  • `. - */ - #menu .pure-menu-selected a { - color: #fff; - } - - /* - This styles the menu heading. - */ - #menu .pure-menu-heading { - font-size: 110%; - color: #fff; - margin: 0; - } - -/* -- Dynamic Button For Responsive Menu -------------------------------------*/ - -/* -The button to open/close the Menu is custom-made and not part of Pure. Here's -how it works: -*/ - -/* -`.menu-link` represents the responsive menu toggle that shows/hides on -small screens. -*/ -.menu-link { - position: fixed; - display: block; /* show this only on small screens */ - top: 0; - left: 0; /* "#menu width" */ - background: #000; - background: rgba(0,0,0,0.7); - font-size: 10px; /* change this value to increase/decrease button size */ - z-index: 10; - width: 2em; - height: auto; - padding: 2.1em 1.6em; -} - - .menu-link:hover, - .menu-link:focus { - background: #000; - } - - .menu-link span { - position: relative; - display: block; - } - - .menu-link span, - .menu-link span:before, - .menu-link span:after { - background-color: #fff; - width: 100%; - height: 0.2em; - } - - .menu-link span:before, - .menu-link span:after { - position: absolute; - margin-top: -0.6em; - content: " "; - } - - .menu-link span:after { - margin-top: 0.6em; - } - - -/* -- Responsive Styles (Media Queries) ------------------------------------- */ - -/* -Hides the menu at `48em`, but modify this based on your app's needs. -*/ -@media (min-width: 48em) { - - .header, - .content { - padding-left: 2em; - padding-right: 2em; - } - - #layout { - padding-left: 150px; /* left col width "#menu" */ - left: 0; - } - #menu { - left: 150px; - } - - .menu-link { - position: fixed; - left: 150px; - display: none; - } - - #layout.active .menu-link { - left: 150px; - } -} - -@media (max-width: 48em) { - /* Only apply this when the window is small. Otherwise, the following - case results in extra padding on the left: - * Make the window small. - * Tap the menu to trigger the active state. - * Make the window large again. - */ - #layout.active { - position: relative; - left: 150px; - } -} diff --git a/img/IntroductionToR/RConsole.png b/img/IntroductionToR/RConsole.png deleted file mode 100644 index 566244f..0000000 Binary files a/img/IntroductionToR/RConsole.png and /dev/null differ diff --git a/img/IntroductionToR/boxplot.png b/img/IntroductionToR/boxplot.png deleted file mode 100644 index 54fb941..0000000 Binary files a/img/IntroductionToR/boxplot.png and /dev/null differ diff --git a/img/IntroductionToR/boxplot2.png b/img/IntroductionToR/boxplot2.png deleted file mode 100644 index b3d827f..0000000 Binary files a/img/IntroductionToR/boxplot2.png and /dev/null differ diff --git a/img/IntroductionToR/boxplot2_50.png b/img/IntroductionToR/boxplot2_50.png deleted file mode 100644 index 9abcafd..0000000 Binary files a/img/IntroductionToR/boxplot2_50.png and /dev/null differ diff --git a/img/IntroductionToR/boxplot50.png b/img/IntroductionToR/boxplot50.png deleted file mode 100644 index 08e5a41..0000000 Binary files a/img/IntroductionToR/boxplot50.png and /dev/null differ diff --git a/img/IntroductionToR/hist.png b/img/IntroductionToR/hist.png deleted file mode 100644 index 778f29a..0000000 Binary files a/img/IntroductionToR/hist.png and /dev/null differ diff --git a/img/IntroductionToR/hist50.png b/img/IntroductionToR/hist50.png deleted file mode 100644 index c125a15..0000000 Binary files a/img/IntroductionToR/hist50.png and /dev/null differ diff --git a/img/IntroductionToR/lognormal.png b/img/IntroductionToR/lognormal.png deleted file mode 100644 index bc57052..0000000 Binary files a/img/IntroductionToR/lognormal.png and /dev/null differ diff --git a/img/IntroductionToR/lognormal50.png b/img/IntroductionToR/lognormal50.png deleted file mode 100644 index 26870f5..0000000 Binary files a/img/IntroductionToR/lognormal50.png and /dev/null differ diff --git a/img/IntroductionToR/notched.png b/img/IntroductionToR/notched.png deleted file mode 100644 index c89b5d1..0000000 Binary files a/img/IntroductionToR/notched.png and /dev/null differ diff --git a/img/IntroductionToR/notched50.png b/img/IntroductionToR/notched50.png deleted file mode 100644 index b858639..0000000 Binary files a/img/IntroductionToR/notched50.png and /dev/null differ diff --git a/img/IntroductionToR/r_logo.png b/img/IntroductionToR/r_logo.png deleted file mode 100644 index 94a62ed..0000000 Binary files a/img/IntroductionToR/r_logo.png and /dev/null differ diff --git a/img/IntroductionToR/r_logo10.png b/img/IntroductionToR/r_logo10.png deleted file mode 100644 index f974985..0000000 Binary files a/img/IntroductionToR/r_logo10.png and /dev/null differ diff --git a/img/IntroductionToR/r_logo15.png b/img/IntroductionToR/r_logo15.png deleted file mode 100644 index 82f22aa..0000000 Binary files a/img/IntroductionToR/r_logo15.png and /dev/null differ diff --git a/img/IntroductionToR/rcommander.png b/img/IntroductionToR/rcommander.png deleted file mode 100644 index 0c0c2b6..0000000 Binary files a/img/IntroductionToR/rcommander.png and /dev/null differ diff --git a/img/IntroductionToR/rcommander50.png b/img/IntroductionToR/rcommander50.png deleted file mode 100644 index f94576e..0000000 Binary files a/img/IntroductionToR/rcommander50.png and /dev/null differ diff --git a/img/IntroductionToR/rotate.png b/img/IntroductionToR/rotate.png deleted file mode 100644 index b57bf15..0000000 Binary files a/img/IntroductionToR/rotate.png and /dev/null differ diff --git a/img/IntroductionToR/rotate50.png b/img/IntroductionToR/rotate50.png deleted file mode 100644 index 6071f7f..0000000 Binary files a/img/IntroductionToR/rotate50.png and /dev/null differ diff --git a/img/IntroductionToR/splom.png b/img/IntroductionToR/splom.png deleted file mode 100644 index e187575..0000000 Binary files a/img/IntroductionToR/splom.png and /dev/null differ diff --git a/img/IntroductionToR/splom50.png b/img/IntroductionToR/splom50.png deleted file mode 100644 index af09f08..0000000 Binary files a/img/IntroductionToR/splom50.png and /dev/null differ diff --git a/img/IntroductionToR/squished.png b/img/IntroductionToR/squished.png deleted file mode 100644 index b27e16a..0000000 Binary files a/img/IntroductionToR/squished.png and /dev/null differ diff --git a/img/IntroductionToR/squished50.png b/img/IntroductionToR/squished50.png deleted file mode 100644 index de221e4..0000000 Binary files a/img/IntroductionToR/squished50.png and /dev/null differ diff --git a/img/KindOfLikeThisSketch.png b/img/KindOfLikeThisSketch.png deleted file mode 100644 index 262bcee..0000000 Binary files a/img/KindOfLikeThisSketch.png and /dev/null differ diff --git a/img/Martin00-18VLarge.jpg b/img/Martin00-18VLarge.jpg deleted file mode 100644 index adf83ff..0000000 Binary files a/img/Martin00-18VLarge.jpg and /dev/null differ diff --git a/img/Martin00-18VSmall.jpg b/img/Martin00-18VSmall.jpg deleted file mode 100644 index 6eadecd..0000000 Binary files a/img/Martin00-18VSmall.jpg and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/dfa.png b/img/MultivariateAnalysisWithR/dfa.png deleted file mode 100644 index e79d846..0000000 Binary files a/img/MultivariateAnalysisWithR/dfa.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/habitat.png b/img/MultivariateAnalysisWithR/habitat.png deleted file mode 100644 index f602f98..0000000 Binary files a/img/MultivariateAnalysisWithR/habitat.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/mantel.png b/img/MultivariateAnalysisWithR/mantel.png deleted file mode 100644 index 893b949..0000000 Binary files a/img/MultivariateAnalysisWithR/mantel.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/mantel50.png b/img/MultivariateAnalysisWithR/mantel50.png deleted file mode 100644 index 0f5904b..0000000 Binary files a/img/MultivariateAnalysisWithR/mantel50.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/map.png b/img/MultivariateAnalysisWithR/map.png deleted file mode 100644 index 609ab47..0000000 Binary files a/img/MultivariateAnalysisWithR/map.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/mds.png b/img/MultivariateAnalysisWithR/mds.png deleted file mode 100644 index 479e874..0000000 Binary files a/img/MultivariateAnalysisWithR/mds.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/mds50.png b/img/MultivariateAnalysisWithR/mds50.png deleted file mode 100644 index e11b2aa..0000000 Binary files a/img/MultivariateAnalysisWithR/mds50.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/pca.png b/img/MultivariateAnalysisWithR/pca.png deleted file mode 100644 index 896d8bb..0000000 Binary files a/img/MultivariateAnalysisWithR/pca.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/pheno.png b/img/MultivariateAnalysisWithR/pheno.png deleted file mode 100644 index be80af7..0000000 Binary files a/img/MultivariateAnalysisWithR/pheno.png and /dev/null differ diff --git a/img/MultivariateAnalysisWithR/xyz.png b/img/MultivariateAnalysisWithR/xyz.png deleted file mode 100644 index 00d3c93..0000000 Binary files a/img/MultivariateAnalysisWithR/xyz.png and /dev/null differ diff --git a/img/QGISLayersPanelThree.png b/img/QGISLayersPanelThree.png deleted file mode 100644 index e5acb47..0000000 Binary files a/img/QGISLayersPanelThree.png and /dev/null differ diff --git a/img/RStudio50.png b/img/RStudio50.png deleted file mode 100644 index 2c65e98..0000000 Binary files a/img/RStudio50.png and /dev/null differ diff --git a/img/TextMiningWithR/text-mining-icon-2793702_640_50.png b/img/TextMiningWithR/text-mining-icon-2793702_640_50.png deleted file mode 100644 index 5cd8525..0000000 Binary files a/img/TextMiningWithR/text-mining-icon-2793702_640_50.png and /dev/null differ diff --git a/img/ThePlainTextWorkflow/Macdown.png b/img/ThePlainTextWorkflow/Macdown.png deleted file mode 100644 index d98bf13..0000000 Binary files a/img/ThePlainTextWorkflow/Macdown.png and /dev/null differ diff --git a/img/ThePlainTextWorkflow/Macdown_small.png b/img/ThePlainTextWorkflow/Macdown_small.png deleted file mode 100644 index 424cf50..0000000 Binary files a/img/ThePlainTextWorkflow/Macdown_small.png and /dev/null differ diff --git a/img/ThePlainTextWorkflow/Word.png b/img/ThePlainTextWorkflow/Word.png deleted file mode 100644 index 0a3542e..0000000 Binary files a/img/ThePlainTextWorkflow/Word.png and /dev/null differ diff --git a/img/ThePlainTextWorkflow/Word_small.png b/img/ThePlainTextWorkflow/Word_small.png deleted file mode 100644 index 4cadb9a..0000000 Binary files a/img/ThePlainTextWorkflow/Word_small.png and /dev/null differ diff --git a/img/ThePlainTextWorkflow/citation.png b/img/ThePlainTextWorkflow/citation.png deleted file mode 100644 index c64fbfd..0000000 Binary files a/img/ThePlainTextWorkflow/citation.png and /dev/null differ diff --git a/img/ThePlainTextWorkflow/fish.jpg b/img/ThePlainTextWorkflow/fish.jpg deleted file mode 100644 index 8ed71e4..0000000 Binary files a/img/ThePlainTextWorkflow/fish.jpg and /dev/null differ diff --git a/img/ThePlainTextWorkflow/markdown.html b/img/ThePlainTextWorkflow/markdown.html deleted file mode 100644 index 2d33ce9..0000000 --- a/img/ThePlainTextWorkflow/markdown.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - -

    A Markdown Example

    -

    Markdown

    -

    Markdown

    -

    Markdown

    -

    Paragraph breaks are simply blank lines.

    -

    Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty, and dedicated to the proposition that all men are created equal.

    -

    A blockquote is the greater-than symbol:

    -
    -

    Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battlefield of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this.

    -
    -

    But, in a larger sense, we can not dedicate, we can not consecrate, we can not hallow this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us--that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion--that we here highly resolve that these dead shall not have died in vain--that this nation, under God, shall have a new birth of freedom--and that government of the people, by the people, for the people, shall not perish from the earth.1

    -

    Or else they are not considered to be part of the footnote.

    -

    Thus we keep typing, and if we insert another footnote, like right here2, we get another footnote.

    -

    Indentation is produced by multiples of <space><space>*<space>.

    -

    (And notice the use of the backtick character to delimit use of a monospaced font.)

    -
      -
    • So here is some indentation. -
        -
      • More indentation.
      • -
      • And more.
      • -
      • Useful for outlines.
      • -
    • -
    -

    Numbered lists? Just type them:

    -
      -
    1. First line.
    2. -
    3. Second line.
    4. -
    5. Third line.
    6. -
    -

    The numbers are produced automatically by the MacDown editor.

    -

    For "code blocks," which are blocks of monospaced text, indent every line of the block at least 4 spaces or 1 tab:

    -
    Like this.
    -These are handy for inserting examples of computer code statements or for simply setting off blocks of text for extra emphasis.
    -

    And now we are back to normal text, because we are no longer indenting 1 tab space.

    -

    A hyperlink looks like this:

    -

    College of the Holy Cross

    -

    An image link looks like this:

    -
    - - -
    -

    More information on Markdown and its syntax can be found here.

    -
    -
    -
      -
    1. Abraham Lincoln wrote this. Subsequent lines of the footnote need to be indented. A jump from the footnote back to the text is conveniently generated.

    2. -
    3. And here is the material for the second footnote.

    4. -
    -
    - - diff --git a/img/ThePlainTextWorkflow/markdown.md.txt b/img/ThePlainTextWorkflow/markdown.md.txt deleted file mode 100644 index 7bbcf74..0000000 --- a/img/ThePlainTextWorkflow/markdown.md.txt +++ /dev/null @@ -1,60 +0,0 @@ -# A Markdown Example - -## Markdown - -### Markdown - -#### Markdown - -Paragraph breaks are simply blank lines. - -Four score and seven years ago our fathers brought forth on this continent a new nation, conceived in liberty, and dedicated to the proposition that all men are created equal. - -A blockquote is the greater-than symbol: - -> Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battlefield of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this. - -But, in a larger sense, we can not dedicate, we can not consecrate, we can not hallow this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us--that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion--that we here highly resolve that these dead shall not have died in vain--that this nation, under God, shall have a new birth of freedom--and that government of the people, by the people, for the people, shall not perish from the earth.[^1] - -[^1]: Abraham Lincoln wrote this. - Subsequent lines of the footnote need to be indented. A jump from the footnote back to the text is conveniently generated. - -Or else they are not considered to be part of the footnote. - -Thus we keep typing, and if we insert another footnote, like right here[^2], we get another footnote. - -[^2]: And here is the material for the second footnote. - -Indentation is produced by multiples of `*`. - -(And notice the use of the backtick character to delimit use of a monospaced font.) - - * So here is some indentation. - * More indentation. - * And more. - * Useful for outlines. - -Numbered lists? Just type them: - -1. First line. -2. Second line. -3. Third line. - -The numbers are produced automatically by the MacDown editor. - -For "code blocks," which are blocks of monospaced text, indent every line of the block at least 4 spaces or 1 tab: - - Like this. - These are handy for inserting examples of computer code statements or for simply setting off blocks of text for extra emphasis. - -And now we are back to normal text, because we are no longer indenting 1 tab space. - -A hyperlink looks like this: - -[College of the Holy Cross](http://www.holycross.edu) - -An image link looks like this: - -![](fish.jpg) - -More information on Markdown and its syntax can be found [here](https://daringfireball.net/projects/markdown/). diff --git a/img/ThePlainTextWorkflow/quill_10.jpeg b/img/ThePlainTextWorkflow/quill_10.jpeg deleted file mode 100644 index b5b0e9e..0000000 Binary files a/img/ThePlainTextWorkflow/quill_10.jpeg and /dev/null differ diff --git a/img/ThePlainTextWorkflow/shell.png b/img/ThePlainTextWorkflow/shell.png deleted file mode 100644 index 27dc050..0000000 Binary files a/img/ThePlainTextWorkflow/shell.png and /dev/null differ diff --git a/img/ThePlainTextWorkflow/shell_small.png b/img/ThePlainTextWorkflow/shell_small.png deleted file mode 100644 index b4b21fd..0000000 Binary files a/img/ThePlainTextWorkflow/shell_small.png and /dev/null differ diff --git a/img/WebMapping/AttributeTable.gif b/img/WebMapping/AttributeTable.gif deleted file mode 100644 index 42bf098..0000000 Binary files a/img/WebMapping/AttributeTable.gif and /dev/null differ diff --git a/img/WebMapping/BaseMaps75.png b/img/WebMapping/BaseMaps75.png deleted file mode 100644 index df32f72..0000000 Binary files a/img/WebMapping/BaseMaps75.png and /dev/null differ diff --git a/img/WebMapping/CreateWebMap50.png b/img/WebMapping/CreateWebMap50.png deleted file mode 100644 index a13ec50..0000000 Binary files a/img/WebMapping/CreateWebMap50.png and /dev/null differ diff --git a/img/WebMapping/GISlayers.jpg b/img/WebMapping/GISlayers.jpg deleted file mode 100644 index 1fc4c98..0000000 Binary files a/img/WebMapping/GISlayers.jpg and /dev/null differ diff --git a/img/WebMapping/GoogleMapsDataTable.png b/img/WebMapping/GoogleMapsDataTable.png deleted file mode 100644 index e27f118..0000000 Binary files a/img/WebMapping/GoogleMapsDataTable.png and /dev/null differ diff --git a/img/WebMapping/GoogleMapsDataTable30.png b/img/WebMapping/GoogleMapsDataTable30.png deleted file mode 100644 index d965ff2..0000000 Binary files a/img/WebMapping/GoogleMapsDataTable30.png and /dev/null differ diff --git a/img/WebMapping/GoogleMapsImport35.png b/img/WebMapping/GoogleMapsImport35.png deleted file mode 100644 index 5d6f7bf..0000000 Binary files a/img/WebMapping/GoogleMapsImport35.png and /dev/null differ diff --git a/img/WebMapping/GoogleMapsImportLatLon50.png b/img/WebMapping/GoogleMapsImportLatLon50.png deleted file mode 100644 index 2666a72..0000000 Binary files a/img/WebMapping/GoogleMapsImportLatLon50.png and /dev/null differ diff --git a/img/WebMapping/GoogleMapsMenu50.png b/img/WebMapping/GoogleMapsMenu50.png deleted file mode 100644 index de4a129..0000000 Binary files a/img/WebMapping/GoogleMapsMenu50.png and /dev/null differ diff --git a/img/WebMapping/GoogleMapsShare60.png b/img/WebMapping/GoogleMapsShare60.png deleted file mode 100644 index 9a90bcd..0000000 Binary files a/img/WebMapping/GoogleMapsShare60.png and /dev/null differ diff --git a/img/WebMapping/GoogleMapsToolbar70.png b/img/WebMapping/GoogleMapsToolbar70.png deleted file mode 100644 index dbc2e67..0000000 Binary files a/img/WebMapping/GoogleMapsToolbar70.png and /dev/null differ diff --git a/img/WebMapping/LatLon.png b/img/WebMapping/LatLon.png deleted file mode 100644 index 0a1cfd8..0000000 Binary files a/img/WebMapping/LatLon.png and /dev/null differ diff --git a/img/WebMapping/OldMapLineDrawing20.png b/img/WebMapping/OldMapLineDrawing20.png deleted file mode 100644 index c584fb2..0000000 Binary files a/img/WebMapping/OldMapLineDrawing20.png and /dev/null differ diff --git a/img/WebMapping/Point1_70.png b/img/WebMapping/Point1_70.png deleted file mode 100644 index 3d87e0f..0000000 Binary files a/img/WebMapping/Point1_70.png and /dev/null differ diff --git a/img/WebMapping/PointLinePolygon.svg b/img/WebMapping/PointLinePolygon.svg deleted file mode 100644 index 6c0f273..0000000 --- a/img/WebMapping/PointLinePolygon.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - -]> - - - - - - - - - - - - - - Legend - Well - River - Lake - - - - - - - - 2 km - - - - - - - - - - - - - - - - - diff --git a/img/WebMapping/QGIS PythonWindow50.png b/img/WebMapping/QGIS PythonWindow50.png deleted file mode 100644 index 04ae749..0000000 Binary files a/img/WebMapping/QGIS PythonWindow50.png and /dev/null differ diff --git a/img/WebMapping/QGISAddDelimitedTextLayer50.png b/img/WebMapping/QGISAddDelimitedTextLayer50.png deleted file mode 100644 index 7273039..0000000 Binary files a/img/WebMapping/QGISAddDelimitedTextLayer50.png and /dev/null differ diff --git a/img/WebMapping/QGISCreateWebMap50.png b/img/WebMapping/QGISCreateWebMap50.png deleted file mode 100644 index bcd220e..0000000 Binary files a/img/WebMapping/QGISCreateWebMap50.png and /dev/null differ diff --git a/img/WebMapping/QGISDataPoints50.png b/img/WebMapping/QGISDataPoints50.png deleted file mode 100644 index fc8ee01..0000000 Binary files a/img/WebMapping/QGISDataPoints50.png and /dev/null differ diff --git a/img/WebMapping/QGISDelimitedText50.png b/img/WebMapping/QGISDelimitedText50.png deleted file mode 100644 index d2caa56..0000000 Binary files a/img/WebMapping/QGISDelimitedText50.png and /dev/null differ diff --git a/img/WebMapping/QGISDelimitedTextTwo50.png b/img/WebMapping/QGISDelimitedTextTwo50.png deleted file mode 100644 index 38de623..0000000 Binary files a/img/WebMapping/QGISDelimitedTextTwo50.png and /dev/null differ diff --git a/img/WebMapping/QGISExportToWebMap.png b/img/WebMapping/QGISExportToWebMap.png deleted file mode 100644 index fbb7f7a..0000000 Binary files a/img/WebMapping/QGISExportToWebMap.png and /dev/null differ diff --git a/img/WebMapping/QGISExportToWebMap30.png b/img/WebMapping/QGISExportToWebMap30.png deleted file mode 100644 index beb2c1b..0000000 Binary files a/img/WebMapping/QGISExportToWebMap30.png and /dev/null differ diff --git a/img/WebMapping/QGISFinishedMap.png b/img/WebMapping/QGISFinishedMap.png deleted file mode 100644 index 1a4f192..0000000 Binary files a/img/WebMapping/QGISFinishedMap.png and /dev/null differ diff --git a/img/WebMapping/QGISFinishedMap25.png b/img/WebMapping/QGISFinishedMap25.png deleted file mode 100644 index 6f6931b..0000000 Binary files a/img/WebMapping/QGISFinishedMap25.png and /dev/null differ diff --git a/img/WebMapping/QGISLayersOptions50.png b/img/WebMapping/QGISLayersOptions50.png deleted file mode 100644 index bd0a06f..0000000 Binary files a/img/WebMapping/QGISLayersOptions50.png and /dev/null differ diff --git a/img/WebMapping/QGISLayersPanel75.png b/img/WebMapping/QGISLayersPanel75.png deleted file mode 100644 index f4f8c14..0000000 Binary files a/img/WebMapping/QGISLayersPanel75.png and /dev/null differ diff --git a/img/WebMapping/QGISLayersPanelThree75.png b/img/WebMapping/QGISLayersPanelThree75.png deleted file mode 100644 index a5bbf37..0000000 Binary files a/img/WebMapping/QGISLayersPanelThree75.png and /dev/null differ diff --git a/img/WebMapping/QGISLayersPanelTwo50.png b/img/WebMapping/QGISLayersPanelTwo50.png deleted file mode 100644 index bb447e6..0000000 Binary files a/img/WebMapping/QGISLayersPanelTwo50.png and /dev/null differ diff --git a/img/WebMapping/QGISLeafletFolder.png b/img/WebMapping/QGISLeafletFolder.png deleted file mode 100644 index 62f0a9c..0000000 Binary files a/img/WebMapping/QGISLeafletFolder.png and /dev/null differ diff --git a/img/WebMapping/QGISPopup50.png b/img/WebMapping/QGISPopup50.png deleted file mode 100644 index 6db34e6..0000000 Binary files a/img/WebMapping/QGISPopup50.png and /dev/null differ diff --git a/img/WebMapping/QGISPythonConsole.png b/img/WebMapping/QGISPythonConsole.png deleted file mode 100644 index 606d61e..0000000 Binary files a/img/WebMapping/QGISPythonConsole.png and /dev/null differ diff --git a/img/WebMapping/QGISPythonConsole50.png b/img/WebMapping/QGISPythonConsole50.png deleted file mode 100644 index 36f71a8..0000000 Binary files a/img/WebMapping/QGISPythonConsole50.png and /dev/null differ diff --git a/img/WebMapping/QGISSymbology40.png b/img/WebMapping/QGISSymbology40.png deleted file mode 100644 index 157f7eb..0000000 Binary files a/img/WebMapping/QGISSymbology40.png and /dev/null differ diff --git a/img/WebMapping/QGISZoomFull65.png b/img/WebMapping/QGISZoomFull65.png deleted file mode 100644 index 7094ac8..0000000 Binary files a/img/WebMapping/QGISZoomFull65.png and /dev/null differ diff --git a/img/WebMapping/RStudio.RPubs50.png b/img/WebMapping/RStudio.RPubs50.png deleted file mode 100644 index a1979f3..0000000 Binary files a/img/WebMapping/RStudio.RPubs50.png and /dev/null differ diff --git a/img/WebMapping/RStudioAwesomeMarkers75.png b/img/WebMapping/RStudioAwesomeMarkers75.png deleted file mode 100644 index 7f8f6b8..0000000 Binary files a/img/WebMapping/RStudioAwesomeMarkers75.png and /dev/null differ diff --git a/img/WebMapping/RStudioCodeTools50.png b/img/WebMapping/RStudioCodeTools50.png deleted file mode 100644 index 512e4dc..0000000 Binary files a/img/WebMapping/RStudioCodeTools50.png and /dev/null differ diff --git a/img/WebMapping/RStudioDataFrame.png b/img/WebMapping/RStudioDataFrame.png deleted file mode 100644 index 7dcfe8d..0000000 Binary files a/img/WebMapping/RStudioDataFrame.png and /dev/null differ diff --git a/img/WebMapping/RStudioDataFrame30.png b/img/WebMapping/RStudioDataFrame30.png deleted file mode 100644 index d5a77dc..0000000 Binary files a/img/WebMapping/RStudioDataFrame30.png and /dev/null differ diff --git a/img/WebMapping/RStudioEnvironment.png b/img/WebMapping/RStudioEnvironment.png deleted file mode 100644 index 5d042ab..0000000 Binary files a/img/WebMapping/RStudioEnvironment.png and /dev/null differ diff --git a/img/WebMapping/RStudioEnvironment60.png b/img/WebMapping/RStudioEnvironment60.png deleted file mode 100644 index 18b72b9..0000000 Binary files a/img/WebMapping/RStudioEnvironment60.png and /dev/null differ diff --git a/img/WebMapping/RStudioFiles50.png b/img/WebMapping/RStudioFiles50.png deleted file mode 100644 index e698514..0000000 Binary files a/img/WebMapping/RStudioFiles50.png and /dev/null differ diff --git a/img/WebMapping/RStudioInstallPackages60.png b/img/WebMapping/RStudioInstallPackages60.png deleted file mode 100644 index 9a32981..0000000 Binary files a/img/WebMapping/RStudioInstallPackages60.png and /dev/null differ diff --git a/img/WebMapping/RStudioMarkers75.png b/img/WebMapping/RStudioMarkers75.png deleted file mode 100644 index 3b4ebac..0000000 Binary files a/img/WebMapping/RStudioMarkers75.png and /dev/null differ diff --git a/img/WebMapping/RStudioPublish.png b/img/WebMapping/RStudioPublish.png deleted file mode 100644 index 13d65d2..0000000 Binary files a/img/WebMapping/RStudioPublish.png and /dev/null differ diff --git a/img/WebMapping/RStudioPublish50.png b/img/WebMapping/RStudioPublish50.png deleted file mode 100644 index 12bfbba..0000000 Binary files a/img/WebMapping/RStudioPublish50.png and /dev/null differ diff --git a/img/WebMapping/RStudioPublishTwo.png b/img/WebMapping/RStudioPublishTwo.png deleted file mode 100644 index 32422fc..0000000 Binary files a/img/WebMapping/RStudioPublishTwo.png and /dev/null differ diff --git a/img/WebMapping/RStudioPublishTwo50.png b/img/WebMapping/RStudioPublishTwo50.png deleted file mode 100644 index e16486e..0000000 Binary files a/img/WebMapping/RStudioPublishTwo50.png and /dev/null differ diff --git a/img/WebMapping/RStudioRpubsDetails50.png b/img/WebMapping/RStudioRpubsDetails50.png deleted file mode 100644 index df86086..0000000 Binary files a/img/WebMapping/RStudioRpubsDetails50.png and /dev/null differ diff --git a/img/WebMapping/RStudioTheMap.png b/img/WebMapping/RStudioTheMap.png deleted file mode 100644 index 3bd48c0..0000000 Binary files a/img/WebMapping/RStudioTheMap.png and /dev/null differ diff --git a/img/WebMapping/RStudioTheMap30.png b/img/WebMapping/RStudioTheMap30.png deleted file mode 100644 index 74b597b..0000000 Binary files a/img/WebMapping/RStudioTheMap30.png and /dev/null differ diff --git a/img/WebMapping/RStudioTwoFiles75.png b/img/WebMapping/RStudioTwoFiles75.png deleted file mode 100644 index 162a966..0000000 Binary files a/img/WebMapping/RStudioTwoFiles75.png and /dev/null differ diff --git a/img/WebMapping/RasterVector.gif b/img/WebMapping/RasterVector.gif deleted file mode 100644 index 8520b84..0000000 Binary files a/img/WebMapping/RasterVector.gif and /dev/null differ diff --git a/img/WebMapping/StJPopup50.png b/img/WebMapping/StJPopup50.png deleted file mode 100644 index d697dad..0000000 Binary files a/img/WebMapping/StJPopup50.png and /dev/null differ diff --git a/img/WebMapping/TERRA_satellite.png b/img/WebMapping/TERRA_satellite.png deleted file mode 100644 index 0299074..0000000 Binary files a/img/WebMapping/TERRA_satellite.png and /dev/null differ diff --git a/img/WebMapping/USPopulation30.png b/img/WebMapping/USPopulation30.png deleted file mode 100644 index 28193b6..0000000 Binary files a/img/WebMapping/USPopulation30.png and /dev/null differ diff --git a/img/WebMapping/UntitledMap.png b/img/WebMapping/UntitledMap.png deleted file mode 100644 index 776c005..0000000 Binary files a/img/WebMapping/UntitledMap.png and /dev/null differ diff --git a/img/WebMapping/XYZTileServers50.png b/img/WebMapping/XYZTileServers50.png deleted file mode 100644 index dc246f0..0000000 Binary files a/img/WebMapping/XYZTileServers50.png and /dev/null differ diff --git a/img/WebMapping/data-entry40.jpg b/img/WebMapping/data-entry40.jpg deleted file mode 100644 index a233bd3..0000000 Binary files a/img/WebMapping/data-entry40.jpg and /dev/null differ diff --git a/img/WebMapping/mavtnh50.png b/img/WebMapping/mavtnh50.png deleted file mode 100644 index 19c5211..0000000 Binary files a/img/WebMapping/mavtnh50.png and /dev/null differ diff --git a/img/WebMapping/qgis.png b/img/WebMapping/qgis.png deleted file mode 100644 index 480e50d..0000000 Binary files a/img/WebMapping/qgis.png and /dev/null differ diff --git a/img/WebMapping/qgis50.png b/img/WebMapping/qgis50.png deleted file mode 100644 index 0e30e42..0000000 Binary files a/img/WebMapping/qgis50.png and /dev/null differ diff --git a/img/WebMapping/qgisPlugins50.png b/img/WebMapping/qgisPlugins50.png deleted file mode 100644 index 312d6ac..0000000 Binary files a/img/WebMapping/qgisPlugins50.png and /dev/null differ diff --git a/img/WebMapping/spreadsheet60.png b/img/WebMapping/spreadsheet60.png deleted file mode 100644 index 58857a0..0000000 Binary files a/img/WebMapping/spreadsheet60.png and /dev/null differ diff --git a/img/addins.png b/img/addins.png deleted file mode 100644 index 8bb732d..0000000 Binary files a/img/addins.png and /dev/null differ diff --git a/img/bibtex.png b/img/bibtex.png deleted file mode 100644 index aa17221..0000000 Binary files a/img/bibtex.png and /dev/null differ diff --git a/img/bibtex_small.png b/img/bibtex_small.png deleted file mode 100644 index 54c66e4..0000000 Binary files a/img/bibtex_small.png and /dev/null differ diff --git a/img/blog_small_crop75.jpg b/img/blog_small_crop75.jpg deleted file mode 100644 index 24d7782..0000000 Binary files a/img/blog_small_crop75.jpg and /dev/null differ diff --git a/img/blog_small_crop75_small.jpg b/img/blog_small_crop75_small.jpg deleted file mode 100644 index 62ab3e7..0000000 Binary files a/img/blog_small_crop75_small.jpg and /dev/null differ diff --git a/img/cheatsheets.png b/img/cheatsheets.png deleted file mode 100644 index 1e2a3f7..0000000 Binary files a/img/cheatsheets.png and /dev/null differ diff --git a/img/cheatsheets_small.png b/img/cheatsheets_small.png deleted file mode 100644 index 04f2765..0000000 Binary files a/img/cheatsheets_small.png and /dev/null differ diff --git a/img/citations1.png b/img/citations1.png deleted file mode 100644 index c020914..0000000 Binary files a/img/citations1.png and /dev/null differ diff --git a/img/citations1_small.png b/img/citations1_small.png deleted file mode 100644 index 8e95265..0000000 Binary files a/img/citations1_small.png and /dev/null differ diff --git a/img/citations2.png b/img/citations2.png deleted file mode 100644 index 18f2ec3..0000000 Binary files a/img/citations2.png and /dev/null differ diff --git a/img/citations2_small.png b/img/citations2_small.png deleted file mode 100644 index a51f2fd..0000000 Binary files a/img/citations2_small.png and /dev/null differ diff --git a/img/citations4.png b/img/citations4.png deleted file mode 100644 index 770a5d8..0000000 Binary files a/img/citations4.png and /dev/null differ diff --git a/img/citations4_small.png b/img/citations4_small.png deleted file mode 100644 index 3793f35..0000000 Binary files a/img/citations4_small.png and /dev/null differ diff --git a/img/citations5.png b/img/citations5.png deleted file mode 100644 index 68fa6c9..0000000 Binary files a/img/citations5.png and /dev/null differ diff --git a/img/citations5_small.png b/img/citations5_small.png deleted file mode 100644 index 59c2a9f..0000000 Binary files a/img/citations5_small.png and /dev/null differ diff --git a/img/citations6.png b/img/citations6.png deleted file mode 100644 index 248d0ff..0000000 Binary files a/img/citations6.png and /dev/null differ diff --git a/img/citations6_small.png b/img/citations6_small.png deleted file mode 100644 index db5bd31..0000000 Binary files a/img/citations6_small.png and /dev/null differ diff --git a/img/citations7.png b/img/citations7.png deleted file mode 100644 index 4fbc31e..0000000 Binary files a/img/citations7.png and /dev/null differ diff --git a/img/citations7_small.png b/img/citations7_small.png deleted file mode 100644 index 432c50e..0000000 Binary files a/img/citations7_small.png and /dev/null differ diff --git a/img/citations8.png b/img/citations8.png deleted file mode 100644 index 294b774..0000000 Binary files a/img/citations8.png and /dev/null differ diff --git a/img/citations8_small.png b/img/citations8_small.png deleted file mode 100644 index 0c4f5f6..0000000 Binary files a/img/citations8_small.png and /dev/null differ diff --git a/img/citations9.png b/img/citations9.png deleted file mode 100644 index a441efe..0000000 Binary files a/img/citations9.png and /dev/null differ diff --git a/img/citations9_small.png b/img/citations9_small.png deleted file mode 100644 index 38bfc47..0000000 Binary files a/img/citations9_small.png and /dev/null differ diff --git a/img/citr.png b/img/citr.png deleted file mode 100644 index ad72379..0000000 Binary files a/img/citr.png and /dev/null differ diff --git a/img/cran.png b/img/cran.png deleted file mode 100644 index 0c36955..0000000 Binary files a/img/cran.png and /dev/null differ diff --git a/img/favicon.ico b/img/favicon.ico deleted file mode 100644 index e1cb609..0000000 Binary files a/img/favicon.ico and /dev/null differ diff --git a/img/html.png b/img/html.png deleted file mode 100644 index d026cde..0000000 Binary files a/img/html.png and /dev/null differ diff --git a/img/html_small.png b/img/html_small.png deleted file mode 100644 index 6ac9a3d..0000000 Binary files a/img/html_small.png and /dev/null differ diff --git a/img/knit.png b/img/knit.png deleted file mode 100644 index 09edc67..0000000 Binary files a/img/knit.png and /dev/null differ diff --git a/img/newFile.png b/img/newFile.png deleted file mode 100644 index 396ca41..0000000 Binary files a/img/newFile.png and /dev/null differ diff --git a/img/newFile_small.png b/img/newFile_small.png deleted file mode 100644 index d424e14..0000000 Binary files a/img/newFile_small.png and /dev/null differ diff --git a/img/notebook1.png b/img/notebook1.png deleted file mode 100644 index c9aa6f7..0000000 Binary files a/img/notebook1.png and /dev/null differ diff --git a/img/notebook1_small.png b/img/notebook1_small.png deleted file mode 100644 index f00a95d..0000000 Binary files a/img/notebook1_small.png and /dev/null differ diff --git a/img/notebook2.png b/img/notebook2.png deleted file mode 100644 index 48e6462..0000000 Binary files a/img/notebook2.png and /dev/null differ diff --git a/img/notebook3.png b/img/notebook3.png deleted file mode 100644 index f239280..0000000 Binary files a/img/notebook3.png and /dev/null differ diff --git a/img/notebook5.png b/img/notebook5.png deleted file mode 100644 index 8ce2556..0000000 Binary files a/img/notebook5.png and /dev/null differ diff --git a/img/notebook5_small.png b/img/notebook5_small.png deleted file mode 100644 index ddc91b5..0000000 Binary files a/img/notebook5_small.png and /dev/null differ diff --git a/img/options1.png b/img/options1.png deleted file mode 100644 index bb6b918..0000000 Binary files a/img/options1.png and /dev/null differ diff --git a/img/options2.png b/img/options2.png deleted file mode 100644 index 8ef728c..0000000 Binary files a/img/options2.png and /dev/null differ diff --git a/img/r-packages.png b/img/r-packages.png deleted file mode 100644 index c66ca05..0000000 Binary files a/img/r-packages.png and /dev/null differ diff --git a/img/r.png b/img/r.png deleted file mode 100644 index 0addad8..0000000 Binary files a/img/r.png and /dev/null differ diff --git a/img/rstudio2.png b/img/rstudio2.png deleted file mode 100644 index f7020b3..0000000 Binary files a/img/rstudio2.png and /dev/null differ diff --git a/img/rstudio2_small.png b/img/rstudio2_small.png deleted file mode 100644 index b08f6e2..0000000 Binary files a/img/rstudio2_small.png and /dev/null differ diff --git a/img/rstudio3.png b/img/rstudio3.png deleted file mode 100644 index 886ee31..0000000 Binary files a/img/rstudio3.png and /dev/null differ diff --git a/img/rstudio3_small.png b/img/rstudio3_small.png deleted file mode 100644 index 286c707..0000000 Binary files a/img/rstudio3_small.png and /dev/null differ diff --git a/img/run.png b/img/run.png deleted file mode 100644 index ee13fa0..0000000 Binary files a/img/run.png and /dev/null differ diff --git a/img/taylor415jumbo_large.jpg b/img/taylor415jumbo_large.jpg deleted file mode 100644 index 307447f..0000000 Binary files a/img/taylor415jumbo_large.jpg and /dev/null differ diff --git a/img/taylor415jumbo_small.jpg b/img/taylor415jumbo_small.jpg deleted file mode 100644 index e05e396..0000000 Binary files a/img/taylor415jumbo_small.jpg and /dev/null differ diff --git a/img/toolbar.png b/img/toolbar.png deleted file mode 100644 index 0e7e431..0000000 Binary files a/img/toolbar.png and /dev/null differ diff --git a/img/toolbar_small.png b/img/toolbar_small.png deleted file mode 100644 index ef4e201..0000000 Binary files a/img/toolbar_small.png and /dev/null differ diff --git a/img/willie.png b/img/willie.png deleted file mode 100644 index 3004856..0000000 Binary files a/img/willie.png and /dev/null differ diff --git a/index.html b/index.html deleted file mode 100644 index 0ac6bba..0000000 --- a/index.html +++ /dev/null @@ -1,701 +0,0 @@ - - - - - - - - - - Richard A. Lent, Ph.D. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - -
    - - -
    -

    Richard A. Lent, Ph.D.

    -

    All generalizations are false.

    -
    - -
    - -
    -
    -

    Web Mapping with Free Software Tools

    - - - -
    - -

    - Introduction GIS in a nutshell Desirable features of a web mapping platform Set up your data for mapping Google Maps QGIS and the qgis2web plugin RStudio and the R Leaflet Package In conclusion Reading time: 36 minute(s) @ 200 WPM. - Introduction Web mapping is an application of geographic information systems (GIS) that involves the creation of interactive digital maps displayed and manipulated through a web browser. -

    - - - - -
    - - -
    -
    -

    Multivariate Analysis with R

    - - - -
    - -

    - Preliminaries Multivariate data A map Distance matrices Cluster analysis Mantel test Multidimensional scaling Principal components analysis Discriminant function analysis Epilogue Reading time: 32 minute(s) @ 200 WPM. -Preliminaries At some time or another, most users of statistics find themselves sitting in front of a large pile of computer output with the realization that it tells them nothing that they really want to know. -

    - - - - -
    - - -
    -
    -

    An Introduction to R

    - - - -
    - -

    - Prologue Getting a feel for R The console Function calls and arguments HINT: Getting help Some graphics HINT: Command history and workspace Getting data into R Data frames Creating data frames HINT: Data management in R and RStudio. Exploratory data analysis Scatterplot matrix HINT: R packages Summary statistics and data screening Box plots Stem-and-leaf display Categorical variables: factors Some confirmatory analysis More graphics R scripts (command files) An R menu system: R-commander Epilogue Reading time: 22 minute(s) @ 200 WPM. -

    - - - - -
    - - -
    -
    -

    A Comment About Comments

    - - - -
    - -

    - Reading time: 1 minute(s) @ 200 WPM. -Readers of this website (if any) may have noticed that I recently implemented Disqus comments. This is very easy to do in a Hugo-generated website. Sign up for a free Disqus account, put your Disqus shortname (basically your account ID) into your Hugo configuration file, and Hugo takes care of generating all the necessary code when it creates your static website. Disqus sends you email notifications whenever somebody writes a comment, and you can moderate comments, write replies, delete comments, mark comments as spam, and yada yada yada. -

    - - - - -
    - - -
    -
    -

    How I Deploy My Website to GitHub Using RStudio, blogdown, and Hugo

    - - - -
    - -

    - Reading time: 3 minute(s) @ 200 WPM. -I have worked for days trying to get this website up and running on GitHub Pages. I think I finally have gotten it to work. -This is that story. -I have studied the following sources of punditage: - Making a Website Using Blogdown, Hugo, and GitHub pages Update: Deploying Hugo-generated websites on personal GitHub Pages How to make a GitHub pages blog with RStudio and Hugo Including image using blogdown Building a Blog with Blogdown and GitHub The Hugo documentation Create Blogs and Websites with R Markdown Hosting on GitHub Pages Build_Site and Serve_Site Output Issues Create a Free Personal Academic Website with Hugo All of the articles and discussions were enlightening, and helped me arrive at what I believe to be the simplest way to deploy a Hugo-generated website on GitHub Pages, at least for me. -

    - - - - -
    - - -
    -
    -

    An R script for calculating the reading time of an R Markdown file

    - - - -
    - -

    - Reading time: 2 minute(s) @ 200 WPM. -To see how we just did that, read on. -Because psychological research tells us that including estimated reading times can increase reader engagement with digital content, I decided to include reading times for my riveting posts. -So I wrote a simple R script. Here it is, as an R code chunk: -```{r echo=FALSE} bytes The script is very simple, such that even I could program it. -

    - - - - -
    - - -
    -
    -

    Musings on blogdown and Hugo

    - - - -
    - -

    - Reading time: 4 minute(s) @ 200 WPM. -I am a huge fan of R and RStudio, especially relative to their use in creating reproducible research (see RStudio as a Research and Writing Platform). I was thus thrilled to learn that a new R package, blogdown, was being developed for producing websites from R Markdown files using RStudio and the static website generator, Hugo. -This website was built and is maintained using blogdown and Hugo running inside of RStudio, and is hosted on GitHub Pages. -

    - - - - -
    - - - - - - - - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - diff --git a/index.xml b/index.xml deleted file mode 100644 index d607faf..0000000 --- a/index.xml +++ /dev/null @@ -1,253 +0,0 @@ - - - - Richard A. Lent, Ph.D. - / - Recent content on Richard A. Lent, Ph.D. - Hugo -- gohugo.io - en-us - &copy; 2017 and beyond by Richard A. Lent. All rights reserved.<br><br><a rel='me' href='https://ecoevo.social/@lentrichard' style='text-decoration: none; font-size: 12px;'>Mastodon</a> - Mon, 29 Oct 2018 09:19:00 -0400 - - Web Mapping with Free Software Tools - /post/web-mapping/ - Mon, 29 Oct 2018 09:19:00 -0400 - - /post/web-mapping/ - Introduction GIS in a nutshell Desirable features of a web mapping platform Set up your data for mapping Google Maps QGIS and the qgis2web plugin RStudio and the R Leaflet Package In conclusion Reading time: 36 minute(s) @ 200 WPM. - Introduction Web mapping is an application of geographic information systems (GIS) that involves the creation of interactive digital maps displayed and manipulated through a web browser. - - - - Multivariate Analysis with R - /post/multivariate-analysis-with-r/ - Thu, 22 Jun 2017 09:21:00 -0400 - - /post/multivariate-analysis-with-r/ - Preliminaries Multivariate data A map Distance matrices Cluster analysis Mantel test Multidimensional scaling Principal components analysis Discriminant function analysis Epilogue Reading time: 32 minute(s) @ 200 WPM. -Preliminaries At some time or another, most users of statistics find themselves sitting in front of a large pile of computer output with the realization that it tells them nothing that they really want to know. - - - - An Introduction to R - /post/introduction-to-r/ - Fri, 02 Jun 2017 16:14:00 -0400 - - /post/introduction-to-r/ - Prologue Getting a feel for R The console Function calls and arguments HINT: Getting help Some graphics HINT: Command history and workspace Getting data into R Data frames Creating data frames HINT: Data management in R and RStudio. Exploratory data analysis Scatterplot matrix HINT: R packages Summary statistics and data screening Box plots Stem-and-leaf display Categorical variables: factors Some confirmatory analysis More graphics R scripts (command files) An R menu system: R-commander Epilogue Reading time: 22 minute(s) @ 200 WPM. - - - - A Comment About Comments - /post/a-comment-about-comments/ - Fri, 19 May 2017 14:32:00 -0400 - - /post/a-comment-about-comments/ - Reading time: 1 minute(s) @ 200 WPM. -Readers of this website (if any) may have noticed that I recently implemented Disqus comments. This is very easy to do in a Hugo-generated website. Sign up for a free Disqus account, put your Disqus shortname (basically your account ID) into your Hugo configuration file, and Hugo takes care of generating all the necessary code when it creates your static website. Disqus sends you email notifications whenever somebody writes a comment, and you can moderate comments, write replies, delete comments, mark comments as spam, and yada yada yada. - - - - How I Deploy My Website to GitHub Using RStudio, blogdown, and Hugo - /post/how-i-deploy-my-website-to-github-using-rstudio-blogdown-and-hugo/ - Wed, 17 May 2017 12:02:00 -0400 - - /post/how-i-deploy-my-website-to-github-using-rstudio-blogdown-and-hugo/ - Reading time: 3 minute(s) @ 200 WPM. -I have worked for days trying to get this website up and running on GitHub Pages. I think I finally have gotten it to work. -This is that story. -I have studied the following sources of punditage: - Making a Website Using Blogdown, Hugo, and GitHub pages Update: Deploying Hugo-generated websites on personal GitHub Pages How to make a GitHub pages blog with RStudio and Hugo Including image using blogdown Building a Blog with Blogdown and GitHub The Hugo documentation Create Blogs and Websites with R Markdown Hosting on GitHub Pages Build_Site and Serve_Site Output Issues Create a Free Personal Academic Website with Hugo All of the articles and discussions were enlightening, and helped me arrive at what I believe to be the simplest way to deploy a Hugo-generated website on GitHub Pages, at least for me. - - - - An R script for calculating the reading time of an R Markdown file - /post/an-r-script-for-calculating-reading-time-of-an-article/ - Mon, 15 May 2017 13:00:00 -0400 - - /post/an-r-script-for-calculating-reading-time-of-an-article/ - Reading time: 2 minute(s) @ 200 WPM. -To see how we just did that, read on. -Because psychological research tells us that including estimated reading times can increase reader engagement with digital content, I decided to include reading times for my riveting posts. -So I wrote a simple R script. Here it is, as an R code chunk: -```{r echo=FALSE} bytes The script is very simple, such that even I could program it. - - - - Musings on blogdown and Hugo - /post/musings-on-blogdown-and-hugo/ - Mon, 15 May 2017 11:56:48 -0400 - - /post/musings-on-blogdown-and-hugo/ - Reading time: 4 minute(s) @ 200 WPM. -I am a huge fan of R and RStudio, especially relative to their use in creating reproducible research (see RStudio as a Research and Writing Platform). I was thus thrilled to learn that a new R package, blogdown, was being developed for producing websites from R Markdown files using RStudio and the static website generator, Hugo. -This website was built and is maintained using blogdown and Hugo running inside of RStudio, and is hosted on GitHub Pages. - - - - The Plain Text Workflow - /post/the-plain-text-workflow/ - Thu, 11 May 2017 15:38:00 -0400 - - /post/the-plain-text-workflow/ - Introduction What is Plain Text? Why Plain Text? An Example of the Plain Text Workflow Parting Thoughts Reading time: 10 minute(s) @ 200 WPM. -Introduction The Plain Text Workflow is an alternative to writing with a word processor. Mind you, I said writing, not typesetting or formatting, which is a major part of what word processors do. The idea of the plain text workflow is that you separate the act of writing from that of producing a formatted, typeset final document. - - - - R Markdown Test - /post/r-markdown-test/ - Wed, 10 May 2017 14:20:08 -0400 - - /post/r-markdown-test/ - Reading time: 2 minute(s) @ 200 WPM. -Yes, it doth work. The blogdown package can nicely deal with R Markdown containing embedded R code for production of statistical analyses and graphics. -But. -It cannot deal with R Notebooks, which contain a special flavor of R Markdown allowing for interactive display of R code alongside the results they produce. R Notebooks, when rendered into HTML, produce a special file named *. - - - - Google Search - /post/google-search/ - Mon, 08 May 2017 14:54:00 -0400 - - /post/google-search/ - Reading time: 2 minute(s) @ 200 WPM. -Following the directions for Google’s Custom Search Engine, with additional help from How I added search to my static blog, I have added a local search function to this website. It’s on the sidebar menu, with an adorable magnifying glass icon from Font Awesome Icons, and it basically works. -This search function will, in all likelihood, probably search only the specific content of richardlent. - - - - R Notebook Example with R, Python, and BibTeX - /post/r-notebook-example-with-r-python-and-bibtex/ - Mon, 08 May 2017 12:20:00 -0400 - - /post/r-notebook-example-with-r-python-and-bibtex/ - The accompanying R Notebook is a simple example that combines R code chunks, Python code chunks, and BibTeX literature citations in one R Markdown document. -For additional information please see RStudio as a Research and Writing Platform. -Click here to read the notebook. - - - - Search this site - /misc/search/ - Mon, 08 May 2017 00:00:00 +0000 - - /misc/search/ - (function() { var cx = '015106575056108656717:bbgtidhw-d0'; var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true; gcse.src = 'https://cse.google.com/cse.js?cx=' + cx; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s); })(); - - - - Video test - /post/video-test/ - Fri, 05 May 2017 14:37:00 -0400 - - /post/video-test/ - Reading time: 1 minute(s) @ 200 WPM. -We now attempt to insert into our R Markdown file, which Hugo then renders into HTML, an mp4 video of dragonflies (insect order Odonata, in case you’re wondering) that were congregating in my front yard a few summers ago. -So I’m thinking, just insert it using a regular Markdown image tag, yes? -Like this: -![](/mp4/Dragonflies.mp4). - And so, that worked. -To center this video on the page I am using the deprecated HTML &lt;center&gt; tag inside of my R Markdown. - - - - Bossa Novish - /post/bossa-novish/ - Fri, 05 May 2017 12:08:00 -0400 - - /post/bossa-novish/ - An original tune of mine. This recording gets kind of screwed up in the middle, but hey, that’s how we know it’s live and not lip-synched, right? - Guitar: Martin 00-18V (Click for larger image.) - Tuning: Standard - Listen/download: Bossa Novish - - - - - Making Maps with R - /post/making-maps-with-r/ - Thu, 04 May 2017 13:45:00 -0400 - - /post/making-maps-with-r/ - Making maps on a computer has traditionally required the use of desktop geographic information system (GIS) software such as ArcGIS or QGIS. An alternative is to use R, a free software environment for statistical computing and graphics. R has many features that allow it to read GIS data and produce both static and interactive maps. This document (which is an R Notebook) shows how to make maps with R and RStudio, using R base graphics and the maps and mapdata packages, in addition to the leaflet and tmap packages. - - - - Habitat structure and phenotypic variation in the invading butterfly Coenonympha tullia - /post/habitat-structure-and-phenotypic-variation-in-the-invading-butterfly-coenonympha-tullia/ - Thu, 04 May 2017 11:18:00 -0400 - - /post/habitat-structure-and-phenotypic-variation-in-the-invading-butterfly-coenonympha-tullia/ - The R Notebook Habitat structure and phenotypic variation in the invading butterfly Coenonympha tullia is a mockup of a scientific paper (although the field data are real) to illustrate the use of R Notebooks as a means of creating reproducible research. The objective is to produce publication-quality output, in HTML, PDF, and Microsoft Word formats, with text, literature citations, a formatted bibliography, statistical analyses, tables, and graphics, all from one, plain-text R Notebook. - - - - Richard A. Lent, Ph.D - /misc/publications/ - Thu, 04 May 2017 00:00:00 +0000 - - /misc/publications/ - Brokaw, N. V. L., and R. A. Lent. 1999. Vertical diversity. In Maintaining Biodiversity In Forest Ecosystems, M. L. Hunter, Jr., editor. Cambridge University Press. -Lent, R. A., T. S. Litwin, R. P. Cook, J. Bourque, R. Bourque, and J. T. Tanacredi. 1998. Grassland bird habitat restoration at Floyd Bennett Field, Brooklyn, New York: Research and Management. In Grasslands of northeastern North America: Ecology and conservation of native and agricultural landscapes. - - - - RStudio as a Research and Writing Platform - /post/rstudio-as-a-research-and-writing-platform/ - Wed, 03 May 2017 14:47:00 -0400 - - /post/rstudio-as-a-research-and-writing-platform/ - Reproducible Research Software Installation Rendering Documents in RStudio Writing and Citing in RStudio R Notebooks Reproducible Research Revisited Coda I: Python Coda II: Inspirational Quotes About Data Reading time: 22 minute(s) @ 200 WPM. -R (r-project.org) is a programming language and software platform for statistical computing and graphics, widely used in academia and industry (see An Introduction to R). RStudio is an integrated development environment for R. - - - - Getting images to work - /post/getting-images-to-work/ - Tue, 02 May 2017 11:00:00 -0400 - - /post/getting-images-to-work/ - Reading time: 3 minute(s) @ 200 WPM. -I was until very recently involved in an epic struggle to get the system described in Making a Website Using Blogdown, Hugo, and GitHub pages to work for me. (See also Building a Blog with Blogdown and GitHub.) I really want it to work, because it has produced the current website that you are now reading, and I’m sure you’ll agree that it is very, very beautiful, in a stark, post-apocalyptic, Mordor-esque sort of way. - - - - Time stamp issue - /post/time-stamp-issue/ - Wed, 26 Apr 2017 14:52:42 -0400 - - /post/time-stamp-issue/ - There seems to be a bug in blogdown in which time stamps for posts are all 00:00. -Either that or there is something in some setting somewheres that I am missing. -If we use the blogdown “New Post” RStudio addin, the time stamp for the post is 00:00. -However, if we create a post using the blogdown new_post() function, the time stamp is correct. -This either needs to be fixed or I need to be re-educated. - - - - First post - /post/2017-04-26-first-post/ - Wed, 26 Apr 2017 14:49:48 -0400 - - /post/2017-04-26-first-post/ - This site is written, built, and maintained in RStudio using the R blogdown package and the Hugo static website generator. See Making a Website Using Blogdown, Hugo, and GitHub. -An apparent quirk (or maybe it’s a feature) of this system is that hyperlinks are not displayed in the short summary displayed by default for each post. The summary consists simply of the first n lines of the posts’s text, where the variable n has a value that is unknown to me. - - - - About - /misc/about/ - Wed, 26 Apr 2017 00:00:00 +0000 - - /misc/about/ - This site . . . is written, built, and maintained in RStudio using the R blogdown package and the Hugo static website generator, and is hosted on GitHub Pages. See How I Deploy My Website to GitHub Using RStudio, blogdown, and Hugo. -Everything is open-source, plain-text, future-proof, platform-independent, all-natural, and various other things of this nature. - Me Richard A. Lent -Learning Design Specialist -Information Technology Services - - - - diff --git a/js/menus.js b/js/menus.js deleted file mode 100644 index 3172361..0000000 --- a/js/menus.js +++ /dev/null @@ -1,172 +0,0 @@ -(function (window, document) { - 'use strict'; - - // Enable drop-down menus in Pure - // Inspired by YUI3 gallery-simple-menu by Julien LeComte - // [https://github.com/yui/yui3-gallery/blob/master/src/gallery-simple-menu/js/simple-menu.js] - - function PureDropdown(dropdownParent) { - - var PREFIX = 'pure-', - ACTIVE_CLASS_NAME = PREFIX + 'menu-active', - ARIA_ROLE = 'role', - ARIA_HIDDEN = 'aria-hidden', - MENU_OPEN = 0, - MENU_CLOSED = 1, - MENU_PARENT_CLASS_NAME = 'pure-menu-has-children', - MENU_ACTIVE_SELECTOR = '.pure-menu-active', - MENU_LINK_SELECTOR = '.pure-menu-link', - MENU_SELECTOR = '.pure-menu-children', - DISMISS_EVENT = (window.hasOwnProperty && - window.hasOwnProperty('ontouchstart')) ? - 'touchstart' : 'mousedown', - - ARROW_KEYS_ENABLED = true, - - ddm = this; // drop down menu - - this._state = MENU_CLOSED; - - this.show = function () { - if (this._state !== MENU_OPEN) { - this._dropdownParent.classList.add(ACTIVE_CLASS_NAME); - this._menu.setAttribute(ARIA_HIDDEN, false); - this._state = MENU_OPEN; - } - }; - - this.hide = function () { - if (this._state !== MENU_CLOSED) { - this._dropdownParent.classList.remove(ACTIVE_CLASS_NAME); - this._menu.setAttribute(ARIA_HIDDEN, true); - this._link.focus(); - this._state = MENU_CLOSED; - } - }; - - this.toggle = function () { - this[this._state === MENU_CLOSED ? 'show' : 'hide'](); - }; - - this.halt = function (e) { - e.stopPropagation(); - e.preventDefault(); - }; - - this._dropdownParent = dropdownParent; - this._link = this._dropdownParent.querySelector(MENU_LINK_SELECTOR); - this._menu = this._dropdownParent.querySelector(MENU_SELECTOR); - this._firstMenuLink = this._menu.querySelector(MENU_LINK_SELECTOR); - - // Set ARIA attributes - this._link.setAttribute('aria-haspopup', 'true'); - this._menu.setAttribute(ARIA_ROLE, 'menu'); - this._menu.setAttribute('aria-labelledby', this._link.getAttribute('id')); - this._menu.setAttribute('aria-hidden', 'true'); - [].forEach.call( - this._menu.querySelectorAll('li'), - function(el){ - el.setAttribute(ARIA_ROLE, 'presentation'); - } - ); - [].forEach.call( - this._menu.querySelectorAll('a'), - function(el){ - el.setAttribute(ARIA_ROLE, 'menuitem'); - } - ); - - // Toggle on click - this._link.addEventListener('click', function (e) { - e.stopPropagation(); - e.preventDefault(); - ddm.toggle(); - }); - - // Keyboard navigation - document.addEventListener('keydown', function (e) { - var currentLink, - previousSibling, - nextSibling, - previousLink, - nextLink; - - // if the menu isn't active, ignore - if (ddm._state !== MENU_OPEN) { - return; - } - - // if the menu is the parent of an open, active submenu, ignore - if (ddm._menu.querySelector(MENU_ACTIVE_SELECTOR)) { - return; - } - - currentLink = ddm._menu.querySelector(':focus'); - - // Dismiss an open menu on ESC - if (e.keyCode === 27) { - /* Esc */ - ddm.halt(e); - ddm.hide(); - } - // Go to the next link on down arrow - else if (ARROW_KEYS_ENABLED && e.keyCode === 40) { - /* Down arrow */ - ddm.halt(e); - // get the nextSibling (an LI) of the current link's LI - nextSibling = (currentLink) ? currentLink.parentNode.nextSibling : null; - // if the nextSibling is a text node (not an element), go to the next one - while (nextSibling && nextSibling.nodeType !== 1) { - nextSibling = nextSibling.nextSibling; - } - nextLink = (nextSibling) ? nextSibling.querySelector('.pure-menu-link') : null; - // if there is no currently focused link, focus the first one - if (!currentLink) { - ddm._menu.querySelector('.pure-menu-link').focus(); - } - else if (nextLink) { - nextLink.focus(); - } - } - // Go to the previous link on up arrow - else if (ARROW_KEYS_ENABLED && e.keyCode === 38) { - /* Up arrow */ - ddm.halt(e); - // get the currently focused link - previousSibling = (currentLink) ? currentLink.parentNode.previousSibling : null; - while (previousSibling && previousSibling.nodeType !== 1) { - previousSibling = previousSibling.previousSibling; - } - previousLink = (previousSibling) ? previousSibling.querySelector('.pure-menu-link') : null; - // if there is no currently focused link, focus the last link - if (!currentLink) { - ddm._menu.querySelector('.pure-menu-item:last-child .pure-menu-link').focus(); - } - // else if there is a previous item, go to the previous item - else if (previousLink) { - previousLink.focus(); - } - } - }); - - // Dismiss an open menu on outside event - document.addEventListener(DISMISS_EVENT, function (e) { - var target = e.target; - if (target !== ddm._link && !ddm._menu.contains(target)) { - ddm.hide(); - ddm._link.blur(); - } - }); - - } - - function initDropdowns() { - var dropdownParents = document.querySelectorAll('.pure-menu-has-children'); - for (var i = 0; i < dropdownParents.length; i++) { - var ddm = new PureDropdown(dropdownParents[i]); - } - } - - initDropdowns(); - -}(this, this.document)); \ No newline at end of file diff --git a/js/ui.js b/js/ui.js deleted file mode 100644 index 6d7c20b..0000000 --- a/js/ui.js +++ /dev/null @@ -1,46 +0,0 @@ -(function (window, document) { - - var layout = document.getElementById('layout'), - menu = document.getElementById('menu'), - menuLink = document.getElementById('menuLink'), - content = document.getElementById('main'); - - function toggleClass(element, className) { - var classes = element.className.split(/\s+/), - length = classes.length, - i = 0; - - for(; i < length; i++) { - if (classes[i] === className) { - classes.splice(i, 1); - break; - } - } - // The className is not found - if (length === classes.length) { - classes.push(className); - } - - element.className = classes.join(' '); - } - - function toggleAll(e) { - var active = 'active'; - - e.preventDefault(); - toggleClass(layout, active); - toggleClass(menu, active); - toggleClass(menuLink, active); - } - - menuLink.onclick = function (e) { - toggleAll(e); - }; - - content.onclick = function(e) { - if (menu.className.indexOf('active') !== -1) { - toggleAll(e); - } - }; - -}(this, this.document)); diff --git a/leafletTest/css/MarkerCluster.Default.css b/leafletTest/css/MarkerCluster.Default.css deleted file mode 100644 index bbc8c9f..0000000 --- a/leafletTest/css/MarkerCluster.Default.css +++ /dev/null @@ -1,60 +0,0 @@ -.marker-cluster-small { - background-color: rgba(181, 226, 140, 0.6); - } -.marker-cluster-small div { - background-color: rgba(110, 204, 57, 0.6); - } - -.marker-cluster-medium { - background-color: rgba(241, 211, 87, 0.6); - } -.marker-cluster-medium div { - background-color: rgba(240, 194, 12, 0.6); - } - -.marker-cluster-large { - background-color: rgba(253, 156, 115, 0.6); - } -.marker-cluster-large div { - background-color: rgba(241, 128, 23, 0.6); - } - - /* IE 6-8 fallback colors */ -.leaflet-oldie .marker-cluster-small { - background-color: rgb(181, 226, 140); - } -.leaflet-oldie .marker-cluster-small div { - background-color: rgb(110, 204, 57); - } - -.leaflet-oldie .marker-cluster-medium { - background-color: rgb(241, 211, 87); - } -.leaflet-oldie .marker-cluster-medium div { - background-color: rgb(240, 194, 12); - } - -.leaflet-oldie .marker-cluster-large { - background-color: rgb(253, 156, 115); - } -.leaflet-oldie .marker-cluster-large div { - background-color: rgb(241, 128, 23); -} - -.marker-cluster { - background-clip: padding-box; - border-radius: 20px; - } -.marker-cluster div { - width: 30px; - height: 30px; - margin-left: 5px; - margin-top: 5px; - - text-align: center; - border-radius: 15px; - font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif; - } -.marker-cluster span { - line-height: 30px; - } \ No newline at end of file diff --git a/leafletTest/css/MarkerCluster.css b/leafletTest/css/MarkerCluster.css deleted file mode 100644 index c60d71b..0000000 --- a/leafletTest/css/MarkerCluster.css +++ /dev/null @@ -1,14 +0,0 @@ -.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow { - -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in; - -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in; - -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in; - transition: transform 0.3s ease-out, opacity 0.3s ease-in; -} - -.leaflet-cluster-spider-leg { - /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */ - -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in; - -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in; - -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in; - transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in; -} diff --git a/leafletTest/css/fontawesome-all.min.css b/leafletTest/css/fontawesome-all.min.css deleted file mode 100644 index 8539c00..0000000 --- a/leafletTest/css/fontawesome-all.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:a 2s infinite linear}.fa-pulse{animation:a 1s infinite steps(8)}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-excel:before{content:"\f1c3"}.fa-file-image:before{content:"\f1c5"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-fulcrum:before{content:"\f50b"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-meh:before{content:"\f11a"}.fa-memory:before{content:"\f538"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-moon:before{content:"\f186"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shower:before{content:"\f2cc"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-spotify:before{content:"\f1bc"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-moving:before{content:"\f4df"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/leafletTest/css/images/cancel.png b/leafletTest/css/images/cancel.png deleted file mode 100644 index a4e7c49..0000000 Binary files a/leafletTest/css/images/cancel.png and /dev/null differ diff --git a/leafletTest/css/images/cancel_@2X.png b/leafletTest/css/images/cancel_@2X.png deleted file mode 100644 index dcc72f0..0000000 Binary files a/leafletTest/css/images/cancel_@2X.png and /dev/null differ diff --git a/leafletTest/css/images/check.png b/leafletTest/css/images/check.png deleted file mode 100644 index 55f274b..0000000 Binary files a/leafletTest/css/images/check.png and /dev/null differ diff --git a/leafletTest/css/images/check_@2X.png b/leafletTest/css/images/check_@2X.png deleted file mode 100644 index df8032e..0000000 Binary files a/leafletTest/css/images/check_@2X.png and /dev/null differ diff --git a/leafletTest/css/images/focus.png b/leafletTest/css/images/focus.png deleted file mode 100644 index 5a87d24..0000000 Binary files a/leafletTest/css/images/focus.png and /dev/null differ diff --git a/leafletTest/css/images/focus_@2X.png b/leafletTest/css/images/focus_@2X.png deleted file mode 100644 index 1eb7dd4..0000000 Binary files a/leafletTest/css/images/focus_@2X.png and /dev/null differ diff --git a/leafletTest/css/images/layers-2x.png b/leafletTest/css/images/layers-2x.png deleted file mode 100644 index a2cf7f9..0000000 Binary files a/leafletTest/css/images/layers-2x.png and /dev/null differ diff --git a/leafletTest/css/images/layers.png b/leafletTest/css/images/layers.png deleted file mode 100644 index bca0a0e..0000000 Binary files a/leafletTest/css/images/layers.png and /dev/null differ diff --git a/leafletTest/css/images/marker-icon-2x.png b/leafletTest/css/images/marker-icon-2x.png deleted file mode 100644 index 0015b64..0000000 Binary files a/leafletTest/css/images/marker-icon-2x.png and /dev/null differ diff --git a/leafletTest/css/images/marker-icon.png b/leafletTest/css/images/marker-icon.png deleted file mode 100644 index e2e9f75..0000000 Binary files a/leafletTest/css/images/marker-icon.png and /dev/null differ diff --git a/leafletTest/css/images/marker-shadow.png b/leafletTest/css/images/marker-shadow.png deleted file mode 100644 index d1e773c..0000000 Binary files a/leafletTest/css/images/marker-shadow.png and /dev/null differ diff --git a/leafletTest/css/images/measure-control.png b/leafletTest/css/images/measure-control.png deleted file mode 100644 index b88e8e4..0000000 Binary files a/leafletTest/css/images/measure-control.png and /dev/null differ diff --git a/leafletTest/css/images/rulers.png b/leafletTest/css/images/rulers.png deleted file mode 100644 index b88e8e4..0000000 Binary files a/leafletTest/css/images/rulers.png and /dev/null differ diff --git a/leafletTest/css/images/rulers_@2X.png b/leafletTest/css/images/rulers_@2X.png deleted file mode 100644 index 7247a0c..0000000 Binary files a/leafletTest/css/images/rulers_@2X.png and /dev/null differ diff --git a/leafletTest/css/images/start.png b/leafletTest/css/images/start.png deleted file mode 100644 index b8ca942..0000000 Binary files a/leafletTest/css/images/start.png and /dev/null differ diff --git a/leafletTest/css/images/start_@2X.png b/leafletTest/css/images/start_@2X.png deleted file mode 100644 index 01da494..0000000 Binary files a/leafletTest/css/images/start_@2X.png and /dev/null differ diff --git a/leafletTest/css/images/throbber.gif b/leafletTest/css/images/throbber.gif deleted file mode 100644 index c0c52a0..0000000 Binary files a/leafletTest/css/images/throbber.gif and /dev/null differ diff --git a/leafletTest/css/images/trash.png b/leafletTest/css/images/trash.png deleted file mode 100644 index 7ff478a..0000000 Binary files a/leafletTest/css/images/trash.png and /dev/null differ diff --git a/leafletTest/css/images/trash_@2X.png b/leafletTest/css/images/trash_@2X.png deleted file mode 100644 index fea11a8..0000000 Binary files a/leafletTest/css/images/trash_@2X.png and /dev/null differ diff --git a/leafletTest/css/leaflet.css b/leafletTest/css/leaflet.css deleted file mode 100644 index fa5abca..0000000 --- a/leafletTest/css/leaflet.css +++ /dev/null @@ -1,632 +0,0 @@ -/* required styles */ - -.leaflet-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-container, -.leaflet-pane > svg, -.leaflet-pane > canvas, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; - } -.leaflet-container { - overflow: hidden; - } -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; - } -/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ -.leaflet-safari .leaflet-tile { - image-rendering: -webkit-optimize-contrast; - } -/* hack that prevents hw layers "stretching" when loading new tiles */ -.leaflet-safari .leaflet-tile-container { - width: 1600px; - height: 1600px; - -webkit-transform-origin: 0 0; - } -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; - } -/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ -/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container .leaflet-overlay-pane svg, -.leaflet-container .leaflet-marker-pane img, -.leaflet-container .leaflet-shadow-pane img, -.leaflet-container .leaflet-tile-pane img, -.leaflet-container img.leaflet-image-layer { - max-width: none !important; - } - -.leaflet-container.leaflet-touch-zoom { - -ms-touch-action: pan-x pan-y; - touch-action: pan-x pan-y; - } -.leaflet-container.leaflet-touch-drag { - -ms-touch-action: pinch-zoom; - } -.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { - -ms-touch-action: none; - touch-action: none; -} -.leaflet-container { - -webkit-tap-highlight-color: transparent; -} -.leaflet-container a { - -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); -} -.leaflet-tile { - filter: inherit; - visibility: hidden; - } -.leaflet-tile-loaded { - visibility: inherit; - } -.leaflet-zoom-box { - width: 0; - height: 0; - -moz-box-sizing: border-box; - box-sizing: border-box; - z-index: 800; - } -/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ -.leaflet-overlay-pane svg { - -moz-user-select: none; - } - -.leaflet-pane { z-index: 400; } - -.leaflet-tile-pane { z-index: 200; } -.leaflet-overlay-pane { z-index: 400; } -.leaflet-shadow-pane { z-index: 500; } -.leaflet-marker-pane { z-index: 600; } -.leaflet-tooltip-pane { z-index: 650; } -.leaflet-popup-pane { z-index: 700; } - -.leaflet-map-pane canvas { z-index: 100; } -.leaflet-map-pane svg { z-index: 200; } - -.leaflet-vml-shape { - width: 1px; - height: 1px; - } -.lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; - } - - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 800; - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; - } -.leaflet-top { - top: 0; - } -.leaflet-right { - right: 0; - } -.leaflet-bottom { - bottom: 0; - } -.leaflet-left { - left: 0; - } -.leaflet-control { - float: left; - clear: both; - } -.leaflet-right .leaflet-control { - float: right; - } -.leaflet-top .leaflet-control { - margin-top: 10px; - } -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; - } -.leaflet-left .leaflet-control { - margin-left: 10px; - } -.leaflet-right .leaflet-control { - margin-right: 10px; - } - - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-tile { - will-change: opacity; - } -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - -o-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; - } -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; - } -.leaflet-zoom-animated { - -webkit-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - } -.leaflet-zoom-anim .leaflet-zoom-animated { - will-change: transform; - } -.leaflet-zoom-anim .leaflet-zoom-animated { - -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); - -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); - -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1); - transition: transform 0.25s cubic-bezier(0,0,0.25,1); - } -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - } - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; - } - - -/* cursors */ - -.leaflet-interactive { - cursor: pointer; - } -.leaflet-grab { - cursor: -webkit-grab; - cursor: -moz-grab; - } -.leaflet-crosshair, -.leaflet-crosshair .leaflet-interactive { - cursor: crosshair; - } -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; - } -.leaflet-dragging .leaflet-grab, -.leaflet-dragging .leaflet-grab .leaflet-interactive, -.leaflet-dragging .leaflet-marker-draggable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; - } - -/* marker & overlays interactivity */ -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-image-layer, -.leaflet-pane > svg path, -.leaflet-tile-container { - pointer-events: none; - } - -.leaflet-marker-icon.leaflet-interactive, -.leaflet-image-layer.leaflet-interactive, -.leaflet-pane > svg path.leaflet-interactive { - pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ - pointer-events: auto; - } - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline: 0; - } -.leaflet-container a { - color: #0078A8; - } -.leaflet-container a.leaflet-active { - outline: 2px solid orange; - } -.leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255,255,255,0.5); - } - - -/* general typography */ -.leaflet-container { - font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; - } - - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 1px 5px rgba(0,0,0,0.65); - border-radius: 4px; - } -.leaflet-bar a, -.leaflet-bar a:hover { - background-color: #fff; - border-bottom: 1px solid #ccc; - width: 26px; - height: 26px; - line-height: 26px; - display: block; - text-align: center; - text-decoration: none; - color: black; - } -.leaflet-bar a, -.leaflet-control-layers-toggle { - background-position: 50% 50%; - background-repeat: no-repeat; - display: block; - } -.leaflet-bar a:hover { - background-color: #f4f4f4; - } -.leaflet-bar a:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - } -.leaflet-bar a:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom: none; - } -.leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: #f4f4f4; - color: #bbb; - } - -.leaflet-touch .leaflet-bar a { - width: 30px; - height: 30px; - line-height: 30px; - } -.leaflet-touch .leaflet-bar a:first-child { - border-top-left-radius: 2px; - border-top-right-radius: 2px; - } -.leaflet-touch .leaflet-bar a:last-child { - border-bottom-left-radius: 2px; - border-bottom-right-radius: 2px; - } - -/* zoom control */ - -.leaflet-control-zoom-in, -.leaflet-control-zoom-out { - font: bold 18px 'Lucida Console', Monaco, monospace; - text-indent: 1px; - } - -.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { - font-size: 22px; - } - - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0,0,0,0.4); - background: #fff; - border-radius: 5px; - } -.leaflet-control-layers-toggle { - background-image: url(images/layers.png); - width: 36px; - height: 36px; - } -.leaflet-retina .leaflet-control-layers-toggle { - background-image: url(images/layers-2x.png); - background-size: 26px 26px; - } -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; - } -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; - } -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; - } -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: #fff; - } -.leaflet-control-layers-scrollbar { - overflow-y: scroll; - overflow-x: hidden; - padding-right: 5px; - } -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; - } -.leaflet-control-layers label { - display: block; - } -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; - } - -/* Default icon URLs */ -.leaflet-default-icon-path { - background-image: url(images/marker-icon.png); - } - - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background: #fff; - background: rgba(255, 255, 255, 0.7); - margin: 0; - } -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; - } -.leaflet-control-attribution a { - text-decoration: none; - } -.leaflet-control-attribution a:hover { - text-decoration: underline; - } -.leaflet-container .leaflet-control-attribution, -.leaflet-container .leaflet-control-scale { - font-size: 11px; - } -.leaflet-left .leaflet-control-scale { - margin-left: 5px; - } -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; - } -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: border-box; - box-sizing: border-box; - - background: #fff; - background: rgba(255, 255, 255, 0.5); - } -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; - } -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; - } - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - box-shadow: none; - } -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - border: 2px solid rgba(0,0,0,0.2); - background-clip: padding-box; - } - - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; - margin-bottom: 20px; - } -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; - border-radius: 12px; - } -.leaflet-popup-content { - margin: 13px 19px; - line-height: 1.4; - } -.leaflet-popup-content p { - margin: 18px 0; - } -.leaflet-popup-tip-container { - width: 40px; - height: 20px; - position: absolute; - left: 50%; - margin-left: -20px; - overflow: hidden; - pointer-events: none; - } -.leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - - margin: -10px auto 0; - - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - } -.leaflet-popup-content-wrapper, -.leaflet-popup-tip { - background: white; - color: #333; - box-shadow: 0 3px 14px rgba(0,0,0,0.4); - } -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 4px 0 0; - border: none; - text-align: center; - width: 18px; - height: 14px; - font: 16px/14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: bold; - background: transparent; - } -.leaflet-container a.leaflet-popup-close-button:hover { - color: #999; - } -.leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; - } - -.leaflet-oldie .leaflet-popup-content-wrapper { - zoom: 1; - } -.leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); - } -.leaflet-oldie .leaflet-popup-tip-container { - margin-top: -1px; - } - -.leaflet-oldie .leaflet-control-zoom, -.leaflet-oldie .leaflet-control-layers, -.leaflet-oldie .leaflet-popup-content-wrapper, -.leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; - } - - -/* div icon */ - -.leaflet-div-icon { - background: #fff; - border: 1px solid #666; - } - - -/* Tooltip */ -/* Base styles for the element that has a tooltip */ -.leaflet-tooltip { - position: absolute; - padding: 6px; - background-color: #fff; - border: 1px solid #fff; - border-radius: 3px; - color: #222; - white-space: nowrap; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - pointer-events: none; - box-shadow: 0 1px 3px rgba(0,0,0,0.4); - } -.leaflet-tooltip.leaflet-clickable { - cursor: pointer; - pointer-events: auto; - } -.leaflet-tooltip-top:before, -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - position: absolute; - pointer-events: none; - border: 6px solid transparent; - background: transparent; - content: ""; - } - -/* Directions */ - -.leaflet-tooltip-bottom { - margin-top: 6px; -} -.leaflet-tooltip-top { - margin-top: -6px; -} -.leaflet-tooltip-bottom:before, -.leaflet-tooltip-top:before { - left: 50%; - margin-left: -6px; - } -.leaflet-tooltip-top:before { - bottom: 0; - margin-bottom: -12px; - border-top-color: #fff; - } -.leaflet-tooltip-bottom:before { - top: 0; - margin-top: -12px; - margin-left: -6px; - border-bottom-color: #fff; - } -.leaflet-tooltip-left { - margin-left: -6px; -} -.leaflet-tooltip-right { - margin-left: 6px; -} -.leaflet-tooltip-left:before, -.leaflet-tooltip-right:before { - top: 50%; - margin-top: -6px; - } -.leaflet-tooltip-left:before { - right: 0; - margin-right: -12px; - border-left-color: #fff; - } -.leaflet-tooltip-right:before { - left: 0; - margin-left: -12px; - border-right-color: #fff; - } diff --git a/leafletTest/css/qgis2web.css b/leafletTest/css/qgis2web.css deleted file mode 100644 index 5be7b71..0000000 --- a/leafletTest/css/qgis2web.css +++ /dev/null @@ -1,110 +0,0 @@ - - #map { - background-color: #ffffff - } - th { - text-align: left; - vertical-align: top; - } - .info { - padding: 6px 8px; - font: 14px/16px Arial, Helvetica, sans-serif; - background: white; - background: rgba(255,255,255,0.8); - box-shadow: 0 0 15px rgba(0,0,0,0.2); - border-radius: 5px; - } - .info h2 { - margin: 0 0 5px; - color: #777; - } - .leaflet-container { - background: #fff; - padding-right: 10px; - } - .leaflet-popup-content { - width:auto !important; - padding-right:10px; - } - .leaflet-tooltip { - background: none; - box-shadow: none; - border: none; - } - .leaflet-tooltip-left:before, .leaflet-tooltip-right:before { - border: 0px; - } - } - .fa, .leaflet-container, a { - color: #000000 !important; - } - .leaflet-control-zoom-in, .leaflet-control-zoom-out, - .leaflet-control-locate a, - .leaflet-touch .leaflet-control-geocoder-icon, - .leaflet-control-search .search-button, - .leaflet-control-measure { - background-color: #f8f8f8 !important; - border-radius: 0px !important; - color: #000000 !important; - } - .leaflet-touch .leaflet-control-layers, - .leaflet-touch .leaflet-bar, - .leaflet-control-search, - .leaflet-control-measure { - border: 3px solid rgba(255,255,255,.4) !important; - } - .leaflet-control-attribution a { - color: #0078A8 !important; - } - .leaflet-control-scale-line { - border: 2px solid #f8f8f8 !important; - border-top: none !important; - color: black !important; - } - .leaflet-control-search .search-button, - .leaflet-container .leaflet-control-search, - .leaflet-control-measure { - box-shadow: none !important; - } - .leaflet-control-search .search-button { - width: 30px !important; - height: 30px !important; - font-size: 13px !important; - text-align: center !important; - line-height: 30px !important; - } - .leaflet-control-measure .leaflet-control { - width: 30px !important; - height: 30px !important; - } - .leaflet-container .leaflet-control-search{ - background: none !important; - } - .leaflet-control-search .search-input { - margin: 0px 0px 0px 0px !important; - height: 30px !important; - } - .leaflet-control-measure { - background: none!important; - border-radius: 4px !important; - } - .leaflet-control-measure .leaflet-control-measure-interaction { - background-color: #f8f8f8 !important; - } - .leaflet-touch .leaflet-control-measure - .leaflet-control-measure-toggle, - .leaflet-touch .leaflet-control-measure - .leaflet-control-measure-toggle:hover { - width: 30px !important; - height: 30px !important; - border-radius: 0px !important; - background-color: #f8f8f8 !important; - color: #000000 !important; - font-size: 13px; - line-height: 30px; - text-align: center; - text-indent: 0%; - } - .leaflet-control-layers-toggle { - background-color: #f8f8f8 !important; - } \ No newline at end of file diff --git a/leafletTest/data/sites_4.js b/leafletTest/data/sites_4.js deleted file mode 100644 index ec0332f..0000000 --- a/leafletTest/data/sites_4.js +++ /dev/null @@ -1,18 +0,0 @@ -var json_sites_4 = { -"type": "FeatureCollection", -"name": "sites_4", -"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, -"features": [ -{ "type": "Feature", "properties": { "locality": "Bellows Falls", "code": "BF", "grass": 46.0, "moss": 3.5, "sedge": 0.0, "forb": 34.0, "fern": 0.5, "bare": 4.0, "woody": 10.0, "shrub": 0.0, "lon_utm": 703877.0, "lat_utm": 4784632.0, "lon_dd": -72.49113, "lat_dd": 43.18695, "fwlength": 15.8, "thorax": 3.6, "spotting": 1.6, "rfray": 1.6, "rhray": 1.4, "n": 62.0 }, "geometry": { "type": "Point", "coordinates": [ -72.49113, 43.18695 ] } }, -{ "type": "Feature", "properties": { "locality": "Springfield", "code": "SP", "grass": 49.0, "moss": 0.0, "sedge": 0.0, "forb": 24.0, "fern": 1.0, "bare": 0.5, "woody": 14.4, "shrub": 0.0, "lon_utm": 707151.0, "lat_utm": 4793906.0, "lon_dd": -72.4474, "lat_dd": 43.26949, "fwlength": 16.0, "thorax": 3.7, "spotting": 1.1, "rfray": 2.0, "rhray": 1.5, "n": 51.0 }, "geometry": { "type": "Point", "coordinates": [ -72.4474, 43.26949 ] } }, -{ "type": "Feature", "properties": { "locality": "Mount Ascutney", "code": "MA", "grass": 49.0, "moss": 0.0, "sedge": 4.0, "forb": 17.0, "fern": 5.0, "bare": 0.0, "woody": 0.0, "shrub": 0.0, "lon_utm": 708310.0, "lat_utm": 4806931.0, "lon_dd": -72.42819, "lat_dd": 43.38634, "fwlength": 16.2, "thorax": 3.8, "spotting": 1.2, "rfray": 1.9, "rhray": 1.6, "n": 58.0 }, "geometry": { "type": "Point", "coordinates": [ -72.42819, 43.38634 ] } }, -{ "type": "Feature", "properties": { "locality": "Bernardston", "code": "BE", "grass": 49.0, "moss": 1.0, "sedge": 0.0, "forb": 29.0, "fern": 0.0, "bare": 0.0, "woody": 11.0, "shrub": 7.0, "lon_utm": 696647.0, "lat_utm": 4725212.0, "lon_dd": -72.60087, "lat_dd": 42.65425, "fwlength": 16.7, "thorax": 3.7, "spotting": 1.4, "rfray": 1.8, "rhray": 1.6, "n": 27.0 }, "geometry": { "type": "Point", "coordinates": [ -72.60087, 42.65425 ] } }, -{ "type": "Feature", "properties": { "locality": "Lyme", "code": "LY", "grass": 50.0, "moss": 0.0, "sedge": 0.0, "forb": 14.0, "fern": 4.0, "bare": 0.0, "woody": 0.0, "shrub": 0.0, "lon_utm": 729474.0, "lat_utm": 4856926.0, "lon_dd": -72.146, "lat_dd": 43.82977, "fwlength": 15.6, "thorax": 3.6, "spotting": 1.1, "rfray": 1.8, "rhray": 1.3, "n": 52.0 }, "geometry": { "type": "Point", "coordinates": [ -72.146, 43.82977 ] } }, -{ "type": "Feature", "properties": { "locality": "Fairlee", "code": "FA", "grass": 50.0, "moss": 5.0, "sedge": 0.0, "forb": 12.0, "fern": 0.0, "bare": 2.0, "woody": 0.0, "shrub": 0.0, "lon_utm": 729045.0, "lat_utm": 4868779.0, "lon_dd": -72.14624, "lat_dd": 43.93649, "fwlength": 15.9, "thorax": 3.8, "spotting": 1.0, "rfray": 1.8, "rhray": 1.5, "n": 25.0 }, "geometry": { "type": "Point", "coordinates": [ -72.14624, 43.93649 ] } }, -{ "type": "Feature", "properties": { "locality": "Newport", "code": "NW", "grass": 49.0, "moss": 0.0, "sedge": 0.0, "forb": 35.0, "fern": 0.0, "bare": 0.0, "woody": 0.0, "shrub": 0.0, "lon_utm": 724169.0, "lat_utm": 4977885.0, "lon_dd": -72.15977, "lat_dd": 44.91907, "fwlength": 16.7, "thorax": 3.7, "spotting": 1.1, "rfray": 1.8, "rhray": 1.3, "n": 21.0 }, "geometry": { "type": "Point", "coordinates": [ -72.15977, 44.91907 ] } }, -{ "type": "Feature", "properties": { "locality": "Orleans", "code": "OR", "grass": 49.0, "moss": 0.0, "sedge": 0.0, "forb": 41.0, "fern": 0.0, "bare": 0.0, "woody": 19.0, "shrub": 0.0, "lon_utm": 723193.0, "lat_utm": 4960641.0, "lon_dd": -72.1797, "lat_dd": 44.76433, "fwlength": 16.1, "thorax": 3.8, "spotting": 1.4, "rfray": 1.9, "rhray": 1.7, "n": 41.0 }, "geometry": { "type": "Point", "coordinates": [ -72.1797, 44.76433 ] } }, -{ "type": "Feature", "properties": { "locality": "Lyndonville", "code": "LN", "grass": 50.0, "moss": 0.0, "sedge": 0.0, "forb": 9.0, "fern": 0.0, "bare": 0.0, "woody": 3.0, "shrub": 0.0, "lon_utm": 734359.0, "lat_utm": 4935471.0, "lon_dd": -72.05029, "lat_dd": 44.53447, "fwlength": 16.0, "thorax": 3.7, "spotting": 1.4, "rfray": 1.9, "rhray": 1.7, "n": 52.0 }, "geometry": { "type": "Point", "coordinates": [ -72.05029, 44.53447 ] } }, -{ "type": "Feature", "properties": { "locality": "St. Johnsbury", "code": "SJ", "grass": 49.0, "moss": 0.0, "sedge": 0.0, "forb": 42.0, "fern": 0.0, "bare": 0.0, "woody": 0.0, "shrub": 0.0, "lon_utm": 734215.0, "lat_utm": 4925655.0, "lon_dd": -72.05655, "lat_dd": 44.44626, "fwlength": 15.7, "thorax": 3.6, "spotting": 1.2, "rfray": 1.9, "rhray": 1.7, "n": 56.0 }, "geometry": { "type": "Point", "coordinates": [ -72.05655, 44.44626 ] } }, -{ "type": "Feature", "properties": { "locality": "Hanover", "code": "HA", "grass": 49.0, "moss": 0.0, "sedge": 0.0, "forb": 38.0, "fern": 5.0, "bare": 0.0, "woody": 5.0, "shrub": 0.0, "lon_utm": 715984.0, "lat_utm": 4843575.0, "lon_dd": -72.31896, "lat_dd": 43.71376, "fwlength": 16.0, "thorax": 3.6, "spotting": 1.2, "rfray": 1.8, "rhray": 1.8, "n": 65.0 }, "geometry": { "type": "Point", "coordinates": [ -72.31896, 43.71376 ] } } -] -} diff --git a/leafletTest/data/vtnhma_3.js b/leafletTest/data/vtnhma_3.js deleted file mode 100644 index a7c347f..0000000 --- a/leafletTest/data/vtnhma_3.js +++ /dev/null @@ -1,10 +0,0 @@ -var json_vtnhma_3 = { -"type": "FeatureCollection", -"name": "vtnhma_3", -"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, -"features": [ -{ "type": "Feature", "properties": { "Name": "Vermont", "description": "
    \n\n\n\n\n\n\n\n\n
    Attributes<\/em><\/th><\/tr>
    STATEFP<\/th>\n50<\/td>\n<\/tr>
    STATENS<\/th>\n01779802<\/td>\n<\/tr>
    AFFGEOID<\/th>\n0400000US50<\/td>\n<\/tr>
    GEOID<\/th>\n50<\/td>\n<\/tr>
    STUSPS<\/th>\nVT<\/td>\n<\/tr>
    NAME<\/th>\nVermont<\/td>\n<\/tr>
    LSAD<\/th>\n00<\/td>\n<\/tr>
    ALAND<\/th>\n23873457570<\/td>\n<\/tr>
    AWATER<\/th>\n1031134839<\/td>\n<\/tr><\/table><\/center>", "timestamp": null, "begin": null, "end": null, "altitudeMode": "clampToGround", "tessellate": 1.0, "extrude": 0.0, "visibility": 1.0, "drawOrder": null, "icon": null, "timestamp_1": null, "begin_1": null, "end_1": null, "altitudeMode_1": null, "tessellate_1": null, "extrude_1": null, "visibility_1": null, "drawOrder_1": null, "icon_1": null, "STATEFP": "50", "STATENS": "01779802", "AFFGEOID": "0400000US50", "GEOID": "50", "STUSPS": "VT", "LSAD": "00", "ALAND": "23873457570", "AWATER": "1031134839" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -73.43774, 44.045006, 0.0 ], [ -73.43688, 44.042578, 0.0 ], [ -73.430772, 44.038746, 0.0 ], [ -73.427987, 44.037708, 0.0 ], [ -73.427443193301201, 44.037155031158399, 0.0 ], [ -73.42312, 44.032759, 0.0 ], [ -73.42016, 44.032004, 0.0 ], [ -73.414364, 44.029526, 0.0 ], [ -73.410776, 44.026944, 0.0 ], [ -73.407739, 44.021312, 0.0 ], [ -73.407384035946606, 44.0202750561591, 0.0 ], [ -73.405999, 44.016229, 0.0 ], [ -73.405977, 44.011485, 0.0 ], [ -73.411224, 43.986202, 0.0 ], [ -73.412581, 43.98272, 0.0 ], [ -73.412613, 43.97998, 0.0 ], [ -73.411248, 43.975596, 0.0 ], [ -73.406823, 43.967317, 0.0 ], [ -73.405525, 43.948813, 0.0 ], [ -73.408589, 43.932933, 0.0 ], [ -73.407742783800401, 43.929889818720298, 0.0 ], [ -73.407742, 43.929887, 0.0 ], [ -73.404537867979002, 43.923851517162902, 0.0 ], [ -73.400926, 43.917048, 0.0 ], [ -73.397256, 43.905668, 0.0 ], [ -73.395878, 43.903044, 0.0 ], [ -73.383491, 43.890951, 0.0 ], [ -73.376312, 43.880292, 0.0 ], [ -73.374051, 43.875563, 0.0 ], [ -73.37415, 43.874163, 0.0 ], [ -73.379334, 43.864648, 0.0 ], [ -73.381501, 43.859235, 0.0 ], [ -73.382046, 43.855008, 0.0 ], [ -73.381855242667299, 43.854580192006502, 0.0 ], [ -73.380987, 43.852633, 0.0 ], [ -73.373742, 43.847693, 0.0 ], [ -73.372462, 43.846266, 0.0 ], [ -73.372247, 43.845337, 0.0 ], [ -73.373553463591804, 43.842864601516403, 0.0 ], [ -73.373688, 43.84261, 0.0 ], [ -73.376598, 43.839357, 0.0 ], [ -73.381865, 43.837315, 0.0 ], [ -73.388389, 43.832404, 0.0 ], [ -73.390194, 43.829364, 0.0 ], [ -73.392751, 43.822196, 0.0 ], [ -73.392492, 43.820779, 0.0 ], [ -73.390302, 43.817371, 0.0 ], [ -73.383259, 43.81331, 0.0 ], [ -73.380804, 43.810951, 0.0 ], [ -73.379329826723193, 43.808476322236999, 0.0 ], [ -73.379279, 43.808391, 0.0 ], [ -73.37827, 43.805995, 0.0 ], [ -73.377232, 43.800565, 0.0 ], [ -73.376361, 43.798766, 0.0 ], [ -73.368184, 43.793346, 0.0 ], [ -73.362498, 43.790211, 0.0 ], [ -73.357547, 43.785933, 0.0 ], [ -73.355545, 43.778468, 0.0 ], [ -73.354758, 43.776721, 0.0 ], [ -73.350593, 43.771939, 0.0 ], [ -73.350707, 43.770463, 0.0 ], [ -73.354597, 43.764167, 0.0 ], [ -73.362951157432093, 43.7531814596909, 0.0 ], [ -73.369725, 43.744274, 0.0 ], [ -73.370287, 43.742269, 0.0 ], [ -73.370724, 43.735571, 0.0 ], [ -73.369916, 43.728789, 0.0 ], [ -73.370612, 43.725329, 0.0 ], [ -73.377756, 43.717712, 0.0 ], [ -73.382965, 43.714058, 0.0 ], [ -73.385883, 43.711336, 0.0 ], [ -73.39179, 43.703481, 0.0 ], [ -73.393575023514302, 43.699527722367002, 0.0 ], [ -73.393723, 43.6992, 0.0 ], [ -73.395517, 43.696831, 0.0 ], [ -73.398332, 43.694625, 0.0 ], [ -73.402078, 43.693106, 0.0 ], [ -73.404739, 43.690213, 0.0 ], [ -73.405243, 43.688367, 0.0 ], [ -73.403474, 43.684694, 0.0 ], [ -73.404126, 43.681339, 0.0 ], [ -73.407399523217705, 43.673428732936898, 0.0 ], [ -73.407776, 43.672519, 0.0 ], [ -73.408061, 43.669438, 0.0 ], [ -73.414546, 43.658209, 0.0 ], [ -73.415513, 43.65245, 0.0 ], [ -73.418763, 43.64788, 0.0 ], [ -73.423539, 43.645676, 0.0 ], [ -73.425217, 43.64429, 0.0 ], [ -73.426463, 43.642598, 0.0 ], [ -73.428583, 43.636543, 0.0 ], [ -73.42791, 43.634428, 0.0 ], [ -73.418319, 43.623325, 0.0 ], [ -73.417668, 43.621687, 0.0 ], [ -73.417827, 43.620586, 0.0 ], [ -73.423708, 43.612356, 0.0 ], [ -73.423815, 43.610989, 0.0 ], [ -73.422154, 43.606511, 0.0 ], [ -73.421616, 43.603023, 0.0 ], [ -73.424977, 43.598775, 0.0 ], [ -73.430325, 43.590532, 0.0 ], [ -73.431229, 43.588285, 0.0 ], [ -73.430947, 43.587036, 0.0 ], [ -73.428636, 43.583994, 0.0 ], [ -73.426699956296702, 43.582993105637399, 0.0 ], [ -73.426663, 43.582974, 0.0 ], [ -73.420378, 43.581489, 0.0 ], [ -73.416964, 43.57773, 0.0 ], [ -73.405629, 43.571179, 0.0 ], [ -73.400295, 43.568889, 0.0 ], [ -73.398125, 43.568065, 0.0 ], [ -73.395767, 43.568087, 0.0 ], [ -73.395169, 43.569619, 0.0 ], [ -73.39196, 43.569915, 0.0 ], [ -73.391836763890296, 43.570102254867997, 0.0 ], [ -73.391344, 43.570851, 0.0 ], [ -73.391931, 43.572723, 0.0 ], [ -73.391427, 43.57361, 0.0 ], [ -73.389741, 43.574683, 0.0 ], [ -73.38798, 43.574697, 0.0 ], [ -73.386126, 43.574799, 0.0 ], [ -73.384188, 43.575512, 0.0 ], [ -73.383369, 43.57677, 0.0 ], [ -73.382549, 43.579193, 0.0 ], [ -73.384496, 43.581553, 0.0 ], [ -73.385251, 43.583263, 0.0 ], [ -73.383426, 43.584727, 0.0 ], [ -73.382425, 43.586062, 0.0 ], [ -73.38293, 43.587076, 0.0 ], [ -73.38432, 43.587334, 0.0 ], [ -73.386253, 43.588411, 0.0 ], [ -73.387039, 43.589463, 0.0 ], [ -73.386282, 43.591252, 0.0 ], [ -73.38409, 43.591415, 0.0 ], [ -73.382414, 43.591577, 0.0 ], [ -73.381715, 43.592963, 0.0 ], [ -73.382449, 43.594159, 0.0 ], [ -73.383446, 43.596778, 0.0 ], [ -73.38349, 43.597366, 0.0 ], [ -73.38135, 43.598505, 0.0 ], [ -73.380722, 43.598154, 0.0 ], [ -73.380271, 43.597905, 0.0 ], [ -73.377213, 43.598572, 0.0 ], [ -73.377748, 43.599656, 0.0 ], [ -73.377395, 43.600421, 0.0 ], [ -73.373443, 43.603292, 0.0 ], [ -73.372469, 43.604848, 0.0 ], [ -73.372375, 43.606014, 0.0 ], [ -73.376036, 43.612596, 0.0 ], [ -73.374557, 43.614677, 0.0 ], [ -73.369933, 43.619093, 0.0 ], [ -73.36987, 43.619711, 0.0 ], [ -73.372486, 43.622751, 0.0 ], [ -73.371889, 43.624489, 0.0 ], [ -73.368899, 43.62471, 0.0 ], [ -73.367167, 43.623622, 0.0 ], [ -73.365562, 43.62344, 0.0 ], [ -73.35911, 43.624598, 0.0 ], [ -73.358593, 43.625065, 0.0 ], [ -73.347621, 43.622509, 0.0 ], [ -73.342181, 43.62607, 0.0 ], [ -73.328139991875403, 43.625917749273, 0.0 ], [ -73.327702, 43.625913, 0.0 ], [ -73.323893, 43.627629, 0.0 ], [ -73.317566, 43.627355, 0.0 ], [ -73.312809, 43.624602, 0.0 ], [ -73.310606, 43.624114, 0.0 ], [ -73.307682, 43.627492, 0.0 ], [ -73.306234, 43.628018, 0.0 ], [ -73.304125, 43.627057, 0.0 ], [ -73.302552, 43.625708, 0.0 ], [ -73.302076, 43.624364, 0.0 ], [ -73.302015383599297, 43.623905129447003, 0.0 ], [ -73.300285, 43.610806, 0.0 ], [ -73.29802, 43.610028, 0.0 ], [ -73.293741, 43.605203, 0.0 ], [ -73.292232, 43.60255, 0.0 ], [ -73.292202, 43.59816, 0.0 ], [ -73.292502717317703, 43.5960017633574, 0.0 ], [ -73.292801, 43.593861, 0.0 ], [ -73.293242, 43.592558, 0.0 ], [ -73.296924, 43.587323, 0.0 ], [ -73.292364, 43.585104, 0.0 ], [ -73.292113, 43.584509, 0.0 ], [ -73.29444, 43.582494, 0.0 ], [ -73.295344, 43.580235, 0.0 ], [ -73.294621, 43.57897, 0.0 ], [ -73.293536, 43.578518, 0.0 ], [ -73.289862641365701, 43.5788391633129, 0.0 ], [ -73.284912, 43.579272, 0.0 ], [ -73.281296, 43.577579, 0.0 ], [ -73.280952, 43.575407, 0.0 ], [ -73.279726, 43.574241, 0.0 ], [ -73.26938, 43.571973, 0.0 ], [ -73.264099, 43.568884, 0.0 ], [ -73.258631, 43.564949, 0.0 ], [ -73.252602, 43.556851, 0.0 ], [ -73.248641, 43.553857, 0.0 ], [ -73.24842, 43.552577, 0.0 ], [ -73.250408, 43.550425, 0.0 ], [ -73.250132, 43.543429, 0.0 ], [ -73.247812, 43.542814, 0.0 ], [ -73.246585, 43.541855, 0.0 ], [ -73.245589365141299, 43.540336234961302, 0.0 ], [ -73.242042, 43.534925, 0.0 ], [ -73.241589, 43.534973, 0.0 ], [ -73.24139, 43.532345, 0.0 ], [ -73.241891, 43.529418, 0.0 ], [ -73.243366, 43.527726, 0.0 ], [ -73.246821, 43.52578, 0.0 ], [ -73.247698, 43.523173, 0.0 ], [ -73.247631, 43.51924, 0.0 ], [ -73.24672, 43.518875, 0.0 ], [ -73.247061, 43.514919, 0.0 ], [ -73.247070242908194, 43.514612218218701, 0.0 ], [ -73.247136550873194, 43.512411387583597, 0.0 ], [ -73.247755408167805, 43.491870867410398, 0.0 ], [ -73.248401, 43.470443, 0.0 ], [ -73.2487638638259, 43.461812204489398, 0.0 ], [ -73.2497655837699, 43.437986076396498, 0.0 ], [ -73.250563794761206, 43.419000453282202, 0.0 ], [ -73.250996465546393, 43.408709283967703, 0.0 ], [ -73.251103412406707, 43.406165529490302, 0.0 ], [ -73.251450477374505, 43.397910513278703, 0.0 ], [ -73.252582, 43.370997, 0.0 ], [ -73.252674, 43.370285, 0.0 ], [ -73.252832, 43.363493, 0.0 ], [ -73.253084, 43.354714, 0.0 ], [ -73.253145387803599, 43.352994907400898, 0.0 ], [ -73.253156930181504, 43.352671676802899, 0.0 ], [ -73.254513943599804, 43.314670126209201, 0.0 ], [ -73.255785792744902, 43.2790535000319, 0.0 ], [ -73.256493, 43.259249, 0.0 ], [ -73.258668064888894, 43.230552806825997, 0.0 ], [ -73.258718, 43.229894, 0.0 ], [ -73.2593865321831, 43.2168596701502, 0.0 ], [ -73.260792906461504, 43.189439679461202, 0.0 ], [ -73.261809480779604, 43.169619594035602, 0.0 ], [ -73.264180034679896, 43.123401054011502, 0.0 ], [ -73.265063777484698, 43.106170776231203, 0.0 ], [ -73.265574, 43.096223, 0.0 ], [ -73.266206375905, 43.087156840448699, 0.0 ], [ -73.26978, 43.035923, 0.0 ], [ -73.270034748415796, 43.030715669234802, 0.0 ], [ -73.270678153254096, 43.017563784469502, 0.0 ], [ -73.273343707800905, 42.963076991470899, 0.0 ], [ -73.274294, 42.943652, 0.0 ], [ -73.274393, 42.942482, 0.0 ], [ -73.274466, 42.940361, 0.0 ], [ -73.274649791584906, 42.934439009859403, 0.0 ], [ -73.275804, 42.897249, 0.0 ], [ -73.278486219992601, 42.837566099299202, 0.0 ], [ -73.2784875592411, 42.8375362992698, 0.0 ], [ -73.278673, 42.83341, 0.0 ], [ -73.284311, 42.834954, 0.0 ], [ -73.285388, 42.834093, 0.0 ], [ -73.287063, 42.82014, 0.0 ], [ -73.28375, 42.813864, 0.0 ], [ -73.285238923874005, 42.810510899694698, 0.0 ], [ -73.286337, 42.808038, 0.0 ], [ -73.289304787528806, 42.8040968400041, 0.0 ], [ -73.290944, 42.80192, 0.0 ], [ -73.276421, 42.746019, 0.0 ], [ -73.264957, 42.74594, 0.0 ], [ -73.213170274011105, 42.744911556793802, 0.0 ], [ -73.163642086057806, 42.743927966357397, 0.0 ], [ -73.142493417626895, 42.7435079706162, 0.0 ], [ -73.089901607319803, 42.742463539075501, 0.0 ], [ -73.048442883883098, 42.741640201788897, 0.0 ], [ -73.023014995548706, 42.741135224142603, 0.0 ], [ -73.022903, 42.741133, 0.0 ], [ -73.018645354583995, 42.741042346546003, 0.0 ], [ -72.930260821819004, 42.739160469970102, 0.0 ], [ -72.927189572318696, 42.739095077165402, 0.0 ], [ -72.882792432033199, 42.738149776718302, 0.0 ], [ -72.864300520714295, 42.7377560483853, 0.0 ], [ -72.857658583506307, 42.737614628776498, 0.0 ], [ -72.809113, 42.736581, 0.0 ], [ -72.791076431289696, 42.736080535815198, 0.0 ], [ -72.779257080969302, 42.735752581999897, 0.0 ], [ -72.686173477997002, 42.733169773139103, 0.0 ], [ -72.674684822182698, 42.732850995168697, 0.0 ], [ -72.616353485467997, 42.731232464208297, 0.0 ], [ -72.598620323978096, 42.730740418722696, 0.0 ], [ -72.569974323389999, 42.7299455725652, 0.0 ], [ -72.5658714470635, 42.729831729256702, 0.0 ], [ -72.516711182782203, 42.7284676698292, 0.0 ], [ -72.458519, 42.726853, 0.0 ], [ -72.458488, 42.729094, 0.0 ], [ -72.461001, 42.733209, 0.0 ], [ -72.467827, 42.741209, 0.0 ], [ -72.473071, 42.745916, 0.0 ], [ -72.474723, 42.750729, 0.0 ], [ -72.475938, 42.757702, 0.0 ], [ -72.477615, 42.761245, 0.0 ], [ -72.479354, 42.763119, 0.0 ], [ -72.484878, 42.76554, 0.0 ], [ -72.4864, 42.76698, 0.0 ], [ -72.487767, 42.76938, 0.0 ], [ -72.491122, 42.772465, 0.0 ], [ -72.495343, 42.773286, 0.0 ], [ -72.497949, 42.772918, 0.0 ], [ -72.498786, 42.771981, 0.0 ], [ -72.499249, 42.769054, 0.0 ], [ -72.50069, 42.767657, 0.0 ], [ -72.507985, 42.764414, 0.0 ], [ -72.510871, 42.763752, 0.0 ], [ -72.513105, 42.763822, 0.0 ], [ -72.516082, 42.765949, 0.0 ], [ -72.516731, 42.76867, 0.0 ], [ -72.514836, 42.771436, 0.0 ], [ -72.510154, 42.773221, 0.0 ], [ -72.508372, 42.77461, 0.0 ], [ -72.508048, 42.776885, 0.0 ], [ -72.508858, 42.779919, 0.0 ], [ -72.511746, 42.784114, 0.0 ], [ -72.511753056352504, 42.7841216667994, 0.0 ], [ -72.515838, 42.78856, 0.0 ], [ -72.518354, 42.790651, 0.0 ], [ -72.525930308158294, 42.795707934293198, 0.0 ], [ -72.5396, 42.804832, 0.0 ], [ -72.54146, 42.808948, 0.0 ], [ -72.542616, 42.816702, 0.0 ], [ -72.543815, 42.819001, 0.0 ], [ -72.544773, 42.820468, 0.0 ], [ -72.545369100060199, 42.824001356495202, 0.0 ], [ -72.545669, 42.825779, 0.0 ], [ -72.546050090642396, 42.827814628935997, 0.0 ], [ -72.547244, 42.834192, 0.0 ], [ -72.547402, 42.837587, 0.0 ], [ -72.54855, 42.842021, 0.0 ], [ -72.553426, 42.846709, 0.0 ], [ -72.556292733191299, 42.851443123642198, 0.0 ], [ -72.556576633910197, 42.851911957334003, 0.0 ], [ -72.557247, 42.853019, 0.0 ], [ -72.556270395012007, 42.855292562325303, 0.0 ], [ -72.555057030600906, 42.858117306869602, 0.0 ], [ -72.554232, 42.860038, 0.0 ], [ -72.555132, 42.865731, 0.0 ], [ -72.556112, 42.866252, 0.0 ], [ -72.556177362185096, 42.8666992824039, 0.0 ], [ -72.556214, 42.86695, 0.0 ], [ -72.555131, 42.871058, 0.0 ], [ -72.555415, 42.875428, 0.0 ], [ -72.552834, 42.884968, 0.0 ], [ -72.552025, 42.885631, 0.0 ], [ -72.546491, 42.88714, 0.0 ], [ -72.540708, 42.889379, 0.0 ], [ -72.537287, 42.89187, 0.0 ], [ -72.532777, 42.896076, 0.0 ], [ -72.532750313495498, 42.896114234334398, 0.0 ], [ -72.531469, 42.89795, 0.0 ], [ -72.531588, 42.907164, 0.0 ], [ -72.530218, 42.911576, 0.0 ], [ -72.529191, 42.912719, 0.0 ], [ -72.525271, 42.914363, 0.0 ], [ -72.52443, 42.915575, 0.0 ], [ -72.524242, 42.918501, 0.0 ], [ -72.527097, 42.928584, 0.0 ], [ -72.526498144831606, 42.934271927984298, 0.0 ], [ -72.526346, 42.935717, 0.0 ], [ -72.526624, 42.939901, 0.0 ], [ -72.527431, 42.943148, 0.0 ], [ -72.52855, 42.94532, 0.0 ], [ -72.529763, 42.94612, 0.0 ], [ -72.531693, 42.94651, 0.0 ], [ -72.533901, 42.948591, 0.0 ], [ -72.534554, 42.949894, 0.0 ], [ -72.534117, 42.952133, 0.0 ], [ -72.532186, 42.954945, 0.0 ], [ -72.520903557428099, 42.961687087340401, 0.0 ], [ -72.518422, 42.96317, 0.0 ], [ -72.507901, 42.964171, 0.0 ], [ -72.504226, 42.965815, 0.0 ], [ -72.492597, 42.967648, 0.0 ], [ -72.486872, 42.971789, 0.0 ], [ -72.481706, 42.973985, 0.0 ], [ -72.479245, 42.973597, 0.0 ], [ -72.476722, 42.971746, 0.0 ], [ -72.473827, 42.972045, 0.0 ], [ -72.465985, 42.97847, 0.0 ], [ -72.461627, 42.982906, 0.0 ], [ -72.461597, 42.984049, 0.0 ], [ -72.464026, 42.986107, 0.0 ], [ -72.465335, 42.989558, 0.0 ], [ -72.464714, 42.993582, 0.0 ], [ -72.46294, 42.996943, 0.0 ], [ -72.459951, 43.00008, 0.0 ], [ -72.456936, 43.001306, 0.0 ], [ -72.451797, 43.000577, 0.0 ], [ -72.448714, 43.001169, 0.0 ], [ -72.444977, 43.004416, 0.0 ], [ -72.443762, 43.006245, 0.0 ], [ -72.443825, 43.008965, 0.0 ], [ -72.444635, 43.010566, 0.0 ], [ -72.452984, 43.015731, 0.0 ], [ -72.457035, 43.017285, 0.0 ], [ -72.458998, 43.019388, 0.0 ], [ -72.459628533285198, 43.020532940110698, 0.0 ], [ -72.459653297903998, 43.020577908403503, 0.0 ], [ -72.462397, 43.02556, 0.0 ], [ -72.46299, 43.028531, 0.0 ], [ -72.460905, 43.035961, 0.0 ], [ -72.460252, 43.040671, 0.0 ], [ -72.462248, 43.044214, 0.0 ], [ -72.465896, 43.047505, 0.0 ], [ -72.466832, 43.049197, 0.0 ], [ -72.467363, 43.052648, 0.0 ], [ -72.466491, 43.054729, 0.0 ], [ -72.463812, 43.057404, 0.0 ], [ -72.461465633714894, 43.058972110977003, 0.0 ], [ -72.45471, 43.063487, 0.0 ], [ -72.450703673736598, 43.066801025669101, 0.0 ], [ -72.445202, 43.071352, 0.0 ], [ -72.43987, 43.077043, 0.0 ], [ -72.43619, 43.08173, 0.0 ], [ -72.435316, 43.083536, 0.0 ], [ -72.435276853503694, 43.084502448699901, 0.0 ], [ -72.435191, 43.086622, 0.0 ], [ -72.439214, 43.094852, 0.0 ], [ -72.443051, 43.100841, 0.0 ], [ -72.442427, 43.10363, 0.0 ], [ -72.440587, 43.106145, 0.0 ], [ -72.434845, 43.109917, 0.0 ], [ -72.433129, 43.112637, 0.0 ], [ -72.432661, 43.114077, 0.0 ], [ -72.432972, 43.119655, 0.0 ], [ -72.435936, 43.123381, 0.0 ], [ -72.437950225694607, 43.125073333931901, 0.0 ], [ -72.438274729863295, 43.125345979354499, 0.0 ], [ -72.440967, 43.127608, 0.0 ], [ -72.442933, 43.130192, 0.0 ], [ -72.442746, 43.131152, 0.0 ], [ -72.44078, 43.131472, 0.0 ], [ -72.440624, 43.132203, 0.0 ], [ -72.440872397652299, 43.135376478902401, 0.0 ], [ -72.440905, 43.135793, 0.0 ], [ -72.441904, 43.136615, 0.0 ], [ -72.444214, 43.13737, 0.0 ], [ -72.448303, 43.137187, 0.0 ], [ -72.451986, 43.138924, 0.0 ], [ -72.45689, 43.146558, 0.0 ], [ -72.45714, 43.148493, 0.0 ], [ -72.456537, 43.149528, 0.0 ], [ -72.452801, 43.151977, 0.0 ], [ -72.451802, 43.153486, 0.0 ], [ -72.451553, 43.155155, 0.0 ], [ -72.452093744289201, 43.161342419572598, 0.0 ], [ -72.4521, 43.161414, 0.0 ], [ -72.451868, 43.170174, 0.0 ], [ -72.452556, 43.172117, 0.0 ], [ -72.451430916722003, 43.172977426991999, 0.0 ], [ -72.444904, 43.177969, 0.0 ], [ -72.443405, 43.179729, 0.0 ], [ -72.443749, 43.182221, 0.0 ], [ -72.449435, 43.18917, 0.0 ], [ -72.45028, 43.192485, 0.0 ], [ -72.438969, 43.201035, 0.0 ], [ -72.437719, 43.20275, 0.0 ], [ -72.438594, 43.209013, 0.0 ], [ -72.440563, 43.215254, 0.0 ], [ -72.4405, 43.219049, 0.0 ], [ -72.437656, 43.225266, 0.0 ], [ -72.435478063405895, 43.228793028352698, 0.0 ], [ -72.435104878919702, 43.229397376646098, 0.0 ], [ -72.434466, 43.230432, 0.0 ], [ -72.433773688734505, 43.233083499028503, 0.0 ], [ -72.433684, 43.233427, 0.0 ], [ -72.433688684947995, 43.233440482434801, 0.0 ], [ -72.434216, 43.234958, 0.0 ], [ -72.436654, 43.238319, 0.0 ], [ -72.438937, 43.24424, 0.0 ], [ -72.438693, 43.252905, 0.0 ], [ -72.436378, 43.257454, 0.0 ], [ -72.435221, 43.258483, 0.0 ], [ -72.427711061083698, 43.261213736697897, 0.0 ], [ -72.4276791218808, 43.261225350314803, 0.0 ], [ -72.421583, 43.263442, 0.0 ], [ -72.41545, 43.271374, 0.0 ], [ -72.407842, 43.282892, 0.0 ], [ -72.401666, 43.303395, 0.0 ], [ -72.395462, 43.312994, 0.0 ], [ -72.395805, 43.314617, 0.0 ], [ -72.397619, 43.317064, 0.0 ], [ -72.402532, 43.32038, 0.0 ], [ -72.408696, 43.327674, 0.0 ], [ -72.410197, 43.330395, 0.0 ], [ -72.410353, 43.331675, 0.0 ], [ -72.409037, 43.334395, 0.0 ], [ -72.406699128666503, 43.337697504440897, 0.0 ], [ -72.406624534675899, 43.3378028767861, 0.0 ], [ -72.400981, 43.345775, 0.0 ], [ -72.399289, 43.347581, 0.0 ], [ -72.395403, 43.350414, 0.0 ], [ -72.39092, 43.354984, 0.0 ], [ -72.390286366897001, 43.356490138905698, 0.0 ], [ -72.390103, 43.356926, 0.0 ], [ -72.39217, 43.357865, 0.0 ], [ -72.400441, 43.357685, 0.0 ], [ -72.403949, 43.358098, 0.0 ], [ -72.413377, 43.362741, 0.0 ], [ -72.414692, 43.364273, 0.0 ], [ -72.415099, 43.365896, 0.0 ], [ -72.415978, 43.376531, 0.0 ], [ -72.415381, 43.380211, 0.0 ], [ -72.413154, 43.384302, 0.0 ], [ -72.411109704396196, 43.385774224020501, 0.0 ], [ -72.405253, 43.389992, 0.0 ], [ -72.403811, 43.391935, 0.0 ], [ -72.401624713554, 43.403259726150402, 0.0 ], [ -72.401542269708202, 43.4036867763106, 0.0 ], [ -72.400131, 43.410997, 0.0 ], [ -72.399972, 43.415249, 0.0 ], [ -72.396456807363506, 43.428877304785402, 0.0 ], [ -72.396439728308394, 43.428943519810403, 0.0 ], [ -72.395916, 43.430974, 0.0 ], [ -72.395659, 43.438541, 0.0 ], [ -72.393992, 43.444666, 0.0 ], [ -72.391196, 43.449305, 0.0 ], [ -72.390567, 43.451225, 0.0 ], [ -72.392628, 43.465078, 0.0 ], [ -72.3925, 43.467364, 0.0 ], [ -72.391526, 43.46878, 0.0 ], [ -72.390466449594697, 43.469595560120098, 0.0 ], [ -72.384719535530095, 43.474019090988499, 0.0 ], [ -72.384491, 43.474195, 0.0 ], [ -72.382951, 43.476, 0.0 ], [ -72.382170999983799, 43.478598517969203, 0.0 ], [ -72.381723, 43.480091, 0.0 ], [ -72.380462839060897, 43.488298102209001, 0.0 ], [ -72.380428, 43.488525, 0.0 ], [ -72.380362, 43.491634, 0.0 ], [ -72.380894, 43.493394, 0.0 ], [ -72.384773, 43.500259, 0.0 ], [ -72.389556, 43.503899, 0.0 ], [ -72.396305, 43.508062, 0.0 ], [ -72.398376, 43.510829, 0.0 ], [ -72.398563, 43.513435, 0.0 ], [ -72.396396011821395, 43.5190740762499, 0.0 ], [ -72.396119311459699, 43.519794123758103, 0.0 ], [ -72.395825, 43.52056, 0.0 ], [ -72.395949, 43.52388, 0.0 ], [ -72.394218, 43.5274, 0.0 ], [ -72.3907, 43.527261, 0.0 ], [ -72.389097, 43.528266, 0.0 ], [ -72.38331, 43.53519, 0.0 ], [ -72.380383, 43.54088, 0.0 ], [ -72.381187, 43.554915, 0.0 ], [ -72.382783, 43.562459, 0.0 ], [ -72.382625, 43.564127, 0.0 ], [ -72.37944, 43.574069, 0.0 ], [ -72.373126, 43.579419, 0.0 ], [ -72.364092269098407, 43.583570985114697, 0.0 ], [ -72.363916, 43.583652, 0.0 ], [ -72.349926, 43.587726, 0.0 ], [ -72.346179186923607, 43.590211488519301, 0.0 ], [ -72.332382, 43.599364, 0.0 ], [ -72.329677284081598, 43.600183640558903, 0.0 ], [ -72.32962, 43.600201, 0.0 ], [ -72.328514, 43.600805, 0.0 ], [ -72.327665, 43.602679, 0.0 ], [ -72.3281646788123, 43.606345073825402, 0.0 ], [ -72.328232, 43.606839, 0.0 ], [ -72.329522, 43.608393, 0.0 ], [ -72.3327, 43.610313, 0.0 ], [ -72.334745, 43.614519, 0.0 ], [ -72.334401, 43.61925, 0.0 ], [ -72.33236, 43.62507, 0.0 ], [ -72.328966, 43.626991, 0.0 ], [ -72.327236, 43.630534, 0.0 ], [ -72.327362, 43.631174, 0.0 ], [ -72.329471, 43.632843, 0.0 ], [ -72.32966, 43.634648, 0.0 ], [ -72.329502017119196, 43.6349187010035, 0.0 ], [ -72.329498211532396, 43.634925221812402, 0.0 ], [ -72.329126, 43.635563, 0.0 ], [ -72.327395, 43.636774, 0.0 ], [ -72.322517, 43.638901, 0.0 ], [ -72.315247, 43.641164, 0.0 ], [ -72.314083, 43.64281, 0.0 ], [ -72.313863, 43.646558, 0.0 ], [ -72.314747639278906, 43.648671222758999, 0.0 ], [ -72.315059, 43.649415, 0.0 ], [ -72.31402, 43.656158, 0.0 ], [ -72.312887, 43.658444, 0.0 ], [ -72.310841, 43.659724, 0.0 ], [ -72.309120825673801, 43.662034869297003, 0.0 ], [ -72.305771, 43.666535, 0.0 ], [ -72.304322, 43.669507, 0.0 ], [ -72.303408, 43.674055, 0.0 ], [ -72.303092, 43.678078, 0.0 ], [ -72.304351, 43.681141, 0.0 ], [ -72.30602, 43.683061, 0.0 ], [ -72.305996093794505, 43.683498786693903, 0.0 ], [ -72.305504413920602, 43.6925027629444, 0.0 ], [ -72.3055042006241, 43.692506668975597, 0.0 ], [ -72.305326, 43.69577, 0.0 ], [ -72.302867, 43.702718, 0.0 ], [ -72.301232218153899, 43.704709612401302, 0.0 ], [ -72.299715, 43.706558, 0.0 ], [ -72.294894, 43.709003, 0.0 ], [ -72.292215, 43.711333, 0.0 ], [ -72.28695, 43.717252, 0.0 ], [ -72.284805, 43.72036, 0.0 ], [ -72.282522681978506, 43.722330170687997, 0.0 ], [ -72.279855, 43.724633, 0.0 ], [ -72.276072, 43.727054, 0.0 ], [ -72.27118, 43.734138, 0.0 ], [ -72.264245, 43.734158, 0.0 ], [ -72.261996713103997, 43.735205527945801, 0.0 ], [ -72.245068, 43.743093, 0.0 ], [ -72.232713, 43.748286, 0.0 ], [ -72.223645, 43.757842, 0.0 ], [ -72.222069, 43.759831, 0.0 ], [ -72.220116, 43.763626, 0.0 ], [ -72.218099, 43.765729, 0.0 ], [ -72.216491, 43.766507, 0.0 ], [ -72.210815, 43.767696, 0.0 ], [ -72.207535, 43.769274, 0.0 ], [ -72.205204799080306, 43.770944187253797, 0.0 ], [ -72.205015096065694, 43.771080158171301, 0.0 ], [ -72.20476, 43.771263, 0.0 ], [ -72.205521, 43.782279, 0.0 ], [ -72.2053, 43.784474, 0.0 ], [ -72.20407, 43.786097, 0.0 ], [ -72.197036, 43.790006, 0.0 ], [ -72.195552, 43.791492, 0.0 ], [ -72.193184, 43.794697, 0.0 ], [ -72.190754, 43.800807, 0.0 ], [ -72.184847, 43.804698, 0.0 ], [ -72.183333, 43.808177, 0.0 ], [ -72.184052434025304, 43.811851946778098, 0.0 ], [ -72.184184, 43.812524, 0.0 ], [ -72.186424, 43.815857, 0.0 ], [ -72.18857, 43.821153, 0.0 ], [ -72.188255, 43.822888, 0.0 ], [ -72.186238, 43.826931, 0.0 ], [ -72.183337, 43.830699, 0.0 ], [ -72.182203, 43.834032, 0.0 ], [ -72.182864, 43.845109, 0.0 ], [ -72.187379, 43.853612, 0.0 ], [ -72.187916, 43.856126, 0.0 ], [ -72.184788, 43.863393, 0.0 ], [ -72.182956, 43.865335, 0.0 ], [ -72.179386, 43.866181, 0.0 ], [ -72.174774, 43.866386, 0.0 ], [ -72.167476, 43.86915, 0.0 ], [ -72.168646413455093, 43.8713216655905, 0.0 ], [ -72.169327336905695, 43.872585097774198, 0.0 ], [ -72.16978, 43.873425, 0.0 ], [ -72.171904, 43.876149, 0.0 ], [ -72.173576, 43.87967, 0.0 ], [ -72.172785, 43.883716, 0.0 ], [ -72.171648, 43.885361, 0.0 ], [ -72.170604, 43.886388, 0.0 ], [ -72.169510171604799, 43.886299005086201, 0.0 ], [ -72.167224, 43.886113, 0.0 ], [ -72.160819, 43.887223, 0.0 ], [ -72.159216, 43.888313, 0.0 ], [ -72.158585, 43.892762, 0.0 ], [ -72.155724, 43.89712, 0.0 ], [ -72.151324, 43.901704, 0.0 ], [ -72.145041, 43.905288, 0.0 ], [ -72.135117, 43.910024, 0.0 ], [ -72.131501940818893, 43.912311616620997, 0.0 ], [ -72.121002, 43.918956, 0.0 ], [ -72.11919, 43.920952, 0.0 ], [ -72.118013, 43.923292, 0.0 ], [ -72.116767, 43.933923, 0.0 ], [ -72.116766, 43.935278, 0.0 ], [ -72.118985, 43.943225, 0.0 ], [ -72.118698, 43.94536, 0.0 ], [ -72.117839, 43.946828, 0.0 ], [ -72.115268, 43.947629, 0.0 ], [ -72.110872, 43.947654, 0.0 ], [ -72.105875, 43.94937, 0.0 ], [ -72.104421, 43.950536, 0.0 ], [ -72.098950209254994, 43.957335356815697, 0.0 ], [ -72.098927666232996, 43.957363374346897, 0.0 ], [ -72.098689, 43.95766, 0.0 ], [ -72.098955, 43.958879, 0.0 ], [ -72.100894, 43.960851, 0.0 ], [ -72.100543, 43.962478, 0.0 ], [ -72.098563, 43.963833, 0.0 ], [ -72.090357, 43.965409, 0.0 ], [ -72.090214, 43.965814, 0.0 ], [ -72.091104, 43.966443, 0.0 ], [ -72.096161, 43.968132, 0.0 ], [ -72.104972, 43.96995, 0.0 ], [ -72.107042, 43.969513, 0.0 ], [ -72.110945, 43.966959, 0.0 ], [ -72.114273, 43.967513, 0.0 ], [ -72.114726, 43.968332, 0.0 ], [ -72.114702, 43.969478, 0.0 ], [ -72.113078, 43.97279, 0.0 ], [ -72.11249, 43.975654, 0.0 ], [ -72.112307558332006, 43.977962856477099, 0.0 ], [ -72.111756, 43.984943, 0.0 ], [ -72.112813, 43.98802, 0.0 ], [ -72.116706, 43.991954, 0.0 ], [ -72.116985, 43.99448, 0.0 ], [ -72.109019, 44.000535, 0.0 ], [ -72.103765, 44.002837, 0.0 ], [ -72.103576, 44.004231, 0.0 ], [ -72.104941, 44.009395, 0.0 ], [ -72.105292, 44.012663, 0.0 ], [ -72.102475, 44.014882, 0.0 ], [ -72.098897, 44.015477, 0.0 ], [ -72.095247, 44.01358, 0.0 ], [ -72.093384, 44.01045, 0.0 ], [ -72.093257, 44.009376, 0.0 ], [ -72.09123, 44.009125, 0.0 ], [ -72.090059, 44.009903, 0.0 ], [ -72.089807, 44.011274, 0.0 ], [ -72.090504, 44.012736, 0.0 ], [ -72.095193, 44.016666, 0.0 ], [ -72.095669, 44.019683, 0.0 ], [ -72.0951, 44.021831, 0.0 ], [ -72.094056, 44.023179, 0.0 ], [ -72.09203, 44.024459, 0.0 ], [ -72.090478, 44.024299, 0.0 ], [ -72.084871, 44.021308, 0.0 ], [ -72.082432, 44.022154, 0.0 ], [ -72.081673, 44.023638, 0.0 ], [ -72.081864, 44.026952, 0.0 ], [ -72.081357, 44.028529, 0.0 ], [ -72.079996, 44.029764, 0.0 ], [ -72.079642363743702, 44.029917719531802, 0.0 ], [ -72.079309020300599, 44.0300626181306, 0.0 ], [ -72.075648, 44.031654, 0.0 ], [ -72.075004, 44.032789, 0.0 ], [ -72.075486, 44.034614, 0.0 ], [ -72.079397, 44.039531, 0.0 ], [ -72.079595, 44.041429, 0.0 ], [ -72.078989, 44.042886, 0.0 ], [ -72.077372, 44.044591, 0.0 ], [ -72.074881, 44.045892, 0.0 ], [ -72.066422, 44.049299, 0.0 ], [ -72.06215, 44.049931, 0.0 ], [ -72.062713, 44.051618, 0.0 ], [ -72.068405, 44.054021, 0.0 ], [ -72.06915, 44.054817, 0.0 ], [ -72.067626798281395, 44.058003046767702, 0.0 ], [ -72.067612, 44.058034, 0.0 ], [ -72.065415, 44.058344, 0.0 ], [ -72.058863, 44.057921, 0.0 ], [ -72.057173, 44.058646, 0.0 ], [ -72.056341, 44.059582, 0.0 ], [ -72.053482, 44.06473, 0.0 ], [ -72.048289, 44.069136, 0.0 ], [ -72.047602, 44.070479, 0.0 ], [ -72.048475, 44.072479, 0.0 ], [ -72.050621, 44.074394, 0.0 ], [ -72.05226, 44.075469, 0.0 ], [ -72.052494, 44.076716, 0.0 ], [ -72.051141, 44.077256, 0.0 ], [ -72.046369, 44.078231, 0.0 ], [ -72.043175, 44.079466, 0.0 ], [ -72.041247, 44.079129, 0.0 ], [ -72.040068, 44.078017, 0.0 ], [ -72.03851, 44.076863, 0.0 ], [ -72.036163, 44.07664, 0.0 ], [ -72.033973, 44.077002, 0.0 ], [ -72.032729, 44.077388, 0.0 ], [ -72.031503079601507, 44.078118906951602, 0.0 ], [ -72.03104, 44.078395, 0.0 ], [ -72.030410949931294, 44.079339308261702, 0.0 ], [ -72.030182, 44.079683, 0.0 ], [ -72.031925, 44.08214, 0.0 ], [ -72.037243, 44.083673, 0.0 ], [ -72.041122, 44.085248, 0.0 ], [ -72.043949, 44.086691, 0.0 ], [ -72.044131, 44.087635, 0.0 ], [ -72.043377, 44.088209, 0.0 ], [ -72.040212, 44.088178, 0.0 ], [ -72.036153, 44.088515, 0.0 ], [ -72.033677, 44.089585, 0.0 ], [ -72.031726, 44.091272, 0.0 ], [ -72.031305, 44.092239, 0.0 ], [ -72.030133, 44.098305, 0.0 ], [ -72.030176, 44.099348, 0.0 ], [ -72.030479, 44.100224, 0.0 ], [ -72.03198, 44.101665, 0.0 ], [ -72.03569, 44.103151, 0.0 ], [ -72.03925, 44.103947, 0.0 ], [ -72.041338, 44.102987, 0.0 ], [ -72.043475, 44.100631, 0.0 ], [ -72.043495, 44.098005, 0.0 ], [ -72.044023, 44.09703, 0.0 ], [ -72.044909, 44.096402, 0.0 ], [ -72.048334, 44.096905, 0.0 ], [ -72.050997, 44.098848, 0.0 ], [ -72.052391, 44.101088, 0.0 ], [ -72.053061781615995, 44.103575665099498, 0.0 ], [ -72.054831, 44.110137, 0.0 ], [ -72.054675, 44.112147, 0.0 ], [ -72.052579394238705, 44.1191030098651, 0.0 ], [ -72.052342, 44.119891, 0.0 ], [ -72.04643, 44.123911, 0.0 ], [ -72.041948, 44.125653, 0.0 ], [ -72.040728, 44.125668, 0.0 ], [ -72.038839, 44.124628, 0.0 ], [ -72.037506, 44.124708, 0.0 ], [ -72.033703, 44.131541, 0.0 ], [ -72.034242, 44.132524, 0.0 ], [ -72.037859, 44.133782, 0.0 ], [ -72.041983, 44.137165, 0.0 ], [ -72.042345367187195, 44.142954266724402, 0.0 ], [ -72.042867, 44.151288, 0.0 ], [ -72.042708, 44.15227, 0.0 ], [ -72.041230755370805, 44.154086062204598, 0.0 ], [ -72.041073, 44.15428, 0.0 ], [ -72.039554070468, 44.155353850656397, 0.0 ], [ -72.039236457138898, 44.155578396479498, 0.0 ], [ -72.038551, 44.156063, 0.0 ], [ -72.040167, 44.157023, 0.0 ], [ -72.042381, 44.156581, 0.0 ], [ -72.042885466778301, 44.1567322502707, 0.0 ], [ -72.043505, 44.156918, 0.0 ], [ -72.044004, 44.158155, 0.0 ], [ -72.042387, 44.160817, 0.0 ], [ -72.042359, 44.161701, 0.0 ], [ -72.045111, 44.161749, 0.0 ], [ -72.046568, 44.161403, 0.0 ], [ -72.047593, 44.161801, 0.0 ], [ -72.048969, 44.165039, 0.0 ], [ -72.051523, 44.166219, 0.0 ], [ -72.053021, 44.167903, 0.0 ], [ -72.057496, 44.179444, 0.0 ], [ -72.061338, 44.184951, 0.0 ], [ -72.066166, 44.189773, 0.0 ], [ -72.064577, 44.196949, 0.0 ], [ -72.063561, 44.198457, 0.0 ], [ -72.060067, 44.200446, 0.0 ], [ -72.058987, 44.202114, 0.0 ], [ -72.058066, 44.206067, 0.0 ], [ -72.058605, 44.208215, 0.0 ], [ -72.053233, 44.216876, 0.0 ], [ -72.052942903517007, 44.217874318019398, 0.0 ], [ -72.052662, 44.218841, 0.0 ], [ -72.0539, 44.222703, 0.0 ], [ -72.053582, 44.22604, 0.0 ], [ -72.050656, 44.233581, 0.0 ], [ -72.047889, 44.238493, 0.0 ], [ -72.04846, 44.241212, 0.0 ], [ -72.050112, 44.244046, 0.0 ], [ -72.05399, 44.246926, 0.0 ], [ -72.059656388677894, 44.255820821453703, 0.0 ], [ -72.059782, 44.256018, 0.0 ], [ -72.061174, 44.263377, 0.0 ], [ -72.060378, 44.264951, 0.0 ], [ -72.059832, 44.264984, 0.0 ], [ -72.058969, 44.265911, 0.0 ], [ -72.058475, 44.267886, 0.0 ], [ -72.05874, 44.270005, 0.0 ], [ -72.060846, 44.269972, 0.0 ], [ -72.064544, 44.267997, 0.0 ], [ -72.066464, 44.268331, 0.0 ], [ -72.067774, 44.270976, 0.0 ], [ -72.065434, 44.277235, 0.0 ], [ -72.05888, 44.28624, 0.0 ], [ -72.057425466972106, 44.287361767462798, 0.0 ], [ -72.053355, 44.290501, 0.0 ], [ -72.053160162457004, 44.290541939917603, 0.0 ], [ -72.046302, 44.291983, 0.0 ], [ -72.039004, 44.296463, 0.0 ], [ -72.03703, 44.297834, 0.0 ], [ -72.0347382895973, 44.300433628855103, 0.0 ], [ -72.033465, 44.301878, 0.0 ], [ -72.032541, 44.303752, 0.0 ], [ -72.032317, 44.306677, 0.0 ], [ -72.032341, 44.315752, 0.0 ], [ -72.033806, 44.317349, 0.0 ], [ -72.033136, 44.320365, 0.0 ], [ -72.029061, 44.322398, 0.0 ], [ -72.025783, 44.322054, 0.0 ], [ -72.01913, 44.320383, 0.0 ], [ -72.014543, 44.321032, 0.0 ], [ -72.009977, 44.321951, 0.0 ], [ -72.002314, 44.324871, 0.0 ], [ -71.988306, 44.329768, 0.0 ], [ -71.986484, 44.331218, 0.0 ], [ -71.984645680707402, 44.336165806344397, 0.0 ], [ -71.984617, 44.336243, 0.0 ], [ -71.98112, 44.3375, 0.0 ], [ -71.963133, 44.336556, 0.0 ], [ -71.958119, 44.337544, 0.0 ], [ -71.945163, 44.337744, 0.0 ], [ -71.939049, 44.335844, 0.0 ], [ -71.935395, 44.33577, 0.0 ], [ -71.92911, 44.337577, 0.0 ], [ -71.925088, 44.342024, 0.0 ], [ -71.917434, 44.346535, 0.0 ], [ -71.906909, 44.348284, 0.0 ], [ -71.902332, 44.347499, 0.0 ], [ -71.881895, 44.340209, 0.0 ], [ -71.875863, 44.33737, 0.0 ], [ -71.872472, 44.336628, 0.0 ], [ -71.86991, 44.336962, 0.0 ], [ -71.861941, 44.340109, 0.0 ], [ -71.852628, 44.340873, 0.0 ], [ -71.845015554428997, 44.3439247578766, 0.0 ], [ -71.844319, 44.344204, 0.0 ], [ -71.837719551839101, 44.347744235710799, 0.0 ], [ -71.833261, 44.350136, 0.0 ], [ -71.826246, 44.352006, 0.0 ], [ -71.818838, 44.352939, 0.0 ], [ -71.814351, 44.354541, 0.0 ], [ -71.812902, 44.355547, 0.0 ], [ -71.812206, 44.357356, 0.0 ], [ -71.812473, 44.358477, 0.0 ], [ -71.814991, 44.363686, 0.0 ], [ -71.816157, 44.367559, 0.0 ], [ -71.81549, 44.368836, 0.0 ], [ -71.812832, 44.370448, 0.0 ], [ -71.812235, 44.371492, 0.0 ], [ -71.812424, 44.372532, 0.0 ], [ -71.815251, 44.374594, 0.0 ], [ -71.815773, 44.375464, 0.0 ], [ -71.814388, 44.381932, 0.0 ], [ -71.81313, 44.382801, 0.0 ], [ -71.808828, 44.383862, 0.0 ], [ -71.803461, 44.383335, 0.0 ], [ -71.800316, 44.384276, 0.0 ], [ -71.799899, 44.385951, 0.0 ], [ -71.803489, 44.390384, 0.0 ], [ -71.803488, 44.39189, 0.0 ], [ -71.802353, 44.39338, 0.0 ], [ -71.793924, 44.399271, 0.0 ], [ -71.790688, 44.40026, 0.0 ], [ -71.778613, 44.399799, 0.0 ], [ -71.775399, 44.401126, 0.0 ], [ -71.772801, 44.403097, 0.0 ], [ -71.767888, 44.405445, 0.0 ], [ -71.765688977432305, 44.406307687658, 0.0 ], [ -71.764977, 44.406587, 0.0 ], [ -71.761966, 44.407027, 0.0 ], [ -71.756091, 44.406401, 0.0 ], [ -71.75434, 44.405577, 0.0 ], [ -71.749533, 44.401955, 0.0 ], [ -71.745011, 44.401359, 0.0 ], [ -71.743104, 44.401657, 0.0 ], [ -71.742308, 44.402366, 0.0 ], [ -71.739921, 44.406778, 0.0 ], [ -71.738542654196195, 44.408194688277, 0.0 ], [ -71.737836, 44.408921, 0.0 ], [ -71.735923, 44.410062, 0.0 ], [ -71.73152, 44.411015, 0.0 ], [ -71.726199, 44.411385, 0.0 ], [ -71.715087, 44.41049, 0.0 ], [ -71.708041, 44.411977, 0.0 ], [ -71.699434, 44.416069, 0.0 ], [ -71.688813, 44.421741, 0.0 ], [ -71.683943, 44.423978, 0.0 ], [ -71.682701, 44.42734, 0.0 ], [ -71.680331, 44.427714, 0.0 ], [ -71.67806, 44.426552, 0.0 ], [ -71.676967, 44.426848, 0.0 ], [ -71.675993, 44.428712, 0.0 ], [ -71.677427, 44.431484, 0.0 ], [ -71.679282, 44.434337, 0.0 ], [ -71.679263, 44.435018, 0.0 ], [ -71.677384, 44.435702, 0.0 ], [ -71.668944, 44.436523, 0.0 ], [ -71.664191, 44.438351, 0.0 ], [ -71.66183, 44.440293, 0.0 ], [ -71.661129521455507, 44.441449824481197, 0.0 ], [ -71.659021, 44.444932, 0.0 ], [ -71.657313, 44.454003, 0.0 ], [ -71.653348, 44.460499, 0.0 ], [ -71.65232, 44.461117, 0.0 ], [ -71.645068, 44.460545, 0.0 ], [ -71.642851, 44.461734, 0.0 ], [ -71.640404, 44.464186, 0.0 ], [ -71.640847, 44.465935, 0.0 ], [ -71.646551, 44.468869, 0.0 ], [ -71.647864, 44.469976, 0.0 ], [ -71.648178, 44.472023, 0.0 ], [ -71.647693, 44.473125, 0.0 ], [ -71.64589, 44.475141, 0.0 ], [ -71.643111, 44.476649, 0.0 ], [ -71.639312, 44.477836, 0.0 ], [ -71.632795, 44.48389, 0.0 ], [ -71.631007, 44.484323, 0.0 ], [ -71.627655, 44.484207, 0.0 ], [ -71.625676, 44.483201, 0.0 ], [ -71.625019, 44.481784, 0.0 ], [ -71.62677, 44.480642, 0.0 ], [ -71.63317, 44.478914, 0.0 ], [ -71.635417, 44.476225, 0.0 ], [ -71.630017, 44.473547, 0.0 ], [ -71.624068, 44.475071, 0.0 ], [ -71.61985, 44.483011, 0.0 ], [ -71.617614, 44.485715, 0.0 ], [ -71.615923, 44.485944, 0.0 ], [ -71.609568, 44.484348, 0.0 ], [ -71.606463877756099, 44.484996333224402, 0.0 ], [ -71.59948, 44.486455, 0.0 ], [ -71.597917, 44.488375, 0.0 ], [ -71.596974879152697, 44.490717330047303, 0.0 ], [ -71.595484, 44.494424, 0.0 ], [ -71.595027, 44.498669, 0.0 ], [ -71.594303, 44.500749, 0.0 ], [ -71.591917, 44.500975, 0.0 ], [ -71.590256, 44.500057, 0.0 ], [ -71.589623, 44.499371, 0.0 ], [ -71.589622, 44.498525, 0.0 ], [ -71.586972, 44.498526, 0.0 ], [ -71.585881, 44.500057, 0.0 ], [ -71.586648, 44.502873, 0.0 ], [ -71.58387, 44.503217, 0.0 ], [ -71.579974, 44.501778, 0.0 ], [ -71.57876, 44.501915, 0.0 ], [ -71.577643, 44.502692, 0.0 ], [ -71.577068, 44.504041, 0.0 ], [ -71.577771, 44.504886, 0.0 ], [ -71.583233, 44.508268, 0.0 ], [ -71.584959, 44.510141, 0.0 ], [ -71.58595, 44.513432, 0.0 ], [ -71.586909, 44.514666, 0.0 ], [ -71.592117, 44.517773, 0.0 ], [ -71.593971, 44.519738, 0.0 ], [ -71.594259, 44.52168, 0.0 ], [ -71.592855, 44.523006, 0.0 ], [ -71.587104, 44.522436, 0.0 ], [ -71.585731, 44.522665, 0.0 ], [ -71.582505, 44.524403, 0.0 ], [ -71.576884, 44.530323, 0.0 ], [ -71.574456, 44.53366, 0.0 ], [ -71.573019, 44.536312, 0.0 ], [ -71.573083, 44.53798, 0.0 ], [ -71.575193, 44.540859, 0.0 ], [ -71.588076, 44.54785, 0.0 ], [ -71.596804, 44.553424, 0.0 ], [ -71.598116, 44.555412, 0.0 ], [ -71.597797, 44.557172, 0.0 ], [ -71.596137, 44.560898, 0.0 ], [ -71.593923, 44.563813, 0.0 ], [ -71.592091, 44.565118, 0.0 ], [ -71.59017, 44.565694, 0.0 ], [ -71.575519, 44.564775, 0.0 ], [ -71.569599, 44.562777, 0.0 ], [ -71.563399, 44.563218, 0.0 ], [ -71.559846, 44.564119, 0.0 ], [ -71.558565, 44.565572, 0.0 ], [ -71.558985, 44.568779, 0.0 ], [ -71.557972, 44.570451, 0.0 ], [ -71.557539028701797, 44.570546693995396, 0.0 ], [ -71.556497, 44.570777, 0.0 ], [ -71.552629, 44.569543, 0.0 ], [ -71.55167, 44.569657, 0.0 ], [ -71.549655, 44.570708, 0.0 ], [ -71.548728, 44.571873, 0.0 ], [ -71.548952, 44.573084, 0.0 ], [ -71.5533, 44.576924, 0.0 ], [ -71.553755, 44.578406, 0.0 ], [ -71.55442, 44.579519, 0.0 ], [ -71.55428, 44.580998, 0.0 ], [ -71.552495, 44.580838, 0.0 ], [ -71.550264, 44.578252, 0.0 ], [ -71.547942, 44.57734, 0.0 ], [ -71.545601, 44.577601, 0.0 ], [ -71.543686, 44.578627, 0.0 ], [ -71.538945, 44.581316, 0.0 ], [ -71.537156, 44.583137, 0.0 ], [ -71.536801, 44.585052, 0.0 ], [ -71.534632, 44.587407, 0.0 ], [ -71.534543, 44.588244, 0.0 ], [ -71.534750554646905, 44.588240355137899, 0.0 ], [ -71.535568, 44.588226, 0.0 ], [ -71.537775, 44.587682, 0.0 ], [ -71.539705, 44.588525, 0.0 ], [ -71.539683, 44.589864, 0.0 ], [ -71.537638, 44.591799, 0.0 ], [ -71.537335, 44.593334, 0.0 ], [ -71.537898, 44.594249, 0.0 ], [ -71.539633, 44.594313, 0.0 ], [ -71.544086, 44.591547, 0.0 ], [ -71.545777, 44.590891, 0.0 ], [ -71.547154, 44.591581, 0.0 ], [ -71.54684, 44.592412, 0.0 ], [ -71.545454, 44.593617, 0.0 ], [ -71.544871, 44.595299, 0.0 ], [ -71.545055, 44.596773, 0.0 ], [ -71.546087, 44.597377, 0.0 ], [ -71.547901, 44.596846, 0.0 ], [ -71.549687, 44.595224, 0.0 ], [ -71.553447, 44.593451, 0.0 ], [ -71.554872, 44.593778, 0.0 ], [ -71.553784, 44.595175, 0.0 ], [ -71.553525, 44.598332, 0.0 ], [ -71.550634, 44.599591, 0.0 ], [ -71.550331, 44.600896, 0.0 ], [ -71.551562, 44.601227, 0.0 ], [ -71.556858, 44.599749, 0.0 ], [ -71.560037, 44.599998, 0.0 ], [ -71.561483, 44.600779, 0.0 ], [ -71.561834, 44.602717, 0.0 ], [ -71.559004, 44.603074, 0.0 ], [ -71.555852, 44.603263, 0.0 ], [ -71.554236, 44.604407, 0.0 ], [ -71.553166, 44.606151, 0.0 ], [ -71.553926, 44.610689, 0.0 ], [ -71.55656, 44.616988, 0.0 ], [ -71.555805, 44.621769, 0.0 ], [ -71.555062, 44.624185, 0.0 ], [ -71.553981, 44.625119, 0.0 ], [ -71.550636, 44.622925, 0.0 ], [ -71.546902, 44.621852, 0.0 ], [ -71.545978, 44.623118, 0.0 ], [ -71.54722, 44.625096, 0.0 ], [ -71.549389, 44.625544, 0.0 ], [ -71.552478, 44.626536, 0.0 ], [ -71.556467, 44.627221, 0.0 ], [ -71.55735, 44.628448, 0.0 ], [ -71.555652, 44.629791, 0.0 ], [ -71.551722, 44.627598, 0.0 ], [ -71.546931, 44.62855, 0.0 ], [ -71.547226, 44.630355, 0.0 ], [ -71.54951, 44.630903, 0.0 ], [ -71.55214, 44.630082, 0.0 ], [ -71.555791, 44.632047, 0.0 ], [ -71.562124, 44.63658, 0.0 ], [ -71.562636, 44.637266, 0.0 ], [ -71.562636, 44.639505, 0.0 ], [ -71.558859, 44.640122, 0.0 ], [ -71.558026, 44.641791, 0.0 ], [ -71.558050084327306, 44.641905102262399, 0.0 ], [ -71.558571, 44.644373, 0.0 ], [ -71.561772, 44.650224, 0.0 ], [ -71.564411, 44.652827, 0.0 ], [ -71.566144, 44.653863, 0.0 ], [ -71.567645, 44.65356, 0.0 ], [ -71.568677, 44.651537, 0.0 ], [ -71.570235, 44.650483, 0.0 ], [ -71.572163, 44.650373, 0.0 ], [ -71.575145, 44.650612, 0.0 ], [ -71.576079, 44.652012, 0.0 ], [ -71.576312, 44.653179, 0.0 ], [ -71.57571, 44.654574, 0.0 ], [ -71.576013, 44.655691, 0.0 ], [ -71.582965, 44.656621, 0.0 ], [ -71.584848, 44.657816, 0.0 ], [ -71.586578, 44.659478, 0.0 ], [ -71.586578, 44.661111, 0.0 ], [ -71.586336331512499, 44.661548615909901, 0.0 ], [ -71.585246, 44.663523, 0.0 ], [ -71.584574, 44.665351, 0.0 ], [ -71.585645, 44.667644, 0.0 ], [ -71.585645, 44.669277, 0.0 ], [ -71.584478, 44.670211, 0.0 ], [ -71.582527, 44.672253, 0.0 ], [ -71.581983, 44.673533, 0.0 ], [ -71.583009, 44.674836, 0.0 ], [ -71.587365, 44.674926, 0.0 ], [ -71.590024, 44.675543, 0.0 ], [ -71.596304, 44.679083, 0.0 ], [ -71.5964, 44.679677, 0.0 ], [ -71.594671, 44.681643, 0.0 ], [ -71.594224, 44.683815, 0.0 ], [ -71.596437, 44.687059, 0.0 ], [ -71.598042, 44.692818, 0.0 ], [ -71.596858, 44.694921, 0.0 ], [ -71.59436, 44.695996, 0.0 ], [ -71.594136, 44.696932, 0.0 ], [ -71.598656, 44.698005, 0.0 ], [ -71.600162, 44.698919, 0.0 ], [ -71.600772, 44.699901, 0.0 ], [ -71.600772, 44.700815, 0.0 ], [ -71.599205, 44.703878, 0.0 ], [ -71.59975, 44.705318, 0.0 ], [ -71.604912, 44.70815, 0.0 ], [ -71.613094, 44.718933, 0.0 ], [ -71.618355, 44.72261, 0.0 ], [ -71.618516, 44.723913, 0.0 ], [ -71.617431, 44.72805, 0.0 ], [ -71.617656, 44.728918, 0.0 ], [ -71.619067, 44.729283, 0.0 ], [ -71.622593, 44.727773, 0.0 ], [ -71.623266, 44.727795, 0.0 ], [ -71.624922, 44.729032, 0.0 ], [ -71.625611, 44.730312, 0.0 ], [ -71.625638, 44.735065, 0.0 ], [ -71.625059, 44.737099, 0.0 ], [ -71.62518, 44.743978, 0.0 ], [ -71.626909, 44.747224, 0.0 ], [ -71.631109, 44.748689, 0.0 ], [ -71.631840844134999, 44.750091274776203, 0.0 ], [ -71.631967, 44.750333, 0.0 ], [ -71.631883, 44.752463, 0.0 ], [ -71.631255, 44.753253, 0.0 ], [ -71.623924, 44.755135, 0.0 ], [ -71.617941, 44.755883, 0.0 ], [ -71.614238, 44.758664, 0.0 ], [ -71.614267, 44.760622, 0.0 ], [ -71.611767, 44.764345, 0.0 ], [ -71.608234, 44.765658, 0.0 ], [ -71.604615, 44.767738, 0.0 ], [ -71.602229414466905, 44.771022732752101, 0.0 ], [ -71.601471, 44.772067, 0.0 ], [ -71.596035, 44.775422, 0.0 ], [ -71.595913, 44.776272, 0.0 ], [ -71.59668, 44.777416, 0.0 ], [ -71.596949, 44.778987, 0.0 ], [ -71.592966, 44.782776, 0.0 ], [ -71.584392, 44.785733, 0.0 ], [ -71.580005, 44.78548, 0.0 ], [ -71.578938, 44.78607, 0.0 ], [ -71.573247, 44.791882, 0.0 ], [ -71.571706, 44.79483, 0.0 ], [ -71.573129, 44.797947, 0.0 ], [ -71.570402, 44.805276, 0.0 ], [ -71.569098, 44.807044, 0.0 ], [ -71.569216, 44.808813, 0.0 ], [ -71.572864, 44.810383, 0.0 ], [ -71.575139, 44.813565, 0.0 ], [ -71.5755, 44.816058, 0.0 ], [ -71.574314, 44.818079, 0.0 ], [ -71.567907, 44.823832, 0.0 ], [ -71.565146, 44.824678, 0.0 ], [ -71.56476, 44.823901, 0.0 ], [ -71.563701, 44.823901, 0.0 ], [ -71.562256, 44.824632, 0.0 ], [ -71.562039502625694, 44.825094323908601, 0.0 ], [ -71.557672, 44.834421, 0.0 ], [ -71.553712, 44.836065, 0.0 ], [ -71.552218, 44.837775, 0.0 ], [ -71.552005, 44.839208, 0.0 ], [ -71.552654, 44.842049, 0.0 ], [ -71.555036, 44.845733, 0.0 ], [ -71.55675, 44.846862, 0.0 ], [ -71.556805, 44.848808, 0.0 ], [ -71.5556, 44.850547, 0.0 ], [ -71.553656, 44.852123, 0.0 ], [ -71.548345, 44.85553, 0.0 ], [ -71.548377, 44.857016, 0.0 ], [ -71.550304, 44.859552, 0.0 ], [ -71.550176, 44.861609, 0.0 ], [ -71.549533, 44.862592, 0.0 ], [ -71.545901, 44.866134, 0.0 ], [ -71.540116, 44.868625, 0.0 ], [ -71.534588, 44.869698, 0.0 ], [ -71.529154, 44.873559, 0.0 ], [ -71.528889, 44.876928, 0.0 ], [ -71.528342, 44.877819, 0.0 ], [ -71.526638, 44.879098, 0.0 ], [ -71.522393, 44.880811, 0.0 ], [ -71.512292, 44.890246, 0.0 ], [ -71.511712, 44.891571, 0.0 ], [ -71.51409, 44.893149, 0.0 ], [ -71.51435, 44.893964, 0.0 ], [ -71.51387, 44.894648, 0.0 ], [ -71.508642, 44.897703, 0.0 ], [ -71.504963272717504, 44.9006947611892, 0.0 ], [ -71.502473, 44.90272, 0.0 ], [ -71.501088, 44.904433, 0.0 ], [ -71.499528, 44.904774, 0.0 ], [ -71.497841, 44.904342, 0.0 ], [ -71.496609, 44.903603, 0.0 ], [ -71.495793, 44.903728, 0.0 ], [ -71.495378, 44.903621, 0.0 ], [ -71.49491, 44.904299, 0.0 ], [ -71.494835, 44.905919, 0.0 ], [ -71.495951, 44.90736, 0.0 ], [ -71.496017, 44.908898, 0.0 ], [ -71.495811172993101, 44.909088480950203, 0.0 ], [ -71.494716, 44.910102, 0.0 ], [ -71.493082, 44.910394, 0.0 ], [ -71.493268947812595, 44.911204328952898, 0.0 ], [ -71.493363, 44.911612, 0.0 ], [ -71.494403, 44.911837, 0.0 ], [ -71.495326, 44.911794, 0.0 ], [ -71.498926, 44.910917, 0.0 ], [ -71.499945, 44.911174, 0.0 ], [ -71.500548, 44.911956, 0.0 ], [ -71.500552, 44.913089, 0.0 ], [ -71.500788, 44.914535, 0.0 ], [ -71.504483, 44.919062, 0.0 ], [ -71.509207, 44.923429, 0.0 ], [ -71.515189, 44.927317, 0.0 ], [ -71.516305, 44.935175, 0.0 ], [ -71.519186, 44.936266, 0.0 ], [ -71.521844, 44.938148, 0.0 ], [ -71.521333, 44.938799, 0.0 ], [ -71.518777, 44.938799, 0.0 ], [ -71.516949, 44.939704, 0.0 ], [ -71.516144, 44.940846, 0.0 ], [ -71.515674613356495, 44.9427889409979, 0.0 ], [ -71.515498, 44.94352, 0.0 ], [ -71.516814, 44.947588, 0.0 ], [ -71.514843, 44.958741, 0.0 ], [ -71.516223, 44.964569, 0.0 ], [ -71.517674, 44.964383, 0.0 ], [ -71.518864, 44.963626, 0.0 ], [ -71.520216, 44.963487, 0.0 ], [ -71.523376, 44.96396, 0.0 ], [ -71.523563, 44.964607, 0.0 ], [ -71.521716, 44.965674, 0.0 ], [ -71.523092, 44.966315, 0.0 ], [ -71.527163, 44.973668, 0.0 ], [ -71.531605, 44.976023, 0.0 ], [ -71.533055084435304, 44.9779649726011, 0.0 ], [ -71.537784, 44.984298, 0.0 ], [ -71.54086, 44.983788, 0.0 ], [ -71.541121, 44.984894, 0.0 ], [ -71.539815261189105, 44.986076118568398, 0.0 ], [ -71.538417, 44.987342, 0.0 ], [ -71.538592, 44.988182, 0.0 ], [ -71.537964, 44.989026, 0.0 ], [ -71.535134, 44.989435, 0.0 ], [ -71.532749, 44.991066, 0.0 ], [ -71.533713, 44.991963, 0.0 ], [ -71.536831, 44.992771, 0.0 ], [ -71.536298, 44.994159, 0.0 ], [ -71.530091, 44.999656, 0.0 ], [ -71.529586074170595, 44.999877371422798, 0.0 ], [ -71.525016, 45.001881, 0.0 ], [ -71.520022, 45.002291, 0.0 ], [ -71.514609, 45.003957, 0.0 ], [ -71.513761064785896, 45.004479120879402, 0.0 ], [ -71.507767, 45.00817, 0.0 ], [ -71.505, 45.008151, 0.0 ], [ -71.501055, 45.006742, 0.0 ], [ -71.497412, 45.003878, 0.0 ], [ -71.488344197444505, 45.001168801755, 0.0 ], [ -71.487565, 45.000936, 0.0 ], [ -71.479611, 45.002905, 0.0 ], [ -71.477907, 45.007453, 0.0 ], [ -71.476168, 45.009054, 0.0 ], [ -71.473269, 45.010586, 0.0 ], [ -71.466247, 45.011959, 0.0 ], [ -71.464555, 45.013637, 0.0 ], [ -71.465049961356797, 45.013633098079197, 0.0 ], [ -71.501088, 45.013349, 0.0 ], [ -71.518802786163405, 45.0131125010221, 0.0 ], [ -71.556668051330703, 45.012606985661698, 0.0 ], [ -71.560562, 45.012555, 0.0 ], [ -71.60984, 45.012709, 0.0 ], [ -71.691898, 45.011419, 0.0 ], [ -71.698114995835297, 45.011420481138302, 0.0 ], [ -71.767452, 45.011437, 0.0 ], [ -71.897656540671704, 45.008219763574097, 0.0 ], [ -71.915009, 45.007791, 0.0 ], [ -71.947201, 45.008359, 0.0 ], [ -71.986705, 45.007872, 0.0 ], [ -72.023292, 45.006792, 0.0 ], [ -72.029739, 45.006782, 0.0 ], [ -72.052169, 45.006369, 0.0 ], [ -72.087702933866197, 45.005830638801903, 0.0 ], [ -72.088289278427794, 45.0058217553171, 0.0 ], [ -72.103058, 45.005598, 0.0 ], [ -72.109921681888395, 45.0056681326638, 0.0 ], [ -72.141934394724998, 45.005995236521798, 0.0 ], [ -72.160506, 45.006185, 0.0 ], [ -72.246725280823497, 45.004623314087397, 0.0 ], [ -72.270869, 45.004186, 0.0 ], [ -72.291866, 45.004496, 0.0 ], [ -72.310073, 45.003822, 0.0 ], [ -72.329243229914596, 45.004719531148702, 0.0 ], [ -72.348583, 45.005625, 0.0 ], [ -72.400844671315497, 45.006580709971502, 0.0 ], [ -72.401298, 45.006589, 0.0 ], [ -72.418125348400395, 45.007278126383497, 0.0 ], [ -72.433486547405096, 45.007907209900601, 0.0 ], [ -72.448865, 45.008537, 0.0 ], [ -72.481033, 45.00887, 0.0 ], [ -72.532503, 45.00786, 0.0 ], [ -72.554359932442395, 45.0082745618354, 0.0 ], [ -72.555912, 45.008304, 0.0 ], [ -72.582371, 45.011543, 0.0 ], [ -72.586440573763895, 45.012785887399303, 0.0 ], [ -72.586752, 45.012881, 0.0 ], [ -72.58988, 45.013237, 0.0 ], [ -72.67477, 45.015459, 0.0 ], [ -72.702624347842303, 45.0155714648904, 0.0 ], [ -72.777306, 45.015873, 0.0 ], [ -72.832617984451005, 45.016509281700898, 0.0 ], [ -72.845633, 45.016659, 0.0 ], [ -72.930599, 45.015152, 0.0 ], [ -72.936365, 45.014656, 0.0 ], [ -72.93644, 45.014267, 0.0 ], [ -72.968039, 45.014098, 0.0 ], [ -72.993341577073906, 45.014575601236501, 0.0 ], [ -73.014766, 45.01498, 0.0 ], [ -73.015539, 45.015072, 0.0 ], [ -73.048386, 45.01479, 0.0 ], [ -73.048418766561596, 45.014797528546097, 0.0 ], [ -73.052438, 45.015721, 0.0 ], [ -73.059685, 45.015869, 0.0 ], [ -73.065098, 45.014786, 0.0 ], [ -73.084969, 45.014751, 0.0 ], [ -73.085972, 45.015494, 0.0 ], [ -73.170150012700802, 45.014005718362803, 0.0 ], [ -73.191928100388907, 45.013620678054103, 0.0 ], [ -73.241061, 45.012752, 0.0 ], [ -73.249323, 45.012181, 0.0 ], [ -73.343124, 45.01084, 0.0 ], [ -73.3482238892326, 44.998901754197398, 0.0 ], [ -73.350188, 44.994304, 0.0 ], [ -73.353355420324107, 44.990258966762902, 0.0 ], [ -73.353429, 44.990165, 0.0 ], [ -73.354633, 44.987352, 0.0 ], [ -73.354112, 44.984062, 0.0 ], [ -73.353716755816393, 44.982960087586001, 0.0 ], [ -73.352886, 44.980644, 0.0 ], [ -73.350218, 44.976222, 0.0 ], [ -73.34474, 44.970468, 0.0 ], [ -73.338734, 44.965886, 0.0 ], [ -73.338243, 44.96475, 0.0 ], [ -73.337906, 44.960541, 0.0 ], [ -73.339603, 44.94337, 0.0 ], [ -73.338482, 44.924112, 0.0 ], [ -73.338979, 44.917681, 0.0 ], [ -73.339534200278607, 44.916885134626398, 0.0 ], [ -73.341106, 44.914632, 0.0 ], [ -73.342786608632196, 44.913802307163202, 0.0 ], [ -73.347837, 44.911309, 0.0 ], [ -73.353657, 44.907346, 0.0 ], [ -73.356218, 44.904492, 0.0 ], [ -73.35808, 44.901325, 0.0 ], [ -73.360327, 44.897236, 0.0 ], [ -73.362229, 44.891463, 0.0 ], [ -73.363056673497297, 44.8882495527549, 0.0 ], [ -73.366459, 44.87504, 0.0 ], [ -73.369103, 44.86668, 0.0 ], [ -73.371967, 44.862414, 0.0 ], [ -73.375709, 44.860745, 0.0 ], [ -73.379822, 44.857037, 0.0 ], [ -73.381397, 44.848805, 0.0 ], [ -73.381359, 44.845021, 0.0 ], [ -73.379452, 44.83801, 0.0 ], [ -73.378717, 44.837358, 0.0 ], [ -73.375345, 44.836307, 0.0 ], [ -73.371329, 44.830742, 0.0 ], [ -73.369647, 44.829136, 0.0 ], [ -73.368056621515095, 44.8280601203749, 0.0 ], [ -73.365678, 44.826451, 0.0 ], [ -73.35808, 44.82331, 0.0 ], [ -73.354945, 44.8215, 0.0 ], [ -73.353472, 44.820386, 0.0 ], [ -73.3502, 44.816394, 0.0 ], [ -73.341127734448705, 44.809144548527399, 0.0 ], [ -73.335443, 44.804602, 0.0 ], [ -73.33443, 44.802188, 0.0 ], [ -73.333933, 44.7992, 0.0 ], [ -73.333154, 44.788759, 0.0 ], [ -73.333771, 44.785192, 0.0 ], [ -73.335713, 44.782086, 0.0 ], [ -73.344254, 44.776282, 0.0 ], [ -73.347072, 44.772988, 0.0 ], [ -73.348694, 44.768246, 0.0 ], [ -73.352007215815902, 44.760674772751699, 0.0 ], [ -73.353919337092904, 44.756305270274801, 0.0 ], [ -73.354361, 44.755296, 0.0 ], [ -73.357671, 44.751018, 0.0 ], [ -73.363791, 44.745254, 0.0 ], [ -73.365561, 44.741786, 0.0 ], [ -73.365068, 44.725646, 0.0 ], [ -73.36556, 44.700297, 0.0 ], [ -73.365783750181507, 44.6988278681129, 0.0 ], [ -73.365977, 44.697559, 0.0 ], [ -73.364661, 44.696394, 0.0 ], [ -73.361323, 44.695369, 0.0 ], [ -73.361308, 44.694523, 0.0 ], [ -73.365297, 44.687546, 0.0 ], [ -73.370142, 44.684853, 0.0 ], [ -73.369685, 44.683758, 0.0 ], [ -73.367414, 44.681292, 0.0 ], [ -73.367209, 44.678513, 0.0 ], [ -73.370409015891894, 44.677702274324297, 0.0 ], [ -73.371089, 44.67753, 0.0 ], [ -73.371843, 44.676956, 0.0 ], [ -73.371943745943895, 44.676009576424697, 0.0 ], [ -73.37198, 44.675669, 0.0 ], [ -73.371800465581003, 44.675131137091, 0.0 ], [ -73.37101, 44.672763, 0.0 ], [ -73.37272, 44.668739, 0.0 ], [ -73.370065, 44.666071, 0.0 ], [ -73.369669, 44.663478, 0.0 ], [ -73.37059, 44.662518, 0.0 ], [ -73.373063, 44.662713, 0.0 ], [ -73.374134, 44.66234, 0.0 ], [ -73.375931, 44.660315, 0.0 ], [ -73.377209, 44.658142, 0.0 ], [ -73.379074, 44.656772, 0.0 ], [ -73.378968, 44.65518, 0.0 ], [ -73.378014, 44.653846, 0.0 ], [ -73.377973, 44.652918, 0.0 ], [ -73.380906, 44.648871, 0.0 ], [ -73.383974, 44.647605, 0.0 ], [ -73.384483, 44.646683, 0.0 ], [ -73.383157, 44.645764, 0.0 ], [ -73.378561, 44.641475, 0.0 ], [ -73.379748, 44.64036, 0.0 ], [ -73.386783, 44.636369, 0.0 ], [ -73.387169, 44.635542, 0.0 ], [ -73.386431229621806, 44.632929014833799, 0.0 ], [ -73.385899, 44.631044, 0.0 ], [ -73.386497, 44.626924, 0.0 ], [ -73.387346, 44.623672, 0.0 ], [ -73.389966, 44.61962, 0.0 ], [ -73.390231, 44.618353, 0.0 ], [ -73.38982, 44.61721, 0.0 ], [ -73.382932, 44.612184, 0.0 ], [ -73.380726, 44.605239, 0.0 ], [ -73.376849, 44.599598, 0.0 ], [ -73.376332, 44.597218, 0.0 ], [ -73.376806, 44.595455, 0.0 ], [ -73.377897, 44.593848, 0.0 ], [ -73.38164, 44.590583, 0.0 ], [ -73.381848, 44.589316, 0.0 ], [ -73.377794, 44.585128, 0.0 ], [ -73.375666, 44.582038, 0.0 ], [ -73.374389, 44.575455, 0.0 ], [ -73.367275, 44.567545, 0.0 ], [ -73.361607256928707, 44.563602736522398, 0.0 ], [ -73.361486017253796, 44.563518406880704, 0.0 ], [ -73.360088, 44.562546, 0.0 ], [ -73.358405621407499, 44.560186591476899, 0.0 ], [ -73.356788, 44.557918, 0.0 ], [ -73.355186, 44.556918, 0.0 ], [ -73.350027, 44.555392, 0.0 ], [ -73.342932, 44.551907, 0.0 ], [ -73.338751, 44.548046, 0.0 ], [ -73.33863, 44.546844, 0.0 ], [ -73.338630445073207, 44.5468424276295, 0.0 ], [ -73.3393, 44.544477, 0.0 ], [ -73.338995, 44.543302, 0.0 ], [ -73.331595, 44.535924, 0.0 ], [ -73.330893, 44.534269, 0.0 ], [ -73.330588, 44.531034, 0.0 ], [ -73.329458, 44.529203, 0.0 ], [ -73.328512, 44.528478, 0.0 ], [ -73.323935, 44.52712, 0.0 ], [ -73.322026, 44.525289, 0.0 ], [ -73.321189854678394, 44.5203251296318, 0.0 ], [ -73.321111, 44.519857, 0.0 ], [ -73.321416, 44.516454, 0.0 ], [ -73.320836, 44.513631, 0.0 ], [ -73.319265, 44.51196, 0.0 ], [ -73.312871, 44.507246, 0.0 ], [ -73.306707, 44.500334, 0.0 ], [ -73.304921, 44.492209, 0.0 ], [ -73.304418, 44.485739, 0.0 ], [ -73.299885, 44.476652, 0.0 ], [ -73.299342318885493, 44.473584073360897, 0.0 ], [ -73.298939, 44.471304, 0.0 ], [ -73.298725, 44.463957, 0.0 ], [ -73.300114, 44.454711, 0.0 ], [ -73.295216, 44.445884, 0.0 ], [ -73.293613, 44.440559, 0.0 ], [ -73.293805728833703, 44.438167410382199, 0.0 ], [ -73.293855, 44.437556, 0.0 ], [ -73.296031, 44.428339, 0.0 ], [ -73.310491, 44.402601, 0.0 ], [ -73.312418, 44.39471, 0.0 ], [ -73.315016, 44.388513, 0.0 ], [ -73.317029, 44.385978, 0.0 ], [ -73.320954, 44.382669, 0.0 ], [ -73.330369, 44.375987, 0.0 ], [ -73.333575, 44.372288, 0.0 ], [ -73.334939, 44.364441, 0.0 ], [ -73.334637, 44.356877, 0.0 ], [ -73.327335, 44.344369, 0.0 ], [ -73.326955101594805, 44.343365056524199, 0.0 ], [ -73.325127, 44.338534, 0.0 ], [ -73.323997, 44.333842, 0.0 ], [ -73.323835, 44.325418, 0.0 ], [ -73.323845509902995, 44.325326652659399, 0.0 ], [ -73.324545, 44.319247, 0.0 ], [ -73.324229, 44.310023, 0.0 ], [ -73.322267, 44.301523, 0.0 ], [ -73.316838, 44.287683, 0.0 ], [ -73.312299, 44.280025, 0.0 ], [ -73.311025, 44.27424, 0.0 ], [ -73.312852, 44.265346, 0.0 ], [ -73.313422040583106, 44.2641991074088, 0.0 ], [ -73.316618, 44.257769, 0.0 ], [ -73.316637704993795, 44.257718116061902, 0.0 ], [ -73.319802, 44.249547, 0.0 ], [ -73.323596, 44.243897, 0.0 ], [ -73.324681, 44.243614, 0.0 ], [ -73.329322, 44.244504, 0.0 ], [ -73.3305, 44.244254, 0.0 ], [ -73.334042, 44.240971, 0.0 ], [ -73.336778, 44.239557, 0.0 ], [ -73.34323, 44.238049, 0.0 ], [ -73.342312, 44.234531, 0.0 ], [ -73.345535510918893, 44.232754814426997, 0.0 ], [ -73.349889, 44.230356, 0.0 ], [ -73.350806, 44.225943, 0.0 ], [ -73.354747, 44.223599, 0.0 ], [ -73.355252, 44.22287, 0.0 ], [ -73.355276, 44.219554, 0.0 ], [ -73.357908, 44.216193, 0.0 ], [ -73.361476, 44.210374, 0.0 ], [ -73.362013, 44.208545, 0.0 ], [ -73.370678, 44.204546, 0.0 ], [ -73.372405, 44.202165, 0.0 ], [ -73.375289, 44.199868, 0.0 ], [ -73.377693, 44.199453, 0.0 ], [ -73.382252, 44.197178, 0.0 ], [ -73.383987, 44.193158, 0.0 ], [ -73.385326, 44.192597, 0.0 ], [ -73.388502, 44.192318, 0.0 ], [ -73.390583, 44.190886, 0.0 ], [ -73.390805, 44.189072, 0.0 ], [ -73.390377943835801, 44.1861593056909, 0.0 ], [ -73.389658, 44.181249, 0.0 ], [ -73.390383, 44.179486, 0.0 ], [ -73.395862, 44.175785, 0.0 ], [ -73.396892, 44.173846, 0.0 ], [ -73.397385, 44.171596, 0.0 ], [ -73.396664, 44.168831, 0.0 ], [ -73.395399, 44.166903, 0.0 ], [ -73.395532, 44.166122, 0.0 ], [ -73.398728, 44.162248, 0.0 ], [ -73.399634, 44.155326, 0.0 ], [ -73.400477387480706, 44.1524185083939, 0.0 ], [ -73.402381, 44.145856, 0.0 ], [ -73.403268, 44.144295, 0.0 ], [ -73.408118, 44.139373, 0.0 ], [ -73.41172, 44.137825, 0.0 ], [ -73.415761, 44.132826, 0.0 ], [ -73.41578, 44.131523, 0.0 ], [ -73.413751, 44.126068, 0.0 ], [ -73.411722, 44.11754, 0.0 ], [ -73.411316, 44.112686, 0.0 ], [ -73.411759267775906, 44.111510804361401, 0.0 ], [ -73.413111330590297, 44.1079262028884, 0.0 ], [ -73.416319, 44.099422, 0.0 ], [ -73.420559090689295, 44.092855766678603, 0.0 ], [ -73.429239, 44.079414, 0.0 ], [ -73.430207, 44.071716, 0.0 ], [ -73.431991, 44.06345, 0.0 ], [ -73.43774, 44.045006, 0.0 ] ] ] ] } }, -{ "type": "Feature", "properties": { "Name": "New Hampshire", "description": "
    \n\n\n\n\n\n\n\n\n
    Attributes<\/em><\/th><\/tr>
    STATEFP<\/th>\n33<\/td>\n<\/tr>
    STATENS<\/th>\n01779794<\/td>\n<\/tr>
    AFFGEOID<\/th>\n0400000US33<\/td>\n<\/tr>
    GEOID<\/th>\n33<\/td>\n<\/tr>
    STUSPS<\/th>\nNH<\/td>\n<\/tr>
    NAME<\/th>\nNew Hampshire<\/td>\n<\/tr>
    LSAD<\/th>\n00<\/td>\n<\/tr>
    ALAND<\/th>\n23187445452<\/td>\n<\/tr>
    AWATER<\/th>\n1028643155<\/td>\n<\/tr><\/table><\/center>", "timestamp": null, "begin": null, "end": null, "altitudeMode": "clampToGround", "tessellate": 1.0, "extrude": 0.0, "visibility": 1.0, "drawOrder": null, "icon": null, "timestamp_1": null, "begin_1": null, "end_1": null, "altitudeMode_1": null, "tessellate_1": null, "extrude_1": null, "visibility_1": null, "drawOrder_1": null, "icon_1": null, "STATEFP": "33", "STATENS": "01779794", "AFFGEOID": "0400000US33", "GEOID": "33", "STUSPS": "NH", "LSAD": "00", "ALAND": "23187445452", "AWATER": "1028643155" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -70.617025, 42.977182, 0.0 ], [ -70.616462, 42.977, 0.0 ], [ -70.615425, 42.977202, 0.0 ], [ -70.614855, 42.976447, 0.0 ], [ -70.614122, 42.975454, 0.0 ], [ -70.614355, 42.973921, 0.0 ], [ -70.613986, 42.973349, 0.0 ], [ -70.613409, 42.973408, 0.0 ], [ -70.61208, 42.974594, 0.0 ], [ -70.610621, 42.976407, 0.0 ], [ -70.612059, 42.978056, 0.0 ], [ -70.613471, 42.978016, 0.0 ], [ -70.614566, 42.978599, 0.0 ], [ -70.615289, 42.978353, 0.0 ], [ -70.617025, 42.977182, 0.0 ] ] ], [ [ [ -70.626782, 42.969493, 0.0 ], [ -70.626957, 42.969377, 0.0 ], [ -70.626666, 42.969067, 0.0 ], [ -70.626131, 42.967704, 0.0 ], [ -70.624454, 42.96722, 0.0 ], [ -70.624179, 42.967092, 0.0 ], [ -70.623549, 42.966883, 0.0 ], [ -70.622681, 42.9672, 0.0 ], [ -70.622459, 42.967479, 0.0 ], [ -70.622428, 42.967629, 0.0 ], [ -70.622316, 42.968122, 0.0 ], [ -70.62248, 42.968207, 0.0 ], [ -70.624607, 42.968931, 0.0 ], [ -70.624952, 42.969039, 0.0 ], [ -70.625713, 42.969477, 0.0 ], [ -70.626364, 42.969516, 0.0 ], [ -70.626782, 42.969493, 0.0 ] ] ], [ [ [ -70.62787, 42.976294, 0.0 ], [ -70.627963, 42.975779, 0.0 ], [ -70.627759, 42.975383, 0.0 ], [ -70.627247, 42.975638, 0.0 ], [ -70.626758, 42.975732, 0.0 ], [ -70.626048, 42.975715, 0.0 ], [ -70.625549, 42.975712, 0.0 ], [ -70.624918, 42.975877, 0.0 ], [ -70.624487, 42.976124, 0.0 ], [ -70.624464, 42.976324, 0.0 ], [ -70.624278, 42.976661, 0.0 ], [ -70.625495, 42.977559, 0.0 ], [ -70.625658, 42.978056, 0.0 ], [ -70.626852, 42.978155, 0.0 ], [ -70.62734, 42.977718, 0.0 ], [ -70.627584, 42.977095, 0.0 ], [ -70.62787, 42.976294, 0.0 ] ] ], [ [ [ -72.557247, 42.853019, 0.0 ], [ -72.556576633910197, 42.851911957334003, 0.0 ], [ -72.556292733191299, 42.851443123642198, 0.0 ], [ -72.553426, 42.846709, 0.0 ], [ -72.54855, 42.842021, 0.0 ], [ -72.547402, 42.837587, 0.0 ], [ -72.547244, 42.834192, 0.0 ], [ -72.546050090642396, 42.827814628935997, 0.0 ], [ -72.545669, 42.825779, 0.0 ], [ -72.545369100060199, 42.824001356495202, 0.0 ], [ -72.544773, 42.820468, 0.0 ], [ -72.543815, 42.819001, 0.0 ], [ -72.542616, 42.816702, 0.0 ], [ -72.54146, 42.808948, 0.0 ], [ -72.5396, 42.804832, 0.0 ], [ -72.525930308158294, 42.795707934293198, 0.0 ], [ -72.518354, 42.790651, 0.0 ], [ -72.515838, 42.78856, 0.0 ], [ -72.511753056352504, 42.7841216667994, 0.0 ], [ -72.511746, 42.784114, 0.0 ], [ -72.508858, 42.779919, 0.0 ], [ -72.508048, 42.776885, 0.0 ], [ -72.508372, 42.77461, 0.0 ], [ -72.510154, 42.773221, 0.0 ], [ -72.514836, 42.771436, 0.0 ], [ -72.516731, 42.76867, 0.0 ], [ -72.516082, 42.765949, 0.0 ], [ -72.513105, 42.763822, 0.0 ], [ -72.510871, 42.763752, 0.0 ], [ -72.507985, 42.764414, 0.0 ], [ -72.50069, 42.767657, 0.0 ], [ -72.499249, 42.769054, 0.0 ], [ -72.498786, 42.771981, 0.0 ], [ -72.497949, 42.772918, 0.0 ], [ -72.495343, 42.773286, 0.0 ], [ -72.491122, 42.772465, 0.0 ], [ -72.487767, 42.76938, 0.0 ], [ -72.4864, 42.76698, 0.0 ], [ -72.484878, 42.76554, 0.0 ], [ -72.479354, 42.763119, 0.0 ], [ -72.477615, 42.761245, 0.0 ], [ -72.475938, 42.757702, 0.0 ], [ -72.474723, 42.750729, 0.0 ], [ -72.473071, 42.745916, 0.0 ], [ -72.467827, 42.741209, 0.0 ], [ -72.461001, 42.733209, 0.0 ], [ -72.458488, 42.729094, 0.0 ], [ -72.458519, 42.726853, 0.0 ], [ -72.451195743325101, 42.726631390482702, 0.0 ], [ -72.437871926157499, 42.726228197637901, 0.0 ], [ -72.429220084710906, 42.725966383735702, 0.0 ], [ -72.412033237422307, 42.725446291500703, 0.0 ], [ -72.326282472605996, 42.722851382371601, 0.0 ], [ -72.285954, 42.721631, 0.0 ], [ -72.283032875650903, 42.721558708379099, 0.0 ], [ -72.203569553658198, 42.719592160002399, 0.0 ], [ -72.1453998112964, 42.718152582477202, 0.0 ], [ -72.124526, 42.717636, 0.0 ], [ -72.111058349948095, 42.7172274274578, 0.0 ], [ -72.089326931404997, 42.716568154244897, 0.0 ], [ -72.081368553485802, 42.7163267183088, 0.0 ], [ -72.078626996368499, 42.716243546786203, 0.0 ], [ -72.077672557328199, 42.7162145916542, 0.0 ], [ -72.015729214808104, 42.714335396039097, 0.0 ], [ -71.981429003221095, 42.713294819205601, 0.0 ], [ -71.981402, 42.713294, 0.0 ], [ -71.955866542370202, 42.712779319064303, 0.0 ], [ -71.929019404364794, 42.712238200502497, 0.0 ], [ -71.928811, 42.712234, 0.0 ], [ -71.898770029480005, 42.711421882219298, 0.0 ], [ -71.823802474552394, 42.709395233836197, 0.0 ], [ -71.805390068401493, 42.708897478864799, 0.0 ], [ -71.772556879175596, 42.708009877156002, 0.0 ], [ -71.745817, 42.707287, 0.0 ], [ -71.726856504954299, 42.706871991034802, 0.0 ], [ -71.701391660188307, 42.706314614297, 0.0 ], [ -71.672385089970405, 42.705679715964301, 0.0 ], [ -71.651873914722998, 42.705230765575898, 0.0 ], [ -71.636214, 42.704888, 0.0 ], [ -71.631814, 42.704788, 0.0 ], [ -71.630622319120306, 42.704759759623599, 0.0 ], [ -71.619789600454098, 42.704503046557903, 0.0 ], [ -71.567309278074603, 42.703259371275102, 0.0 ], [ -71.5426896188347, 42.702675936184001, 0.0 ], [ -71.542537731342094, 42.702672336764003, 0.0 ], [ -71.495680667810106, 42.701561921105402, 0.0 ], [ -71.488101021295805, 42.701382299132902, 0.0 ], [ -71.488035032965996, 42.701380735345701, 0.0 ], [ -71.467553246573004, 42.700895359297597, 0.0 ], [ -71.457687763627007, 42.700661567721298, 0.0 ], [ -71.451714344807201, 42.700520010028796, 0.0 ], [ -71.449174210284795, 42.700459814085299, 0.0 ], [ -71.4323540138531, 42.700061210158999, 0.0 ], [ -71.432335697233, 42.700060776092897, 0.0 ], [ -71.388194833244796, 42.699014728755301, 0.0 ], [ -71.386943026923205, 42.698985063530102, 0.0 ], [ -71.369725041666797, 42.698577032830002, 0.0 ], [ -71.367434834858997, 42.698522759657301, 0.0 ], [ -71.365186651846798, 42.698469482361801, 0.0 ], [ -71.351874, 42.698154, 0.0 ], [ -71.351797292683102, 42.698150587324498, 0.0 ], [ -71.351624238497195, 42.6981428882182, 0.0 ], [ -71.330330636992699, 42.697195545046199, 0.0 ], [ -71.330206, 42.69719, 0.0 ], [ -71.313492215809404, 42.697097148222497, 0.0 ], [ -71.313446645428996, 42.697096895060803, 0.0 ], [ -71.294205, 42.69699, 0.0 ], [ -71.288832514129695, 42.702007977768901, 0.0 ], [ -71.278929, 42.711258, 0.0 ], [ -71.275406885434194, 42.715932853077597, 0.0 ], [ -71.275386559144394, 42.7159598318759, 0.0 ], [ -71.267905, 42.72589, 0.0 ], [ -71.255605, 42.736389, 0.0 ], [ -71.255198770389399, 42.736638343984403, 0.0 ], [ -71.245539259393993, 42.742567357762297, 0.0 ], [ -71.245504, 42.742589, 0.0 ], [ -71.233404, 42.745489, 0.0 ], [ -71.223904, 42.746689, 0.0 ], [ -71.216506462121799, 42.745088776289002, 0.0 ], [ -71.213638703006893, 42.744468427166296, 0.0 ], [ -71.210439577984104, 42.743776397493697, 0.0 ], [ -71.208302, 42.743314, 0.0 ], [ -71.208227, 42.743294, 0.0 ], [ -71.208137, 42.743273, 0.0 ], [ -71.200404532177998, 42.741604297386203, 0.0 ], [ -71.197751124231701, 42.7410316795781, 0.0 ], [ -71.1937396072816, 42.740165975513797, 0.0 ], [ -71.181803, 42.73759, 0.0 ], [ -71.182888900248301, 42.750996235127403, 0.0 ], [ -71.184080459176599, 42.765706904166201, 0.0 ], [ -71.186104, 42.790689, 0.0 ], [ -71.184653925959495, 42.792039808224999, 0.0 ], [ -71.182278710330706, 42.794252426834902, 0.0 ], [ -71.174403, 42.801589, 0.0 ], [ -71.1743700929581, 42.801617486692997, 0.0 ], [ -71.167703, 42.807389, 0.0 ], [ -71.166271832786904, 42.808274960655702, 0.0 ], [ -71.165603, 42.808689, 0.0 ], [ -71.149703, 42.815489, 0.0 ], [ -71.147905816287405, 42.816105475808399, 0.0 ], [ -71.132503, 42.821389, 0.0 ], [ -71.115753530338395, 42.817686077803103, 0.0 ], [ -71.102111746473398, 42.814670193402101, 0.0 ], [ -71.099743964331594, 42.814146731272999, 0.0 ], [ -71.091179642333202, 42.812253356815802, 0.0 ], [ -71.065419322756597, 42.8065583431177, 0.0 ], [ -71.064201, 42.806289, 0.0 ], [ -71.053601, 42.833089, 0.0 ], [ -71.053565269831196, 42.833153431451898, 0.0 ], [ -71.047501, 42.844089, 0.0 ], [ -71.044401, 42.848789, 0.0 ], [ -71.034844624727995, 42.8562458685835, 0.0 ], [ -71.031201, 42.859089, 0.0 ], [ -71.004638745097196, 42.8631533316724, 0.0 ], [ -70.999474696861995, 42.863943490673499, 0.0 ], [ -70.997238514725694, 42.864285652357999, 0.0 ], [ -70.974724441921595, 42.867730565431401, 0.0 ], [ -70.9665, 42.868989, 0.0 ], [ -70.955331280021696, 42.873572429388197, 0.0 ], [ -70.949199, 42.876089, 0.0 ], [ -70.931699, 42.884189, 0.0 ], [ -70.930799, 42.884589, 0.0 ], [ -70.930564578650404, 42.884643501115001, 0.0 ], [ -70.927629, 42.885326, 0.0 ], [ -70.914899, 42.886589, 0.0 ], [ -70.914886, 42.886564, 0.0 ], [ -70.914599197429098, 42.886563195305499, 0.0 ], [ -70.914525235716695, 42.886562987787897, 0.0 ], [ -70.902768, 42.88653, 0.0 ], [ -70.886136, 42.88261, 0.0 ], [ -70.8834992324132, 42.8810866764316, 0.0 ], [ -70.883389666287499, 42.881023377465702, 0.0 ], [ -70.872553814497707, 42.874763247260198, 0.0 ], [ -70.848859671469199, 42.861074575308798, 0.0 ], [ -70.848625, 42.860939, 0.0 ], [ -70.837376, 42.864996, 0.0 ], [ -70.830795, 42.868918, 0.0 ], [ -70.824185838764905, 42.8710868827364, 0.0 ], [ -70.823271639464494, 42.871386889198597, 0.0 ], [ -70.821769, 42.87188, 0.0 ], [ -70.817296, 42.87229, 0.0 ], [ -70.816105, 42.877889, 0.0 ], [ -70.815744, 42.884529, 0.0 ], [ -70.813491, 42.887119, 0.0 ], [ -70.812447097584695, 42.889320746025099, 0.0 ], [ -70.810999, 42.892375, 0.0 ], [ -70.810905194050093, 42.896655855173101, 0.0 ], [ -70.810813293767595, 42.900849744793298, 0.0 ], [ -70.810751921970805, 42.903650460252699, 0.0 ], [ -70.810739696906595, 42.904208353748402, 0.0 ], [ -70.810681, 42.906887, 0.0 ], [ -70.810069, 42.909549, 0.0 ], [ -70.808712, 42.912787, 0.0 ], [ -70.808457719182499, 42.913135998334603, 0.0 ], [ -70.805971, 42.916549, 0.0 ], [ -70.802527, 42.91764, 0.0 ], [ -70.794748, 42.918125, 0.0 ], [ -70.798153, 42.920926, 0.0 ], [ -70.798636, 42.924288, 0.0 ], [ -70.798296398211605, 42.926640253833, 0.0 ], [ -70.797806, 42.930037, 0.0 ], [ -70.793996, 42.93989, 0.0 ], [ -70.793360360047501, 42.9404427804294, 0.0 ], [ -70.791165436270504, 42.942351582579398, 0.0 ], [ -70.790682, 42.942772, 0.0 ], [ -70.786158, 42.944039, 0.0 ], [ -70.786564, 42.947378, 0.0 ], [ -70.78513, 42.950792, 0.0 ], [ -70.783895928618094, 42.952093403273103, 0.0 ], [ -70.780383, 42.955798, 0.0 ], [ -70.779068, 42.956802, 0.0 ], [ -70.775597, 42.957213, 0.0 ], [ -70.771729, 42.961321, 0.0 ], [ -70.769673, 42.964419, 0.0 ], [ -70.771913, 42.966457, 0.0 ], [ -70.7718, 42.968064, 0.0 ], [ -70.770417438472194, 42.969501911431699, 0.0 ], [ -70.768303, 42.971701, 0.0 ], [ -70.764322, 42.973751, 0.0 ], [ -70.765222, 42.975349, 0.0 ], [ -70.764567, 42.980201, 0.0 ], [ -70.7619002538936, 42.985787975353801, 0.0 ], [ -70.761474, 42.986681, 0.0 ], [ -70.759175, 42.989475, 0.0 ], [ -70.756701, 42.991337, 0.0 ], [ -70.755138, 42.991789, 0.0 ], [ -70.752804, 42.991255, 0.0 ], [ -70.749969, 42.991689, 0.0 ], [ -70.749194, 42.992677, 0.0 ], [ -70.749024, 42.995467, 0.0 ], [ -70.745265671720304, 42.999344163755303, 0.0 ], [ -70.743015, 43.001666, 0.0 ], [ -70.745461, 43.004023, 0.0 ], [ -70.743793, 43.008027, 0.0 ], [ -70.74036, 43.011171, 0.0 ], [ -70.735477, 43.012201, 0.0 ], [ -70.734363, 43.013307, 0.0 ], [ -70.732684, 43.016916, 0.0 ], [ -70.732135, 43.022416, 0.0 ], [ -70.730426, 43.025392, 0.0 ], [ -70.728443, 43.027597, 0.0 ], [ -70.723178, 43.029298, 0.0 ], [ -70.718936, 43.03235, 0.0 ], [ -70.71355, 43.042077, 0.0 ], [ -70.712085, 43.043725, 0.0 ], [ -70.711830062352107, 43.050330202695399, 0.0 ], [ -70.711535, 43.057975, 0.0 ], [ -70.703799, 43.059574, 0.0 ], [ -70.703819, 43.059825, 0.0 ], [ -70.706114425747501, 43.073084419072103, 0.0 ], [ -70.706503, 43.075329, 0.0 ], [ -70.720301348449794, 43.074670000492098, 0.0 ], [ -70.737973679565002, 43.073825982271302, 0.0 ], [ -70.738078, 43.073821, 0.0 ], [ -70.740795933559497, 43.076359588375702, 0.0 ], [ -70.741897, 43.077388, 0.0 ], [ -70.752599257499597, 43.079307025482699, 0.0 ], [ -70.752644579219904, 43.079315152135997, 0.0 ], [ -70.756397, 43.079988, 0.0 ], [ -70.757597, 43.080888, 0.0 ], [ -70.760823400897905, 43.086026342170697, 0.0 ], [ -70.762997, 43.089488, 0.0 ], [ -70.766339585923404, 43.092633038210799, 0.0 ], [ -70.766398, 43.092688, 0.0 ], [ -70.767841465875406, 43.093499949554896, 0.0 ], [ -70.767998, 43.093588, 0.0 ], [ -70.779098, 43.095887, 0.0 ], [ -70.782696971361105, 43.099634987741197, 0.0 ], [ -70.78388, 43.100867, 0.0 ], [ -70.793906, 43.106712, 0.0 ], [ -70.798990272799003, 43.110268105680902, 0.0 ], [ -70.808708, 43.117065, 0.0 ], [ -70.819999155694703, 43.122585587193598, 0.0 ], [ -70.82, 43.122586, 0.0 ], [ -70.8268, 43.127086, 0.0 ], [ -70.8281, 43.129086, 0.0 ], [ -70.8293, 43.132486, 0.0 ], [ -70.83, 43.138386, 0.0 ], [ -70.8329, 43.143286, 0.0 ], [ -70.8338, 43.146886, 0.0 ], [ -70.829101, 43.157886, 0.0 ], [ -70.827801, 43.166385, 0.0 ], [ -70.828301, 43.168985, 0.0 ], [ -70.826201, 43.172085, 0.0 ], [ -70.825015171974499, 43.172731815286603, 0.0 ], [ -70.824001, 43.173285, 0.0 ], [ -70.823501, 43.174585, 0.0 ], [ -70.824801, 43.179685, 0.0 ], [ -70.8248158, 43.1797146, 0.0 ], [ -70.828301, 43.186685, 0.0 ], [ -70.827901, 43.188685, 0.0 ], [ -70.827201, 43.189485, 0.0 ], [ -70.823754, 43.191075, 0.0 ], [ -70.820702, 43.191663, 0.0 ], [ -70.819344, 43.193036, 0.0 ], [ -70.819146, 43.195157, 0.0 ], [ -70.819977217279899, 43.196841236980198, 0.0 ], [ -70.820366, 43.197629, 0.0 ], [ -70.820763, 43.19978, 0.0 ], [ -70.816903, 43.214604, 0.0 ], [ -70.816033, 43.21568, 0.0 ], [ -70.813119, 43.217252, 0.0 ], [ -70.8125190887678, 43.218523310871497, 0.0 ], [ -70.80967, 43.224561, 0.0 ], [ -70.80964, 43.225407, 0.0 ], [ -70.811167553347403, 43.227408978821899, 0.0 ], [ -70.811181483520599, 43.2274272354096, 0.0 ], [ -70.811852, 43.228306, 0.0 ], [ -70.814019, 43.229053, 0.0 ], [ -70.815453, 43.229023, 0.0 ], [ -70.816232, 43.234997, 0.0 ], [ -70.817773, 43.237408, 0.0 ], [ -70.8178247635243, 43.237691011442799, 0.0 ], [ -70.817865, 43.237911, 0.0 ], [ -70.822959, 43.240187, 0.0 ], [ -70.823309, 43.240343, 0.0 ], [ -70.825010695810207, 43.240909910011702, 0.0 ], [ -70.825071, 43.24093, 0.0 ], [ -70.826711, 43.241301, 0.0 ], [ -70.828022, 43.241597, 0.0 ], [ -70.83365, 43.242868, 0.0 ], [ -70.837274, 43.242321, 0.0 ], [ -70.838678, 43.242931, 0.0 ], [ -70.839300448539603, 43.244303505026501, 0.0 ], [ -70.841273, 43.248653, 0.0 ], [ -70.841059, 43.249699, 0.0 ], [ -70.839717, 43.250393, 0.0 ], [ -70.839213, 43.251224, 0.0 ], [ -70.843223236258197, 43.254261344507597, 0.0 ], [ -70.843302, 43.254321, 0.0 ], [ -70.852015, 43.256808, 0.0 ], [ -70.855082, 43.255191, 0.0 ], [ -70.858207, 43.256286, 0.0 ], [ -70.859607, 43.257342, 0.0 ], [ -70.859853, 43.259763, 0.0 ], [ -70.861384, 43.263143, 0.0 ], [ -70.863231, 43.265098, 0.0 ], [ -70.86323, 43.265109, 0.0 ], [ -70.863759137963996, 43.265258305294601, 0.0 ], [ -70.863790370724999, 43.265267118150398, 0.0 ], [ -70.8644163799853, 43.2654437573322, 0.0 ], [ -70.864518211399201, 43.265472490801102, 0.0 ], [ -70.864578948281206, 43.265489628747503, 0.0 ], [ -70.865888, 43.265859, 0.0 ], [ -70.868417, 43.26575, 0.0 ], [ -70.870289, 43.266314, 0.0 ], [ -70.871252, 43.267604, 0.0 ], [ -70.872748, 43.268638, 0.0 ], [ -70.872585, 43.270152, 0.0 ], [ -70.874298, 43.271872, 0.0 ], [ -70.876842, 43.27246, 0.0 ], [ -70.881642099678203, 43.2724827071766, 0.0 ], [ -70.881704, 43.272483, 0.0 ], [ -70.882804, 43.273183, 0.0 ], [ -70.883704, 43.277483, 0.0 ], [ -70.883913653214606, 43.277879843584699, 0.0 ], [ -70.886504, 43.282783, 0.0 ], [ -70.890204, 43.284182, 0.0 ], [ -70.896304, 43.285282, 0.0 ], [ -70.898667006645596, 43.287113411186297, 0.0 ], [ -70.89922, 43.287542, 0.0 ], [ -70.898264, 43.290746, 0.0 ], [ -70.896332, 43.29212, 0.0 ], [ -70.897332, 43.292738, 0.0 ], [ -70.9003, 43.291468, 0.0 ], [ -70.906005, 43.291682, 0.0 ], [ -70.907405, 43.293582, 0.0 ], [ -70.903905, 43.296882, 0.0 ], [ -70.90139, 43.298764, 0.0 ], [ -70.900386, 43.301358, 0.0 ], [ -70.90231, 43.304872, 0.0 ], [ -70.904485, 43.30529, 0.0 ], [ -70.906623275118406, 43.304917998712298, 0.0 ], [ -70.907405, 43.304782, 0.0 ], [ -70.909805, 43.306682, 0.0 ], [ -70.91246, 43.308289, 0.0 ], [ -70.911625, 43.309952, 0.0 ], [ -70.912004, 43.319821, 0.0 ], [ -70.915406, 43.319858, 0.0 ], [ -70.916421, 43.320279, 0.0 ], [ -70.923594152285304, 43.324556401781201, 0.0 ], [ -70.923949, 43.324768, 0.0 ], [ -70.930783, 43.329569, 0.0 ], [ -70.931641, 43.331019, 0.0 ], [ -70.932198, 43.33456, 0.0 ], [ -70.932735, 43.33676, 0.0 ], [ -70.93711, 43.337367, 0.0 ], [ -70.951525, 43.334672, 0.0 ], [ -70.953034, 43.333257, 0.0 ], [ -70.956528, 43.334691, 0.0 ], [ -70.957211799227693, 43.336274724187298, 0.0 ], [ -70.95786, 43.337776, 0.0 ], [ -70.960439, 43.341048, 0.0 ], [ -70.964028, 43.341888, 0.0 ], [ -70.966160531571006, 43.343146466772097, 0.0 ], [ -70.967229, 43.343777, 0.0 ], [ -70.970844813442596, 43.350498983806297, 0.0 ], [ -70.972999371432095, 43.354504418308103, 0.0 ], [ -70.973290391719999, 43.355045440043298, 0.0 ], [ -70.974863, 43.357969, 0.0 ], [ -70.974156, 43.362925, 0.0 ], [ -70.976408, 43.367272, 0.0 ], [ -70.981488431647307, 43.373414000468898, 0.0 ], [ -70.981859, 43.373862, 0.0 ], [ -70.984335, 43.376128, 0.0 ], [ -70.984305, 43.376814, 0.0 ], [ -70.985535623721304, 43.379192958748099, 0.0 ], [ -70.985965, 43.380023, 0.0 ], [ -70.985958, 43.38424, 0.0 ], [ -70.985205, 43.386745, 0.0 ], [ -70.987649, 43.389521, 0.0 ], [ -70.987729258699204, 43.391424277723203, 0.0 ], [ -70.987733, 43.391513, 0.0 ], [ -70.98739, 43.393457, 0.0 ], [ -70.982876, 43.394808, 0.0 ], [ -70.982565, 43.39778, 0.0 ], [ -70.982817, 43.399312, 0.0 ], [ -70.985767, 43.40162, 0.0 ], [ -70.986677, 43.403541, 0.0 ], [ -70.987249, 43.411863, 0.0 ], [ -70.986812, 43.414264, 0.0 ], [ -70.985929438857696, 43.415406774621701, 0.0 ], [ -70.9846139962644, 43.417110061045499, 0.0 ], [ -70.982898, 43.419332, 0.0 ], [ -70.978052, 43.421954, 0.0 ], [ -70.97462, 43.423022, 0.0 ], [ -70.971039, 43.425606, 0.0 ], [ -70.968359, 43.429283, 0.0 ], [ -70.969362, 43.432731, 0.0 ], [ -70.968782, 43.434891, 0.0 ], [ -70.966767350537793, 43.435796430772498, 0.0 ], [ -70.966633017652001, 43.435856803125503, 0.0 ], [ -70.96115, 43.438321, 0.0 ], [ -70.961046, 43.440475, 0.0 ], [ -70.96164, 43.443039, 0.0 ], [ -70.96581, 43.447557, 0.0 ], [ -70.9669, 43.450458, 0.0 ], [ -70.966266, 43.453627, 0.0 ], [ -70.96399, 43.456752, 0.0 ], [ -70.96045, 43.466592, 0.0 ], [ -70.961428, 43.469696, 0.0 ], [ -70.964433, 43.473276, 0.0 ], [ -70.964542, 43.473262, 0.0 ], [ -70.966017, 43.472918, 0.0 ], [ -70.970946, 43.4739, 0.0 ], [ -70.972956, 43.47502, 0.0 ], [ -70.974245, 43.47742, 0.0 ], [ -70.969132334241095, 43.480159189891197, 0.0 ], [ -70.967968, 43.480783, 0.0 ], [ -70.967404, 43.482635, 0.0 ], [ -70.968975, 43.483961, 0.0 ], [ -70.969572, 43.486201, 0.0 ], [ -70.966718, 43.491278, 0.0 ], [ -70.965909386820499, 43.492375137211297, 0.0 ], [ -70.961948, 43.49775, 0.0 ], [ -70.959185, 43.499351, 0.0 ], [ -70.957958, 43.508041, 0.0 ], [ -70.954839750820994, 43.5097554042474, 0.0 ], [ -70.954755, 43.509802, 0.0 ], [ -70.955386, 43.511357, 0.0 ], [ -70.955871790663494, 43.511807099920901, 0.0 ], [ -70.956856, 43.512719, 0.0 ], [ -70.954045, 43.518797, 0.0 ], [ -70.954066, 43.52261, 0.0 ], [ -70.956787, 43.524216, 0.0 ], [ -70.957214, 43.524994, 0.0 ], [ -70.957046, 43.528743, 0.0 ], [ -70.95822, 43.531586, 0.0 ], [ -70.962556, 43.53431, 0.0 ], [ -70.963342, 43.535247, 0.0 ], [ -70.963531, 43.536756, 0.0 ], [ -70.963281, 43.538929, 0.0 ], [ -70.962182, 43.541032, 0.0 ], [ -70.962160936760199, 43.541029460681699, 0.0 ], [ -70.958806, 43.540625, 0.0 ], [ -70.955928, 43.541925, 0.0 ], [ -70.955337, 43.54098, 0.0 ], [ -70.955252, 43.540887, 0.0 ], [ -70.954685, 43.540509, 0.0 ], [ -70.953504, 43.540603, 0.0 ], [ -70.953429, 43.544382, 0.0 ], [ -70.950838, 43.551026, 0.0 ], [ -70.951876, 43.552238, 0.0 ], [ -70.953322, 43.552718, 0.0 ], [ -70.955017, 43.554239, 0.0 ], [ -70.95586, 43.559787, 0.0 ], [ -70.957234, 43.561358, 0.0 ], [ -70.961848, 43.562964, 0.0 ], [ -70.968546, 43.568856, 0.0 ], [ -70.970124, 43.568544, 0.0 ], [ -70.972716, 43.570255, 0.0 ], [ -70.975123330996993, 43.614409268065202, 0.0 ], [ -70.975705, 43.625078, 0.0 ], [ -70.9796640134618, 43.673214173611399, 0.0 ], [ -70.980577970397803, 43.684326636392498, 0.0 ], [ -70.981946, 43.70096, 0.0 ], [ -70.981978, 43.701965, 0.0 ], [ -70.982238, 43.711865, 0.0 ], [ -70.982083, 43.715043, 0.0 ], [ -70.984901, 43.752983, 0.0 ], [ -70.985208427338407, 43.755894704390997, 0.0 ], [ -70.989030119862093, 43.792090701007503, 0.0 ], [ -70.989036761866899, 43.792153608733202, 0.0 ], [ -70.989067, 43.79244, 0.0 ], [ -70.989929, 43.839239, 0.0 ], [ -70.991748972621593, 43.877322795670104, 0.0 ], [ -70.992176142315401, 43.886261525375602, 0.0 ], [ -70.992653, 43.89624, 0.0 ], [ -70.992842, 43.916269, 0.0 ], [ -70.993249975170698, 43.925359956901097, 0.0 ], [ -70.9946862935724, 43.957365602398497, 0.0 ], [ -70.994806719643194, 43.960049070163898, 0.0 ], [ -70.996611261248304, 44.0002598749778, 0.0 ], [ -70.996776734037994, 44.003947123877701, 0.0 ], [ -70.997566214614906, 44.021539208921197, 0.0 ], [ -70.9975738927252, 44.021710301121203, 0.0 ], [ -70.998444, 44.041099, 0.0 ], [ -71.000045655021594, 44.069500294246303, 0.0 ], [ -71.001367, 44.092931, 0.0 ], [ -71.001335, 44.093205, 0.0 ], [ -71.002161997775303, 44.1106192952439, 0.0 ], [ -71.008567, 44.245491, 0.0 ], [ -71.008764, 44.258443, 0.0 ], [ -71.008736, 44.258825, 0.0 ], [ -71.009587085490793, 44.273274308957397, 0.0 ], [ -71.010271167868396, 44.284888321571998, 0.0 ], [ -71.01127, 44.301846, 0.0 ], [ -71.012749, 44.340784, 0.0 ], [ -71.012754945006606, 44.340868897151097, 0.0 ], [ -71.014894888314799, 44.3714281717305, 0.0 ], [ -71.015363, 44.378113, 0.0 ], [ -71.0174597497479, 44.415173923825201, 0.0 ], [ -71.018885122995002, 44.440367988774902, 0.0 ], [ -71.020773, 44.473737, 0.0 ], [ -71.022992, 44.500058, 0.0 ], [ -71.026655, 44.558149, 0.0 ], [ -71.029047341493296, 44.611248722021799, 0.0 ], [ -71.031039, 44.655455, 0.0 ], [ -71.031055978432605, 44.655697849119598, 0.0 ], [ -71.034849536966405, 44.709958591135099, 0.0 ], [ -71.036705, 44.736498, 0.0 ], [ -71.037518, 44.755607, 0.0 ], [ -71.039291847429695, 44.777862713149901, 0.0 ], [ -71.043342081623194, 44.828679287839698, 0.0 ], [ -71.044646, 44.845039, 0.0 ], [ -71.046347914526805, 44.863154118262003, 0.0 ], [ -71.049434503081002, 44.8960076580886, 0.0 ], [ -71.052707, 44.93084, 0.0 ], [ -71.055851758204398, 44.973068477021997, 0.0 ], [ -71.057159514433394, 44.990629303729797, 0.0 ], [ -71.057861, 45.000049, 0.0 ], [ -71.059004, 45.004918, 0.0 ], [ -71.059729035533707, 45.014632554408102, 0.0 ], [ -71.069387, 45.144037, 0.0 ], [ -71.0726, 45.180935, 0.0 ], [ -71.076914, 45.246912, 0.0 ], [ -71.083924, 45.305451, 0.0 ], [ -71.085564, 45.305476, 0.0 ], [ -71.089483, 45.304584, 0.0 ], [ -71.097772, 45.301906, 0.0 ], [ -71.105151, 45.294635, 0.0 ], [ -71.104436, 45.291778, 0.0 ], [ -71.107353, 45.290369, 0.0 ], [ -71.108675, 45.288965, 0.0 ], [ -71.110743, 45.284576, 0.0 ], [ -71.110159, 45.282999, 0.0 ], [ -71.109349, 45.282222, 0.0 ], [ -71.105691, 45.282498, 0.0 ], [ -71.107339, 45.278612, 0.0 ], [ -71.110735, 45.275456, 0.0 ], [ -71.113162, 45.274861, 0.0 ], [ -71.115881, 45.274562, 0.0 ], [ -71.116332, 45.272322, 0.0 ], [ -71.116638, 45.269679, 0.0 ], [ -71.118749, 45.268113, 0.0 ], [ -71.120112, 45.265738, 0.0 ], [ -71.119914, 45.262287, 0.0 ], [ -71.123663, 45.25936, 0.0 ], [ -71.124517, 45.25527, 0.0 ], [ -71.127962, 45.253672, 0.0 ], [ -71.131953, 45.245423, 0.0 ], [ -71.133994, 45.244167, 0.0 ], [ -71.13943, 45.242958, 0.0 ], [ -71.144801, 45.242251, 0.0 ], [ -71.147906, 45.23928, 0.0 ], [ -71.148165, 45.242412, 0.0 ], [ -71.150254, 45.243732, 0.0 ], [ -71.155734, 45.24646, 0.0 ], [ -71.158192, 45.248746, 0.0 ], [ -71.162845, 45.250332, 0.0 ], [ -71.167446, 45.247491, 0.0 ], [ -71.171264, 45.246143, 0.0 ], [ -71.173367, 45.246348, 0.0 ], [ -71.177508, 45.243629, 0.0 ], [ -71.178576, 45.241389, 0.0 ], [ -71.179838, 45.240178, 0.0 ], [ -71.180905, 45.239858, 0.0 ], [ -71.182587, 45.241069, 0.0 ], [ -71.182782, 45.242715, 0.0 ], [ -71.183785, 45.244932, 0.0 ], [ -71.187505, 45.244977, 0.0 ], [ -71.187441, 45.247697, 0.0 ], [ -71.189964, 45.248062, 0.0 ], [ -71.191744, 45.249694, 0.0 ], [ -71.194878, 45.250515, 0.0 ], [ -71.196658, 45.253594, 0.0 ], [ -71.198276, 45.254257, 0.0 ], [ -71.203033, 45.254302, 0.0 ], [ -71.205144344829904, 45.2533760138164, 0.0 ], [ -71.2118, 45.250457, 0.0 ], [ -71.220634, 45.251121, 0.0 ], [ -71.221994, 45.253543, 0.0 ], [ -71.225811, 45.251691, 0.0 ], [ -71.228048, 45.24969, 0.0 ], [ -71.231122, 45.249712, 0.0 ], [ -71.233027, 45.251551, 0.0 ], [ -71.231572, 45.253472, 0.0 ], [ -71.235364, 45.260349, 0.0 ], [ -71.236271, 45.261126, 0.0 ], [ -71.239346, 45.261925, 0.0 ], [ -71.244499, 45.268139, 0.0 ], [ -71.245503, 45.26887, 0.0 ], [ -71.248382, 45.268023, 0.0 ], [ -71.256441, 45.27333, 0.0 ], [ -71.259485, 45.27244, 0.0 ], [ -71.262136, 45.276098, 0.0 ], [ -71.263042, 45.277401, 0.0 ], [ -71.263815, 45.282726, 0.0 ], [ -71.264385, 45.286732, 0.0 ], [ -71.266754, 45.29123, 0.0 ], [ -71.264939, 45.293446, 0.0 ], [ -71.266557, 45.294589, 0.0 ], [ -71.27232, 45.296694, 0.0 ], [ -71.279219, 45.294982, 0.0 ], [ -71.28074, 45.295188, 0.0 ], [ -71.282747, 45.297497, 0.0 ], [ -71.282552, 45.299279, 0.0 ], [ -71.283684, 45.301977, 0.0 ], [ -71.284396, 45.302434, 0.0 ], [ -71.286236, 45.300669, 0.0 ], [ -71.288639, 45.300881, 0.0 ], [ -71.291975, 45.298938, 0.0 ], [ -71.296509, 45.29919, 0.0 ], [ -71.301107, 45.296563, 0.0 ], [ -71.304896, 45.292449, 0.0 ], [ -71.306872, 45.288861, 0.0 ], [ -71.309008, 45.287238, 0.0 ], [ -71.314318, 45.287033, 0.0 ], [ -71.318397, 45.284655, 0.0 ], [ -71.320922, 45.282324, 0.0 ], [ -71.328464, 45.281135, 0.0 ], [ -71.331733, 45.279969, 0.0 ], [ -71.333674, 45.276769, 0.0 ], [ -71.333965, 45.275306, 0.0 ], [ -71.336392, 45.273066, 0.0 ], [ -71.344029, 45.271167, 0.0 ], [ -71.347622, 45.272125, 0.0 ], [ -71.351666, 45.269199, 0.0 ], [ -71.353446, 45.268695, 0.0 ], [ -71.354999, 45.268626, 0.0 ], [ -71.360664, 45.269835, 0.0 ], [ -71.362831, 45.267617, 0.0 ], [ -71.363218, 45.266429, 0.0 ], [ -71.362245, 45.264738, 0.0 ], [ -71.359558, 45.262682, 0.0 ], [ -71.358657, 45.259494, 0.0 ], [ -71.356835, 45.257175, 0.0 ], [ -71.356736, 45.254776, 0.0 ], [ -71.357253, 45.253336, 0.0 ], [ -71.359224, 45.250912, 0.0 ], [ -71.363013, 45.248205, 0.0 ], [ -71.368381, 45.246579, 0.0 ], [ -71.37194, 45.246349, 0.0 ], [ -71.376691, 45.244911, 0.0 ], [ -71.37763, 45.244203, 0.0 ], [ -71.379833, 45.240616, 0.0 ], [ -71.380158, 45.238857, 0.0 ], [ -71.38317, 45.234904, 0.0 ], [ -71.384917, 45.233351, 0.0 ], [ -71.385629, 45.233214, 0.0 ], [ -71.389412, 45.235021, 0.0 ], [ -71.391901, 45.237216, 0.0 ], [ -71.394422, 45.241216, 0.0 ], [ -71.402638, 45.242589, 0.0 ], [ -71.406973, 45.241516, 0.0 ], [ -71.411924, 45.23882, 0.0 ], [ -71.413348, 45.236123, 0.0 ], [ -71.417132, 45.235575, 0.0 ], [ -71.418556, 45.233839, 0.0 ], [ -71.420335, 45.232719, 0.0 ], [ -71.429326, 45.234228, 0.0 ], [ -71.430394, 45.236125, 0.0 ], [ -71.433014, 45.237656, 0.0 ], [ -71.438546, 45.239004, 0.0 ], [ -71.442298, 45.238547, 0.0 ], [ -71.443365, 45.237724, 0.0 ], [ -71.443883, 45.237061, 0.0 ], [ -71.443882, 45.235462, 0.0 ], [ -71.44288, 45.234799, 0.0 ], [ -71.440583, 45.234982, 0.0 ], [ -71.438545, 45.232765, 0.0 ], [ -71.431753, 45.228743, 0.0 ], [ -71.428192, 45.227119, 0.0 ], [ -71.426157, 45.225098, 0.0 ], [ -71.421372, 45.224036, 0.0 ], [ -71.417233, 45.221293, 0.0 ], [ -71.416167, 45.219533, 0.0 ], [ -71.41607, 45.218322, 0.0 ], [ -71.415553, 45.218001, 0.0 ], [ -71.409119, 45.216606, 0.0 ], [ -71.407405, 45.216812, 0.0 ], [ -71.403267, 45.215348, 0.0 ], [ -71.3991, 45.208628, 0.0 ], [ -71.398002, 45.205953, 0.0 ], [ -71.39781, 45.203553, 0.0 ], [ -71.399955, 45.20093, 0.0 ], [ -71.405636, 45.198139, 0.0 ], [ -71.405346, 45.196037, 0.0 ], [ -71.405281, 45.193018, 0.0 ], [ -71.408777, 45.18797, 0.0 ], [ -71.410636, 45.186172, 0.0 ], [ -71.414853, 45.184908, 0.0 ], [ -71.415468, 45.183309, 0.0 ], [ -71.414497, 45.179214, 0.0 ], [ -71.415844, 45.176349, 0.0 ], [ -71.419058, 45.170488, 0.0 ], [ -71.422031, 45.167495, 0.0 ], [ -71.424616, 45.165872, 0.0 ], [ -71.423616, 45.161096, 0.0 ], [ -71.424004, 45.15929, 0.0 ], [ -71.42675, 45.153257, 0.0 ], [ -71.427688, 45.152251, 0.0 ], [ -71.430473, 45.150123, 0.0 ], [ -71.433179, 45.149166, 0.0 ], [ -71.433835, 45.144475, 0.0 ], [ -71.437216, 45.142333, 0.0 ], [ -71.435795, 45.139659, 0.0 ], [ -71.433083, 45.137899, 0.0 ], [ -71.42887, 45.1357, 0.0 ], [ -71.427538, 45.133352, 0.0 ], [ -71.428392, 45.1318, 0.0 ], [ -71.426755, 45.129672, 0.0 ], [ -71.427208, 45.127364, 0.0 ], [ -71.428828, 45.123881, 0.0 ], [ -71.432444, 45.120453, 0.0 ], [ -71.438589, 45.117813, 0.0 ], [ -71.440577, 45.114464, 0.0 ], [ -71.441683, 45.11307, 0.0 ], [ -71.444735, 45.112591, 0.0 ], [ -71.448096, 45.112111, 0.0 ], [ -71.450373, 45.109958, 0.0 ], [ -71.448678, 45.109001, 0.0 ], [ -71.448355, 45.107882, 0.0 ], [ -71.449257, 45.104522, 0.0 ], [ -71.452451, 45.102282, 0.0 ], [ -71.455452, 45.101458, 0.0 ], [ -71.458323, 45.098807, 0.0 ], [ -71.459999, 45.095058, 0.0 ], [ -71.462063, 45.093526, 0.0 ], [ -71.464837, 45.093023, 0.0 ], [ -71.467447, 45.086851, 0.0 ], [ -71.468299, 45.084092, 0.0 ], [ -71.471382, 45.084199, 0.0 ], [ -71.474979, 45.083706, 0.0 ], [ -71.477323, 45.082946, 0.0 ], [ -71.480769, 45.083556, 0.0 ], [ -71.480897, 45.08303, 0.0 ], [ -71.479929, 45.082139, 0.0 ], [ -71.480219, 45.081316, 0.0 ], [ -71.482862, 45.079144, 0.0 ], [ -71.486345, 45.078503, 0.0 ], [ -71.487147, 45.075562, 0.0 ], [ -71.489146, 45.073565, 0.0 ], [ -71.489116, 45.070853, 0.0 ], [ -71.492742, 45.071417, 0.0 ], [ -71.494864, 45.071068, 0.0 ], [ -71.497304, 45.070544, 0.0 ], [ -71.497917, 45.070589, 0.0 ], [ -71.498399, 45.069629, 0.0 ], [ -71.496105, 45.065082, 0.0 ], [ -71.49671, 45.061255, 0.0 ], [ -71.499316, 45.057707, 0.0 ], [ -71.497738, 45.054751, 0.0 ], [ -71.500545, 45.051943, 0.0 ], [ -71.502768, 45.05263, 0.0 ], [ -71.504542, 45.052379, 0.0 ], [ -71.505091, 45.051465, 0.0 ], [ -71.505222, 45.048791, 0.0 ], [ -71.500874, 45.04511, 0.0 ], [ -71.499527, 45.044672, 0.0 ], [ -71.497179, 45.044582, 0.0 ], [ -71.49315, 45.045772, 0.0 ], [ -71.491085, 45.043671, 0.0 ], [ -71.491148, 45.041774, 0.0 ], [ -71.494009, 45.034345, 0.0 ], [ -71.499945, 45.026323, 0.0 ], [ -71.496995, 45.023613, 0.0 ], [ -71.500378, 45.021977, 0.0 ], [ -71.500969, 45.01604, 0.0 ], [ -71.500164, 45.015377, 0.0 ], [ -71.500069, 45.014212, 0.0 ], [ -71.501088, 45.013349, 0.0 ], [ -71.465049961356797, 45.013633098079197, 0.0 ], [ -71.464555, 45.013637, 0.0 ], [ -71.466247, 45.011959, 0.0 ], [ -71.473269, 45.010586, 0.0 ], [ -71.476168, 45.009054, 0.0 ], [ -71.477907, 45.007453, 0.0 ], [ -71.479611, 45.002905, 0.0 ], [ -71.487565, 45.000936, 0.0 ], [ -71.488344197444505, 45.001168801755, 0.0 ], [ -71.497412, 45.003878, 0.0 ], [ -71.501055, 45.006742, 0.0 ], [ -71.505, 45.008151, 0.0 ], [ -71.507767, 45.00817, 0.0 ], [ -71.513761064785896, 45.004479120879402, 0.0 ], [ -71.514609, 45.003957, 0.0 ], [ -71.520022, 45.002291, 0.0 ], [ -71.525016, 45.001881, 0.0 ], [ -71.529586074170595, 44.999877371422798, 0.0 ], [ -71.530091, 44.999656, 0.0 ], [ -71.536298, 44.994159, 0.0 ], [ -71.536831, 44.992771, 0.0 ], [ -71.533713, 44.991963, 0.0 ], [ -71.532749, 44.991066, 0.0 ], [ -71.535134, 44.989435, 0.0 ], [ -71.537964, 44.989026, 0.0 ], [ -71.538592, 44.988182, 0.0 ], [ -71.538417, 44.987342, 0.0 ], [ -71.539815261189105, 44.986076118568398, 0.0 ], [ -71.541121, 44.984894, 0.0 ], [ -71.54086, 44.983788, 0.0 ], [ -71.537784, 44.984298, 0.0 ], [ -71.533055084435304, 44.9779649726011, 0.0 ], [ -71.531605, 44.976023, 0.0 ], [ -71.527163, 44.973668, 0.0 ], [ -71.523092, 44.966315, 0.0 ], [ -71.521716, 44.965674, 0.0 ], [ -71.523563, 44.964607, 0.0 ], [ -71.523376, 44.96396, 0.0 ], [ -71.520216, 44.963487, 0.0 ], [ -71.518864, 44.963626, 0.0 ], [ -71.517674, 44.964383, 0.0 ], [ -71.516223, 44.964569, 0.0 ], [ -71.514843, 44.958741, 0.0 ], [ -71.516814, 44.947588, 0.0 ], [ -71.515498, 44.94352, 0.0 ], [ -71.515674613356495, 44.9427889409979, 0.0 ], [ -71.516144, 44.940846, 0.0 ], [ -71.516949, 44.939704, 0.0 ], [ -71.518777, 44.938799, 0.0 ], [ -71.521333, 44.938799, 0.0 ], [ -71.521844, 44.938148, 0.0 ], [ -71.519186, 44.936266, 0.0 ], [ -71.516305, 44.935175, 0.0 ], [ -71.515189, 44.927317, 0.0 ], [ -71.509207, 44.923429, 0.0 ], [ -71.504483, 44.919062, 0.0 ], [ -71.500788, 44.914535, 0.0 ], [ -71.500552, 44.913089, 0.0 ], [ -71.500548, 44.911956, 0.0 ], [ -71.499945, 44.911174, 0.0 ], [ -71.498926, 44.910917, 0.0 ], [ -71.495326, 44.911794, 0.0 ], [ -71.494403, 44.911837, 0.0 ], [ -71.493363, 44.911612, 0.0 ], [ -71.493268947812595, 44.911204328952898, 0.0 ], [ -71.493082, 44.910394, 0.0 ], [ -71.494716, 44.910102, 0.0 ], [ -71.495811172993101, 44.909088480950203, 0.0 ], [ -71.496017, 44.908898, 0.0 ], [ -71.495951, 44.90736, 0.0 ], [ -71.494835, 44.905919, 0.0 ], [ -71.49491, 44.904299, 0.0 ], [ -71.495378, 44.903621, 0.0 ], [ -71.495793, 44.903728, 0.0 ], [ -71.496609, 44.903603, 0.0 ], [ -71.497841, 44.904342, 0.0 ], [ -71.499528, 44.904774, 0.0 ], [ -71.501088, 44.904433, 0.0 ], [ -71.502473, 44.90272, 0.0 ], [ -71.504963272717504, 44.9006947611892, 0.0 ], [ -71.508642, 44.897703, 0.0 ], [ -71.51387, 44.894648, 0.0 ], [ -71.51435, 44.893964, 0.0 ], [ -71.51409, 44.893149, 0.0 ], [ -71.511712, 44.891571, 0.0 ], [ -71.512292, 44.890246, 0.0 ], [ -71.522393, 44.880811, 0.0 ], [ -71.526638, 44.879098, 0.0 ], [ -71.528342, 44.877819, 0.0 ], [ -71.528889, 44.876928, 0.0 ], [ -71.529154, 44.873559, 0.0 ], [ -71.534588, 44.869698, 0.0 ], [ -71.540116, 44.868625, 0.0 ], [ -71.545901, 44.866134, 0.0 ], [ -71.549533, 44.862592, 0.0 ], [ -71.550176, 44.861609, 0.0 ], [ -71.550304, 44.859552, 0.0 ], [ -71.548377, 44.857016, 0.0 ], [ -71.548345, 44.85553, 0.0 ], [ -71.553656, 44.852123, 0.0 ], [ -71.5556, 44.850547, 0.0 ], [ -71.556805, 44.848808, 0.0 ], [ -71.55675, 44.846862, 0.0 ], [ -71.555036, 44.845733, 0.0 ], [ -71.552654, 44.842049, 0.0 ], [ -71.552005, 44.839208, 0.0 ], [ -71.552218, 44.837775, 0.0 ], [ -71.553712, 44.836065, 0.0 ], [ -71.557672, 44.834421, 0.0 ], [ -71.562039502625694, 44.825094323908601, 0.0 ], [ -71.562256, 44.824632, 0.0 ], [ -71.563701, 44.823901, 0.0 ], [ -71.56476, 44.823901, 0.0 ], [ -71.565146, 44.824678, 0.0 ], [ -71.567907, 44.823832, 0.0 ], [ -71.574314, 44.818079, 0.0 ], [ -71.5755, 44.816058, 0.0 ], [ -71.575139, 44.813565, 0.0 ], [ -71.572864, 44.810383, 0.0 ], [ -71.569216, 44.808813, 0.0 ], [ -71.569098, 44.807044, 0.0 ], [ -71.570402, 44.805276, 0.0 ], [ -71.573129, 44.797947, 0.0 ], [ -71.571706, 44.79483, 0.0 ], [ -71.573247, 44.791882, 0.0 ], [ -71.578938, 44.78607, 0.0 ], [ -71.580005, 44.78548, 0.0 ], [ -71.584392, 44.785733, 0.0 ], [ -71.592966, 44.782776, 0.0 ], [ -71.596949, 44.778987, 0.0 ], [ -71.59668, 44.777416, 0.0 ], [ -71.595913, 44.776272, 0.0 ], [ -71.596035, 44.775422, 0.0 ], [ -71.601471, 44.772067, 0.0 ], [ -71.602229414466905, 44.771022732752101, 0.0 ], [ -71.604615, 44.767738, 0.0 ], [ -71.608234, 44.765658, 0.0 ], [ -71.611767, 44.764345, 0.0 ], [ -71.614267, 44.760622, 0.0 ], [ -71.614238, 44.758664, 0.0 ], [ -71.617941, 44.755883, 0.0 ], [ -71.623924, 44.755135, 0.0 ], [ -71.631255, 44.753253, 0.0 ], [ -71.631883, 44.752463, 0.0 ], [ -71.631967, 44.750333, 0.0 ], [ -71.631840844134999, 44.750091274776203, 0.0 ], [ -71.631109, 44.748689, 0.0 ], [ -71.626909, 44.747224, 0.0 ], [ -71.62518, 44.743978, 0.0 ], [ -71.625059, 44.737099, 0.0 ], [ -71.625638, 44.735065, 0.0 ], [ -71.625611, 44.730312, 0.0 ], [ -71.624922, 44.729032, 0.0 ], [ -71.623266, 44.727795, 0.0 ], [ -71.622593, 44.727773, 0.0 ], [ -71.619067, 44.729283, 0.0 ], [ -71.617656, 44.728918, 0.0 ], [ -71.617431, 44.72805, 0.0 ], [ -71.618516, 44.723913, 0.0 ], [ -71.618355, 44.72261, 0.0 ], [ -71.613094, 44.718933, 0.0 ], [ -71.604912, 44.70815, 0.0 ], [ -71.59975, 44.705318, 0.0 ], [ -71.599205, 44.703878, 0.0 ], [ -71.600772, 44.700815, 0.0 ], [ -71.600772, 44.699901, 0.0 ], [ -71.600162, 44.698919, 0.0 ], [ -71.598656, 44.698005, 0.0 ], [ -71.594136, 44.696932, 0.0 ], [ -71.59436, 44.695996, 0.0 ], [ -71.596858, 44.694921, 0.0 ], [ -71.598042, 44.692818, 0.0 ], [ -71.596437, 44.687059, 0.0 ], [ -71.594224, 44.683815, 0.0 ], [ -71.594671, 44.681643, 0.0 ], [ -71.5964, 44.679677, 0.0 ], [ -71.596304, 44.679083, 0.0 ], [ -71.590024, 44.675543, 0.0 ], [ -71.587365, 44.674926, 0.0 ], [ -71.583009, 44.674836, 0.0 ], [ -71.581983, 44.673533, 0.0 ], [ -71.582527, 44.672253, 0.0 ], [ -71.584478, 44.670211, 0.0 ], [ -71.585645, 44.669277, 0.0 ], [ -71.585645, 44.667644, 0.0 ], [ -71.584574, 44.665351, 0.0 ], [ -71.585246, 44.663523, 0.0 ], [ -71.586336331512499, 44.661548615909901, 0.0 ], [ -71.586578, 44.661111, 0.0 ], [ -71.586578, 44.659478, 0.0 ], [ -71.584848, 44.657816, 0.0 ], [ -71.582965, 44.656621, 0.0 ], [ -71.576013, 44.655691, 0.0 ], [ -71.57571, 44.654574, 0.0 ], [ -71.576312, 44.653179, 0.0 ], [ -71.576079, 44.652012, 0.0 ], [ -71.575145, 44.650612, 0.0 ], [ -71.572163, 44.650373, 0.0 ], [ -71.570235, 44.650483, 0.0 ], [ -71.568677, 44.651537, 0.0 ], [ -71.567645, 44.65356, 0.0 ], [ -71.566144, 44.653863, 0.0 ], [ -71.564411, 44.652827, 0.0 ], [ -71.561772, 44.650224, 0.0 ], [ -71.558571, 44.644373, 0.0 ], [ -71.558050084327306, 44.641905102262399, 0.0 ], [ -71.558026, 44.641791, 0.0 ], [ -71.558859, 44.640122, 0.0 ], [ -71.562636, 44.639505, 0.0 ], [ -71.562636, 44.637266, 0.0 ], [ -71.562124, 44.63658, 0.0 ], [ -71.555791, 44.632047, 0.0 ], [ -71.55214, 44.630082, 0.0 ], [ -71.54951, 44.630903, 0.0 ], [ -71.547226, 44.630355, 0.0 ], [ -71.546931, 44.62855, 0.0 ], [ -71.551722, 44.627598, 0.0 ], [ -71.555652, 44.629791, 0.0 ], [ -71.55735, 44.628448, 0.0 ], [ -71.556467, 44.627221, 0.0 ], [ -71.552478, 44.626536, 0.0 ], [ -71.549389, 44.625544, 0.0 ], [ -71.54722, 44.625096, 0.0 ], [ -71.545978, 44.623118, 0.0 ], [ -71.546902, 44.621852, 0.0 ], [ -71.550636, 44.622925, 0.0 ], [ -71.553981, 44.625119, 0.0 ], [ -71.555062, 44.624185, 0.0 ], [ -71.555805, 44.621769, 0.0 ], [ -71.55656, 44.616988, 0.0 ], [ -71.553926, 44.610689, 0.0 ], [ -71.553166, 44.606151, 0.0 ], [ -71.554236, 44.604407, 0.0 ], [ -71.555852, 44.603263, 0.0 ], [ -71.559004, 44.603074, 0.0 ], [ -71.561834, 44.602717, 0.0 ], [ -71.561483, 44.600779, 0.0 ], [ -71.560037, 44.599998, 0.0 ], [ -71.556858, 44.599749, 0.0 ], [ -71.551562, 44.601227, 0.0 ], [ -71.550331, 44.600896, 0.0 ], [ -71.550634, 44.599591, 0.0 ], [ -71.553525, 44.598332, 0.0 ], [ -71.553784, 44.595175, 0.0 ], [ -71.554872, 44.593778, 0.0 ], [ -71.553447, 44.593451, 0.0 ], [ -71.549687, 44.595224, 0.0 ], [ -71.547901, 44.596846, 0.0 ], [ -71.546087, 44.597377, 0.0 ], [ -71.545055, 44.596773, 0.0 ], [ -71.544871, 44.595299, 0.0 ], [ -71.545454, 44.593617, 0.0 ], [ -71.54684, 44.592412, 0.0 ], [ -71.547154, 44.591581, 0.0 ], [ -71.545777, 44.590891, 0.0 ], [ -71.544086, 44.591547, 0.0 ], [ -71.539633, 44.594313, 0.0 ], [ -71.537898, 44.594249, 0.0 ], [ -71.537335, 44.593334, 0.0 ], [ -71.537638, 44.591799, 0.0 ], [ -71.539683, 44.589864, 0.0 ], [ -71.539705, 44.588525, 0.0 ], [ -71.537775, 44.587682, 0.0 ], [ -71.535568, 44.588226, 0.0 ], [ -71.534750554646905, 44.588240355137899, 0.0 ], [ -71.534543, 44.588244, 0.0 ], [ -71.534632, 44.587407, 0.0 ], [ -71.536801, 44.585052, 0.0 ], [ -71.537156, 44.583137, 0.0 ], [ -71.538945, 44.581316, 0.0 ], [ -71.543686, 44.578627, 0.0 ], [ -71.545601, 44.577601, 0.0 ], [ -71.547942, 44.57734, 0.0 ], [ -71.550264, 44.578252, 0.0 ], [ -71.552495, 44.580838, 0.0 ], [ -71.55428, 44.580998, 0.0 ], [ -71.55442, 44.579519, 0.0 ], [ -71.553755, 44.578406, 0.0 ], [ -71.5533, 44.576924, 0.0 ], [ -71.548952, 44.573084, 0.0 ], [ -71.548728, 44.571873, 0.0 ], [ -71.549655, 44.570708, 0.0 ], [ -71.55167, 44.569657, 0.0 ], [ -71.552629, 44.569543, 0.0 ], [ -71.556497, 44.570777, 0.0 ], [ -71.557539028701797, 44.570546693995396, 0.0 ], [ -71.557972, 44.570451, 0.0 ], [ -71.558985, 44.568779, 0.0 ], [ -71.558565, 44.565572, 0.0 ], [ -71.559846, 44.564119, 0.0 ], [ -71.563399, 44.563218, 0.0 ], [ -71.569599, 44.562777, 0.0 ], [ -71.575519, 44.564775, 0.0 ], [ -71.59017, 44.565694, 0.0 ], [ -71.592091, 44.565118, 0.0 ], [ -71.593923, 44.563813, 0.0 ], [ -71.596137, 44.560898, 0.0 ], [ -71.597797, 44.557172, 0.0 ], [ -71.598116, 44.555412, 0.0 ], [ -71.596804, 44.553424, 0.0 ], [ -71.588076, 44.54785, 0.0 ], [ -71.575193, 44.540859, 0.0 ], [ -71.573083, 44.53798, 0.0 ], [ -71.573019, 44.536312, 0.0 ], [ -71.574456, 44.53366, 0.0 ], [ -71.576884, 44.530323, 0.0 ], [ -71.582505, 44.524403, 0.0 ], [ -71.585731, 44.522665, 0.0 ], [ -71.587104, 44.522436, 0.0 ], [ -71.592855, 44.523006, 0.0 ], [ -71.594259, 44.52168, 0.0 ], [ -71.593971, 44.519738, 0.0 ], [ -71.592117, 44.517773, 0.0 ], [ -71.586909, 44.514666, 0.0 ], [ -71.58595, 44.513432, 0.0 ], [ -71.584959, 44.510141, 0.0 ], [ -71.583233, 44.508268, 0.0 ], [ -71.577771, 44.504886, 0.0 ], [ -71.577068, 44.504041, 0.0 ], [ -71.577643, 44.502692, 0.0 ], [ -71.57876, 44.501915, 0.0 ], [ -71.579974, 44.501778, 0.0 ], [ -71.58387, 44.503217, 0.0 ], [ -71.586648, 44.502873, 0.0 ], [ -71.585881, 44.500057, 0.0 ], [ -71.586972, 44.498526, 0.0 ], [ -71.589622, 44.498525, 0.0 ], [ -71.589623, 44.499371, 0.0 ], [ -71.590256, 44.500057, 0.0 ], [ -71.591917, 44.500975, 0.0 ], [ -71.594303, 44.500749, 0.0 ], [ -71.595027, 44.498669, 0.0 ], [ -71.595484, 44.494424, 0.0 ], [ -71.596974879152697, 44.490717330047303, 0.0 ], [ -71.597917, 44.488375, 0.0 ], [ -71.59948, 44.486455, 0.0 ], [ -71.606463877756099, 44.484996333224402, 0.0 ], [ -71.609568, 44.484348, 0.0 ], [ -71.615923, 44.485944, 0.0 ], [ -71.617614, 44.485715, 0.0 ], [ -71.61985, 44.483011, 0.0 ], [ -71.624068, 44.475071, 0.0 ], [ -71.630017, 44.473547, 0.0 ], [ -71.635417, 44.476225, 0.0 ], [ -71.63317, 44.478914, 0.0 ], [ -71.62677, 44.480642, 0.0 ], [ -71.625019, 44.481784, 0.0 ], [ -71.625676, 44.483201, 0.0 ], [ -71.627655, 44.484207, 0.0 ], [ -71.631007, 44.484323, 0.0 ], [ -71.632795, 44.48389, 0.0 ], [ -71.639312, 44.477836, 0.0 ], [ -71.643111, 44.476649, 0.0 ], [ -71.64589, 44.475141, 0.0 ], [ -71.647693, 44.473125, 0.0 ], [ -71.648178, 44.472023, 0.0 ], [ -71.647864, 44.469976, 0.0 ], [ -71.646551, 44.468869, 0.0 ], [ -71.640847, 44.465935, 0.0 ], [ -71.640404, 44.464186, 0.0 ], [ -71.642851, 44.461734, 0.0 ], [ -71.645068, 44.460545, 0.0 ], [ -71.65232, 44.461117, 0.0 ], [ -71.653348, 44.460499, 0.0 ], [ -71.657313, 44.454003, 0.0 ], [ -71.659021, 44.444932, 0.0 ], [ -71.661129521455507, 44.441449824481197, 0.0 ], [ -71.66183, 44.440293, 0.0 ], [ -71.664191, 44.438351, 0.0 ], [ -71.668944, 44.436523, 0.0 ], [ -71.677384, 44.435702, 0.0 ], [ -71.679263, 44.435018, 0.0 ], [ -71.679282, 44.434337, 0.0 ], [ -71.677427, 44.431484, 0.0 ], [ -71.675993, 44.428712, 0.0 ], [ -71.676967, 44.426848, 0.0 ], [ -71.67806, 44.426552, 0.0 ], [ -71.680331, 44.427714, 0.0 ], [ -71.682701, 44.42734, 0.0 ], [ -71.683943, 44.423978, 0.0 ], [ -71.688813, 44.421741, 0.0 ], [ -71.699434, 44.416069, 0.0 ], [ -71.708041, 44.411977, 0.0 ], [ -71.715087, 44.41049, 0.0 ], [ -71.726199, 44.411385, 0.0 ], [ -71.73152, 44.411015, 0.0 ], [ -71.735923, 44.410062, 0.0 ], [ -71.737836, 44.408921, 0.0 ], [ -71.738542654196195, 44.408194688277, 0.0 ], [ -71.739921, 44.406778, 0.0 ], [ -71.742308, 44.402366, 0.0 ], [ -71.743104, 44.401657, 0.0 ], [ -71.745011, 44.401359, 0.0 ], [ -71.749533, 44.401955, 0.0 ], [ -71.75434, 44.405577, 0.0 ], [ -71.756091, 44.406401, 0.0 ], [ -71.761966, 44.407027, 0.0 ], [ -71.764977, 44.406587, 0.0 ], [ -71.765688977432305, 44.406307687658, 0.0 ], [ -71.767888, 44.405445, 0.0 ], [ -71.772801, 44.403097, 0.0 ], [ -71.775399, 44.401126, 0.0 ], [ -71.778613, 44.399799, 0.0 ], [ -71.790688, 44.40026, 0.0 ], [ -71.793924, 44.399271, 0.0 ], [ -71.802353, 44.39338, 0.0 ], [ -71.803488, 44.39189, 0.0 ], [ -71.803489, 44.390384, 0.0 ], [ -71.799899, 44.385951, 0.0 ], [ -71.800316, 44.384276, 0.0 ], [ -71.803461, 44.383335, 0.0 ], [ -71.808828, 44.383862, 0.0 ], [ -71.81313, 44.382801, 0.0 ], [ -71.814388, 44.381932, 0.0 ], [ -71.815773, 44.375464, 0.0 ], [ -71.815251, 44.374594, 0.0 ], [ -71.812424, 44.372532, 0.0 ], [ -71.812235, 44.371492, 0.0 ], [ -71.812832, 44.370448, 0.0 ], [ -71.81549, 44.368836, 0.0 ], [ -71.816157, 44.367559, 0.0 ], [ -71.814991, 44.363686, 0.0 ], [ -71.812473, 44.358477, 0.0 ], [ -71.812206, 44.357356, 0.0 ], [ -71.812902, 44.355547, 0.0 ], [ -71.814351, 44.354541, 0.0 ], [ -71.818838, 44.352939, 0.0 ], [ -71.826246, 44.352006, 0.0 ], [ -71.833261, 44.350136, 0.0 ], [ -71.837719551839101, 44.347744235710799, 0.0 ], [ -71.844319, 44.344204, 0.0 ], [ -71.845015554428997, 44.3439247578766, 0.0 ], [ -71.852628, 44.340873, 0.0 ], [ -71.861941, 44.340109, 0.0 ], [ -71.86991, 44.336962, 0.0 ], [ -71.872472, 44.336628, 0.0 ], [ -71.875863, 44.33737, 0.0 ], [ -71.881895, 44.340209, 0.0 ], [ -71.902332, 44.347499, 0.0 ], [ -71.906909, 44.348284, 0.0 ], [ -71.917434, 44.346535, 0.0 ], [ -71.925088, 44.342024, 0.0 ], [ -71.92911, 44.337577, 0.0 ], [ -71.935395, 44.33577, 0.0 ], [ -71.939049, 44.335844, 0.0 ], [ -71.945163, 44.337744, 0.0 ], [ -71.958119, 44.337544, 0.0 ], [ -71.963133, 44.336556, 0.0 ], [ -71.98112, 44.3375, 0.0 ], [ -71.984617, 44.336243, 0.0 ], [ -71.984645680707402, 44.336165806344397, 0.0 ], [ -71.986484, 44.331218, 0.0 ], [ -71.988306, 44.329768, 0.0 ], [ -72.002314, 44.324871, 0.0 ], [ -72.009977, 44.321951, 0.0 ], [ -72.014543, 44.321032, 0.0 ], [ -72.01913, 44.320383, 0.0 ], [ -72.025783, 44.322054, 0.0 ], [ -72.029061, 44.322398, 0.0 ], [ -72.033136, 44.320365, 0.0 ], [ -72.033806, 44.317349, 0.0 ], [ -72.032341, 44.315752, 0.0 ], [ -72.032317, 44.306677, 0.0 ], [ -72.032541, 44.303752, 0.0 ], [ -72.033465, 44.301878, 0.0 ], [ -72.0347382895973, 44.300433628855103, 0.0 ], [ -72.03703, 44.297834, 0.0 ], [ -72.039004, 44.296463, 0.0 ], [ -72.046302, 44.291983, 0.0 ], [ -72.053160162457004, 44.290541939917603, 0.0 ], [ -72.053355, 44.290501, 0.0 ], [ -72.057425466972106, 44.287361767462798, 0.0 ], [ -72.05888, 44.28624, 0.0 ], [ -72.065434, 44.277235, 0.0 ], [ -72.067774, 44.270976, 0.0 ], [ -72.066464, 44.268331, 0.0 ], [ -72.064544, 44.267997, 0.0 ], [ -72.060846, 44.269972, 0.0 ], [ -72.05874, 44.270005, 0.0 ], [ -72.058475, 44.267886, 0.0 ], [ -72.058969, 44.265911, 0.0 ], [ -72.059832, 44.264984, 0.0 ], [ -72.060378, 44.264951, 0.0 ], [ -72.061174, 44.263377, 0.0 ], [ -72.059782, 44.256018, 0.0 ], [ -72.059656388677894, 44.255820821453703, 0.0 ], [ -72.05399, 44.246926, 0.0 ], [ -72.050112, 44.244046, 0.0 ], [ -72.04846, 44.241212, 0.0 ], [ -72.047889, 44.238493, 0.0 ], [ -72.050656, 44.233581, 0.0 ], [ -72.053582, 44.22604, 0.0 ], [ -72.0539, 44.222703, 0.0 ], [ -72.052662, 44.218841, 0.0 ], [ -72.052942903517007, 44.217874318019398, 0.0 ], [ -72.053233, 44.216876, 0.0 ], [ -72.058605, 44.208215, 0.0 ], [ -72.058066, 44.206067, 0.0 ], [ -72.058987, 44.202114, 0.0 ], [ -72.060067, 44.200446, 0.0 ], [ -72.063561, 44.198457, 0.0 ], [ -72.064577, 44.196949, 0.0 ], [ -72.066166, 44.189773, 0.0 ], [ -72.061338, 44.184951, 0.0 ], [ -72.057496, 44.179444, 0.0 ], [ -72.053021, 44.167903, 0.0 ], [ -72.051523, 44.166219, 0.0 ], [ -72.048969, 44.165039, 0.0 ], [ -72.047593, 44.161801, 0.0 ], [ -72.046568, 44.161403, 0.0 ], [ -72.045111, 44.161749, 0.0 ], [ -72.042359, 44.161701, 0.0 ], [ -72.042387, 44.160817, 0.0 ], [ -72.044004, 44.158155, 0.0 ], [ -72.043505, 44.156918, 0.0 ], [ -72.042885466778301, 44.1567322502707, 0.0 ], [ -72.042381, 44.156581, 0.0 ], [ -72.040167, 44.157023, 0.0 ], [ -72.038551, 44.156063, 0.0 ], [ -72.039236457138898, 44.155578396479498, 0.0 ], [ -72.039554070468, 44.155353850656397, 0.0 ], [ -72.041073, 44.15428, 0.0 ], [ -72.041230755370805, 44.154086062204598, 0.0 ], [ -72.042708, 44.15227, 0.0 ], [ -72.042867, 44.151288, 0.0 ], [ -72.042345367187195, 44.142954266724402, 0.0 ], [ -72.041983, 44.137165, 0.0 ], [ -72.037859, 44.133782, 0.0 ], [ -72.034242, 44.132524, 0.0 ], [ -72.033703, 44.131541, 0.0 ], [ -72.037506, 44.124708, 0.0 ], [ -72.038839, 44.124628, 0.0 ], [ -72.040728, 44.125668, 0.0 ], [ -72.041948, 44.125653, 0.0 ], [ -72.04643, 44.123911, 0.0 ], [ -72.052342, 44.119891, 0.0 ], [ -72.052579394238705, 44.1191030098651, 0.0 ], [ -72.054675, 44.112147, 0.0 ], [ -72.054831, 44.110137, 0.0 ], [ -72.053061781615995, 44.103575665099498, 0.0 ], [ -72.052391, 44.101088, 0.0 ], [ -72.050997, 44.098848, 0.0 ], [ -72.048334, 44.096905, 0.0 ], [ -72.044909, 44.096402, 0.0 ], [ -72.044023, 44.09703, 0.0 ], [ -72.043495, 44.098005, 0.0 ], [ -72.043475, 44.100631, 0.0 ], [ -72.041338, 44.102987, 0.0 ], [ -72.03925, 44.103947, 0.0 ], [ -72.03569, 44.103151, 0.0 ], [ -72.03198, 44.101665, 0.0 ], [ -72.030479, 44.100224, 0.0 ], [ -72.030176, 44.099348, 0.0 ], [ -72.030133, 44.098305, 0.0 ], [ -72.031305, 44.092239, 0.0 ], [ -72.031726, 44.091272, 0.0 ], [ -72.033677, 44.089585, 0.0 ], [ -72.036153, 44.088515, 0.0 ], [ -72.040212, 44.088178, 0.0 ], [ -72.043377, 44.088209, 0.0 ], [ -72.044131, 44.087635, 0.0 ], [ -72.043949, 44.086691, 0.0 ], [ -72.041122, 44.085248, 0.0 ], [ -72.037243, 44.083673, 0.0 ], [ -72.031925, 44.08214, 0.0 ], [ -72.030182, 44.079683, 0.0 ], [ -72.030410949931294, 44.079339308261702, 0.0 ], [ -72.03104, 44.078395, 0.0 ], [ -72.031503079601507, 44.078118906951602, 0.0 ], [ -72.032729, 44.077388, 0.0 ], [ -72.033973, 44.077002, 0.0 ], [ -72.036163, 44.07664, 0.0 ], [ -72.03851, 44.076863, 0.0 ], [ -72.040068, 44.078017, 0.0 ], [ -72.041247, 44.079129, 0.0 ], [ -72.043175, 44.079466, 0.0 ], [ -72.046369, 44.078231, 0.0 ], [ -72.051141, 44.077256, 0.0 ], [ -72.052494, 44.076716, 0.0 ], [ -72.05226, 44.075469, 0.0 ], [ -72.050621, 44.074394, 0.0 ], [ -72.048475, 44.072479, 0.0 ], [ -72.047602, 44.070479, 0.0 ], [ -72.048289, 44.069136, 0.0 ], [ -72.053482, 44.06473, 0.0 ], [ -72.056341, 44.059582, 0.0 ], [ -72.057173, 44.058646, 0.0 ], [ -72.058863, 44.057921, 0.0 ], [ -72.065415, 44.058344, 0.0 ], [ -72.067612, 44.058034, 0.0 ], [ -72.067626798281395, 44.058003046767702, 0.0 ], [ -72.06915, 44.054817, 0.0 ], [ -72.068405, 44.054021, 0.0 ], [ -72.062713, 44.051618, 0.0 ], [ -72.06215, 44.049931, 0.0 ], [ -72.066422, 44.049299, 0.0 ], [ -72.074881, 44.045892, 0.0 ], [ -72.077372, 44.044591, 0.0 ], [ -72.078989, 44.042886, 0.0 ], [ -72.079595, 44.041429, 0.0 ], [ -72.079397, 44.039531, 0.0 ], [ -72.075486, 44.034614, 0.0 ], [ -72.075004, 44.032789, 0.0 ], [ -72.075648, 44.031654, 0.0 ], [ -72.079309020300599, 44.0300626181306, 0.0 ], [ -72.079642363743702, 44.029917719531802, 0.0 ], [ -72.079996, 44.029764, 0.0 ], [ -72.081357, 44.028529, 0.0 ], [ -72.081864, 44.026952, 0.0 ], [ -72.081673, 44.023638, 0.0 ], [ -72.082432, 44.022154, 0.0 ], [ -72.084871, 44.021308, 0.0 ], [ -72.090478, 44.024299, 0.0 ], [ -72.09203, 44.024459, 0.0 ], [ -72.094056, 44.023179, 0.0 ], [ -72.0951, 44.021831, 0.0 ], [ -72.095669, 44.019683, 0.0 ], [ -72.095193, 44.016666, 0.0 ], [ -72.090504, 44.012736, 0.0 ], [ -72.089807, 44.011274, 0.0 ], [ -72.090059, 44.009903, 0.0 ], [ -72.09123, 44.009125, 0.0 ], [ -72.093257, 44.009376, 0.0 ], [ -72.093384, 44.01045, 0.0 ], [ -72.095247, 44.01358, 0.0 ], [ -72.098897, 44.015477, 0.0 ], [ -72.102475, 44.014882, 0.0 ], [ -72.105292, 44.012663, 0.0 ], [ -72.104941, 44.009395, 0.0 ], [ -72.103576, 44.004231, 0.0 ], [ -72.103765, 44.002837, 0.0 ], [ -72.109019, 44.000535, 0.0 ], [ -72.116985, 43.99448, 0.0 ], [ -72.116706, 43.991954, 0.0 ], [ -72.112813, 43.98802, 0.0 ], [ -72.111756, 43.984943, 0.0 ], [ -72.112307558332006, 43.977962856477099, 0.0 ], [ -72.11249, 43.975654, 0.0 ], [ -72.113078, 43.97279, 0.0 ], [ -72.114702, 43.969478, 0.0 ], [ -72.114726, 43.968332, 0.0 ], [ -72.114273, 43.967513, 0.0 ], [ -72.110945, 43.966959, 0.0 ], [ -72.107042, 43.969513, 0.0 ], [ -72.104972, 43.96995, 0.0 ], [ -72.096161, 43.968132, 0.0 ], [ -72.091104, 43.966443, 0.0 ], [ -72.090214, 43.965814, 0.0 ], [ -72.090357, 43.965409, 0.0 ], [ -72.098563, 43.963833, 0.0 ], [ -72.100543, 43.962478, 0.0 ], [ -72.100894, 43.960851, 0.0 ], [ -72.098955, 43.958879, 0.0 ], [ -72.098689, 43.95766, 0.0 ], [ -72.098927666232996, 43.957363374346897, 0.0 ], [ -72.098950209254994, 43.957335356815697, 0.0 ], [ -72.104421, 43.950536, 0.0 ], [ -72.105875, 43.94937, 0.0 ], [ -72.110872, 43.947654, 0.0 ], [ -72.115268, 43.947629, 0.0 ], [ -72.117839, 43.946828, 0.0 ], [ -72.118698, 43.94536, 0.0 ], [ -72.118985, 43.943225, 0.0 ], [ -72.116766, 43.935278, 0.0 ], [ -72.116767, 43.933923, 0.0 ], [ -72.118013, 43.923292, 0.0 ], [ -72.11919, 43.920952, 0.0 ], [ -72.121002, 43.918956, 0.0 ], [ -72.131501940818893, 43.912311616620997, 0.0 ], [ -72.135117, 43.910024, 0.0 ], [ -72.145041, 43.905288, 0.0 ], [ -72.151324, 43.901704, 0.0 ], [ -72.155724, 43.89712, 0.0 ], [ -72.158585, 43.892762, 0.0 ], [ -72.159216, 43.888313, 0.0 ], [ -72.160819, 43.887223, 0.0 ], [ -72.167224, 43.886113, 0.0 ], [ -72.169510171604799, 43.886299005086201, 0.0 ], [ -72.170604, 43.886388, 0.0 ], [ -72.171648, 43.885361, 0.0 ], [ -72.172785, 43.883716, 0.0 ], [ -72.173576, 43.87967, 0.0 ], [ -72.171904, 43.876149, 0.0 ], [ -72.16978, 43.873425, 0.0 ], [ -72.169327336905695, 43.872585097774198, 0.0 ], [ -72.168646413455093, 43.8713216655905, 0.0 ], [ -72.167476, 43.86915, 0.0 ], [ -72.174774, 43.866386, 0.0 ], [ -72.179386, 43.866181, 0.0 ], [ -72.182956, 43.865335, 0.0 ], [ -72.184788, 43.863393, 0.0 ], [ -72.187916, 43.856126, 0.0 ], [ -72.187379, 43.853612, 0.0 ], [ -72.182864, 43.845109, 0.0 ], [ -72.182203, 43.834032, 0.0 ], [ -72.183337, 43.830699, 0.0 ], [ -72.186238, 43.826931, 0.0 ], [ -72.188255, 43.822888, 0.0 ], [ -72.18857, 43.821153, 0.0 ], [ -72.186424, 43.815857, 0.0 ], [ -72.184184, 43.812524, 0.0 ], [ -72.184052434025304, 43.811851946778098, 0.0 ], [ -72.183333, 43.808177, 0.0 ], [ -72.184847, 43.804698, 0.0 ], [ -72.190754, 43.800807, 0.0 ], [ -72.193184, 43.794697, 0.0 ], [ -72.195552, 43.791492, 0.0 ], [ -72.197036, 43.790006, 0.0 ], [ -72.20407, 43.786097, 0.0 ], [ -72.2053, 43.784474, 0.0 ], [ -72.205521, 43.782279, 0.0 ], [ -72.20476, 43.771263, 0.0 ], [ -72.205015096065694, 43.771080158171301, 0.0 ], [ -72.205204799080306, 43.770944187253797, 0.0 ], [ -72.207535, 43.769274, 0.0 ], [ -72.210815, 43.767696, 0.0 ], [ -72.216491, 43.766507, 0.0 ], [ -72.218099, 43.765729, 0.0 ], [ -72.220116, 43.763626, 0.0 ], [ -72.222069, 43.759831, 0.0 ], [ -72.223645, 43.757842, 0.0 ], [ -72.232713, 43.748286, 0.0 ], [ -72.245068, 43.743093, 0.0 ], [ -72.261996713103997, 43.735205527945801, 0.0 ], [ -72.264245, 43.734158, 0.0 ], [ -72.27118, 43.734138, 0.0 ], [ -72.276072, 43.727054, 0.0 ], [ -72.279855, 43.724633, 0.0 ], [ -72.282522681978506, 43.722330170687997, 0.0 ], [ -72.284805, 43.72036, 0.0 ], [ -72.28695, 43.717252, 0.0 ], [ -72.292215, 43.711333, 0.0 ], [ -72.294894, 43.709003, 0.0 ], [ -72.299715, 43.706558, 0.0 ], [ -72.301232218153899, 43.704709612401302, 0.0 ], [ -72.302867, 43.702718, 0.0 ], [ -72.305326, 43.69577, 0.0 ], [ -72.3055042006241, 43.692506668975597, 0.0 ], [ -72.305504413920602, 43.6925027629444, 0.0 ], [ -72.305996093794505, 43.683498786693903, 0.0 ], [ -72.30602, 43.683061, 0.0 ], [ -72.304351, 43.681141, 0.0 ], [ -72.303092, 43.678078, 0.0 ], [ -72.303408, 43.674055, 0.0 ], [ -72.304322, 43.669507, 0.0 ], [ -72.305771, 43.666535, 0.0 ], [ -72.309120825673801, 43.662034869297003, 0.0 ], [ -72.310841, 43.659724, 0.0 ], [ -72.312887, 43.658444, 0.0 ], [ -72.31402, 43.656158, 0.0 ], [ -72.315059, 43.649415, 0.0 ], [ -72.314747639278906, 43.648671222758999, 0.0 ], [ -72.313863, 43.646558, 0.0 ], [ -72.314083, 43.64281, 0.0 ], [ -72.315247, 43.641164, 0.0 ], [ -72.322517, 43.638901, 0.0 ], [ -72.327395, 43.636774, 0.0 ], [ -72.329126, 43.635563, 0.0 ], [ -72.329498211532396, 43.634925221812402, 0.0 ], [ -72.329502017119196, 43.6349187010035, 0.0 ], [ -72.32966, 43.634648, 0.0 ], [ -72.329471, 43.632843, 0.0 ], [ -72.327362, 43.631174, 0.0 ], [ -72.327236, 43.630534, 0.0 ], [ -72.328966, 43.626991, 0.0 ], [ -72.33236, 43.62507, 0.0 ], [ -72.334401, 43.61925, 0.0 ], [ -72.334745, 43.614519, 0.0 ], [ -72.3327, 43.610313, 0.0 ], [ -72.329522, 43.608393, 0.0 ], [ -72.328232, 43.606839, 0.0 ], [ -72.3281646788123, 43.606345073825402, 0.0 ], [ -72.327665, 43.602679, 0.0 ], [ -72.328514, 43.600805, 0.0 ], [ -72.32962, 43.600201, 0.0 ], [ -72.329677284081598, 43.600183640558903, 0.0 ], [ -72.332382, 43.599364, 0.0 ], [ -72.346179186923607, 43.590211488519301, 0.0 ], [ -72.349926, 43.587726, 0.0 ], [ -72.363916, 43.583652, 0.0 ], [ -72.364092269098407, 43.583570985114697, 0.0 ], [ -72.373126, 43.579419, 0.0 ], [ -72.37944, 43.574069, 0.0 ], [ -72.382625, 43.564127, 0.0 ], [ -72.382783, 43.562459, 0.0 ], [ -72.381187, 43.554915, 0.0 ], [ -72.380383, 43.54088, 0.0 ], [ -72.38331, 43.53519, 0.0 ], [ -72.389097, 43.528266, 0.0 ], [ -72.3907, 43.527261, 0.0 ], [ -72.394218, 43.5274, 0.0 ], [ -72.395949, 43.52388, 0.0 ], [ -72.395825, 43.52056, 0.0 ], [ -72.396119311459699, 43.519794123758103, 0.0 ], [ -72.396396011821395, 43.5190740762499, 0.0 ], [ -72.398563, 43.513435, 0.0 ], [ -72.398376, 43.510829, 0.0 ], [ -72.396305, 43.508062, 0.0 ], [ -72.389556, 43.503899, 0.0 ], [ -72.384773, 43.500259, 0.0 ], [ -72.380894, 43.493394, 0.0 ], [ -72.380362, 43.491634, 0.0 ], [ -72.380428, 43.488525, 0.0 ], [ -72.380462839060897, 43.488298102209001, 0.0 ], [ -72.381723, 43.480091, 0.0 ], [ -72.382170999983799, 43.478598517969203, 0.0 ], [ -72.382951, 43.476, 0.0 ], [ -72.384491, 43.474195, 0.0 ], [ -72.384719535530095, 43.474019090988499, 0.0 ], [ -72.390466449594697, 43.469595560120098, 0.0 ], [ -72.391526, 43.46878, 0.0 ], [ -72.3925, 43.467364, 0.0 ], [ -72.392628, 43.465078, 0.0 ], [ -72.390567, 43.451225, 0.0 ], [ -72.391196, 43.449305, 0.0 ], [ -72.393992, 43.444666, 0.0 ], [ -72.395659, 43.438541, 0.0 ], [ -72.395916, 43.430974, 0.0 ], [ -72.396439728308394, 43.428943519810403, 0.0 ], [ -72.396456807363506, 43.428877304785402, 0.0 ], [ -72.399972, 43.415249, 0.0 ], [ -72.400131, 43.410997, 0.0 ], [ -72.401542269708202, 43.4036867763106, 0.0 ], [ -72.401624713554, 43.403259726150402, 0.0 ], [ -72.403811, 43.391935, 0.0 ], [ -72.405253, 43.389992, 0.0 ], [ -72.411109704396196, 43.385774224020501, 0.0 ], [ -72.413154, 43.384302, 0.0 ], [ -72.415381, 43.380211, 0.0 ], [ -72.415978, 43.376531, 0.0 ], [ -72.415099, 43.365896, 0.0 ], [ -72.414692, 43.364273, 0.0 ], [ -72.413377, 43.362741, 0.0 ], [ -72.403949, 43.358098, 0.0 ], [ -72.400441, 43.357685, 0.0 ], [ -72.39217, 43.357865, 0.0 ], [ -72.390103, 43.356926, 0.0 ], [ -72.390286366897001, 43.356490138905698, 0.0 ], [ -72.39092, 43.354984, 0.0 ], [ -72.395403, 43.350414, 0.0 ], [ -72.399289, 43.347581, 0.0 ], [ -72.400981, 43.345775, 0.0 ], [ -72.406624534675899, 43.3378028767861, 0.0 ], [ -72.406699128666503, 43.337697504440897, 0.0 ], [ -72.409037, 43.334395, 0.0 ], [ -72.410353, 43.331675, 0.0 ], [ -72.410197, 43.330395, 0.0 ], [ -72.408696, 43.327674, 0.0 ], [ -72.402532, 43.32038, 0.0 ], [ -72.397619, 43.317064, 0.0 ], [ -72.395805, 43.314617, 0.0 ], [ -72.395462, 43.312994, 0.0 ], [ -72.401666, 43.303395, 0.0 ], [ -72.407842, 43.282892, 0.0 ], [ -72.41545, 43.271374, 0.0 ], [ -72.421583, 43.263442, 0.0 ], [ -72.4276791218808, 43.261225350314803, 0.0 ], [ -72.427711061083698, 43.261213736697897, 0.0 ], [ -72.435221, 43.258483, 0.0 ], [ -72.436378, 43.257454, 0.0 ], [ -72.438693, 43.252905, 0.0 ], [ -72.438937, 43.24424, 0.0 ], [ -72.436654, 43.238319, 0.0 ], [ -72.434216, 43.234958, 0.0 ], [ -72.433688684947995, 43.233440482434801, 0.0 ], [ -72.433684, 43.233427, 0.0 ], [ -72.433773688734505, 43.233083499028503, 0.0 ], [ -72.434466, 43.230432, 0.0 ], [ -72.435104878919702, 43.229397376646098, 0.0 ], [ -72.435478063405895, 43.228793028352698, 0.0 ], [ -72.437656, 43.225266, 0.0 ], [ -72.4405, 43.219049, 0.0 ], [ -72.440563, 43.215254, 0.0 ], [ -72.438594, 43.209013, 0.0 ], [ -72.437719, 43.20275, 0.0 ], [ -72.438969, 43.201035, 0.0 ], [ -72.45028, 43.192485, 0.0 ], [ -72.449435, 43.18917, 0.0 ], [ -72.443749, 43.182221, 0.0 ], [ -72.443405, 43.179729, 0.0 ], [ -72.444904, 43.177969, 0.0 ], [ -72.451430916722003, 43.172977426991999, 0.0 ], [ -72.452556, 43.172117, 0.0 ], [ -72.451868, 43.170174, 0.0 ], [ -72.4521, 43.161414, 0.0 ], [ -72.452093744289201, 43.161342419572598, 0.0 ], [ -72.451553, 43.155155, 0.0 ], [ -72.451802, 43.153486, 0.0 ], [ -72.452801, 43.151977, 0.0 ], [ -72.456537, 43.149528, 0.0 ], [ -72.45714, 43.148493, 0.0 ], [ -72.45689, 43.146558, 0.0 ], [ -72.451986, 43.138924, 0.0 ], [ -72.448303, 43.137187, 0.0 ], [ -72.444214, 43.13737, 0.0 ], [ -72.441904, 43.136615, 0.0 ], [ -72.440905, 43.135793, 0.0 ], [ -72.440872397652299, 43.135376478902401, 0.0 ], [ -72.440624, 43.132203, 0.0 ], [ -72.44078, 43.131472, 0.0 ], [ -72.442746, 43.131152, 0.0 ], [ -72.442933, 43.130192, 0.0 ], [ -72.440967, 43.127608, 0.0 ], [ -72.438274729863295, 43.125345979354499, 0.0 ], [ -72.437950225694607, 43.125073333931901, 0.0 ], [ -72.435936, 43.123381, 0.0 ], [ -72.432972, 43.119655, 0.0 ], [ -72.432661, 43.114077, 0.0 ], [ -72.433129, 43.112637, 0.0 ], [ -72.434845, 43.109917, 0.0 ], [ -72.440587, 43.106145, 0.0 ], [ -72.442427, 43.10363, 0.0 ], [ -72.443051, 43.100841, 0.0 ], [ -72.439214, 43.094852, 0.0 ], [ -72.435191, 43.086622, 0.0 ], [ -72.435276853503694, 43.084502448699901, 0.0 ], [ -72.435316, 43.083536, 0.0 ], [ -72.43619, 43.08173, 0.0 ], [ -72.43987, 43.077043, 0.0 ], [ -72.445202, 43.071352, 0.0 ], [ -72.450703673736598, 43.066801025669101, 0.0 ], [ -72.45471, 43.063487, 0.0 ], [ -72.461465633714894, 43.058972110977003, 0.0 ], [ -72.463812, 43.057404, 0.0 ], [ -72.466491, 43.054729, 0.0 ], [ -72.467363, 43.052648, 0.0 ], [ -72.466832, 43.049197, 0.0 ], [ -72.465896, 43.047505, 0.0 ], [ -72.462248, 43.044214, 0.0 ], [ -72.460252, 43.040671, 0.0 ], [ -72.460905, 43.035961, 0.0 ], [ -72.46299, 43.028531, 0.0 ], [ -72.462397, 43.02556, 0.0 ], [ -72.459653297903998, 43.020577908403503, 0.0 ], [ -72.459628533285198, 43.020532940110698, 0.0 ], [ -72.458998, 43.019388, 0.0 ], [ -72.457035, 43.017285, 0.0 ], [ -72.452984, 43.015731, 0.0 ], [ -72.444635, 43.010566, 0.0 ], [ -72.443825, 43.008965, 0.0 ], [ -72.443762, 43.006245, 0.0 ], [ -72.444977, 43.004416, 0.0 ], [ -72.448714, 43.001169, 0.0 ], [ -72.451797, 43.000577, 0.0 ], [ -72.456936, 43.001306, 0.0 ], [ -72.459951, 43.00008, 0.0 ], [ -72.46294, 42.996943, 0.0 ], [ -72.464714, 42.993582, 0.0 ], [ -72.465335, 42.989558, 0.0 ], [ -72.464026, 42.986107, 0.0 ], [ -72.461597, 42.984049, 0.0 ], [ -72.461627, 42.982906, 0.0 ], [ -72.465985, 42.97847, 0.0 ], [ -72.473827, 42.972045, 0.0 ], [ -72.476722, 42.971746, 0.0 ], [ -72.479245, 42.973597, 0.0 ], [ -72.481706, 42.973985, 0.0 ], [ -72.486872, 42.971789, 0.0 ], [ -72.492597, 42.967648, 0.0 ], [ -72.504226, 42.965815, 0.0 ], [ -72.507901, 42.964171, 0.0 ], [ -72.518422, 42.96317, 0.0 ], [ -72.520903557428099, 42.961687087340401, 0.0 ], [ -72.532186, 42.954945, 0.0 ], [ -72.534117, 42.952133, 0.0 ], [ -72.534554, 42.949894, 0.0 ], [ -72.533901, 42.948591, 0.0 ], [ -72.531693, 42.94651, 0.0 ], [ -72.529763, 42.94612, 0.0 ], [ -72.52855, 42.94532, 0.0 ], [ -72.527431, 42.943148, 0.0 ], [ -72.526624, 42.939901, 0.0 ], [ -72.526346, 42.935717, 0.0 ], [ -72.526498144831606, 42.934271927984298, 0.0 ], [ -72.527097, 42.928584, 0.0 ], [ -72.524242, 42.918501, 0.0 ], [ -72.52443, 42.915575, 0.0 ], [ -72.525271, 42.914363, 0.0 ], [ -72.529191, 42.912719, 0.0 ], [ -72.530218, 42.911576, 0.0 ], [ -72.531588, 42.907164, 0.0 ], [ -72.531469, 42.89795, 0.0 ], [ -72.532750313495498, 42.896114234334398, 0.0 ], [ -72.532777, 42.896076, 0.0 ], [ -72.537287, 42.89187, 0.0 ], [ -72.540708, 42.889379, 0.0 ], [ -72.546491, 42.88714, 0.0 ], [ -72.552025, 42.885631, 0.0 ], [ -72.552834, 42.884968, 0.0 ], [ -72.555415, 42.875428, 0.0 ], [ -72.555131, 42.871058, 0.0 ], [ -72.556214, 42.86695, 0.0 ], [ -72.556177362185096, 42.8666992824039, 0.0 ], [ -72.556112, 42.866252, 0.0 ], [ -72.555132, 42.865731, 0.0 ], [ -72.554232, 42.860038, 0.0 ], [ -72.555057030600906, 42.858117306869602, 0.0 ], [ -72.556270395012007, 42.855292562325303, 0.0 ], [ -72.557247, 42.853019, 0.0 ] ] ] ] } }, -{ "type": "Feature", "properties": { "Name": "Massachusetts", "description": "
    \n\n\n\n\n\n\n\n\n
    Attributes<\/em><\/th><\/tr>
    STATEFP<\/th>\n25<\/td>\n<\/tr>
    STATENS<\/th>\n00606926<\/td>\n<\/tr>
    AFFGEOID<\/th>\n0400000US25<\/td>\n<\/tr>
    GEOID<\/th>\n25<\/td>\n<\/tr>
    STUSPS<\/th>\nMA<\/td>\n<\/tr>
    NAME<\/th>\nMassachusetts<\/td>\n<\/tr>
    LSAD<\/th>\n00<\/td>\n<\/tr>
    ALAND<\/th>\n20204287539<\/td>\n<\/tr>
    AWATER<\/th>\n7130763257<\/td>\n<\/tr><\/table><\/center>", "timestamp": null, "begin": null, "end": null, "altitudeMode": "clampToGround", "tessellate": 1.0, "extrude": 0.0, "visibility": 1.0, "drawOrder": null, "icon": null, "timestamp_1": null, "begin_1": null, "end_1": null, "altitudeMode_1": null, "tessellate_1": null, "extrude_1": null, "visibility_1": null, "drawOrder_1": null, "icon_1": null, "STATEFP": "25", "STATENS": "00606926", "AFFGEOID": "0400000US25", "GEOID": "25", "STUSPS": "MA", "LSAD": "00", "ALAND": "20204287539", "AWATER": "7130763257" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -70.234054, 41.285653, 0.0 ], [ -70.237144, 41.285117, 0.0 ], [ -70.233106607989498, 41.283053341896903, 0.0 ], [ -70.22134, 41.277039, 0.0 ], [ -70.212652395722401, 41.2736973122649, 0.0 ], [ -70.212455283486193, 41.273621493026297, 0.0 ], [ -70.195635063167003, 41.2671515938288, 0.0 ], [ -70.170356, 41.257428, 0.0 ], [ -70.162963917075899, 41.255271743412301, 0.0 ], [ -70.142358797050605, 41.249261268928997, 0.0 ], [ -70.118669, 41.242351, 0.0 ], [ -70.116954850797399, 41.242181414863801, 0.0 ], [ -70.116927899645901, 41.242178748517802, 0.0 ], [ -70.114856712193301, 41.241973840680302, 0.0 ], [ -70.100495, 41.240553, 0.0 ], [ -70.097861, 41.241149, 0.0 ], [ -70.092404, 41.24332, 0.0 ], [ -70.083489, 41.244775, 0.0 ], [ -70.075093731793402, 41.244567535026299, 0.0 ], [ -70.05318, 41.244026, 0.0 ], [ -70.043772106393803, 41.242523414015501, 0.0 ], [ -70.036972831897998, 41.241437464812698, 0.0 ], [ -70.015225, 41.237964, 0.0 ], [ -70.001603, 41.239916, 0.0 ], [ -69.985009608407296, 41.244037544147602, 0.0 ], [ -69.974983, 41.246528, 0.0 ], [ -69.972731299381607, 41.247981236802197, 0.0 ], [ -69.968088, 41.250978, 0.0 ], [ -69.966564688340497, 41.252672535122102, 0.0 ], [ -69.964129, 41.255382, 0.0 ], [ -69.960181, 41.264546, 0.0 ], [ -69.960214607836505, 41.269511907930202, 0.0 ], [ -69.960243816136398, 41.273827738488002, 0.0 ], [ -69.960277, 41.278731, 0.0 ], [ -69.966415091844993, 41.2879504439763, 0.0 ], [ -69.968616068945295, 41.291256322347202, 0.0 ], [ -69.975185364360698, 41.301123436195503, 0.0 ], [ -69.977537285045798, 41.304656032569198, 0.0 ], [ -69.9900701740724, 41.323480493193102, 0.0 ], [ -69.994372415624994, 41.329942481049898, 0.0 ], [ -70.02038, 41.369006, 0.0 ], [ -70.037371, 41.384066, 0.0 ], [ -70.04274, 41.389311, 0.0 ], [ -70.049053, 41.391702, 0.0 ], [ -70.049061634937402, 41.391637753361998, 0.0 ], [ -70.049564, 41.3879, 0.0 ], [ -70.045586, 41.383598, 0.0 ], [ -70.041517, 41.381539, 0.0 ], [ -70.037092812966506, 41.379901484584003, 0.0 ], [ -70.034641, 41.378994, 0.0 ], [ -70.030363, 41.37507, 0.0 ], [ -70.0244690108334, 41.369059657604502, 0.0 ], [ -70.024031, 41.368613, 0.0 ], [ -70.024421, 41.360622, 0.0 ], [ -70.031332, 41.339332, 0.0 ], [ -70.046088, 41.321651, 0.0 ], [ -70.062565, 41.308726, 0.0 ], [ -70.064017992547505, 41.308008479253097, 0.0 ], [ -70.075635844783307, 41.302271319741699, 0.0 ], [ -70.082072, 41.299093, 0.0 ], [ -70.092142, 41.297741, 0.0 ], [ -70.092521385517799, 41.297728202346299, 0.0 ], [ -70.094686753637504, 41.297655158884901, 0.0 ], [ -70.104110790001997, 41.297337261789203, 0.0 ], [ -70.104415, 41.297327, 0.0 ], [ -70.109613, 41.295379, 0.0 ], [ -70.122855348756701, 41.294016144951797, 0.0 ], [ -70.12446, 41.293851, 0.0 ], [ -70.131928349663099, 41.293930065543101, 0.0 ], [ -70.163061764873703, 41.294259667194602, 0.0 ], [ -70.167729870520105, 41.294309087257297, 0.0 ], [ -70.172798431146703, 41.294362746836299, 0.0 ], [ -70.185510503934495, 41.294497326359803, 0.0 ], [ -70.186991, 41.294513, 0.0 ], [ -70.193411, 41.296726, 0.0 ], [ -70.194998045944303, 41.296576866650398, 0.0 ], [ -70.199115, 41.29619, 0.0 ], [ -70.2025846250867, 41.293581846369399, 0.0 ], [ -70.205692, 41.291246, 0.0 ], [ -70.207434, 41.288689, 0.0 ], [ -70.205488770988296, 41.288423386399998, 0.0 ], [ -70.204255503912904, 41.288254988486102, 0.0 ], [ -70.202205, 41.287975, 0.0 ], [ -70.195843738204999, 41.290630730146297, 0.0 ], [ -70.195788, 41.290654, 0.0 ], [ -70.192305329693895, 41.2871135868306, 0.0 ], [ -70.191747, 41.286546, 0.0 ], [ -70.191887002776895, 41.286136856774903, 0.0 ], [ -70.193886, 41.280295, 0.0 ], [ -70.196899586661701, 41.278853903165697, 0.0 ], [ -70.200523098827901, 41.2771211400174, 0.0 ], [ -70.20173, 41.276544, 0.0 ], [ -70.206125414541702, 41.2761507816885, 0.0 ], [ -70.210526936578503, 41.275757016994099, 0.0 ], [ -70.211609223035893, 41.275660194533103, 0.0 ], [ -70.211712, 41.275651, 0.0 ], [ -70.21504, 41.279581, 0.0 ], [ -70.219428310671603, 41.281230078714898, 0.0 ], [ -70.220800640310699, 41.281745785046397, 0.0 ], [ -70.221219, 41.281903, 0.0 ], [ -70.223608250410194, 41.282601066929402, 0.0 ], [ -70.234054, 41.285653, 0.0 ] ] ], [ [ [ -70.277262, 41.310506, 0.0 ], [ -70.276653, 41.308631, 0.0 ], [ -70.273121, 41.305521, 0.0 ], [ -70.268616, 41.30177, 0.0 ], [ -70.264128244826296, 41.299154101932601, 0.0 ], [ -70.261553, 41.297653, 0.0 ], [ -70.259665, 41.296006, 0.0 ], [ -70.255951, 41.294954, 0.0 ], [ -70.252541, 41.293033, 0.0 ], [ -70.250317789789193, 41.291028413827597, 0.0 ], [ -70.248715992213803, 41.2895841323759, 0.0 ], [ -70.24767, 41.288641, 0.0 ], [ -70.244322, 41.288138, 0.0 ], [ -70.242739, 41.28919, 0.0 ], [ -70.242617, 41.290562, 0.0 ], [ -70.243287, 41.293124, 0.0 ], [ -70.242495, 41.294222, 0.0 ], [ -70.241095, 41.294954, 0.0 ], [ -70.240711061697098, 41.295214861911802, 0.0 ], [ -70.239816, 41.295823, 0.0 ], [ -70.240249, 41.2974, 0.0 ], [ -70.240853667530203, 41.298292870073702, 0.0 ], [ -70.241875, 41.299801, 0.0 ], [ -70.242069, 41.300947, 0.0 ], [ -70.242113915504703, 41.301094718063403, 0.0 ], [ -70.24281, 41.303384, 0.0 ], [ -70.246552, 41.306186, 0.0 ], [ -70.247921899289395, 41.306671646607299, 0.0 ], [ -70.253477, 41.308641, 0.0 ], [ -70.26295, 41.311452, 0.0 ], [ -70.265389, 41.311375, 0.0 ], [ -70.26752, 41.311192, 0.0 ], [ -70.268639143114697, 41.311206579604402, 0.0 ], [ -70.271051, 41.311238, 0.0 ], [ -70.272999, 41.310872, 0.0 ], [ -70.273116068144404, 41.310885167763402, 0.0 ], [ -70.275331308581698, 41.311134336843701, 0.0 ], [ -70.276258953512396, 41.3112386778581, 0.0 ], [ -70.276653, 41.311283, 0.0 ], [ -70.277262, 41.310506, 0.0 ] ] ], [ [ [ -70.30897, 41.336057, 0.0 ], [ -70.309245, 41.334579, 0.0 ], [ -70.307001, 41.332391, 0.0 ], [ -70.302513, 41.332598, 0.0 ], [ -70.298939388742795, 41.333089275132203, 0.0 ], [ -70.29649, 41.333426, 0.0 ], [ -70.29086, 41.333663, 0.0 ], [ -70.289325, 41.335022, 0.0 ], [ -70.289719, 41.336323, 0.0 ], [ -70.292027, 41.337788, 0.0 ], [ -70.297204, 41.337681, 0.0 ], [ -70.304319, 41.33842, 0.0 ], [ -70.308104, 41.337683, 0.0 ], [ -70.308749641747099, 41.336470744248501, 0.0 ], [ -70.30897, 41.336057, 0.0 ] ] ], [ [ [ -70.580285, 42.636025, 0.0 ], [ -70.57871, 42.634548, 0.0 ], [ -70.575648, 42.634452, 0.0 ], [ -70.573509, 42.636376, 0.0 ], [ -70.573377, 42.639507, 0.0 ], [ -70.575088, 42.63978, 0.0 ], [ -70.580285, 42.636025, 0.0 ] ] ], [ [ [ -70.592044019121701, 42.629512685678499, 0.0 ], [ -70.592189, 42.629471, 0.0 ], [ -70.591607, 42.627503, 0.0 ], [ -70.588037, 42.626413, 0.0 ], [ -70.587374277943695, 42.627361922221901, 0.0 ], [ -70.586819, 42.628157, 0.0 ], [ -70.588245, 42.630605, 0.0 ], [ -70.592044019121701, 42.629512685678499, 0.0 ] ] ], [ [ [ -70.593832, 42.660787, 0.0 ], [ -70.593048, 42.659096, 0.0 ], [ -70.589942, 42.65845, 0.0 ], [ -70.589602728983706, 42.659047809912202, 0.0 ], [ -70.588904, 42.660279, 0.0 ], [ -70.586344, 42.662249, 0.0 ], [ -70.587992, 42.663003, 0.0 ], [ -70.591082, 42.661658, 0.0 ], [ -70.593832, 42.660787, 0.0 ] ] ], [ [ [ -70.723148, 42.568157, 0.0 ], [ -70.723736, 42.567019, 0.0 ], [ -70.722921, 42.566502, 0.0 ], [ -70.721656, 42.566088, 0.0 ], [ -70.721516, 42.566351, 0.0 ], [ -70.721207, 42.566481, 0.0 ], [ -70.720898, 42.56673, 0.0 ], [ -70.721038, 42.567164, 0.0 ], [ -70.721151, 42.567764, 0.0 ], [ -70.720532, 42.568406, 0.0 ], [ -70.720476, 42.568882, 0.0 ], [ -70.72064, 42.569659, 0.0 ], [ -70.721223, 42.569933, 0.0 ], [ -70.723148, 42.568157, 0.0 ] ] ], [ [ [ -70.783055, 42.553461, 0.0 ], [ -70.783364, 42.552421, 0.0 ], [ -70.782777, 42.552051, 0.0 ], [ -70.78208, 42.551679, 0.0 ], [ -70.781472, 42.552098, 0.0 ], [ -70.781131, 42.552429, 0.0 ], [ -70.781089, 42.55272, 0.0 ], [ -70.780891, 42.553161, 0.0 ], [ -70.780812, 42.553576, 0.0 ], [ -70.780441, 42.553868, 0.0 ], [ -70.780749, 42.554138, 0.0 ], [ -70.781182, 42.554218, 0.0 ], [ -70.782057, 42.553896, 0.0 ], [ -70.783055, 42.553461, 0.0 ] ] ], [ [ [ -70.788783, 42.534006, 0.0 ], [ -70.789403, 42.531931, 0.0 ], [ -70.788669, 42.530915, 0.0 ], [ -70.787708, 42.530579, 0.0 ], [ -70.787223, 42.530896, 0.0 ], [ -70.786491, 42.530827, 0.0 ], [ -70.785617, 42.531206, 0.0 ], [ -70.785309, 42.531956, 0.0 ], [ -70.78491, 42.532544, 0.0 ], [ -70.784275, 42.532494, 0.0 ], [ -70.783537, 42.53285, 0.0 ], [ -70.783036, 42.533261, 0.0 ], [ -70.782252, 42.533716, 0.0 ], [ -70.782649, 42.534605, 0.0 ], [ -70.783006, 42.535481, 0.0 ], [ -70.784528, 42.536355, 0.0 ], [ -70.78559, 42.536978, 0.0 ], [ -70.787031, 42.537295, 0.0 ], [ -70.788239, 42.536836, 0.0 ], [ -70.78866, 42.535775, 0.0 ], [ -70.788783, 42.534006, 0.0 ] ] ], [ [ [ -70.802225, 42.550473, 0.0 ], [ -70.803524, 42.548264, 0.0 ], [ -70.802155, 42.547135, 0.0 ], [ -70.800624, 42.547491, 0.0 ], [ -70.79938, 42.547114, 0.0 ], [ -70.796946, 42.546353, 0.0 ], [ -70.796318, 42.54646, 0.0 ], [ -70.796224, 42.546765, 0.0 ], [ -70.795725, 42.547072, 0.0 ], [ -70.794852, 42.547593, 0.0 ], [ -70.793812, 42.547501, 0.0 ], [ -70.793272, 42.547444, 0.0 ], [ -70.793356, 42.548359, 0.0 ], [ -70.794364, 42.548866, 0.0 ], [ -70.795434, 42.548757, 0.0 ], [ -70.795808, 42.549339, 0.0 ], [ -70.795309, 42.549799, 0.0 ], [ -70.79503, 42.550678, 0.0 ], [ -70.796224, 42.551301, 0.0 ], [ -70.796848, 42.550473, 0.0 ], [ -70.79733, 42.54965, 0.0 ], [ -70.798204, 42.549762, 0.0 ], [ -70.798552, 42.55013, 0.0 ], [ -70.798964, 42.551058, 0.0 ], [ -70.799765, 42.551394, 0.0 ], [ -70.800675, 42.551239, 0.0 ], [ -70.801586, 42.551826, 0.0 ], [ -70.802611, 42.55207, 0.0 ], [ -70.802943, 42.55158, 0.0 ], [ -70.802225, 42.550473, 0.0 ] ] ], [ [ [ -70.8071, 41.458576, 0.0 ], [ -70.806625, 41.455013, 0.0 ], [ -70.805199, 41.450381, 0.0 ], [ -70.799996, 41.446167, 0.0 ], [ -70.796078, 41.446793, 0.0 ], [ -70.790395, 41.446535, 0.0 ], [ -70.784433, 41.450333, 0.0 ], [ -70.780513, 41.453894, 0.0 ], [ -70.776308, 41.457664, 0.0 ], [ -70.767883, 41.457685, 0.0 ], [ -70.766426, 41.460527, 0.0 ], [ -70.761128, 41.461112, 0.0 ], [ -70.758138, 41.463029, 0.0 ], [ -70.755664, 41.467146, 0.0 ], [ -70.757187, 41.470687, 0.0 ], [ -70.76099, 41.473002, 0.0 ], [ -70.759802, 41.47692, 0.0 ], [ -70.756712, 41.479057, 0.0 ], [ -70.752909, 41.478701, 0.0 ], [ -70.747205, 41.47781, 0.0 ], [ -70.739579, 41.482365, 0.0 ], [ -70.73437, 41.486891, 0.0 ], [ -70.72575, 41.488432, 0.0 ], [ -70.722311, 41.488279, 0.0 ], [ -70.717495, 41.489384, 0.0 ], [ -70.712266, 41.49063, 0.0 ], [ -70.709889, 41.493657, 0.0 ], [ -70.704541, 41.49681, 0.0 ], [ -70.706086, 41.498108, 0.0 ], [ -70.707037, 41.50149, 0.0 ], [ -70.702046, 41.503982, 0.0 ], [ -70.698005, 41.504516, 0.0 ], [ -70.693727, 41.50683, 0.0 ], [ -70.689894, 41.504529, 0.0 ], [ -70.685537, 41.506668, 0.0 ], [ -70.681562, 41.507269, 0.0 ], [ -70.677231, 41.509755, 0.0 ], [ -70.674712, 41.512347, 0.0 ], [ -70.675188, 41.513949, 0.0 ], [ -70.676851, 41.516797, 0.0 ], [ -70.678278, 41.51733, 0.0 ], [ -70.682793, 41.514305, 0.0 ], [ -70.687309, 41.512347, 0.0 ], [ -70.692063, 41.512525, 0.0 ], [ -70.69444, 41.513949, 0.0 ], [ -70.699431, 41.513593, 0.0 ], [ -70.700382, 41.51733, 0.0 ], [ -70.698243, 41.52089, 0.0 ], [ -70.700619, 41.521779, 0.0 ], [ -70.702521, 41.519644, 0.0 ], [ -70.707235, 41.519947, 0.0 ], [ -70.710222, 41.518915, 0.0 ], [ -70.715202, 41.515466, 0.0 ], [ -70.718787, 41.512874, 0.0 ], [ -70.722086, 41.509272, 0.0 ], [ -70.726465, 41.505625, 0.0 ], [ -70.730166, 41.503176, 0.0 ], [ -70.73503, 41.503783, 0.0 ], [ -70.737602, 41.504261, 0.0 ], [ -70.743402, 41.500956, 0.0 ], [ -70.747152, 41.499889, 0.0 ], [ -70.750057, 41.495437, 0.0 ], [ -70.754901, 41.491016, 0.0 ], [ -70.757187, 41.490986, 0.0 ], [ -70.761751, 41.488076, 0.0 ], [ -70.767993, 41.487788, 0.0 ], [ -70.770345, 41.484945, 0.0 ], [ -70.771394, 41.481782, 0.0 ], [ -70.775489, 41.477098, 0.0 ], [ -70.779824, 41.47707, 0.0 ], [ -70.784153, 41.47796, 0.0 ], [ -70.787014, 41.476687, 0.0 ], [ -70.789036, 41.471934, 0.0 ], [ -70.792447, 41.469289, 0.0 ], [ -70.798351, 41.468806, 0.0 ], [ -70.801723, 41.467275, 0.0 ], [ -70.802964, 41.46487, 0.0 ], [ -70.801972, 41.461912, 0.0 ], [ -70.802584, 41.459288, 0.0 ], [ -70.8071, 41.458576, 0.0 ] ] ], [ [ [ -70.81688, 42.51458, 0.0 ], [ -70.817615, 42.514028, 0.0 ], [ -70.816868, 42.513178, 0.0 ], [ -70.815522, 42.512464, 0.0 ], [ -70.81457, 42.511051, 0.0 ], [ -70.812512, 42.510018, 0.0 ], [ -70.812159338024998, 42.5102241838634, 0.0 ], [ -70.812069, 42.510277, 0.0 ], [ -70.811792, 42.510952, 0.0 ], [ -70.811949, 42.512093, 0.0 ], [ -70.812929, 42.51226, 0.0 ], [ -70.814098, 42.512341, 0.0 ], [ -70.814717, 42.513333, 0.0 ], [ -70.814898, 42.514059, 0.0 ], [ -70.81591, 42.514621, 0.0 ], [ -70.816354, 42.514725, 0.0 ], [ -70.81688, 42.51458, 0.0 ] ] ], [ [ [ -70.832039, 41.259495, 0.0 ], [ -70.832333, 41.258362, 0.0 ], [ -70.830718, 41.256278, 0.0 ], [ -70.828371, 41.254745, 0.0 ], [ -70.825508, 41.252277, 0.0 ], [ -70.821284, 41.251014, 0.0 ], [ -70.81733, 41.250556, 0.0 ], [ -70.8152, 41.250674, 0.0 ], [ -70.81384, 41.250576, 0.0 ], [ -70.813096, 41.25005, 0.0 ], [ -70.812222, 41.249408, 0.0 ], [ -70.810928, 41.249554, 0.0 ], [ -70.809245, 41.249068, 0.0 ], [ -70.805945, 41.249265, 0.0 ], [ -70.804236, 41.249458, 0.0 ], [ -70.803315, 41.250225, 0.0 ], [ -70.803519, 41.253261, 0.0 ], [ -70.801561, 41.25841, 0.0 ], [ -70.802718, 41.259052, 0.0 ], [ -70.809607, 41.260703, 0.0 ], [ -70.811876, 41.263388, 0.0 ], [ -70.811965, 41.264839, 0.0 ], [ -70.812874, 41.264103, 0.0 ], [ -70.814154, 41.26228, 0.0 ], [ -70.816041, 41.261816, 0.0 ], [ -70.817263, 41.261639, 0.0 ], [ -70.819665, 41.260064, 0.0 ], [ -70.823872, 41.259472, 0.0 ], [ -70.829832, 41.259748, 0.0 ], [ -70.832039, 41.259495, 0.0 ] ] ], [ [ [ -70.835635, 42.4844, 0.0 ], [ -70.835635, 42.481915, 0.0 ], [ -70.833228, 42.481442, 0.0 ], [ -70.832426, 42.484164, 0.0 ], [ -70.83371, 42.486412, 0.0 ], [ -70.835635, 42.4844, 0.0 ] ] ], [ [ [ -70.835948, 41.602516, 0.0 ], [ -70.838452, 41.59646, 0.0 ], [ -70.830087, 41.585385, 0.0 ], [ -70.82191, 41.582841, 0.0 ], [ -70.821706753562594, 41.5838310068402, 0.0 ], [ -70.820918, 41.587673, 0.0 ], [ -70.823735, 41.598569, 0.0 ], [ -70.832044, 41.606504, 0.0 ], [ -70.831221, 41.60198, 0.0 ], [ -70.833584, 41.602248, 0.0 ], [ -70.835948, 41.602516, 0.0 ] ] ], [ [ [ -70.838777, 41.347209, 0.0 ], [ -70.837410069063793, 41.345797238925201, 0.0 ], [ -70.832649109533506, 41.340880138019799, 0.0 ], [ -70.819415, 41.327212, 0.0 ], [ -70.802083, 41.314207, 0.0 ], [ -70.799905462057893, 41.313116912208201, 0.0 ], [ -70.775665, 41.300982, 0.0 ], [ -70.768687, 41.303702, 0.0 ], [ -70.766166, 41.308962, 0.0 ], [ -70.768015, 41.311959, 0.0 ], [ -70.764188, 41.318706, 0.0 ], [ -70.75408, 41.324893, 0.0 ], [ -70.748393, 41.326807, 0.0 ], [ -70.747541, 41.329952, 0.0 ], [ -70.742487, 41.332798, 0.0 ], [ -70.733253, 41.336226, 0.0 ], [ -70.709826, 41.341723, 0.0 ], [ -70.691112, 41.344297, 0.0 ], [ -70.651194313448499, 41.346821871279303, 0.0 ], [ -70.648805, 41.346973, 0.0 ], [ -70.606757495024596, 41.348920051521503, 0.0 ], [ -70.599157, 41.349272, 0.0 ], [ -70.579165, 41.350007, 0.0 ], [ -70.538294, 41.348958, 0.0 ], [ -70.528777305941503, 41.348639295883999, 0.0 ], [ -70.511805563035793, 41.348070929990698, 0.0 ], [ -70.495026, 41.347509, 0.0 ], [ -70.482429, 41.348401, 0.0 ], [ -70.463292, 41.347479, 0.0 ], [ -70.452244, 41.349828, 0.0 ], [ -70.448262, 41.353651, 0.0 ], [ -70.449268, 41.380422, 0.0 ], [ -70.446233, 41.39648, 0.0 ], [ -70.450431, 41.420703, 0.0 ], [ -70.452497, 41.42143, 0.0 ], [ -70.463833, 41.419145, 0.0 ], [ -70.470788, 41.412875, 0.0 ], [ -70.473035, 41.408757, 0.0 ], [ -70.472604, 41.399128, 0.0 ], [ -70.471687, 41.3962, 0.0 ], [ -70.478389, 41.392101, 0.0 ], [ -70.484503, 41.38629, 0.0 ], [ -70.490758, 41.383634, 0.0 ], [ -70.498959, 41.384339, 0.0 ], [ -70.501306, 41.385391, 0.0 ], [ -70.501958032562399, 41.389436537868299, 0.0 ], [ -70.502372, 41.392005, 0.0 ], [ -70.506757633517495, 41.399837711032902, 0.0 ], [ -70.506984, 41.400242, 0.0 ], [ -70.5088437854982, 41.4008608173068, 0.0 ], [ -70.517300288913106, 41.403674599150598, 0.0 ], [ -70.517584, 41.403769, 0.0 ], [ -70.528581, 41.4051, 0.0 ], [ -70.538301, 41.409241, 0.0 ], [ -70.547567, 41.415831, 0.0 ], [ -70.548207325681304, 41.416771510916597, 0.0 ], [ -70.553096, 41.423952, 0.0 ], [ -70.555588, 41.430882, 0.0 ], [ -70.552943, 41.443394, 0.0 ], [ -70.553243814268001, 41.452005033581898, 0.0 ], [ -70.553277, 41.452955, 0.0 ], [ -70.5578187255079, 41.460297675688601, 0.0 ], [ -70.56328, 41.469127, 0.0 ], [ -70.567356, 41.471208, 0.0 ], [ -70.57485, 41.468259, 0.0 ], [ -70.583681, 41.460713, 0.0 ], [ -70.588300764657404, 41.460021104241498, 0.0 ], [ -70.588435, 41.460001, 0.0 ], [ -70.590347593912099, 41.457802992353997, 0.0 ], [ -70.592, 41.455904, 0.0 ], [ -70.596516, 41.454122, 0.0 ], [ -70.597752565761994, 41.454711899581199, 0.0 ], [ -70.59913, 41.455369, 0.0 ], [ -70.599843, 41.458576, 0.0 ], [ -70.599843, 41.461426, 0.0 ], [ -70.598843720816902, 41.463232122919599, 0.0 ], [ -70.595803, 41.468728, 0.0 ], [ -70.59628, 41.471905, 0.0 ], [ -70.598444, 41.481151, 0.0 ], [ -70.603555, 41.482384, 0.0 ], [ -70.620025, 41.474592, 0.0 ], [ -70.632184, 41.467499, 0.0 ], [ -70.632737493213597, 41.467211145763002, 0.0 ], [ -70.64215, 41.462316, 0.0 ], [ -70.64933, 41.461068, 0.0 ], [ -70.656088039126004, 41.460812003749403, 0.0 ], [ -70.659652, 41.460677, 0.0 ], [ -70.665083, 41.456226, 0.0 ], [ -70.665918, 41.451094, 0.0 ], [ -70.669536, 41.447174, 0.0 ], [ -70.67186, 41.442364, 0.0 ], [ -70.679255, 41.440598, 0.0 ], [ -70.684164, 41.441938, 0.0 ], [ -70.686881, 41.441334, 0.0 ], [ -70.689924, 41.436841, 0.0 ], [ -70.695478, 41.43501, 0.0 ], [ -70.697928, 41.435589, 0.0 ], [ -70.700964, 41.43401, 0.0 ], [ -70.701378, 41.430925, 0.0 ], [ -70.705724, 41.424023, 0.0 ], [ -70.706561, 41.419198, 0.0 ], [ -70.709399, 41.418661, 0.0 ], [ -70.711493, 41.41546, 0.0 ], [ -70.712351442333599, 41.409417077928303, 0.0 ], [ -70.712432, 41.40885, 0.0 ], [ -70.719709, 41.404664, 0.0 ], [ -70.724366, 41.398942, 0.0 ], [ -70.729225, 41.397728, 0.0 ], [ -70.731859, 41.397797, 0.0 ], [ -70.736979, 41.391526, 0.0 ], [ -70.740428, 41.382777, 0.0 ], [ -70.745066, 41.376586, 0.0 ], [ -70.749086, 41.375188, 0.0 ], [ -70.758637, 41.366948, 0.0 ], [ -70.768300334684099, 41.354047862447302, 0.0 ], [ -70.768534074509802, 41.353735829799902, 0.0 ], [ -70.768901, 41.353246, 0.0 ], [ -70.774974, 41.349176, 0.0 ], [ -70.783291, 41.347829, 0.0 ], [ -70.783460524632801, 41.347888550040203, 0.0 ], [ -70.783859848774, 41.348028823275101, 0.0 ], [ -70.800289, 41.3538, 0.0 ], [ -70.808093, 41.355761, 0.0 ], [ -70.812309, 41.355745, 0.0 ], [ -70.819852, 41.353576, 0.0 ], [ -70.833080924227502, 41.353395821103703, 0.0 ], [ -70.833802, 41.353386, 0.0 ], [ -70.834109509177495, 41.353004194132801, 0.0 ], [ -70.838777, 41.347209, 0.0 ] ] ], [ [ [ -70.840375, 41.452875, 0.0 ], [ -70.841564, 41.449134, 0.0 ], [ -70.836868, 41.441968, 0.0 ], [ -70.830868, 41.441295, 0.0 ], [ -70.822883, 41.445311, 0.0 ], [ -70.814468, 41.445928, 0.0 ], [ -70.810115, 41.443692, 0.0 ], [ -70.808051, 41.445037, 0.0 ], [ -70.809952, 41.44664, 0.0 ], [ -70.808288, 41.449491, 0.0 ], [ -70.812329, 41.453232, 0.0 ], [ -70.816369, 41.456082, 0.0 ], [ -70.820595, 41.458507, 0.0 ], [ -70.82268, 41.456783, 0.0 ], [ -70.82857, 41.456728, 0.0 ], [ -70.832508, 41.457951, 0.0 ], [ -70.838202, 41.456012, 0.0 ], [ -70.840375, 41.452875, 0.0 ] ] ], [ [ [ -70.883352, 42.340491, 0.0 ], [ -70.883465, 42.340035, 0.0 ], [ -70.882656, 42.340238, 0.0 ], [ -70.881681, 42.340527, 0.0 ], [ -70.880621, 42.341163, 0.0 ], [ -70.880089, 42.34096, 0.0 ], [ -70.878874, 42.341033, 0.0 ], [ -70.877096, 42.341162, 0.0 ], [ -70.87605, 42.341229, 0.0 ], [ -70.875264, 42.341764, 0.0 ], [ -70.874386, 42.342675, 0.0 ], [ -70.873953, 42.343634, 0.0 ], [ -70.875199, 42.343666, 0.0 ], [ -70.875989, 42.343506, 0.0 ], [ -70.877166, 42.343304, 0.0 ], [ -70.877583, 42.34287, 0.0 ], [ -70.878634, 42.342743, 0.0 ], [ -70.880207, 42.342307, 0.0 ], [ -70.881583, 42.341471, 0.0 ], [ -70.883352, 42.340491, 0.0 ] ] ], [ [ [ -70.891755, 42.338856, 0.0 ], [ -70.891804, 42.338129, 0.0 ], [ -70.891018, 42.338057, 0.0 ], [ -70.889544, 42.338311, 0.0 ], [ -70.887529, 42.338202, 0.0 ], [ -70.885956, 42.338456, 0.0 ], [ -70.884777, 42.339328, 0.0 ], [ -70.886251, 42.339946, 0.0 ], [ -70.88861, 42.339655, 0.0 ], [ -70.891755, 42.338856, 0.0 ] ] ], [ [ [ -70.892296, 42.328394, 0.0 ], [ -70.892492, 42.32803, 0.0 ], [ -70.891952, 42.327231, 0.0 ], [ -70.89077, 42.327607, 0.0 ], [ -70.889151, 42.32774, 0.0 ], [ -70.888775, 42.328461, 0.0 ], [ -70.888954, 42.328902, 0.0 ], [ -70.89111, 42.328445, 0.0 ], [ -70.892296, 42.328394, 0.0 ] ] ], [ [ [ -70.898407, 42.340266, 0.0 ], [ -70.897354, 42.339492, 0.0 ], [ -70.896714, 42.338475, 0.0 ], [ -70.895156, 42.338879, 0.0 ], [ -70.894605, 42.340309, 0.0 ], [ -70.894605, 42.342379, 0.0 ], [ -70.8956, 42.343892, 0.0 ], [ -70.89721, 42.343324, 0.0 ], [ -70.898407, 42.340266, 0.0 ] ] ], [ [ [ -70.898439, 42.331191, 0.0 ], [ -70.898586, 42.330501, 0.0 ], [ -70.897853, 42.330678, 0.0 ], [ -70.897554, 42.330246, 0.0 ], [ -70.89608, 42.330355, 0.0 ], [ -70.895692, 42.331945, 0.0 ], [ -70.895013, 42.333807, 0.0 ], [ -70.893967, 42.334497, 0.0 ], [ -70.894065, 42.33498, 0.0 ], [ -70.894601, 42.335096, 0.0 ], [ -70.896031, 42.334715, 0.0 ], [ -70.897063, 42.333952, 0.0 ], [ -70.897259, 42.332644, 0.0 ], [ -70.898439, 42.331191, 0.0 ] ] ], [ [ [ -70.904786, 41.427753, 0.0 ], [ -70.905975, 41.424367, 0.0 ], [ -70.901879, 41.421328, 0.0 ], [ -70.896051, 41.421826, 0.0 ], [ -70.889371, 41.422631, 0.0 ], [ -70.884405, 41.421498, 0.0 ], [ -70.879052, 41.421726, 0.0 ], [ -70.871216, 41.422085, 0.0 ], [ -70.862663, 41.424115, 0.0 ], [ -70.857793, 41.426, 0.0 ], [ -70.853725, 41.428505, 0.0 ], [ -70.848563, 41.432844, 0.0 ], [ -70.849169, 41.435415, 0.0 ], [ -70.851071, 41.43595, 0.0 ], [ -70.855824, 41.440583, 0.0 ], [ -70.855111, 41.444859, 0.0 ], [ -70.854636, 41.4486, 0.0 ], [ -70.857103, 41.450253, 0.0 ], [ -70.860816, 41.445749, 0.0 ], [ -70.863668, 41.442542, 0.0 ], [ -70.868018, 41.442354, 0.0 ], [ -70.872517, 41.43936, 0.0 ], [ -70.8803, 41.437969, 0.0 ], [ -70.882207, 41.432564, 0.0 ], [ -70.887576, 41.43323, 0.0 ], [ -70.894566, 41.432742, 0.0 ], [ -70.901011, 41.434453, 0.0 ], [ -70.903598, 41.430782, 0.0 ], [ -70.904786, 41.427753, 0.0 ] ] ], [ [ [ -70.925416, 41.451732, 0.0 ], [ -70.925781, 41.449585, 0.0 ], [ -70.921186, 41.445393, 0.0 ], [ -70.920334, 41.448889, 0.0 ], [ -70.915165, 41.451034, 0.0 ], [ -70.915354, 41.452477, 0.0 ], [ -70.917394, 41.452339, 0.0 ], [ -70.920666, 41.454553, 0.0 ], [ -70.923518, 41.454366, 0.0 ], [ -70.925416, 41.451732, 0.0 ] ] ], [ [ [ -70.93091, 42.321605, 0.0 ], [ -70.93076, 42.319027, 0.0 ], [ -70.928055, 42.317223, 0.0 ], [ -70.925308, 42.317223, 0.0 ], [ -70.925473, 42.319212, 0.0 ], [ -70.925969, 42.321909, 0.0 ], [ -70.930248, 42.322292, 0.0 ], [ -70.93091, 42.321605, 0.0 ] ] ], [ [ [ -70.932091, 42.332698, 0.0 ], [ -70.932464, 42.332228, 0.0 ], [ -70.931241, 42.331909, 0.0 ], [ -70.930809, 42.331015, 0.0 ], [ -70.931025, 42.329673, 0.0 ], [ -70.93211, 42.328915, 0.0 ], [ -70.931414, 42.328267, 0.0 ], [ -70.930593, 42.328107, 0.0 ], [ -70.929383, 42.328171, 0.0 ], [ -70.927698, 42.327341, 0.0 ], [ -70.92705, 42.32635, 0.0 ], [ -70.92679, 42.32536, 0.0 ], [ -70.925883, 42.324944, 0.0 ], [ -70.924716, 42.32488, 0.0 ], [ -70.923722, 42.32536, 0.0 ], [ -70.922598, 42.326144, 0.0 ], [ -70.923068, 42.32699, 0.0 ], [ -70.926834, 42.330376, 0.0 ], [ -70.928692, 42.332324, 0.0 ], [ -70.929717, 42.333973, 0.0 ], [ -70.93068, 42.333698, 0.0 ], [ -70.931758, 42.333116, 0.0 ], [ -70.932091, 42.332698, 0.0 ] ] ], [ [ [ -70.94278, 42.327181, 0.0 ], [ -70.942948, 42.325695, 0.0 ], [ -70.939854, 42.324245, 0.0 ], [ -70.936544, 42.324866, 0.0 ], [ -70.934947, 42.326807, 0.0 ], [ -70.937248, 42.3275, 0.0 ], [ -70.940749, 42.328139, 0.0 ], [ -70.94278, 42.327181, 0.0 ] ] ], [ [ [ -70.95108, 42.289726, 0.0 ], [ -70.94902, 42.285946, 0.0 ], [ -70.942561, 42.287522, 0.0 ], [ -70.937332, 42.284916, 0.0 ], [ -70.935311, 42.291927, 0.0 ], [ -70.930004, 42.296811, 0.0 ], [ -70.926638, 42.299204, 0.0 ], [ -70.92638, 42.301406, 0.0 ], [ -70.929357, 42.303321, 0.0 ], [ -70.935272, 42.302101, 0.0 ], [ -70.9357, 42.296523, 0.0 ], [ -70.941654, 42.292214, 0.0 ], [ -70.94864, 42.291637, 0.0 ], [ -70.95108, 42.289726, 0.0 ] ] ], [ [ [ -70.949185, 41.415776, 0.0 ], [ -70.951372, 41.411534, 0.0 ], [ -70.948757, 41.409038, 0.0 ], [ -70.944066, 41.410689, 0.0 ], [ -70.939012, 41.41189, 0.0 ], [ -70.933981, 41.41306, 0.0 ], [ -70.929743, 41.414564, 0.0 ], [ -70.92719, 41.41815, 0.0 ], [ -70.923341, 41.422463, 0.0 ], [ -70.918572, 41.422763, 0.0 ], [ -70.913818, 41.420802, 0.0 ], [ -70.907496, 41.421512, 0.0 ], [ -70.908114, 41.422941, 0.0 ], [ -70.914531, 41.423832, 0.0 ], [ -70.91976, 41.425258, 0.0 ], [ -70.923088, 41.430248, 0.0 ], [ -70.927475, 41.431811, 0.0 ], [ -70.930218, 41.428644, 0.0 ], [ -70.932119, 41.42508, 0.0 ], [ -70.937008, 41.425268, 0.0 ], [ -70.941099, 41.421739, 0.0 ], [ -70.940676, 41.419555, 0.0 ], [ -70.94329, 41.41492, 0.0 ], [ -70.949185, 41.415776, 0.0 ] ] ], [ [ [ -70.958094, 42.31165, 0.0 ], [ -70.957835, 42.309831, 0.0 ], [ -70.95434, 42.308587, 0.0 ], [ -70.954286600998799, 42.3086528340082, 0.0 ], [ -70.952399, 42.31098, 0.0 ], [ -70.94968, 42.311076, 0.0 ], [ -70.948515, 42.311937, 0.0 ], [ -70.951492, 42.313564, 0.0 ], [ -70.95434, 42.31299, 0.0 ], [ -70.958094, 42.31165, 0.0 ] ] ], [ [ [ -70.977402, 42.312294, 0.0 ], [ -70.977219, 42.310249, 0.0 ], [ -70.974273, 42.310198, 0.0 ], [ -70.971169, 42.311171, 0.0 ], [ -70.968968, 42.31299, 0.0 ], [ -70.965732, 42.313469, 0.0 ], [ -70.963531, 42.318542, 0.0 ], [ -70.95913, 42.324572, 0.0 ], [ -70.957917917214601, 42.325318600192801, 0.0 ], [ -70.953693, 42.327921, 0.0 ], [ -70.952805, 42.330627, 0.0 ], [ -70.957268, 42.331661, 0.0 ], [ -70.967545, 42.322895, 0.0 ], [ -70.970392, 42.316245, 0.0 ], [ -70.977402, 42.312294, 0.0 ] ] ], [ [ [ -70.989162, 42.328304, 0.0 ], [ -70.991621, 42.326294, 0.0 ], [ -70.988903, 42.32371, 0.0 ], [ -70.988774, 42.319212, 0.0 ], [ -70.985667, 42.318733, 0.0 ], [ -70.983984, 42.321317, 0.0 ], [ -70.983078, 42.327156, 0.0 ], [ -70.984243, 42.3284, 0.0 ], [ -70.989162, 42.328304, 0.0 ] ] ], [ [ [ -73.508142, 42.086257, 0.0 ], [ -73.503041942298097, 42.069692114014998, 0.0 ], [ -73.496879, 42.049675, 0.0 ], [ -73.487314, 42.049638, 0.0 ], [ -73.436754218471705, 42.0505183572836, 0.0 ], [ -73.432812, 42.050587, 0.0 ], [ -73.426168171005301, 42.0504140296269, 0.0 ], [ -73.340530426451195, 42.048184473051201, 0.0 ], [ -73.327730831567095, 42.047851238902098, 0.0 ], [ -73.325626585080499, 42.047796455387903, 0.0 ], [ -73.296329965682901, 42.047033725463599, 0.0 ], [ -73.29442, 42.046984, 0.0 ], [ -73.293097, 42.04694, 0.0 ], [ -73.233363151540104, 42.045019189122101, 0.0 ], [ -73.232959186524397, 42.045006199160497, 0.0 ], [ -73.231056, 42.044945, 0.0 ], [ -73.229798, 42.044877, 0.0 ], [ -73.1721252790948, 42.043238392241797, 0.0 ], [ -73.1272774996918, 42.041964169036902, 0.0 ], [ -73.053288086132596, 42.039861968461302, 0.0 ], [ -73.053254, 42.039861, 0.0 ], [ -73.008764306658705, 42.038860282198002, 0.0 ], [ -72.999549, 42.038653, 0.0 ], [ -72.978978634367294, 42.038510175481598, 0.0 ], [ -72.863733, 42.03771, 0.0 ], [ -72.863638410787104, 42.037709170270098, 0.0 ], [ -72.863619, 42.037709, 0.0 ], [ -72.847142, 42.036894, 0.0 ], [ -72.8349699391824, 42.036749098826597, 0.0 ], [ -72.813541, 42.036494, 0.0 ], [ -72.816735743220306, 41.997658901085003, 0.0 ], [ -72.816741, 41.997595, 0.0 ], [ -72.794900245813594, 41.999953707103799, 0.0 ], [ -72.77475938856, 42.002128832682203, 0.0 ], [ -72.770645260311795, 42.002573140760703, 0.0 ], [ -72.766739, 42.002995, 0.0 ], [ -72.766306002745694, 42.006386811825003, 0.0 ], [ -72.766139, 42.007695, 0.0 ], [ -72.763265, 42.009742, 0.0 ], [ -72.763238, 42.012795, 0.0 ], [ -72.761238, 42.014595, 0.0 ], [ -72.759738, 42.016995, 0.0 ], [ -72.761354, 42.018183, 0.0 ], [ -72.76231, 42.019775, 0.0 ], [ -72.762151, 42.021527, 0.0 ], [ -72.760558, 42.021846, 0.0 ], [ -72.758151, 42.020865, 0.0 ], [ -72.757467, 42.020947, 0.0 ], [ -72.754038, 42.025395, 0.0 ], [ -72.751738, 42.030195, 0.0 ], [ -72.753538, 42.032095, 0.0 ], [ -72.757538, 42.033295, 0.0 ], [ -72.755838, 42.036195, 0.0 ], [ -72.7516167497092, 42.036236782000302, 0.0 ], [ -72.7192527914859, 42.0365571209569, 0.0 ], [ -72.714557957256005, 42.036603590498402, 0.0 ], [ -72.712827438960701, 42.036620719195099, 0.0 ], [ -72.699402986690501, 42.036753594630198, 0.0 ], [ -72.695927, 42.036788, 0.0 ], [ -72.686080111332799, 42.035968622773602, 0.0 ], [ -72.672963354671595, 42.034877153980098, 0.0 ], [ -72.643134, 42.032395, 0.0 ], [ -72.616904640729999, 42.031202790266398, 0.0 ], [ -72.616903602541896, 42.031202743077401, 0.0 ], [ -72.607990970769706, 42.030797634960102, 0.0 ], [ -72.607933, 42.030795, 0.0 ], [ -72.606956057324894, 42.025128732484497, 0.0 ], [ -72.606933, 42.024995, 0.0 ], [ -72.590233, 42.024695, 0.0 ], [ -72.589826291139204, 42.024695, 0.0 ], [ -72.582332, 42.024695, 0.0 ], [ -72.574189321916293, 42.029567544208703, 0.0 ], [ -72.573231, 42.030141, 0.0 ], [ -72.563426778498297, 42.031044031843003, 0.0 ], [ -72.560975247644507, 42.031269833598401, 0.0 ], [ -72.560958712171001, 42.031271356621801, 0.0 ], [ -72.5530545610102, 42.0319993797686, 0.0 ], [ -72.552858204223995, 42.032017465491201, 0.0 ], [ -72.550111162210598, 42.032270485724503, 0.0 ], [ -72.5314944001573, 42.033985209218301, 0.0 ], [ -72.528147061445296, 42.034293520637597, 0.0 ], [ -72.528131, 42.034295, 0.0 ], [ -72.509204051235798, 42.034216591344602, 0.0 ], [ -72.460120424041904, 42.034013252641898, 0.0 ], [ -72.459691170165598, 42.0340114743722, 0.0 ], [ -72.458291322866501, 42.034005675225899, 0.0 ], [ -72.45668, 42.033999, 0.0 ], [ -72.441494143745103, 42.033771318813699, 0.0 ], [ -72.397433374541905, 42.0331107167355, 0.0 ], [ -72.366991760049103, 42.032654306324098, 0.0 ], [ -72.321821071414803, 42.031977063249997, 0.0 ], [ -72.321266798330299, 42.031968753046698, 0.0 ], [ -72.317148, 42.031907, 0.0 ], [ -72.270656136798607, 42.031713813847503, 0.0 ], [ -72.249523, 42.031626, 0.0 ], [ -72.2412901545176, 42.031526123338701, 0.0 ], [ -72.205080783455202, 42.031086849809803, 0.0 ], [ -72.198832120778206, 42.031011044237196, 0.0 ], [ -72.150088017396499, 42.030419705761098, 0.0 ], [ -72.143230250259293, 42.030336510845501, 0.0 ], [ -72.135715, 42.030245339681599, 0.0 ], [ -72.135687, 42.030245, 0.0 ], [ -72.102168777190698, 42.028899460947997, 0.0 ], [ -72.099725259707697, 42.028801369583903, 0.0 ], [ -72.063496, 42.027347, 0.0 ], [ -72.034578823346493, 42.027169708133101, 0.0 ], [ -72.010044415149196, 42.027019287119202, 0.0 ], [ -72.010039698933596, 42.027019258204, 0.0 ], [ -71.993102077169596, 42.026915413260298, 0.0 ], [ -71.987326, 42.02688, 0.0 ], [ -71.963019308635495, 42.026247571844401, 0.0 ], [ -71.952326956176506, 42.025969370889598, 0.0 ], [ -71.920986416938206, 42.025153931259098, 0.0 ], [ -71.920882886306302, 42.025151237528199, 0.0 ], [ -71.89078, 42.024368, 0.0 ], [ -71.883947767419002, 42.024307432443898, 0.0 ], [ -71.882803750427996, 42.024297290764402, 0.0 ], [ -71.877396643978997, 42.024249356912698, 0.0 ], [ -71.865951506224704, 42.024147896077601, 0.0 ], [ -71.860396771016696, 42.024098653500999, 0.0 ], [ -71.845712226274799, 42.023968475411003, 0.0 ], [ -71.841647093630797, 42.023932438120603, 0.0 ], [ -71.804566563501496, 42.023603720228998, 0.0 ], [ -71.80065, 42.023569, 0.0 ], [ -71.799242, 42.008065, 0.0 ], [ -71.76601, 42.009745, 0.0 ], [ -71.755109198053304, 42.009995929079899, 0.0 ], [ -71.680875816310504, 42.011704731264601, 0.0 ], [ -71.678022968574695, 42.011770401887802, 0.0 ], [ -71.661603714443999, 42.012148362000502, 0.0 ], [ -71.6453334734301, 42.0125228919322, 0.0 ], [ -71.606242009798507, 42.013422750956302, 0.0 ], [ -71.594118919225195, 42.013701816292802, 0.0 ], [ -71.591103192297396, 42.013771236284803, 0.0 ], [ -71.586863896337405, 42.013868822007403, 0.0 ], [ -71.576908, 42.014098, 0.0 ], [ -71.563665021229198, 42.014282972626901, 0.0 ], [ -71.559439, 42.014342, 0.0 ], [ -71.553360975429001, 42.014467253168696, 0.0 ], [ -71.529117246525701, 42.014966856918299, 0.0 ], [ -71.527699961165496, 42.014996063691001, 0.0 ], [ -71.527606, 42.014998, 0.0 ], [ -71.527306, 42.015098, 0.0 ], [ -71.524641187533902, 42.015299872085599, 0.0 ], [ -71.511633399473496, 42.016285273249302, 0.0 ], [ -71.502055503273596, 42.017010843962503, 0.0 ], [ -71.502049541112896, 42.017011295624201, 0.0 ], [ -71.500905, 42.017098, 0.0 ], [ -71.499905, 42.017198, 0.0 ], [ -71.498258301061995, 42.0172202331592, 0.0 ], [ -71.491354280241097, 42.017313448859198, 0.0 ], [ -71.483783117964904, 42.017415672072303, 0.0 ], [ -71.483712882956993, 42.017416620361097, 0.0 ], [ -71.458116645126296, 42.0177622119067, 0.0 ], [ -71.458103519194296, 42.017762389128499, 0.0 ], [ -71.424356923381694, 42.018218023987302, 0.0 ], [ -71.381401, 42.018798, 0.0 ], [ -71.3814370412492, 42.000020869558398, 0.0 ], [ -71.381465710800597, 41.985084319988502, 0.0 ], [ -71.381470259693401, 41.982714392318499, 0.0 ], [ -71.381501, 41.966699, 0.0 ], [ -71.381401, 41.964799, 0.0 ], [ -71.381457682511694, 41.952864340490599, 0.0 ], [ -71.381457692281202, 41.952862283502697, 0.0 ], [ -71.381481898708998, 41.9477655532284, 0.0 ], [ -71.3816, 41.922899, 0.0 ], [ -71.3817, 41.922699, 0.0 ], [ -71.3817, 41.915577138679197, 0.0 ], [ -71.3817, 41.914816, 0.0 ], [ -71.3817, 41.914659653225797, 0.0 ], [ -71.3817, 41.903598, 0.0 ], [ -71.3817, 41.897062, 0.0 ], [ -71.3817, 41.8937517472528, 0.0 ], [ -71.3817, 41.893199, 0.0 ], [ -71.381529238082706, 41.893225786183102, 0.0 ], [ -71.3766, 41.893999, 0.0 ], [ -71.376495867923893, 41.894013870699901, 0.0 ], [ -71.376352344061203, 41.894034366788802, 0.0 ], [ -71.373799, 41.894399, 0.0 ], [ -71.371190326560196, 41.894585333817098, 0.0 ], [ -71.370999, 41.894599, 0.0 ], [ -71.365402432997698, 41.895298570875298, 0.0 ], [ -71.365399, 41.895299, 0.0 ], [ -71.364699, 41.895399, 0.0 ], [ -71.362499, 41.895599, 0.0 ], [ -71.354699, 41.896499, 0.0 ], [ -71.354518825625505, 41.896517017437397, 0.0 ], [ -71.352699, 41.896699, 0.0 ], [ -71.349053635403394, 41.897141619799598, 0.0 ], [ -71.345874909416096, 41.897527580386601, 0.0 ], [ -71.339665057915397, 41.898281579926, 0.0 ], [ -71.338762493722101, 41.898391169178801, 0.0 ], [ -71.338698, 41.898399, 0.0 ], [ -71.339177716981098, 41.894561264150902, 0.0 ], [ -71.339298, 41.893599, 0.0 ], [ -71.339298, 41.893399, 0.0 ], [ -71.3397157557079, 41.890112933601301, 0.0 ], [ -71.339718870789795, 41.8900884303672, 0.0 ], [ -71.340798, 41.8816, 0.0 ], [ -71.338863843395004, 41.876111215633699, 0.0 ], [ -71.337828866172401, 41.873174138674997, 0.0 ], [ -71.3378266820677, 41.873167940583301, 0.0 ], [ -71.337412967981905, 41.871993895316997, 0.0 ], [ -71.333997, 41.8623, 0.0 ], [ -71.334493988682297, 41.861239482753298, 0.0 ], [ -71.341673422639502, 41.845919388344001, 0.0 ], [ -71.342198, 41.8448, 0.0 ], [ -71.341797, 41.8437, 0.0 ], [ -71.3407956584837, 41.842455909025297, 0.0 ], [ -71.335197, 41.8355, 0.0 ], [ -71.33750452, 41.83376936, 0.0 ], [ -71.337597, 41.8337, 0.0 ], [ -71.339597, 41.832, 0.0 ], [ -71.342839369299099, 41.8295529288309, 0.0 ], [ -71.344897, 41.828, 0.0 ], [ -71.345888731740601, 41.825887180204802, 0.0 ], [ -71.347197, 41.8231, 0.0 ], [ -71.339197, 41.809, 0.0 ], [ -71.339021706896503, 41.808590982758602, 0.0 ], [ -71.339003743144204, 41.808549067336401, 0.0 ], [ -71.338897, 41.8083, 0.0 ], [ -71.3390380117647, 41.807665447058802, 0.0 ], [ -71.339297, 41.8065, 0.0 ], [ -71.339297, 41.8044, 0.0 ], [ -71.340173425339401, 41.8019460090498, 0.0 ], [ -71.340797, 41.8002, 0.0 ], [ -71.340697, 41.7983, 0.0 ], [ -71.339297, 41.7963, 0.0 ], [ -71.335797, 41.7948, 0.0 ], [ -71.333896, 41.7945, 0.0 ], [ -71.332196, 41.7923, 0.0 ], [ -71.330116164759104, 41.788355484887902, 0.0 ], [ -71.329296, 41.7868, 0.0 ], [ -71.329396, 41.7826, 0.0 ], [ -71.327896, 41.780501, 0.0 ], [ -71.317924391800403, 41.776157363124597, 0.0 ], [ -71.317795, 41.776101, 0.0 ], [ -71.316387844273095, 41.775507231826303, 0.0 ], [ -71.297687564849397, 41.767616398886901, 0.0 ], [ -71.294758051420303, 41.766380251525703, 0.0 ], [ -71.284401771686902, 41.762010280821002, 0.0 ], [ -71.261392, 41.752301, 0.0 ], [ -71.254742994474697, 41.7447183583796, 0.0 ], [ -71.252130745750705, 41.741739304471203, 0.0 ], [ -71.245332603860504, 41.733986585144798, 0.0 ], [ -71.245246495566306, 41.733888385747399, 0.0 ], [ -71.226236731664699, 41.712209320147899, 0.0 ], [ -71.225791, 41.711701, 0.0 ], [ -71.224798, 41.710498, 0.0 ], [ -71.222470996298995, 41.707679020657999, 0.0 ], [ -71.208371, 41.690598, 0.0 ], [ -71.208292753245402, 41.6905023835889, 0.0 ], [ -71.201220958491504, 41.6818607518953, 0.0 ], [ -71.19569, 41.675102, 0.0 ], [ -71.19564, 41.67509, 0.0 ], [ -71.19439, 41.674802, 0.0 ], [ -71.191178, 41.674216, 0.0 ], [ -71.191175, 41.674292, 0.0 ], [ -71.184333189886402, 41.673053068274797, 0.0 ], [ -71.184329906138004, 41.673052473645598, 0.0 ], [ -71.18129, 41.672502, 0.0 ], [ -71.17599, 41.671402, 0.0 ], [ -71.1760865819477, 41.668601123515401, 0.0 ], [ -71.17609, 41.668502, 0.0 ], [ -71.17609, 41.668102, 0.0 ], [ -71.176089094424597, 41.668101836102402, 0.0 ], [ -71.1621482835032, 41.665578726573997, 0.0 ], [ -71.153989, 41.664102, 0.0 ], [ -71.14587, 41.662795, 0.0 ], [ -71.135188, 41.660502, 0.0 ], [ -71.134688, 41.660502, 0.0 ], [ -71.132888, 41.660102, 0.0 ], [ -71.13267, 41.658744, 0.0 ], [ -71.134478, 41.641262, 0.0 ], [ -71.134484, 41.641198, 0.0 ], [ -71.134701171322703, 41.6388899233839, 0.0 ], [ -71.135675749491995, 41.628532197259297, 0.0 ], [ -71.135688, 41.628402, 0.0 ], [ -71.140468, 41.623893, 0.0 ], [ -71.141509, 41.616076, 0.0 ], [ -71.14091, 41.607405, 0.0 ], [ -71.140867889254807, 41.607103816627003, 0.0 ], [ -71.140588, 41.605102, 0.0 ], [ -71.138549070002597, 41.603428575864598, 0.0 ], [ -71.137492, 41.602561, 0.0 ], [ -71.131618, 41.593918, 0.0 ], [ -71.131491526431006, 41.593252567169898, 0.0 ], [ -71.131312, 41.592308, 0.0 ], [ -71.127572889243197, 41.562875089563597, 0.0 ], [ -71.126595222831597, 41.555179257639701, 0.0 ], [ -71.1224, 41.522156, 0.0 ], [ -71.12057, 41.497448, 0.0 ], [ -71.115781, 41.496509, 0.0 ], [ -71.1138, 41.500106, 0.0 ], [ -71.106814, 41.502469, 0.0 ], [ -71.093052, 41.504214, 0.0 ], [ -71.085663, 41.509292, 0.0 ], [ -71.070687, 41.508877, 0.0 ], [ -71.068767825846905, 41.508421804239497, 0.0 ], [ -71.058418, 41.505967, 0.0 ], [ -71.048593, 41.502659, 0.0 ], [ -71.041013, 41.497534, 0.0 ], [ -71.041076389916995, 41.495328598560903, 0.0 ], [ -71.041203443403404, 41.490908275024303, 0.0 ], [ -71.041214, 41.490541, 0.0 ], [ -71.038362, 41.481105, 0.0 ], [ -71.03551, 41.481639, 0.0 ], [ -71.033609, 41.486802, 0.0 ], [ -71.038349, 41.492182, 0.0 ], [ -71.035514, 41.499047, 0.0 ], [ -71.022336, 41.504346, 0.0 ], [ -71.0222534069229, 41.504470942109599, 0.0 ], [ -71.019354, 41.508857, 0.0 ], [ -71.003275, 41.511912, 0.0 ], [ -70.99389, 41.511256, 0.0 ], [ -70.983956, 41.5089, 0.0 ], [ -70.981708, 41.51007, 0.0 ], [ -70.981557, 41.513682, 0.0 ], [ -70.984647, 41.520445, 0.0 ], [ -70.980131, 41.527563, 0.0 ], [ -70.976617365560401, 41.528997301055, 0.0 ], [ -70.972287, 41.530765, 0.0 ], [ -70.966583, 41.531655, 0.0 ], [ -70.961354, 41.529698, 0.0 ], [ -70.958027, 41.52169, 0.0 ], [ -70.956601, 41.515462, 0.0 ], [ -70.953299, 41.51501, 0.0 ], [ -70.952617, 41.51812, 0.0 ], [ -70.954884, 41.527567, 0.0 ], [ -70.947929, 41.529802, 0.0 ], [ -70.946302, 41.537564, 0.0 ], [ -70.941785, 41.540121, 0.0 ], [ -70.92852, 41.539776, 0.0 ], [ -70.934562, 41.548746, 0.0 ], [ -70.934825007676807, 41.550842495025897, 0.0 ], [ -70.935315897095705, 41.554755488126503, 0.0 ], [ -70.935431, 41.555673, 0.0 ], [ -70.93783, 41.565239, 0.0 ], [ -70.9473, 41.573659, 0.0 ], [ -70.948797, 41.579038, 0.0 ], [ -70.948080339567099, 41.579817358721002, 0.0 ], [ -70.946911, 41.581089, 0.0 ], [ -70.944429819548304, 41.581063363155202, 0.0 ], [ -70.941588, 41.581034, 0.0 ], [ -70.937978, 41.577416, 0.0 ], [ -70.937747065945302, 41.577571728556599, 0.0 ], [ -70.933722, 41.580286, 0.0 ], [ -70.931338, 41.5842, 0.0 ], [ -70.931326572165702, 41.584228573930801, 0.0 ], [ -70.931297018713394, 41.584302468798803, 0.0 ], [ -70.928131563171306, 41.5922173112493, 0.0 ], [ -70.927820121794397, 41.592996033110197, 0.0 ], [ -70.927393, 41.594064, 0.0 ], [ -70.93, 41.600441, 0.0 ], [ -70.931169, 41.606873, 0.0 ], [ -70.931089692542201, 41.607015830155497, 0.0 ], [ -70.930581727316394, 41.6079306590279, 0.0 ], [ -70.930250119289894, 41.608527874312699, 0.0 ], [ -70.929722, 41.609479, 0.0 ], [ -70.930456, 41.613271, 0.0 ], [ -70.925636986674903, 41.613906697092503, 0.0 ], [ -70.922685990211093, 41.614295975923099, 0.0 ], [ -70.922375, 41.614337, 0.0 ], [ -70.921772801431501, 41.613413942915699, 0.0 ], [ -70.920074, 41.61081, 0.0 ], [ -70.918413795499703, 41.609228694425298, 0.0 ], [ -70.917052278995698, 41.607931882112403, 0.0 ], [ -70.916581, 41.607483, 0.0 ], [ -70.912335700118504, 41.5986662917147, 0.0 ], [ -70.910814, 41.595506, 0.0 ], [ -70.90908, 41.5937, 0.0 ], [ -70.902051, 41.591583, 0.0 ], [ -70.898607, 41.592654, 0.0 ], [ -70.899557307810596, 41.595498818326703, 0.0 ], [ -70.8996639885777, 41.595818175274097, 0.0 ], [ -70.903306694531196, 41.606722891135199, 0.0 ], [ -70.904522, 41.610361, 0.0 ], [ -70.905365722074606, 41.611226592750597, 0.0 ], [ -70.9071685427121, 41.613076145489799, 0.0 ], [ -70.909830394880402, 41.615806997282299, 0.0 ], [ -70.911695573779397, 41.617720524712702, 0.0 ], [ -70.913202, 41.619266, 0.0 ], [ -70.908827, 41.623577, 0.0 ], [ -70.906397, 41.623577, 0.0 ], [ -70.905821235443, 41.623577, 0.0 ], [ -70.903123, 41.623577, 0.0 ], [ -70.896380751588396, 41.623996962417102, 0.0 ], [ -70.894566, 41.62411, 0.0 ], [ -70.890817, 41.628511, 0.0 ], [ -70.889258357368107, 41.632769157389298, 0.0 ], [ -70.889209, 41.632904, 0.0 ], [ -70.8870586118137, 41.632242662047098, 0.0 ], [ -70.884415318711405, 41.6314297343812, 0.0 ], [ -70.8820617027785, 41.630705895051797, 0.0 ], [ -70.882012268817704, 41.630690691957497, 0.0 ], [ -70.879039840925799, 41.629776541019702, 0.0 ], [ -70.877733012313399, 41.629374634347798, 0.0 ], [ -70.874652252834096, 41.628427166732301, 0.0 ], [ -70.872665, 41.627816, 0.0 ], [ -70.869624, 41.625608, 0.0 ], [ -70.86836, 41.622664, 0.0 ], [ -70.868904, 41.614664, 0.0 ], [ -70.868736150494996, 41.614358942200703, 0.0 ], [ -70.862955, 41.603852, 0.0 ], [ -70.863638, 41.600919, 0.0 ], [ -70.863661, 41.597594, 0.0 ], [ -70.860237, 41.594635, 0.0 ], [ -70.857239, 41.587705, 0.0 ], [ -70.856723, 41.583709, 0.0 ], [ -70.853447, 41.582195, 0.0 ], [ -70.852996019223397, 41.583633365627797, 0.0 ], [ -70.851784, 41.587499, 0.0 ], [ -70.851042317598697, 41.590288984329199, 0.0 ], [ -70.850181, 41.593529, 0.0 ], [ -70.848650636707305, 41.594135067757399, 0.0 ], [ -70.846555, 41.594965, 0.0 ], [ -70.842337047450002, 41.593636849307799, 0.0 ], [ -70.842039, 41.593543, 0.0 ], [ -70.843227, 41.596565, 0.0 ], [ -70.847981, 41.602963, 0.0 ], [ -70.849645, 41.61025, 0.0 ], [ -70.853665, 41.613969, 0.0 ], [ -70.854426, 41.616011, 0.0 ], [ -70.854259, 41.618593, 0.0 ], [ -70.854530851854193, 41.619608603409198, 0.0 ], [ -70.855126, 41.621832, 0.0 ], [ -70.855201915930806, 41.621870427410201, 0.0 ], [ -70.859639955987404, 41.6241168911491, 0.0 ], [ -70.859654, 41.624124, 0.0 ], [ -70.855901785421906, 41.625593652430702, 0.0 ], [ -70.852518, 41.626919, 0.0 ], [ -70.844165, 41.628983, 0.0 ], [ -70.843176309500706, 41.628486815377997, 0.0 ], [ -70.835296, 41.624532, 0.0 ], [ -70.827774, 41.624635, 0.0 ], [ -70.822074, 41.627485, 0.0 ], [ -70.817683, 41.623432, 0.0 ], [ -70.810279, 41.624873, 0.0 ], [ -70.804296164322494, 41.627885191573696, 0.0 ], [ -70.801063, 41.629513, 0.0 ], [ -70.800215, 41.631753, 0.0 ], [ -70.801157453505695, 41.6337450954749, 0.0 ], [ -70.804664, 41.641157, 0.0 ], [ -70.816351, 41.645995, 0.0 ], [ -70.823262, 41.648979, 0.0 ], [ -70.822219047924193, 41.652651896132099, 0.0 ], [ -70.822019903291505, 41.653353210764003, 0.0 ], [ -70.821598, 41.654839, 0.0 ], [ -70.817098440170597, 41.656346470058899, 0.0 ], [ -70.814706, 41.657148, 0.0 ], [ -70.814021733639805, 41.657297087306901, 0.0 ], [ -70.813769120303803, 41.657352126461397, 0.0 ], [ -70.810160840281497, 41.658138295097302, 0.0 ], [ -70.809001, 41.658391, 0.0 ], [ -70.802346, 41.655727, 0.0 ], [ -70.795216, 41.650932, 0.0 ], [ -70.790829, 41.653231, 0.0 ], [ -70.786069037069694, 41.652247684042699, 0.0 ], [ -70.786027, 41.652239, 0.0 ], [ -70.778529454851906, 41.651045733263103, 0.0 ], [ -70.778294987731101, 41.651008416806697, 0.0 ], [ -70.776709, 41.650756, 0.0 ], [ -70.775798, 41.649145, 0.0 ], [ -70.773654, 41.645033, 0.0 ], [ -70.769318, 41.641145, 0.0 ], [ -70.765463, 41.641575, 0.0 ], [ -70.768358, 41.645782, 0.0 ], [ -70.766457, 41.648446, 0.0 ], [ -70.762178, 41.648268, 0.0 ], [ -70.762416, 41.652708, 0.0 ], [ -70.757065, 41.652891, 0.0 ], [ -70.758198, 41.661225, 0.0 ], [ -70.761941, 41.665493, 0.0 ], [ -70.76236, 41.667735, 0.0 ], [ -70.756712, 41.666914, 0.0 ], [ -70.761856, 41.672933, 0.0 ], [ -70.763842, 41.676856, 0.0 ], [ -70.763170341735304, 41.677314094037797, 0.0 ], [ -70.758376, 41.680584, 0.0 ], [ -70.752434, 41.678454, 0.0 ], [ -70.75077, 41.675613, 0.0 ], [ -70.745104, 41.672445, 0.0 ], [ -70.743402, 41.674726, 0.0 ], [ -70.749106, 41.680406, 0.0 ], [ -70.751721, 41.685554, 0.0 ], [ -70.752434, 41.690169, 0.0 ], [ -70.755347, 41.694326, 0.0 ], [ -70.755297188382301, 41.694349987073203, 0.0 ], [ -70.752420008409203, 41.695735509764397, 0.0 ], [ -70.748868, 41.697446, 0.0 ], [ -70.744353, 41.697978, 0.0 ], [ -70.743197176560301, 41.696467698105302, 0.0 ], [ -70.739599, 41.691766, 0.0 ], [ -70.729395, 41.68814, 0.0 ], [ -70.721535, 41.681471, 0.0 ], [ -70.719829, 41.677993, 0.0 ], [ -70.715593, 41.675258, 0.0 ], [ -70.715045, 41.681008, 0.0 ], [ -70.718355, 41.690157, 0.0 ], [ -70.714906, 41.691938, 0.0 ], [ -70.717451, 41.69398, 0.0 ], [ -70.723199, 41.696026, 0.0 ], [ -70.726051, 41.70064, 0.0 ], [ -70.727477, 41.702414, 0.0 ], [ -70.722724, 41.703834, 0.0 ], [ -70.71423, 41.701731, 0.0 ], [ -70.712028, 41.707028, 0.0 ], [ -70.714886, 41.710312, 0.0 ], [ -70.721302, 41.712968, 0.0 ], [ -70.728526, 41.722875, 0.0 ], [ -70.726782403445696, 41.723978485176502, 0.0 ], [ -70.725813, 41.724592, 0.0 ], [ -70.720949, 41.72322, 0.0 ], [ -70.720822, 41.727608, 0.0 ], [ -70.726331, 41.732731, 0.0 ], [ -70.724610671329103, 41.733412832056203, 0.0 ], [ -70.722959118264797, 41.734067405708799, 0.0 ], [ -70.718739, 41.73574, 0.0 ], [ -70.717202070180605, 41.734321067001801, 0.0 ], [ -70.715118, 41.732397, 0.0 ], [ -70.708193, 41.730959, 0.0 ], [ -70.706166, 41.728984, 0.0 ], [ -70.697054, 41.729204, 0.0 ], [ -70.68826, 41.723705, 0.0 ], [ -70.687587610020401, 41.7246585661007, 0.0 ], [ -70.685883, 41.727076, 0.0 ], [ -70.679228, 41.727431, 0.0 ], [ -70.670453, 41.721912, 0.0 ], [ -70.664005, 41.716201, 0.0 ], [ -70.656596, 41.715401, 0.0 ], [ -70.656206, 41.713387, 0.0 ], [ -70.665205, 41.703834, 0.0 ], [ -70.676138, 41.692654, 0.0 ], [ -70.674064, 41.691371, 0.0 ], [ -70.660452, 41.705076, 0.0 ], [ -70.650469, 41.713416, 0.0 ], [ -70.648805, 41.718029, 0.0 ], [ -70.6435581909479, 41.717639534217902, 0.0 ], [ -70.639725, 41.717355, 0.0 ], [ -70.633831, 41.714125, 0.0 ], [ -70.630988244546003, 41.713685077559099, 0.0 ], [ -70.626529, 41.712995, 0.0 ], [ -70.623652, 41.707398, 0.0 ], [ -70.624619775074194, 41.7026852384951, 0.0 ], [ -70.625050037433297, 41.700589995564201, 0.0 ], [ -70.62544, 41.698691, 0.0 ], [ -70.645962, 41.693794, 0.0 ], [ -70.646577355454596, 41.693301914706097, 0.0 ], [ -70.649426951351998, 41.691023159843297, 0.0 ], [ -70.662036, 41.68094, 0.0 ], [ -70.659976, 41.679341, 0.0 ], [ -70.657339, 41.68148, 0.0 ], [ -70.649285, 41.680943, 0.0 ], [ -70.645953, 41.680939, 0.0 ], [ -70.640011, 41.679519, 0.0 ], [ -70.633594, 41.676323, 0.0 ], [ -70.632881, 41.670287, 0.0 ], [ -70.637302182373503, 41.670759147907198, 0.0 ], [ -70.637872, 41.67082, 0.0 ], [ -70.641913, 41.67153, 0.0 ], [ -70.648613, 41.670328, 0.0 ], [ -70.653754, 41.66709, 0.0 ], [ -70.651956, 41.663044, 0.0 ], [ -70.645715, 41.659456, 0.0 ], [ -70.640724, 41.659456, 0.0 ], [ -70.63502, 41.663185, 0.0 ], [ -70.634313252698306, 41.662970541313101, 0.0 ], [ -70.629827819618299, 41.661609460646702, 0.0 ], [ -70.627414, 41.660877, 0.0 ], [ -70.626815121861199, 41.659697113842803, 0.0 ], [ -70.625871919272797, 41.657838853196303, 0.0 ], [ -70.625052091163994, 41.656223660097403, 0.0 ], [ -70.6248, 41.655727, 0.0 ], [ -70.630299962012202, 41.650631528630598, 0.0 ], [ -70.630742, 41.650222, 0.0 ], [ -70.638695, 41.649427, 0.0 ], [ -70.644725, 41.64674, 0.0 ], [ -70.650724, 41.64613, 0.0 ], [ -70.6511195945601, 41.6450193519577, 0.0 ], [ -70.6529071017695, 41.640000851748397, 0.0 ], [ -70.65327, 41.638982, 0.0 ], [ -70.652614, 41.637829, 0.0 ], [ -70.645251, 41.633547, 0.0 ], [ -70.643815282792602, 41.631103709150402, 0.0 ], [ -70.6401176391809, 41.624811091944601, 0.0 ], [ -70.640003, 41.624616, 0.0 ], [ -70.640948269990005, 41.623859784007998, 0.0 ], [ -70.646128, 41.619716, 0.0 ], [ -70.646849, 41.613502, 0.0 ], [ -70.651986, 41.610184, 0.0 ], [ -70.652299320761102, 41.606818001153798, 0.0 ], [ -70.652418174481596, 41.6055411579446, 0.0 ], [ -70.652449, 41.60521, 0.0 ], [ -70.642311250991597, 41.583643056581501, 0.0 ], [ -70.64204, 41.583066, 0.0 ], [ -70.640948, 41.577325, 0.0 ], [ -70.641197018108599, 41.576641583635102, 0.0 ], [ -70.641560786689496, 41.575643240974401, 0.0 ], [ -70.642748, 41.572385, 0.0 ], [ -70.64878, 41.56987, 0.0 ], [ -70.649281, 41.565807, 0.0 ], [ -70.653899, 41.56516, 0.0 ], [ -70.655365, 41.557498, 0.0 ], [ -70.654302, 41.549926, 0.0 ], [ -70.656660701338197, 41.546384970518098, 0.0 ], [ -70.658659, 41.543385, 0.0 ], [ -70.666508, 41.539958, 0.0 ], [ -70.668555, 41.536461, 0.0 ], [ -70.668057, 41.5329, 0.0 ], [ -70.672012, 41.531779, 0.0 ], [ -70.676376, 41.528986, 0.0 ], [ -70.676868399894701, 41.529293145656602, 0.0 ], [ -70.679228, 41.530765, 0.0 ], [ -70.680571166266901, 41.531474641172899, 0.0 ], [ -70.683269, 41.5329, 0.0 ], [ -70.686981, 41.52949, 0.0 ], [ -70.687785, 41.524182, 0.0 ], [ -70.685408, 41.521335, 0.0 ], [ -70.678515, 41.521512, 0.0 ], [ -70.673049, 41.523648, 0.0 ], [ -70.670196, 41.520801, 0.0 ], [ -70.668295, 41.517953, 0.0 ], [ -70.664623095238099, 41.517953, 0.0 ], [ -70.662828, 41.517953, 0.0 ], [ -70.656801052965307, 41.514869084170897, 0.0 ], [ -70.656625, 41.514779, 0.0 ], [ -70.654011, 41.515905, 0.0 ], [ -70.654104, 41.519025, 0.0 ], [ -70.650058866842201, 41.524172438699999, 0.0 ], [ -70.643627, 41.532357, 0.0 ], [ -70.641209878989301, 41.533779531197602, 0.0 ], [ -70.633799623515102, 41.538140636639902, 0.0 ], [ -70.633712548999497, 41.538191881990997, 0.0 ], [ -70.633607, 41.538254, 0.0 ], [ -70.6229964555056, 41.5404843528448, 0.0 ], [ -70.621738043507804, 41.540748872990797, 0.0 ], [ -70.617911143093593, 41.541553293370001, 0.0 ], [ -70.616035748523203, 41.541947504205901, 0.0 ], [ -70.614398485289399, 41.542291659466997, 0.0 ], [ -70.611081, 41.542989, 0.0 ], [ -70.607830999611906, 41.5426700484363, 0.0 ], [ -70.601839, 41.542082, 0.0 ], [ -70.6007338336468, 41.542497142822398, 0.0 ], [ -70.59381, 41.545098, 0.0 ], [ -70.588810011202696, 41.545322475494402, 0.0 ], [ -70.586415, 41.54543, 0.0 ], [ -70.580555, 41.54424, 0.0 ], [ -70.580390275406003, 41.544303758878499, 0.0 ], [ -70.580302346933294, 41.544337792781199, 0.0 ], [ -70.576650534375005, 41.545751276145097, 0.0 ], [ -70.573768, 41.546867, 0.0 ], [ -70.570437111484495, 41.547213124717501, 0.0 ], [ -70.561261256935197, 41.548166621074202, 0.0 ], [ -70.560805260796798, 41.548214005288301, 0.0 ], [ -70.559689, 41.54833, 0.0 ], [ -70.559240954417604, 41.5484372927436, 0.0 ], [ -70.557796508606103, 41.548783191822203, 0.0 ], [ -70.547919543826694, 41.5511484124413, 0.0 ], [ -70.547479878028298, 41.551253698491699, 0.0 ], [ -70.546823, 41.551411, 0.0 ], [ -70.538821, 41.551256, 0.0 ], [ -70.532376, 41.549306, 0.0 ], [ -70.528623, 41.546721, 0.0 ], [ -70.527862874854193, 41.5469919213512, 0.0 ], [ -70.522327, 41.548965, 0.0 ], [ -70.522008910421903, 41.548998675955403, 0.0 ], [ -70.499826225788894, 41.551347143650801, 0.0 ], [ -70.495170763070902, 41.551840014733799, 0.0 ], [ -70.493244, 41.552044, 0.0 ], [ -70.485571, 41.554244, 0.0 ], [ -70.476256, 41.558502, 0.0 ], [ -70.465092207667297, 41.568428517978802, 0.0 ], [ -70.4636936400764, 41.569672083419803, 0.0 ], [ -70.461278, 41.57182, 0.0 ], [ -70.45069, 41.584992, 0.0 ], [ -70.450361248786905, 41.587588045154199, 0.0 ], [ -70.450177, 41.589043, 0.0 ], [ -70.446551, 41.590237, 0.0 ], [ -70.445289, 41.591815, 0.0 ], [ -70.444379446098196, 41.594279751456902, 0.0 ], [ -70.442618, 41.599053, 0.0 ], [ -70.441571763383493, 41.600275297283098, 0.0 ], [ -70.437246, 41.605329, 0.0 ], [ -70.432748674034102, 41.605644954434098, 0.0 ], [ -70.431652, 41.605722, 0.0 ], [ -70.426812, 41.604719, 0.0 ], [ -70.424737217325799, 41.605017100306497, 0.0 ], [ -70.408535, 41.607345, 0.0 ], [ -70.401147596482303, 41.606450598492899, 0.0 ], [ -70.400581, 41.606382, 0.0 ], [ -70.379151, 41.611361, 0.0 ], [ -70.369854, 41.615888, 0.0 ], [ -70.364744, 41.623671, 0.0 ], [ -70.364763446756598, 41.624071760863004, 0.0 ], [ -70.364892, 41.626721, 0.0 ], [ -70.360352, 41.631069, 0.0 ], [ -70.351634, 41.634687, 0.0 ], [ -70.350535375211805, 41.634820694223102, 0.0 ], [ -70.338573468122306, 41.636276366708202, 0.0 ], [ -70.338067, 41.636338, 0.0 ], [ -70.333984620946694, 41.635455648638903, 0.0 ], [ -70.329924, 41.634578, 0.0 ], [ -70.3223718358594, 41.630890702968799, 0.0 ], [ -70.321588, 41.630508, 0.0 ], [ -70.316626, 41.625448, 0.0 ], [ -70.311687, 41.627408, 0.0 ], [ -70.300653, 41.62951, 0.0 ], [ -70.300248, 41.63246, 0.0 ], [ -70.296009, 41.63438, 0.0 ], [ -70.29062, 41.635196, 0.0 ], [ -70.28132, 41.635125, 0.0 ], [ -70.274522, 41.632927, 0.0 ], [ -70.270787247380198, 41.627950331310601, 0.0 ], [ -70.26913, 41.625742, 0.0 ], [ -70.269687, 41.617775, 0.0 ], [ -70.267587, 41.610912, 0.0 ], [ -70.265424, 41.609333, 0.0 ], [ -70.259601, 41.610863, 0.0 ], [ -70.25542, 41.617541, 0.0 ], [ -70.25621, 41.620698, 0.0 ], [ -70.245867, 41.628479, 0.0 ], [ -70.235444053530699, 41.6316705130792, 0.0 ], [ -70.220416126721105, 41.636272074174101, 0.0 ], [ -70.219773, 41.636469, 0.0 ], [ -70.207082, 41.642503, 0.0 ], [ -70.203285340642694, 41.6431923516054, 0.0 ], [ -70.198, 41.644152, 0.0 ], [ -70.195193, 41.647913, 0.0 ], [ -70.193308529145995, 41.648271298345797, 0.0 ], [ -70.187167, 41.649439, 0.0 ], [ -70.168357353422294, 41.651995098220603, 0.0 ], [ -70.168336, 41.651998, 0.0 ], [ -70.158115, 41.65182, 0.0 ], [ -70.157515144947098, 41.651771386616304, 0.0 ], [ -70.140877, 41.650423, 0.0 ], [ -70.136707357971005, 41.6512921387923, 0.0 ], [ -70.117752741829506, 41.6552431235692, 0.0 ], [ -70.117564831406995, 41.655282292456299, 0.0 ], [ -70.116506, 41.655503, 0.0 ], [ -70.089238, 41.662813, 0.0 ], [ -70.086578083720397, 41.663041812158902, 0.0 ], [ -70.075974, 41.663954, 0.0 ], [ -70.065702, 41.662357, 0.0 ], [ -70.064508538550001, 41.663051855342502, 0.0 ], [ -70.062114, 41.664446, 0.0 ], [ -70.055523, 41.664843, 0.0 ], [ -70.040515, 41.667401, 0.0 ], [ -70.037395301741796, 41.667496805936302, 0.0 ], [ -70.037264892194898, 41.6675008108136, 0.0 ], [ -70.032112555039504, 41.6676590390922, 0.0 ], [ -70.029346, 41.667744, 0.0 ], [ -70.029118926293805, 41.667807418602997, 0.0 ], [ -70.021452930992396, 41.669948427003298, 0.0 ], [ -70.015789052296597, 41.671530271420004, 0.0 ], [ -70.014211, 41.671971, 0.0 ], [ -70.012478311586307, 41.671876664741902, 0.0 ], [ -70.007153442178605, 41.671586755185302, 0.0 ], [ -70.007011, 41.671579, 0.0 ], [ -69.9985495682932, 41.668087825351897, 0.0 ], [ -69.996359, 41.667184, 0.0 ], [ -69.985322, 41.658213, 0.0 ], [ -69.983240900193294, 41.657243207056602, 0.0 ], [ -69.975719, 41.653738, 0.0 ], [ -69.970489, 41.645458, 0.0 ], [ -69.973073, 41.642941, 0.0 ], [ -69.975916, 41.638863, 0.0 ], [ -69.977478, 41.630786, 0.0 ], [ -69.98556, 41.619668, 0.0 ], [ -69.985211, 41.613124, 0.0 ], [ -69.989827, 41.607152, 0.0 ], [ -69.992215, 41.603319, 0.0 ], [ -69.991306, 41.588721, 0.0 ], [ -69.993879, 41.576299, 0.0 ], [ -69.99885, 41.565904, 0.0 ], [ -70.002911, 41.562073, 0.0 ], [ -70.008615, 41.557982, 0.0 ], [ -70.012697, 41.553228, 0.0 ], [ -70.013606, 41.551046, 0.0 ], [ -70.012655, 41.546777, 0.0 ], [ -70.011229, 41.543931, 0.0 ], [ -70.008377, 41.54144, 0.0 ], [ -70.003861, 41.540551, 0.0 ], [ -69.997682, 41.54233, 0.0 ], [ -69.991977, 41.547488, 0.0 ], [ -69.988215, 41.554704, 0.0 ], [ -69.989363, 41.581455, 0.0 ], [ -69.988375, 41.586967, 0.0 ], [ -69.988412, 41.594432, 0.0 ], [ -69.983183, 41.608295, 0.0 ], [ -69.976053, 41.611671, 0.0 ], [ -69.967192, 41.611956, 0.0 ], [ -69.957775, 41.620364, 0.0 ], [ -69.956801, 41.629795, 0.0 ], [ -69.954023, 41.634033, 0.0 ], [ -69.952255, 41.640472, 0.0 ], [ -69.951507548849307, 41.642211358700102, 0.0 ], [ -69.947531, 41.651465, 0.0 ], [ -69.943966, 41.65555, 0.0 ], [ -69.943728, 41.664783, 0.0 ], [ -69.933746, 41.678631, 0.0 ], [ -69.930418, 41.691944, 0.0 ], [ -69.928393, 41.708449, 0.0 ], [ -69.9285040274615, 41.722510049289298, 0.0 ], [ -69.928652, 41.74125, 0.0 ], [ -69.938024, 41.809507, 0.0 ], [ -69.938178990037102, 41.810369161704699, 0.0 ], [ -69.939659, 41.818602, 0.0 ], [ -69.941352, 41.822793, 0.0 ], [ -69.942778, 41.833065, 0.0 ], [ -69.945314, 41.845222, 0.0 ], [ -69.950302539421699, 41.859464747108603, 0.0 ], [ -69.957460195804003, 41.8799005262265, 0.0 ], [ -69.968598, 41.9117, 0.0 ], [ -69.983709669055699, 41.944449295030701, 0.0 ], [ -69.986024074230599, 41.949464964551701, 0.0 ], [ -69.986085, 41.949597, 0.0 ], [ -69.986195895124197, 41.949769372256902, 0.0 ], [ -69.997125134273901, 41.9667574736944, 0.0 ], [ -70.005717315605196, 41.980112918297998, 0.0 ], [ -70.010510415715402, 41.987563178078901, 0.0 ], [ -70.011898, 41.98972, 0.0 ], [ -70.033501, 42.017736, 0.0 ], [ -70.036670678864994, 42.020601374497801, 0.0 ], [ -70.058531, 42.040363, 0.0 ], [ -70.059109287121998, 42.040706088702997, 0.0 ], [ -70.082624, 42.054657, 0.0 ], [ -70.115968, 42.067638, 0.0 ], [ -70.154255357940798, 42.0771582964788, 0.0 ], [ -70.160166, 42.078628, 0.0 ], [ -70.189305, 42.082337, 0.0 ], [ -70.206899, 42.0819, 0.0 ], [ -70.225626, 42.078601, 0.0 ], [ -70.238087, 42.072878, 0.0 ], [ -70.245385, 42.063733, 0.0 ], [ -70.24354, 42.060569, 0.0 ], [ -70.238875, 42.060479, 0.0 ], [ -70.235361, 42.057402, 0.0 ], [ -70.228617, 42.053932, 0.0 ], [ -70.218701, 42.045848, 0.0 ], [ -70.213012, 42.036134, 0.0 ], [ -70.208741, 42.030749, 0.0 ], [ -70.196312, 42.021984, 0.0 ], [ -70.190834, 42.020028, 0.0 ], [ -70.186708, 42.019904, 0.0 ], [ -70.179601, 42.021858, 0.0 ], [ -70.171008, 42.028045, 0.0 ], [ -70.166884, 42.034575, 0.0 ], [ -70.173758, 42.027357, 0.0 ], [ -70.189461, 42.024236, 0.0 ], [ -70.192341, 42.023157, 0.0 ], [ -70.19662, 42.025452, 0.0 ], [ -70.205889, 42.032691, 0.0 ], [ -70.201135, 42.034986, 0.0 ], [ -70.196151765517797, 42.0361281427937, 0.0 ], [ -70.19497, 42.036399, 0.0 ], [ -70.194456, 42.03947, 0.0 ], [ -70.190448161187604, 42.0452299568272, 0.0 ], [ -70.186816, 42.05045, 0.0 ], [ -70.185266157551993, 42.051558356422497, 0.0 ], [ -70.1831060184861, 42.053103161192901, 0.0 ], [ -70.178468, 42.05642, 0.0 ], [ -70.176742227247601, 42.057078761649201, 0.0 ], [ -70.169781, 42.059736, 0.0 ], [ -70.155415, 42.062409, 0.0 ], [ -70.148608, 42.060931, 0.0 ], [ -70.147436055535806, 42.0604623360137, 0.0 ], [ -70.142429, 42.05846, 0.0 ], [ -70.141907232765305, 42.058277195756801, 0.0 ], [ -70.139743200153703, 42.057519014105203, 0.0 ], [ -70.123043, 42.051668, 0.0 ], [ -70.10806, 42.043601, 0.0 ], [ -70.095595, 42.032832, 0.0 ], [ -70.091361765631802, 42.027248661468199, 0.0 ], [ -70.089578, 42.024896, 0.0 ], [ -70.083775, 42.012041, 0.0 ], [ -70.078928580710098, 41.991794957564998, 0.0 ], [ -70.077421, 41.985497, 0.0 ], [ -70.077292382846693, 41.957844968256602, 0.0 ], [ -70.077225, 41.943358, 0.0 ], [ -70.074006, 41.93865, 0.0 ], [ -70.073039, 41.899783, 0.0 ], [ -70.06901, 41.884924, 0.0 ], [ -70.066846, 41.88334, 0.0 ], [ -70.066371, 41.886348, 0.0 ], [ -70.068986, 41.896256, 0.0 ], [ -70.065723, 41.899641, 0.0 ], [ -70.065671, 41.911658, 0.0 ], [ -70.063137, 41.91521, 0.0 ], [ -70.058947, 41.917105, 0.0 ], [ -70.054203, 41.920949, 0.0 ], [ -70.057815, 41.920489, 0.0 ], [ -70.061617, 41.923496, 0.0 ], [ -70.059003, 41.925618, 0.0 ], [ -70.054962, 41.927917, 0.0 ], [ -70.044995, 41.930049, 0.0 ], [ -70.035235, 41.930039, 0.0 ], [ -70.027392, 41.929331, 0.0 ], [ -70.028706123271803, 41.927877293686301, 0.0 ], [ -70.032024, 41.924207, 0.0 ], [ -70.032305, 41.920441, 0.0 ], [ -70.025553, 41.911699, 0.0 ], [ -70.020089, 41.907582, 0.0 ], [ -70.013369, 41.905986, 0.0 ], [ -70.013419444737593, 41.904969442757, 0.0 ], [ -70.013606, 41.90121, 0.0 ], [ -70.021212, 41.900148, 0.0 ], [ -70.024335, 41.89882, 0.0 ], [ -70.02424, 41.896343, 0.0 ], [ -70.018497, 41.891528, 0.0 ], [ -70.012154, 41.891656, 0.0 ], [ -70.002922, 41.890315, 0.0 ], [ -70.000188, 41.886938, 0.0 ], [ -70.005763, 41.881924, 0.0 ], [ -70.006444104931205, 41.880813484605902, 0.0 ], [ -70.009013, 41.876625, 0.0 ], [ -70.007524668167704, 41.8641979059134, 0.0 ], [ -70.006047473352695, 41.851863802354202, 0.0 ], [ -70.004992615746204, 41.843056079211301, 0.0 ], [ -70.004486, 41.838826, 0.0 ], [ -70.004388, 41.817866, 0.0 ], [ -70.0048861895485, 41.814804821951199, 0.0 ], [ -70.005287, 41.812342, 0.0 ], [ -70.003842, 41.80852, 0.0 ], [ -70.008462, 41.800786, 0.0 ], [ -70.008938116827807, 41.800465435391601, 0.0 ], [ -70.015508, 41.796042, 0.0 ], [ -70.022535, 41.789433, 0.0 ], [ -70.022707, 41.788352, 0.0 ], [ -70.023030156159606, 41.788194487278901, 0.0 ], [ -70.024734, 41.787364, 0.0 ], [ -70.033241888273494, 41.784243079589601, 0.0 ], [ -70.036646540923002, 41.782994162161103, 0.0 ], [ -70.042697939500101, 41.780774347710903, 0.0 ], [ -70.047838733737393, 41.778888567227497, 0.0 ], [ -70.059426995114606, 41.774637683777897, 0.0 ], [ -70.064314, 41.772845, 0.0 ], [ -70.066501472690604, 41.772869714170099, 0.0 ], [ -70.069671405071503, 41.772905528216398, 0.0 ], [ -70.072457, 41.772937, 0.0 ], [ -70.082994, 41.768961, 0.0 ], [ -70.096061, 41.766549, 0.0 ], [ -70.114195856089694, 41.761155494936197, 0.0 ], [ -70.114617683566394, 41.761030038818902, 0.0 ], [ -70.121700829530099, 41.758923433537099, 0.0 ], [ -70.121978, 41.758841, 0.0 ], [ -70.136007335896593, 41.759724155841901, 0.0 ], [ -70.140380210517307, 41.759999431150398, 0.0 ], [ -70.141533, 41.760072, 0.0 ], [ -70.14991, 41.756982, 0.0 ], [ -70.180718413673702, 41.7511628147655, 0.0 ], [ -70.183804, 41.75058, 0.0 ], [ -70.184092880951297, 41.750654313962201, 0.0 ], [ -70.187615611306498, 41.751560528266403, 0.0 ], [ -70.189254, 41.751982, 0.0 ], [ -70.206018115460097, 41.746355623056203, 0.0 ], [ -70.216073, 41.742981, 0.0 ], [ -70.234648, 41.732042, 0.0 ], [ -70.240738815486196, 41.727556122841399, 0.0 ], [ -70.240777, 41.727528, 0.0 ], [ -70.240739794646203, 41.727511501121398, 0.0 ], [ -70.239318, 41.726881, 0.0 ], [ -70.239318, 41.726033666666702, 0.0 ], [ -70.239318, 41.725625, 0.0 ], [ -70.249519, 41.720968, 0.0 ], [ -70.250236084245998, 41.720448732097701, 0.0 ], [ -70.250613609071294, 41.720175352051797, 0.0 ], [ -70.259205, 41.713954, 0.0 ], [ -70.261127808662707, 41.714023582421802, 0.0 ], [ -70.263654, 41.714115, 0.0 ], [ -70.263825752245296, 41.7142652488577, 0.0 ], [ -70.271993265819901, 41.721410189425299, 0.0 ], [ -70.274277, 41.723408, 0.0 ], [ -70.274341860722799, 41.7235995702775, 0.0 ], [ -70.275203, 41.726143, 0.0 ], [ -70.283091, 41.728951, 0.0 ], [ -70.28834, 41.731981, 0.0 ], [ -70.290957, 41.734312, 0.0 ], [ -70.318091393483499, 41.735748401873501, 0.0 ], [ -70.363492961996599, 41.738151805439898, 0.0 ], [ -70.375341, 41.738779, 0.0 ], [ -70.383371767025693, 41.739993941407, 0.0 ], [ -70.384951031186105, 41.740232861726199, 0.0 ], [ -70.396888427617995, 41.742038820879401, 0.0 ], [ -70.412476, 41.744397, 0.0 ], [ -70.418085560401295, 41.746026997187499, 0.0 ], [ -70.425574042731398, 41.748202961837698, 0.0 ], [ -70.427692442248897, 41.748818515465601, 0.0 ], [ -70.434771555810002, 41.750875527846098, 0.0 ], [ -70.446434839068999, 41.754264584661399, 0.0 ], [ -70.447492238759693, 41.754571838420802, 0.0 ], [ -70.471552, 41.761563, 0.0 ], [ -70.475712525542804, 41.763841523945899, 0.0 ], [ -70.494048, 41.773883, 0.0 ], [ -70.494223720626294, 41.775507389823403, 0.0 ], [ -70.494353701816905, 41.776708956923301, 0.0 ], [ -70.494364802135195, 41.7768115700568, 0.0 ], [ -70.494519, 41.778237, 0.0 ], [ -70.504217881575698, 41.783624514333198, 0.0 ], [ -70.517314666214403, 41.790899488711403, 0.0 ], [ -70.517411, 41.790953, 0.0 ], [ -70.519413196753902, 41.792771065573199, 0.0 ], [ -70.525069567075903, 41.797907250182497, 0.0 ], [ -70.532656, 41.804796, 0.0 ], [ -70.533303392059096, 41.805643160518699, 0.0 ], [ -70.537289333993201, 41.810859061129399, 0.0 ], [ -70.54103, 41.815754, 0.0 ], [ -70.543168, 41.824446, 0.0 ], [ -70.542065, 41.831263, 0.0 ], [ -70.536264, 41.834659, 0.0 ], [ -70.533149760178304, 41.839692597643896, 0.0 ], [ -70.53255, 41.840662, 0.0 ], [ -70.525567, 41.85873, 0.0 ], [ -70.530494, 41.865492, 0.0 ], [ -70.530978, 41.87042, 0.0 ], [ -70.531324749320305, 41.878271126693797, 0.0 ], [ -70.531439, 41.880858, 0.0 ], [ -70.532972, 41.885818, 0.0 ], [ -70.532084, 41.889568, 0.0 ], [ -70.534283671127795, 41.892358639389698, 0.0 ], [ -70.545949, 41.907158, 0.0 ], [ -70.54741, 41.911934, 0.0 ], [ -70.546386, 41.916751, 0.0 ], [ -70.544916, 41.918637, 0.0 ], [ -70.541933, 41.918945, 0.0 ], [ -70.53787, 41.920946, 0.0 ], [ -70.540067, 41.923673, 0.0 ], [ -70.539189, 41.926773, 0.0 ], [ -70.542179418086803, 41.926464335868197, 0.0 ], [ -70.543975, 41.926279, 0.0 ], [ -70.552941, 41.929641, 0.0 ], [ -70.554613969864207, 41.930486406239901, 0.0 ], [ -70.560774575796401, 41.933599561359301, 0.0 ], [ -70.565974, 41.936227, 0.0 ], [ -70.567767, 41.939499, 0.0 ], [ -70.583572, 41.950007, 0.0 ], [ -70.591593, 41.949326, 0.0 ], [ -70.598078, 41.947772, 0.0 ], [ -70.608166, 41.940701, 0.0 ], [ -70.616491, 41.940204, 0.0 ], [ -70.623513, 41.943273, 0.0 ], [ -70.631573, 41.953022, 0.0 ], [ -70.64417, 41.974583, 0.0 ], [ -70.647815231397303, 41.9787435803674, 0.0 ], [ -70.650826, 41.98218, 0.0 ], [ -70.653111783464198, 41.981330496571601, 0.0 ], [ -70.654628, 41.980767, 0.0 ], [ -70.654628, 41.97794, 0.0 ], [ -70.653284656238299, 41.976661766134498, 0.0 ], [ -70.648686, 41.972286, 0.0 ], [ -70.648300125971701, 41.971712060591798, 0.0 ], [ -70.645844730532602, 41.968059966639103, 0.0 ], [ -70.645824028523705, 41.968029174987201, 0.0 ], [ -70.644884, 41.966631, 0.0 ], [ -70.643907490868699, 41.965071293688901, 0.0 ], [ -70.643861686341495, 41.964998133481899, 0.0 ], [ -70.640101427046204, 41.958992147499401, 0.0 ], [ -70.638466, 41.95638, 0.0 ], [ -70.636237697230698, 41.953341476342999, 0.0 ], [ -70.632762, 41.948602, 0.0 ], [ -70.638704, 41.949486, 0.0 ], [ -70.646785, 41.949309, 0.0 ], [ -70.652377285450797, 41.952082048512402, 0.0 ], [ -70.653202, 41.952491, 0.0 ], [ -70.656136146194598, 41.955054027638802, 0.0 ], [ -70.659322249293993, 41.957837144008003, 0.0 ], [ -70.662476, 41.960592, 0.0 ], [ -70.6653775253817, 41.963054117249399, 0.0 ], [ -70.671967341639998, 41.968645969170403, 0.0 ], [ -70.676257, 41.972286, 0.0 ], [ -70.678159, 41.97688, 0.0 ], [ -70.682199, 41.979884, 0.0 ], [ -70.690986, 41.981298, 0.0 ], [ -70.693457942717203, 41.983092825199897, 0.0 ], [ -70.698981, 41.987103, 0.0 ], [ -70.698837, 41.991897, 0.0 ], [ -70.700025, 41.998256, 0.0 ], [ -70.706443, 42.000729, 0.0 ], [ -70.710034, 41.999544, 0.0 ], [ -70.711020823490699, 42.0032011587613, 0.0 ], [ -70.712204, 42.007586, 0.0 ], [ -70.695809, 42.013346, 0.0 ], [ -70.686798, 42.012764, 0.0 ], [ -70.678798, 42.00551, 0.0 ], [ -70.670934, 42.007786, 0.0 ], [ -70.667512, 42.01232, 0.0 ], [ -70.671666, 42.02139, 0.0 ], [ -70.671160866960193, 42.024834805803799, 0.0 ], [ -70.670755656409597, 42.027598180096703, 0.0 ], [ -70.66936, 42.037116, 0.0 ], [ -70.664373, 42.041164, 0.0 ], [ -70.656054, 42.042047, 0.0 ], [ -70.650874, 42.046247, 0.0 ], [ -70.650367818276493, 42.0462197434654, 0.0 ], [ -70.644337, 42.045895, 0.0 ], [ -70.617788, 42.017507, 0.0 ], [ -70.615552241294296, 42.013519635666, 0.0 ], [ -70.614223, 42.011149, 0.0 ], [ -70.624205, 42.006028, 0.0 ], [ -70.629857, 42.001456, 0.0 ], [ -70.634426, 42.004968, 0.0 ], [ -70.63395, 42.012032, 0.0 ], [ -70.636387, 42.01383, 0.0 ], [ -70.639655, 42.010796, 0.0 ], [ -70.641199, 42.005925, 0.0 ], [ -70.639137, 41.993895, 0.0 ], [ -70.631919, 41.992864, 0.0 ], [ -70.622542, 42.002142, 0.0 ], [ -70.614046, 42.006612, 0.0 ], [ -70.602704, 42.002144, 0.0 ], [ -70.597892, 42.00455, 0.0 ], [ -70.608470768139298, 42.013590155769201, 0.0 ], [ -70.610983, 42.015737, 0.0 ], [ -70.620277, 42.027087, 0.0 ], [ -70.63086, 42.036045, 0.0 ], [ -70.643208, 42.050821, 0.0 ], [ -70.645904260916694, 42.060356952900797, 0.0 ], [ -70.64819, 42.068441, 0.0 ], [ -70.6477037799946, 42.073002564616303, 0.0 ], [ -70.647349, 42.076331, 0.0 ], [ -70.644008370576103, 42.078307730546399, 0.0 ], [ -70.63848, 42.081579, 0.0 ], [ -70.640169, 42.088633, 0.0 ], [ -70.652026359257604, 42.098464897544503, 0.0 ], [ -70.660224555751299, 42.105262686683297, 0.0 ], [ -70.663931, 42.108336, 0.0 ], [ -70.679464914725202, 42.126270755922697, 0.0 ], [ -70.685315, 42.133025, 0.0 ], [ -70.706264, 42.163137, 0.0 ], [ -70.711436657972996, 42.166770797052997, 0.0 ], [ -70.714301, 42.168783, 0.0 ], [ -70.714761, 42.176584, 0.0 ], [ -70.7185056809695, 42.184431127961702, 0.0 ], [ -70.718707, 42.184853, 0.0 ], [ -70.71595, 42.190145, 0.0 ], [ -70.715895, 42.195899, 0.0 ], [ -70.714286, 42.198598, 0.0 ], [ -70.713450581603794, 42.202366751357403, 0.0 ], [ -70.712993, 42.204431, 0.0 ], [ -70.718089, 42.208985, 0.0 ], [ -70.722269, 42.207959, 0.0 ], [ -70.73056, 42.21094, 0.0 ], [ -70.733794696881802, 42.2142101146462, 0.0 ], [ -70.739145, 42.219619, 0.0 ], [ -70.744846215244294, 42.221168235608097, 0.0 ], [ -70.74723, 42.221816, 0.0 ], [ -70.748784725823299, 42.223284828185399, 0.0 ], [ -70.754488, 42.228673, 0.0 ], [ -70.760158, 42.235035, 0.0 ], [ -70.760683, 42.241241, 0.0 ], [ -70.764757, 42.244062, 0.0 ], [ -70.762773, 42.250343, 0.0 ], [ -70.766338, 42.254742, 0.0 ], [ -70.773944, 42.254214, 0.0 ], [ -70.776307, 42.248953, 0.0 ], [ -70.781461923044603, 42.2487180195672, 0.0 ], [ -70.784402, 42.248584, 0.0 ], [ -70.786778, 42.250871, 0.0 ], [ -70.788724, 42.25392, 0.0 ], [ -70.791381909819705, 42.254960970415503, 0.0 ], [ -70.811742, 42.262935, 0.0 ], [ -70.824660723928503, 42.265934645772298, 0.0 ], [ -70.831075, 42.267424, 0.0 ], [ -70.851093, 42.26827, 0.0 ], [ -70.857337473493004, 42.2727549004601, 0.0 ], [ -70.861807, 42.275965, 0.0 ], [ -70.867559024946601, 42.282121176710397, 0.0 ], [ -70.870873, 42.285668, 0.0 ], [ -70.871852488373307, 42.287084474892403, 0.0 ], [ -70.8758586416714, 42.292877923508698, 0.0 ], [ -70.879297352875696, 42.297850772819999, 0.0 ], [ -70.881242, 42.300663, 0.0 ], [ -70.881899975236195, 42.305115085568801, 0.0 ], [ -70.88268, 42.310393, 0.0 ], [ -70.889456, 42.310484, 0.0 ], [ -70.895862, 42.305934, 0.0 ], [ -70.907556, 42.307889, 0.0 ], [ -70.91749, 42.305686, 0.0 ], [ -70.92392, 42.305035, 0.0 ], [ -70.923444, 42.302398, 0.0 ], [ -70.915588, 42.302463, 0.0 ], [ -70.910372, 42.299058, 0.0 ], [ -70.903954, 42.301695, 0.0 ], [ -70.893259, 42.298707, 0.0 ], [ -70.891530013720697, 42.298400019097201, 0.0 ], [ -70.887317, 42.297652, 0.0 ], [ -70.886842, 42.292553, 0.0 ], [ -70.885141093708199, 42.290587319444597, 0.0 ], [ -70.883039, 42.288158, 0.0 ], [ -70.880481310456503, 42.283743367599399, 0.0 ], [ -70.879653035746898, 42.282313745940002, 0.0 ], [ -70.879473, 42.282003, 0.0 ], [ -70.878285, 42.278311, 0.0 ], [ -70.884702, 42.277783, 0.0 ], [ -70.893972, 42.281476, 0.0 ], [ -70.901815, 42.282883, 0.0 ], [ -70.90443, 42.280773, 0.0 ], [ -70.899676, 42.279717, 0.0 ], [ -70.890169, 42.2762, 0.0 ], [ -70.8901577364405, 42.276187632709501, 0.0 ], [ -70.887334164044205, 42.273087374744499, 0.0 ], [ -70.882801, 42.26811, 0.0 ], [ -70.87876, 42.258963, 0.0 ], [ -70.875908, 42.256853, 0.0 ], [ -70.87781, 42.249288, 0.0 ], [ -70.881222562487594, 42.247498558485198, 0.0 ], [ -70.883514, 42.246297, 0.0 ], [ -70.886799904648797, 42.248048339620098, 0.0 ], [ -70.887179963134301, 42.248250905292203, 0.0 ], [ -70.889456, 42.249464, 0.0 ], [ -70.890589610366803, 42.250806257626202, 0.0 ], [ -70.892771619706593, 42.2533898778563, 0.0 ], [ -70.89421, 42.255093, 0.0 ], [ -70.892996877812493, 42.260479874905897, 0.0 ], [ -70.892546, 42.262482, 0.0 ], [ -70.8942117425578, 42.262569617958398, 0.0 ], [ -70.895873, 42.262657, 0.0 ], [ -70.896565931412098, 42.2626204532042, 0.0 ], [ -70.902528, 42.262306, 0.0 ], [ -70.903476936170193, 42.262306, 0.0 ], [ -70.9069660588235, 42.262306, 0.0 ], [ -70.90752, 42.262306, 0.0 ], [ -70.908285909280195, 42.2647153306132, 0.0 ], [ -70.909421, 42.268286, 0.0 ], [ -70.912932, 42.269792, 0.0 ], [ -70.917056, 42.272542, 0.0 ], [ -70.926336, 42.269792, 0.0 ], [ -70.92483, 42.263339, 0.0 ], [ -70.927485, 42.259315, 0.0 ], [ -70.93723, 42.257732, 0.0 ], [ -70.943172, 42.252103, 0.0 ], [ -70.944613538314002, 42.251596103756803, 0.0 ], [ -70.949229999733205, 42.249972791405497, 0.0 ], [ -70.952679, 42.24876, 0.0 ], [ -70.953973594813704, 42.252594070910597, 0.0 ], [ -70.95458, 42.25439, 0.0 ], [ -70.953805175083303, 42.2559466365323, 0.0 ], [ -70.953015739830903, 42.257532625479598, 0.0 ], [ -70.951253, 42.261074, 0.0 ], [ -70.950777, 42.265648, 0.0 ], [ -70.949836345583606, 42.269219465854299, 0.0 ], [ -70.948971, 42.272505, 0.0 ], [ -70.953833, 42.280791, 0.0 ], [ -70.957432, 42.280069, 0.0 ], [ -70.954105, 42.274793, 0.0 ], [ -70.956219, 42.270794, 0.0 ], [ -70.957251654253298, 42.270550400460898, 0.0 ], [ -70.964335260031802, 42.268879402547299, 0.0 ], [ -70.967351, 42.268168, 0.0 ], [ -70.969177895299296, 42.266598743781302, 0.0 ], [ -70.972120471673094, 42.264071146126902, 0.0 ], [ -70.973357, 42.263009, 0.0 ], [ -70.982626, 42.265648, 0.0 ], [ -70.986386806418693, 42.265723258889103, 0.0 ], [ -70.991421, 42.265824, 0.0 ], [ -70.992822127547001, 42.267441469311102, 0.0 ], [ -70.996097, 42.271222, 0.0 ], [ -71.008709821373202, 42.276950356072, 0.0 ], [ -71.012863678366102, 42.278836910334803, 0.0 ], [ -71.015189, 42.279893, 0.0 ], [ -71.016541039326697, 42.281545822316303, 0.0 ], [ -71.019763168102699, 42.2854847656901, 0.0 ], [ -71.0204860851414, 42.286368507302399, 0.0 ], [ -71.020655, 42.286575, 0.0 ], [ -71.013762, 42.289389, 0.0 ], [ -71.011100978562396, 42.290731217584302, 0.0 ], [ -71.008534, 42.292026, 0.0 ], [ -71.003561, 42.295276, 0.0 ], [ -71.004255, 42.299234, 0.0 ], [ -70.995699, 42.302222, 0.0 ], [ -70.987855, 42.30398, 0.0 ], [ -70.986667, 42.306265, 0.0 ], [ -70.99047, 42.308023, 0.0 ], [ -70.99451, 42.305035, 0.0 ], [ -71.000948, 42.302483, 0.0 ], [ -71.007583, 42.302926, 0.0 ], [ -71.008484618579402, 42.305792820876498, 0.0 ], [ -71.009515831326596, 42.309071704319003, 0.0 ], [ -71.00996, 42.310484, 0.0 ], [ -71.005919, 42.316284, 0.0 ], [ -71.002354, 42.319096, 0.0 ], [ -70.998789, 42.31769, 0.0 ], [ -70.997838, 42.321205, 0.0 ], [ -71.00687, 42.321029, 0.0 ], [ -71.013165, 42.315419, 0.0 ], [ -71.017803, 42.31312, 0.0 ], [ -71.015426, 42.309605, 0.0 ], [ -71.015331587884205, 42.3082774662712, 0.0 ], [ -71.015215885945494, 42.306650575221603, 0.0 ], [ -71.014951, 42.302926, 0.0 ], [ -71.018991, 42.298179, 0.0 ], [ -71.023507, 42.29941, 0.0 ], [ -71.02422, 42.301519, 0.0 ], [ -71.028974, 42.301871, 0.0 ], [ -71.031588, 42.300992, 0.0 ], [ -71.041333, 42.302926, 0.0 ], [ -71.039684963075004, 42.305865543089503, 0.0 ], [ -71.0384731260351, 42.308027052423498, 0.0 ], [ -71.037755004572105, 42.309307939369702, 0.0 ], [ -71.037293, 42.310132, 0.0 ], [ -71.032777, 42.313472, 0.0 ], [ -71.033252, 42.316987, 0.0 ], [ -71.039467284724694, 42.320184179300398, 0.0 ], [ -71.044185, 42.322611, 0.0 ], [ -71.043160779404005, 42.323131639484203, 0.0 ], [ -71.034388585638098, 42.327590786718503, 0.0 ], [ -71.032777, 42.32841, 0.0 ], [ -71.030088739180698, 42.3287411432132, 0.0 ], [ -71.019626382261606, 42.330029908969301, 0.0 ], [ -71.015664, 42.330518, 0.0 ], [ -71.009213058509502, 42.340492949782004, 0.0 ], [ -71.007740316793402, 42.3427702180973, 0.0 ], [ -71.006138287921999, 42.345247400314101, 0.0 ], [ -71.004957, 42.347074, 0.0 ], [ -71.002657, 42.354759, 0.0 ], [ -70.999476, 42.355338, 0.0 ], [ -70.994337, 42.353909, 0.0 ], [ -70.98955, 42.354495, 0.0 ], [ -70.985317, 42.358316, 0.0 ], [ -70.987412, 42.362539, 0.0 ], [ -70.988567474643503, 42.362607835363001, 0.0 ], [ -70.993643348967893, 42.362910221619501, 0.0 ], [ -70.997769, 42.363156, 0.0 ], [ -70.997997729402002, 42.364747365963296, 0.0 ], [ -70.998497, 42.368221, 0.0 ], [ -70.995287959045697, 42.369485292769198, 0.0 ], [ -70.994611, 42.369752, 0.0 ], [ -70.990127, 42.367217, 0.0 ], [ -70.989189002672504, 42.367488869124102, 0.0 ], [ -70.979566, 42.370278, 0.0 ], [ -70.974183, 42.369565, 0.0 ], [ -70.975833949111006, 42.364168110928297, 0.0 ], [ -70.975897, 42.363962, 0.0 ], [ -70.975258, 42.358977, 0.0 ], [ -70.972406, 42.35722, 0.0 ], [ -70.970024451422503, 42.355284031478902, 0.0 ], [ -70.965276, 42.351424, 0.0 ], [ -70.960047, 42.346506, 0.0 ], [ -70.953022, 42.343973, 0.0 ], [ -70.953292, 42.349698, 0.0 ], [ -70.956906, 42.355399, 0.0 ], [ -70.963137, 42.355815, 0.0 ], [ -70.965674822307605, 42.357765561171199, 0.0 ], [ -70.969079, 42.360382, 0.0 ], [ -70.968367042550895, 42.361774584094299, 0.0 ], [ -70.966034, 42.366338, 0.0 ], [ -70.966963298358493, 42.368943330788198, 0.0 ], [ -70.968854, 42.374244, 0.0 ], [ -70.9701106744551, 42.375389890153201, 0.0 ], [ -70.972223, 42.377316, 0.0 ], [ -70.972643704291698, 42.381185956869999, 0.0 ], [ -70.972706, 42.381759, 0.0 ], [ -70.972513, 42.385042, 0.0 ], [ -70.971778703108001, 42.385494829909902, 0.0 ], [ -70.969792, 42.38672, 0.0 ], [ -70.966667, 42.388942, 0.0 ], [ -70.972706, 42.389968, 0.0 ], [ -70.972788304868004, 42.389984665926697, 0.0 ], [ -70.975882310765101, 42.390611171708002, 0.0 ], [ -70.980336, 42.391513, 0.0 ], [ -70.980466369743297, 42.391712689318801, 0.0 ], [ -70.981674869218097, 42.393563766346098, 0.0 ], [ -70.982313058010405, 42.3945412898263, 0.0 ], [ -70.983228304209007, 42.395943186349903, 0.0 ], [ -70.983426, 42.396246, 0.0 ], [ -70.985068, 42.402041, 0.0 ], [ -70.9877229583999, 42.402399326103399, 0.0 ], [ -70.989195, 42.402598, 0.0 ], [ -70.989216482444704, 42.402667050715202, 0.0 ], [ -70.990595, 42.407098, 0.0 ], [ -70.990559694341698, 42.407214809275402, 0.0 ], [ -70.987694, 42.416696, 0.0 ], [ -70.986815000949903, 42.418061253843703, 0.0 ], [ -70.983704244203807, 42.422892854747197, 0.0 ], [ -70.982994, 42.423996, 0.0 ], [ -70.97551, 42.431584, 0.0 ], [ -70.968378120665903, 42.435360102448897, 0.0 ], [ -70.958797, 42.440433, 0.0 ], [ -70.959233721514906, 42.441672080676497, 0.0 ], [ -70.959991045467405, 42.443820785156298, 0.0 ], [ -70.960763, 42.446011, 0.0 ], [ -70.948809247444999, 42.4544893804064, 0.0 ], [ -70.944440244409904, 42.457588162111797, 0.0 ], [ -70.944293728304103, 42.457692080883398, 0.0 ], [ -70.944174, 42.457777, 0.0 ], [ -70.939561, 42.456749, 0.0 ], [ -70.939651053012796, 42.456479269493897, 0.0 ], [ -70.940114909398304, 42.455089907675699, 0.0 ], [ -70.940992931777899, 42.452460018753698, 0.0 ], [ -70.941032, 42.452343, 0.0 ], [ -70.941012318734906, 42.450843348784197, 0.0 ], [ -70.940908448936, 42.442928793022197, 0.0 ], [ -70.940839, 42.437637, 0.0 ], [ -70.936992, 42.430418, 0.0 ], [ -70.937241967058199, 42.427794482102598, 0.0 ], [ -70.937432, 42.4258, 0.0 ], [ -70.936393, 42.418097, 0.0 ], [ -70.927971, 42.41713, 0.0 ], [ -70.928046, 42.420663, 0.0 ], [ -70.919934, 42.423587, 0.0 ], [ -70.918357800085204, 42.422359813301298, 0.0 ], [ -70.910852, 42.416516, 0.0 ], [ -70.910213356776396, 42.416476517986702, 0.0 ], [ -70.905692, 42.416197, 0.0 ], [ -70.902872, 42.420053, 0.0 ], [ -70.907647, 42.421834, 0.0 ], [ -70.908392, 42.425197, 0.0 ], [ -70.913192, 42.427697, 0.0 ], [ -70.925085, 42.430299, 0.0 ], [ -70.927590017622293, 42.429263196777697, 0.0 ], [ -70.928628, 42.428834, 0.0 ], [ -70.933402, 42.433435, 0.0 ], [ -70.928018, 42.437216, 0.0 ], [ -70.928489, 42.438326, 0.0 ], [ -70.936159, 42.437403, 0.0 ], [ -70.93748, 42.440088, 0.0 ], [ -70.936517, 42.446205, 0.0 ], [ -70.935168946185001, 42.456546271096698, 0.0 ], [ -70.935002725479194, 42.457821393322298, 0.0 ], [ -70.934993, 42.457896, 0.0 ], [ -70.927713, 42.460892, 0.0 ], [ -70.926791720602296, 42.461826808675603, 0.0 ], [ -70.925539811231303, 42.463097102729698, 0.0 ], [ -70.921993, 42.466696, 0.0 ], [ -70.921919777555203, 42.4666979714858, 0.0 ], [ -70.916979, 42.466831, 0.0 ], [ -70.908092, 42.466896, 0.0 ], [ -70.907393069861101, 42.463438990586198, 0.0 ], [ -70.907275, 42.462855, 0.0 ], [ -70.901453, 42.464226, 0.0 ], [ -70.894292, 42.460896, 0.0 ], [ -70.887292, 42.464896, 0.0 ], [ -70.887992, 42.467096, 0.0 ], [ -70.886493, 42.470197, 0.0 ], [ -70.886273046167901, 42.470475103661599, 0.0 ], [ -70.879699060245201, 42.478787073217298, 0.0 ], [ -70.879692, 42.478796, 0.0 ], [ -70.870039328841997, 42.483864522821598, 0.0 ], [ -70.860919131703298, 42.488653448765497, 0.0 ], [ -70.857791, 42.490296, 0.0 ], [ -70.847391, 42.491496, 0.0 ], [ -70.841591, 42.487596, 0.0 ], [ -70.835991, 42.490496, 0.0 ], [ -70.833788, 42.499379, 0.0 ], [ -70.831091, 42.503596, 0.0 ], [ -70.83381, 42.505868, 0.0 ], [ -70.840732, 42.499324, 0.0 ], [ -70.844645096717002, 42.496608078417196, 0.0 ], [ -70.844772, 42.49652, 0.0 ], [ -70.847387, 42.493891, 0.0 ], [ -70.853329, 42.493015, 0.0 ], [ -70.853091, 42.495994, 0.0 ], [ -70.852798254263305, 42.496857456219303, 0.0 ], [ -70.851665, 42.5002, 0.0 ], [ -70.850038602795493, 42.501706391197203, 0.0 ], [ -70.847079377170402, 42.504447266193601, 0.0 ], [ -70.842395, 42.508786, 0.0 ], [ -70.842197636710594, 42.515738511401402, 0.0 ], [ -70.842091, 42.519495, 0.0 ], [ -70.845623, 42.517475, 0.0 ], [ -70.848707, 42.519208, 0.0 ], [ -70.857125, 42.521492, 0.0 ], [ -70.859751, 42.520441, 0.0 ], [ -70.864024, 42.518597, 0.0 ], [ -70.866757299196706, 42.515268744511999, 0.0 ], [ -70.869491, 42.51194, 0.0 ], [ -70.872127295720404, 42.508406284814697, 0.0 ], [ -70.873645911079393, 42.506370718730999, 0.0 ], [ -70.87472, 42.504931, 0.0 ], [ -70.878728648058697, 42.505325118133101, 0.0 ], [ -70.88185, 42.505632, 0.0 ], [ -70.886366, 42.508611, 0.0 ], [ -70.886044587267406, 42.510412318159403, 0.0 ], [ -70.885718982690506, 42.512237128995203, 0.0 ], [ -70.885178, 42.515269, 0.0 ], [ -70.884134918961905, 42.5163980673399, 0.0 ], [ -70.881748388890401, 42.5189813308263, 0.0 ], [ -70.877572, 42.523502, 0.0 ], [ -70.86632, 42.526729, 0.0 ], [ -70.864207, 42.533429, 0.0 ], [ -70.867589, 42.536288, 0.0 ], [ -70.87163, 42.535588, 0.0 ], [ -70.871867896228494, 42.535475641989699, 0.0 ], [ -70.875512369050199, 42.533754363273601, 0.0 ], [ -70.878922, 42.532144, 0.0 ], [ -70.881222253128001, 42.533876928956403, 0.0 ], [ -70.882563, 42.534887, 0.0 ], [ -70.880360991063, 42.5373691655196, 0.0 ], [ -70.878523, 42.539441, 0.0 ], [ -70.875862837662098, 42.543360103348199, 0.0 ], [ -70.875195, 42.544344, 0.0 ], [ -70.871382, 42.546404, 0.0 ], [ -70.870341934148499, 42.547020765007503, 0.0 ], [ -70.868065, 42.548371, 0.0 ], [ -70.860893, 42.544649, 0.0 ], [ -70.857576036947506, 42.546315591460399, 0.0 ], [ -70.856553968456396, 42.546829124650898, 0.0 ], [ -70.855167, 42.547526, 0.0 ], [ -70.851584699562196, 42.547773897262303, 0.0 ], [ -70.845485, 42.548196, 0.0 ], [ -70.837113, 42.550959, 0.0 ], [ -70.823291, 42.551495, 0.0 ], [ -70.815391, 42.554195, 0.0 ], [ -70.804091, 42.561595, 0.0 ], [ -70.802672717773305, 42.562020983236998, 0.0 ], [ -70.794419, 42.5645, 0.0 ], [ -70.793495748239295, 42.564307379128998, 0.0 ], [ -70.793326401208404, 42.5642720477341, 0.0 ], [ -70.788442, 42.563253, 0.0 ], [ -70.7876948152838, 42.562987540246702, 0.0 ], [ -70.777476, 42.559357, 0.0 ], [ -70.772132, 42.559606, 0.0 ], [ -70.763723, 42.561678, 0.0 ], [ -70.758607896405906, 42.5686493143238, 0.0 ], [ -70.757283, 42.570455, 0.0 ], [ -70.74014, 42.574807, 0.0 ], [ -70.737044, 42.576863, 0.0 ], [ -70.735507, 42.575521, 0.0 ], [ -70.730934, 42.574487, 0.0 ], [ -70.729688, 42.57151, 0.0 ], [ -70.715328998871698, 42.5722955537098, 0.0 ], [ -70.710349, 42.572568, 0.0 ], [ -70.708191, 42.575575, 0.0 ], [ -70.698574, 42.577393, 0.0 ], [ -70.692932, 42.584214, 0.0 ], [ -70.688076, 42.585946, 0.0 ], [ -70.687609078783794, 42.586326434969699, 0.0 ], [ -70.684502, 42.588858, 0.0 ], [ -70.680803, 42.593464, 0.0 ], [ -70.684338, 42.596155, 0.0 ], [ -70.681486, 42.600704, 0.0 ], [ -70.676495, 42.603329, 0.0 ], [ -70.676733, 42.607527, 0.0 ], [ -70.670658917981299, 42.608383385209798, 0.0 ], [ -70.665562, 42.609102, 0.0 ], [ -70.663396606819106, 42.607280531776603, 0.0 ], [ -70.658907, 42.603504, 0.0 ], [ -70.657005, 42.598255, 0.0 ], [ -70.65962, 42.592131, 0.0 ], [ -70.663898, 42.588282, 0.0 ], [ -70.666037, 42.584082, 0.0 ], [ -70.664887, 42.580436, 0.0 ], [ -70.654727, 42.582234, 0.0 ], [ -70.64804, 42.587549, 0.0 ], [ -70.646087, 42.592205, 0.0 ], [ -70.641697, 42.594525, 0.0 ], [ -70.635814719106506, 42.600073479404301, 0.0 ], [ -70.635635, 42.600243, 0.0 ], [ -70.632332, 42.607876, 0.0 ], [ -70.632303155471305, 42.610113081314601, 0.0 ], [ -70.632217, 42.616795, 0.0 ], [ -70.631730453372995, 42.617233219929901, 0.0 ], [ -70.627173, 42.621338, 0.0 ], [ -70.620485, 42.623032, 0.0 ], [ -70.617922, 42.625468, 0.0 ], [ -70.618007546107606, 42.626012884042801, 0.0 ], [ -70.61842, 42.62864, 0.0 ], [ -70.615901036806406, 42.629870671532899, 0.0 ], [ -70.6122250042703, 42.631666644021898, 0.0 ], [ -70.610831789646397, 42.632347316761098, 0.0 ], [ -70.605611, 42.634898, 0.0 ], [ -70.605127213459397, 42.634903506581303, 0.0 ], [ -70.603235324302801, 42.634925040544303, 0.0 ], [ -70.597818081138897, 42.634986700982097, 0.0 ], [ -70.594014, 42.63503, 0.0 ], [ -70.591469, 42.639821, 0.0 ], [ -70.593153859930595, 42.641448607408599, 0.0 ], [ -70.594971, 42.643204, 0.0 ], [ -70.594219045005005, 42.644439171661098, 0.0 ], [ -70.591742, 42.648508, 0.0 ], [ -70.597103, 42.651777, 0.0 ], [ -70.594898, 42.656931, 0.0 ], [ -70.5954663918139, 42.660291024524902, 0.0 ], [ -70.595474, 42.660336, 0.0 ], [ -70.596379848474001, 42.6602138703986, 0.0 ], [ -70.605272, 42.659015, 0.0 ], [ -70.609828, 42.660072, 0.0 ], [ -70.610840106105599, 42.660142410177002, 0.0 ], [ -70.614298022751996, 42.660382970451899, 0.0 ], [ -70.616124, 42.66051, 0.0 ], [ -70.617225102271902, 42.660569952021099, 0.0 ], [ -70.618905346154094, 42.660661436726301, 0.0 ], [ -70.622791, 42.660873, 0.0 ], [ -70.6212466787441, 42.665441966241602, 0.0 ], [ -70.620980578235802, 42.666229240414403, 0.0 ], [ -70.620873619098006, 42.666545685381799, 0.0 ], [ -70.620764, 42.66687, 0.0 ], [ -70.620760637834593, 42.667233224700098, 0.0 ], [ -70.620712828722006, 42.672398184990001, 0.0 ], [ -70.620673, 42.676701, 0.0 ], [ -70.622948, 42.681063, 0.0 ], [ -70.620031, 42.688006, 0.0 ], [ -70.623255, 42.686897, 0.0 ], [ -70.626456, 42.688825, 0.0 ], [ -70.62732, 42.691411, 0.0 ], [ -70.630077, 42.692699, 0.0 ], [ -70.63774, 42.689196, 0.0 ], [ -70.640222350465194, 42.689272551223397, 0.0 ], [ -70.643512413701998, 42.6893740108559, 0.0 ], [ -70.645101, 42.689423, 0.0 ], [ -70.649152407294096, 42.686827042163102, 0.0 ], [ -70.653914685916902, 42.683775590256502, 0.0 ], [ -70.663548, 42.677603, 0.0 ], [ -70.666768, 42.672635, 0.0 ], [ -70.670699751339797, 42.671097756712498, 0.0 ], [ -70.672065977862999, 42.670563586982396, 0.0 ], [ -70.672379863431999, 42.670440863431999, 0.0 ], [ -70.673643, 42.669947, 0.0 ], [ -70.674714051729694, 42.668922556734501, 0.0 ], [ -70.678507383563499, 42.665294297572601, 0.0 ], [ -70.681594, 42.662342, 0.0 ], [ -70.682059593856394, 42.662025452220902, 0.0 ], [ -70.690429368220606, 42.656335013118003, 0.0 ], [ -70.691231, 42.65579, 0.0 ], [ -70.695942, 42.655825, 0.0 ], [ -70.705832, 42.658245, 0.0 ], [ -70.719153, 42.66375, 0.0 ], [ -70.725023015066995, 42.665222744247899, 0.0 ], [ -70.727834, 42.665928, 0.0 ], [ -70.72982, 42.669602, 0.0 ], [ -70.744602, 42.681308, 0.0 ], [ -70.752742, 42.684329, 0.0 ], [ -70.764421, 42.68565, 0.0 ], [ -70.776083, 42.691264, 0.0 ], [ -70.7759455897273, 42.695689834297298, 0.0 ], [ -70.775791, 42.700669, 0.0 ], [ -70.770453, 42.704824, 0.0 ], [ -70.772267, 42.711064, 0.0 ], [ -70.788156141995699, 42.738873083762797, 0.0 ], [ -70.792867, 42.747118, 0.0 ], [ -70.795024200361894, 42.753174157091301, 0.0 ], [ -70.80522, 42.781798, 0.0 ], [ -70.808212780365906, 42.811675323026599, 0.0 ], [ -70.80854, 42.814942, 0.0 ], [ -70.810546514434805, 42.8187793499647, 0.0 ], [ -70.812148703734906, 42.821843450051603, 0.0 ], [ -70.812686, 42.822871, 0.0 ], [ -70.816314880060006, 42.842825884167297, 0.0 ], [ -70.817731, 42.850613, 0.0 ], [ -70.817296, 42.87229, 0.0 ], [ -70.821769, 42.87188, 0.0 ], [ -70.823271639464494, 42.871386889198597, 0.0 ], [ -70.824185838764905, 42.8710868827364, 0.0 ], [ -70.830795, 42.868918, 0.0 ], [ -70.837376, 42.864996, 0.0 ], [ -70.848625, 42.860939, 0.0 ], [ -70.848859671469199, 42.861074575308798, 0.0 ], [ -70.872553814497707, 42.874763247260198, 0.0 ], [ -70.883389666287499, 42.881023377465702, 0.0 ], [ -70.8834992324132, 42.8810866764316, 0.0 ], [ -70.886136, 42.88261, 0.0 ], [ -70.902768, 42.88653, 0.0 ], [ -70.914525235716695, 42.886562987787897, 0.0 ], [ -70.914599197429098, 42.886563195305499, 0.0 ], [ -70.914886, 42.886564, 0.0 ], [ -70.914899, 42.886589, 0.0 ], [ -70.927629, 42.885326, 0.0 ], [ -70.930564578650404, 42.884643501115001, 0.0 ], [ -70.930799, 42.884589, 0.0 ], [ -70.931699, 42.884189, 0.0 ], [ -70.949199, 42.876089, 0.0 ], [ -70.955331280021696, 42.873572429388197, 0.0 ], [ -70.9665, 42.868989, 0.0 ], [ -70.974724441921595, 42.867730565431401, 0.0 ], [ -70.997238514725694, 42.864285652357999, 0.0 ], [ -70.999474696861995, 42.863943490673499, 0.0 ], [ -71.004638745097196, 42.8631533316724, 0.0 ], [ -71.031201, 42.859089, 0.0 ], [ -71.034844624727995, 42.8562458685835, 0.0 ], [ -71.044401, 42.848789, 0.0 ], [ -71.047501, 42.844089, 0.0 ], [ -71.053565269831196, 42.833153431451898, 0.0 ], [ -71.053601, 42.833089, 0.0 ], [ -71.064201, 42.806289, 0.0 ], [ -71.065419322756597, 42.8065583431177, 0.0 ], [ -71.091179642333202, 42.812253356815802, 0.0 ], [ -71.099743964331594, 42.814146731272999, 0.0 ], [ -71.102111746473398, 42.814670193402101, 0.0 ], [ -71.115753530338395, 42.817686077803103, 0.0 ], [ -71.132503, 42.821389, 0.0 ], [ -71.147905816287405, 42.816105475808399, 0.0 ], [ -71.149703, 42.815489, 0.0 ], [ -71.165603, 42.808689, 0.0 ], [ -71.166271832786904, 42.808274960655702, 0.0 ], [ -71.167703, 42.807389, 0.0 ], [ -71.1743700929581, 42.801617486692997, 0.0 ], [ -71.174403, 42.801589, 0.0 ], [ -71.182278710330706, 42.794252426834902, 0.0 ], [ -71.184653925959495, 42.792039808224999, 0.0 ], [ -71.186104, 42.790689, 0.0 ], [ -71.184080459176599, 42.765706904166201, 0.0 ], [ -71.182888900248301, 42.750996235127403, 0.0 ], [ -71.181803, 42.73759, 0.0 ], [ -71.1937396072816, 42.740165975513797, 0.0 ], [ -71.197751124231701, 42.7410316795781, 0.0 ], [ -71.200404532177998, 42.741604297386203, 0.0 ], [ -71.208137, 42.743273, 0.0 ], [ -71.208227, 42.743294, 0.0 ], [ -71.208302, 42.743314, 0.0 ], [ -71.210439577984104, 42.743776397493697, 0.0 ], [ -71.213638703006893, 42.744468427166296, 0.0 ], [ -71.216506462121799, 42.745088776289002, 0.0 ], [ -71.223904, 42.746689, 0.0 ], [ -71.233404, 42.745489, 0.0 ], [ -71.245504, 42.742589, 0.0 ], [ -71.245539259393993, 42.742567357762297, 0.0 ], [ -71.255198770389399, 42.736638343984403, 0.0 ], [ -71.255605, 42.736389, 0.0 ], [ -71.267905, 42.72589, 0.0 ], [ -71.275386559144394, 42.7159598318759, 0.0 ], [ -71.275406885434194, 42.715932853077597, 0.0 ], [ -71.278929, 42.711258, 0.0 ], [ -71.288832514129695, 42.702007977768901, 0.0 ], [ -71.294205, 42.69699, 0.0 ], [ -71.313446645428996, 42.697096895060803, 0.0 ], [ -71.313492215809404, 42.697097148222497, 0.0 ], [ -71.330206, 42.69719, 0.0 ], [ -71.330330636992699, 42.697195545046199, 0.0 ], [ -71.351624238497195, 42.6981428882182, 0.0 ], [ -71.351797292683102, 42.698150587324498, 0.0 ], [ -71.351874, 42.698154, 0.0 ], [ -71.365186651846798, 42.698469482361801, 0.0 ], [ -71.367434834858997, 42.698522759657301, 0.0 ], [ -71.369725041666797, 42.698577032830002, 0.0 ], [ -71.386943026923205, 42.698985063530102, 0.0 ], [ -71.388194833244796, 42.699014728755301, 0.0 ], [ -71.432335697233, 42.700060776092897, 0.0 ], [ -71.4323540138531, 42.700061210158999, 0.0 ], [ -71.449174210284795, 42.700459814085299, 0.0 ], [ -71.451714344807201, 42.700520010028796, 0.0 ], [ -71.457687763627007, 42.700661567721298, 0.0 ], [ -71.467553246573004, 42.700895359297597, 0.0 ], [ -71.488035032965996, 42.701380735345701, 0.0 ], [ -71.488101021295805, 42.701382299132902, 0.0 ], [ -71.495680667810106, 42.701561921105402, 0.0 ], [ -71.542537731342094, 42.702672336764003, 0.0 ], [ -71.5426896188347, 42.702675936184001, 0.0 ], [ -71.567309278074603, 42.703259371275102, 0.0 ], [ -71.619789600454098, 42.704503046557903, 0.0 ], [ -71.630622319120306, 42.704759759623599, 0.0 ], [ -71.631814, 42.704788, 0.0 ], [ -71.636214, 42.704888, 0.0 ], [ -71.651873914722998, 42.705230765575898, 0.0 ], [ -71.672385089970405, 42.705679715964301, 0.0 ], [ -71.701391660188307, 42.706314614297, 0.0 ], [ -71.726856504954299, 42.706871991034802, 0.0 ], [ -71.745817, 42.707287, 0.0 ], [ -71.772556879175596, 42.708009877156002, 0.0 ], [ -71.805390068401493, 42.708897478864799, 0.0 ], [ -71.823802474552394, 42.709395233836197, 0.0 ], [ -71.898770029480005, 42.711421882219298, 0.0 ], [ -71.928811, 42.712234, 0.0 ], [ -71.929019404364794, 42.712238200502497, 0.0 ], [ -71.955866542370202, 42.712779319064303, 0.0 ], [ -71.981402, 42.713294, 0.0 ], [ -71.981429003221095, 42.713294819205601, 0.0 ], [ -72.015729214808104, 42.714335396039097, 0.0 ], [ -72.077672557328199, 42.7162145916542, 0.0 ], [ -72.078626996368499, 42.716243546786203, 0.0 ], [ -72.081368553485802, 42.7163267183088, 0.0 ], [ -72.089326931404997, 42.716568154244897, 0.0 ], [ -72.111058349948095, 42.7172274274578, 0.0 ], [ -72.124526, 42.717636, 0.0 ], [ -72.1453998112964, 42.718152582477202, 0.0 ], [ -72.203569553658198, 42.719592160002399, 0.0 ], [ -72.283032875650903, 42.721558708379099, 0.0 ], [ -72.285954, 42.721631, 0.0 ], [ -72.326282472605996, 42.722851382371601, 0.0 ], [ -72.412033237422307, 42.725446291500703, 0.0 ], [ -72.429220084710906, 42.725966383735702, 0.0 ], [ -72.437871926157499, 42.726228197637901, 0.0 ], [ -72.451195743325101, 42.726631390482702, 0.0 ], [ -72.458519, 42.726853, 0.0 ], [ -72.516711182782203, 42.7284676698292, 0.0 ], [ -72.5658714470635, 42.729831729256702, 0.0 ], [ -72.569974323389999, 42.7299455725652, 0.0 ], [ -72.598620323978096, 42.730740418722696, 0.0 ], [ -72.616353485467997, 42.731232464208297, 0.0 ], [ -72.674684822182698, 42.732850995168697, 0.0 ], [ -72.686173477997002, 42.733169773139103, 0.0 ], [ -72.779257080969302, 42.735752581999897, 0.0 ], [ -72.791076431289696, 42.736080535815198, 0.0 ], [ -72.809113, 42.736581, 0.0 ], [ -72.857658583506307, 42.737614628776498, 0.0 ], [ -72.864300520714295, 42.7377560483853, 0.0 ], [ -72.882792432033199, 42.738149776718302, 0.0 ], [ -72.927189572318696, 42.739095077165402, 0.0 ], [ -72.930260821819004, 42.739160469970102, 0.0 ], [ -73.018645354583995, 42.741042346546003, 0.0 ], [ -73.022903, 42.741133, 0.0 ], [ -73.023014995548706, 42.741135224142603, 0.0 ], [ -73.048442883883098, 42.741640201788897, 0.0 ], [ -73.089901607319803, 42.742463539075501, 0.0 ], [ -73.142493417626895, 42.7435079706162, 0.0 ], [ -73.163642086057806, 42.743927966357397, 0.0 ], [ -73.213170274011105, 42.744911556793802, 0.0 ], [ -73.264957, 42.74594, 0.0 ], [ -73.273102434817005, 42.723993927145798, 0.0 ], [ -73.274145059306704, 42.721184806021597, 0.0 ], [ -73.307004076180604, 42.6326534514115, 0.0 ], [ -73.312549678309395, 42.6177120528152, 0.0 ], [ -73.341644486865505, 42.5393225251104, 0.0 ], [ -73.347276444439998, 42.5241484608622, 0.0 ], [ -73.352524954944201, 42.510007509950597, 0.0 ], [ -73.352527, 42.510002, 0.0 ], [ -73.382123060516193, 42.429410908759301, 0.0 ], [ -73.383505657283607, 42.425646050183801, 0.0 ], [ -73.388684075732201, 42.411545038549299, 0.0 ], [ -73.391556146682305, 42.403724290519001, 0.0 ], [ -73.400626511901905, 42.379025373897903, 0.0 ], [ -73.410644407427299, 42.3517462996479, 0.0 ], [ -73.411974025716106, 42.348125703292801, 0.0 ], [ -73.414076883445105, 42.3423995493335, 0.0 ], [ -73.431083661342996, 42.296089507883103, 0.0 ], [ -73.431400343940396, 42.295227170272902, 0.0 ], [ -73.442891759420704, 42.263935650479098, 0.0 ], [ -73.459935234225, 42.217525682089402, 0.0 ], [ -73.475918043929994, 42.174003941264601, 0.0 ], [ -73.482963373963997, 42.154819265138997, 0.0 ], [ -73.497174992430004, 42.116120539008101, 0.0 ], [ -73.508142, 42.086257, 0.0 ] ] ] ] } } -] -} diff --git a/leafletTest/index.html b/leafletTest/index.html deleted file mode 100644 index f7acba8..0000000 --- a/leafletTest/index.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - diff --git a/leafletTest/js/Autolinker.min.js b/leafletTest/js/Autolinker.min.js deleted file mode 100644 index ea375d1..0000000 --- a/leafletTest/js/Autolinker.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * Autolinker.js - * 0.11.0 - * - * Copyright(c) 2014 Gregory Jacobs - * MIT Licensed. http://www.opensource.org/licenses/mit-license.php - * - * https://github.com/gregjacobs/Autolinker.js - */ -!function(a,b){"function"==typeof define&&define.amd?define(b):"undefined"!=typeof exports?module.exports=b():a.Autolinker=b()}(this,function(){var a=function(a){a=a||{};for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b])};return a.prototype={constructor:a,newWindow:!0,stripPrefix:!0,twitter:!0,email:!0,urls:!0,className:"",matcherRegex:function(){var a=/(^|[^\w])@(\w{1,15})/,b=/(?:[\-;:&=\+\$,\w\.]+@)/,c=/(?:[A-Za-z]{3,9}:(?:\/\/)?)/,d=/(?:www\.)/,e=/[A-Za-z0-9\.\-]*[A-Za-z0-9\-]/,f=/\.(?:international|construction|contractors|enterprises|photography|productions|foundation|immobilien|industries|management|properties|technology|christmas|community|directory|education|equipment|institute|marketing|solutions|vacations|bargains|boutique|builders|catering|cleaning|clothing|computer|democrat|diamonds|graphics|holdings|lighting|partners|plumbing|supplies|training|ventures|academy|careers|company|cruises|domains|exposed|flights|florist|gallery|guitars|holiday|kitchen|neustar|okinawa|recipes|rentals|reviews|shiksha|singles|support|systems|agency|berlin|camera|center|coffee|condos|dating|estate|events|expert|futbol|kaufen|luxury|maison|monash|museum|nagoya|photos|repair|report|social|supply|tattoo|tienda|travel|viajes|villas|vision|voting|voyage|actor|build|cards|cheap|codes|dance|email|glass|house|mango|ninja|parts|photo|shoes|solar|today|tokyo|tools|watch|works|aero|arpa|asia|best|bike|blue|buzz|camp|club|cool|coop|farm|fish|gift|guru|info|jobs|kiwi|kred|land|limo|link|menu|mobi|moda|name|pics|pink|post|qpon|rich|ruhr|sexy|tips|vote|voto|wang|wien|wiki|zone|bar|bid|biz|cab|cat|ceo|com|edu|gov|int|kim|mil|net|onl|org|pro|pub|red|tel|uno|wed|xxx|xyz|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)\b/,g=/(?:[\-A-Za-z0-9+&@#\/%?=~_()|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_()|])?/;return new RegExp(["(",a.source,")","|","(",b.source,e.source,f.source,")","|","(","(?:","(?:",c.source,e.source,")","|","(?:","(.?//)?",d.source,e.source,")","|","(?:","(.?//)?",e.source,f.source,")",")",g.source,")"].join(""),"gi")}(),protocolRelativeRegex:/(.)?\/\//,htmlRegex:function(){var a=/[0-9a-zA-Z:]+/,b=/[^\s\0"'>\/=\x01-\x1F\x7F]+/,c=/(?:".*?"|'.*?'|[^'"=<>`\s]+)/;return new RegExp(["<(/)?","("+a.source+")","(?:","\\s+",b.source,"(?:\\s*=\\s*"+c.source+")?",")*","\\s*",">"].join(""),"g")}(),urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,link:function(a){return this.processHtml(a)},processHtml:function(a){for(var b,c,d=this.htmlRegex,e=0,f=0,g=[];null!==(b=d.exec(a));){var h=b[0],i=b[2],j=!!b[1];c=a.substring(e,b.index),e=b.index+h.length,"a"===i?j?(f=Math.max(f-1,0),0===f&&g.push(c)):(f++,g.push(this.processTextNode(c))):g.push(0===f?this.processTextNode(c):c),g.push(h)}if(ex&&(a=a.substr(0,a.length-1),t=")")}var z,A=a,B=a;if(m)z="twitter",s=n,A="https://twitter.com/"+o,B="@"+o;else if(p)z="email",A="mailto:"+p,B=p;else if(z="url",r){var C=new RegExp("^"+b.protocolRelativeRegex.source),D=r.match(C)[1]||"";s=D+s,A=A.replace(C,"//"),B=B.replace(C,"")}else/^[A-Za-z]{3,9}:/i.test(A)||(A="http://"+A);var E=b.createAnchorTag(z,A,B);return s+E+t})},createAnchorTag:function(a,b,c){var d=this.createAnchorAttrsStr(a,b);return c=this.processAnchorText(c),""+c+""},createAnchorAttrsStr:function(a,b){var c=['href="'+b+'"'],d=this.createCssClass(a);return d&&c.push('class="'+d+'"'),this.newWindow&&c.push('target="_blank"'),c.join(" ")},createCssClass:function(a){var b=this.className;return b?b+" "+b+"-"+a:""},processAnchorText:function(a){return this.stripPrefix&&(a=this.stripUrlPrefix(a)),a=this.removeTrailingSlash(a),a=this.doTruncate(a)},stripUrlPrefix:function(a){return a.replace(this.urlPrefixRegex,"")},removeTrailingSlash:function(a){return"/"===a.charAt(a.length-1)&&(a=a.slice(0,-1)),a},doTruncate:function(a){var b=this.truncate;return b&&a.length>b&&(a=a.substring(0,b-2)+".."),a}},a.link=function(b,c){var d=new a(c);return d.link(b)},a}); \ No newline at end of file diff --git a/leafletTest/js/Leaflet.VectorGrid.js b/leafletTest/js/Leaflet.VectorGrid.js deleted file mode 100644 index d28110f..0000000 --- a/leafletTest/js/Leaflet.VectorGrid.js +++ /dev/null @@ -1,2585 +0,0 @@ -(function () { -'use strict'; - -function __$strToBlobUri(str, mime, isBinary) {try {return window.URL.createObjectURL(new Blob([Uint8Array.from(str.split('').map(function(c) {return c.charCodeAt(0)}))], {type: mime}));} catch (e) {return "data:" + mime + (isBinary ? ";base64," : ",") + str;}} -(function(self) { - 'use strict'; - - if (self.fetch) { - return - } - - var support = { - searchParams: 'URLSearchParams' in self, - iterable: 'Symbol' in self && 'iterator' in Symbol, - blob: 'FileReader' in self && 'Blob' in self && (function() { - try { - new Blob(); - return true - } catch(e) { - return false - } - })(), - formData: 'FormData' in self, - arrayBuffer: 'ArrayBuffer' in self - }; - - if (support.arrayBuffer) { - var viewClasses = [ - '[object Int8Array]', - '[object Uint8Array]', - '[object Uint8ClampedArray]', - '[object Int16Array]', - '[object Uint16Array]', - '[object Int32Array]', - '[object Uint32Array]', - '[object Float32Array]', - '[object Float64Array]' - ]; - - var isDataView = function(obj) { - return obj && DataView.prototype.isPrototypeOf(obj) - }; - - var isArrayBufferView = ArrayBuffer.isView || function(obj) { - return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 - }; - } - - function normalizeName(name) { - if (typeof name !== 'string') { - name = String(name); - } - if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) { - throw new TypeError('Invalid character in header field name') - } - return name.toLowerCase() - } - - function normalizeValue(value) { - if (typeof value !== 'string') { - value = String(value); - } - return value - } - - // Build a destructive iterator for the value list - function iteratorFor(items) { - var iterator = { - next: function() { - var value = items.shift(); - return {done: value === undefined, value: value} - } - }; - - if (support.iterable) { - iterator[Symbol.iterator] = function() { - return iterator - }; - } - - return iterator - } - - function Headers(headers) { - this.map = {}; - - if (headers instanceof Headers) { - headers.forEach(function(value, name) { - this.append(name, value); - }, this); - } else if (Array.isArray(headers)) { - headers.forEach(function(header) { - this.append(header[0], header[1]); - }, this); - } else if (headers) { - Object.getOwnPropertyNames(headers).forEach(function(name) { - this.append(name, headers[name]); - }, this); - } - } - - Headers.prototype.append = function(name, value) { - name = normalizeName(name); - value = normalizeValue(value); - var oldValue = this.map[name]; - this.map[name] = oldValue ? oldValue+','+value : value; - }; - - Headers.prototype['delete'] = function(name) { - delete this.map[normalizeName(name)]; - }; - - Headers.prototype.get = function(name) { - name = normalizeName(name); - return this.has(name) ? this.map[name] : null - }; - - Headers.prototype.has = function(name) { - return this.map.hasOwnProperty(normalizeName(name)) - }; - - Headers.prototype.set = function(name, value) { - this.map[normalizeName(name)] = normalizeValue(value); - }; - - Headers.prototype.forEach = function(callback, thisArg) { - var this$1 = this; - - for (var name in this.map) { - if (this$1.map.hasOwnProperty(name)) { - callback.call(thisArg, this$1.map[name], name, this$1); - } - } - }; - - Headers.prototype.keys = function() { - var items = []; - this.forEach(function(value, name) { items.push(name); }); - return iteratorFor(items) - }; - - Headers.prototype.values = function() { - var items = []; - this.forEach(function(value) { items.push(value); }); - return iteratorFor(items) - }; - - Headers.prototype.entries = function() { - var items = []; - this.forEach(function(value, name) { items.push([name, value]); }); - return iteratorFor(items) - }; - - if (support.iterable) { - Headers.prototype[Symbol.iterator] = Headers.prototype.entries; - } - - function consumed(body) { - if (body.bodyUsed) { - return Promise.reject(new TypeError('Already read')) - } - body.bodyUsed = true; - } - - function fileReaderReady(reader) { - return new Promise(function(resolve, reject) { - reader.onload = function() { - resolve(reader.result); - }; - reader.onerror = function() { - reject(reader.error); - }; - }) - } - - function readBlobAsArrayBuffer(blob) { - var reader = new FileReader(); - var promise = fileReaderReady(reader); - reader.readAsArrayBuffer(blob); - return promise - } - - function readBlobAsText(blob) { - var reader = new FileReader(); - var promise = fileReaderReady(reader); - reader.readAsText(blob); - return promise - } - - function readArrayBufferAsText(buf) { - var view = new Uint8Array(buf); - var chars = new Array(view.length); - - for (var i = 0; i < view.length; i++) { - chars[i] = String.fromCharCode(view[i]); - } - return chars.join('') - } - - function bufferClone(buf) { - if (buf.slice) { - return buf.slice(0) - } else { - var view = new Uint8Array(buf.byteLength); - view.set(new Uint8Array(buf)); - return view.buffer - } - } - - function Body() { - this.bodyUsed = false; - - this._initBody = function(body) { - this._bodyInit = body; - if (!body) { - this._bodyText = ''; - } else if (typeof body === 'string') { - this._bodyText = body; - } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { - this._bodyBlob = body; - } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { - this._bodyFormData = body; - } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { - this._bodyText = body.toString(); - } else if (support.arrayBuffer && support.blob && isDataView(body)) { - this._bodyArrayBuffer = bufferClone(body.buffer); - // IE 10-11 can't handle a DataView body. - this._bodyInit = new Blob([this._bodyArrayBuffer]); - } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { - this._bodyArrayBuffer = bufferClone(body); - } else { - throw new Error('unsupported BodyInit type') - } - - if (!this.headers.get('content-type')) { - if (typeof body === 'string') { - this.headers.set('content-type', 'text/plain;charset=UTF-8'); - } else if (this._bodyBlob && this._bodyBlob.type) { - this.headers.set('content-type', this._bodyBlob.type); - } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { - this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - } - }; - - if (support.blob) { - this.blob = function() { - var rejected = consumed(this); - if (rejected) { - return rejected - } - - if (this._bodyBlob) { - return Promise.resolve(this._bodyBlob) - } else if (this._bodyArrayBuffer) { - return Promise.resolve(new Blob([this._bodyArrayBuffer])) - } else if (this._bodyFormData) { - throw new Error('could not read FormData body as blob') - } else { - return Promise.resolve(new Blob([this._bodyText])) - } - }; - - this.arrayBuffer = function() { - if (this._bodyArrayBuffer) { - return consumed(this) || Promise.resolve(this._bodyArrayBuffer) - } else { - return this.blob().then(readBlobAsArrayBuffer) - } - }; - } - - this.text = function() { - var rejected = consumed(this); - if (rejected) { - return rejected - } - - if (this._bodyBlob) { - return readBlobAsText(this._bodyBlob) - } else if (this._bodyArrayBuffer) { - return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) - } else if (this._bodyFormData) { - throw new Error('could not read FormData body as text') - } else { - return Promise.resolve(this._bodyText) - } - }; - - if (support.formData) { - this.formData = function() { - return this.text().then(decode) - }; - } - - this.json = function() { - return this.text().then(JSON.parse) - }; - - return this - } - - // HTTP methods whose capitalization should be normalized - var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']; - - function normalizeMethod(method) { - var upcased = method.toUpperCase(); - return (methods.indexOf(upcased) > -1) ? upcased : method - } - - function Request(input, options) { - options = options || {}; - var body = options.body; - - if (input instanceof Request) { - if (input.bodyUsed) { - throw new TypeError('Already read') - } - this.url = input.url; - this.credentials = input.credentials; - if (!options.headers) { - this.headers = new Headers(input.headers); - } - this.method = input.method; - this.mode = input.mode; - if (!body && input._bodyInit != null) { - body = input._bodyInit; - input.bodyUsed = true; - } - } else { - this.url = String(input); - } - - this.credentials = options.credentials || this.credentials || 'omit'; - if (options.headers || !this.headers) { - this.headers = new Headers(options.headers); - } - this.method = normalizeMethod(options.method || this.method || 'GET'); - this.mode = options.mode || this.mode || null; - this.referrer = null; - - if ((this.method === 'GET' || this.method === 'HEAD') && body) { - throw new TypeError('Body not allowed for GET or HEAD requests') - } - this._initBody(body); - } - - Request.prototype.clone = function() { - return new Request(this, { body: this._bodyInit }) - }; - - function decode(body) { - var form = new FormData(); - body.trim().split('&').forEach(function(bytes) { - if (bytes) { - var split = bytes.split('='); - var name = split.shift().replace(/\+/g, ' '); - var value = split.join('=').replace(/\+/g, ' '); - form.append(decodeURIComponent(name), decodeURIComponent(value)); - } - }); - return form - } - - function parseHeaders(rawHeaders) { - var headers = new Headers(); - rawHeaders.split(/\r?\n/).forEach(function(line) { - var parts = line.split(':'); - var key = parts.shift().trim(); - if (key) { - var value = parts.join(':').trim(); - headers.append(key, value); - } - }); - return headers - } - - Body.call(Request.prototype); - - function Response(bodyInit, options) { - if (!options) { - options = {}; - } - - this.type = 'default'; - this.status = 'status' in options ? options.status : 200; - this.ok = this.status >= 200 && this.status < 300; - this.statusText = 'statusText' in options ? options.statusText : 'OK'; - this.headers = new Headers(options.headers); - this.url = options.url || ''; - this._initBody(bodyInit); - } - - Body.call(Response.prototype); - - Response.prototype.clone = function() { - return new Response(this._bodyInit, { - status: this.status, - statusText: this.statusText, - headers: new Headers(this.headers), - url: this.url - }) - }; - - Response.error = function() { - var response = new Response(null, {status: 0, statusText: ''}); - response.type = 'error'; - return response - }; - - var redirectStatuses = [301, 302, 303, 307, 308]; - - Response.redirect = function(url, status) { - if (redirectStatuses.indexOf(status) === -1) { - throw new RangeError('Invalid status code') - } - - return new Response(null, {status: status, headers: {location: url}}) - }; - - self.Headers = Headers; - self.Request = Request; - self.Response = Response; - - self.fetch = function(input, init) { - return new Promise(function(resolve, reject) { - var request = new Request(input, init); - var xhr = new XMLHttpRequest(); - - xhr.onload = function() { - var options = { - status: xhr.status, - statusText: xhr.statusText, - headers: parseHeaders(xhr.getAllResponseHeaders() || '') - }; - options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL'); - var body = 'response' in xhr ? xhr.response : xhr.responseText; - resolve(new Response(body, options)); - }; - - xhr.onerror = function() { - reject(new TypeError('Network request failed')); - }; - - xhr.ontimeout = function() { - reject(new TypeError('Network request failed')); - }; - - xhr.open(request.method, request.url, true); - - if (request.credentials === 'include') { - xhr.withCredentials = true; - } - - if ('responseType' in xhr && support.blob) { - xhr.responseType = 'blob'; - } - - request.headers.forEach(function(value, name) { - xhr.setRequestHeader(name, value); - }); - - xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit); - }) - }; - self.fetch.polyfill = true; -})(typeof self !== 'undefined' ? self : undefined); - -var read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var nBits = -7; - var i = isLE ? (nBytes - 1) : 0; - var d = isLE ? -1 : 1; - var s = buffer[offset + i]; - - i += d; - - e = s & ((1 << (-nBits)) - 1); - s >>= (-nBits); - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1); - e >>= (-nBits); - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -}; - -var write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c; - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0); - var i = isLE ? 0 : (nBytes - 1); - var d = isLE ? 1 : -1; - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128; -}; - -var index$1 = { - read: read, - write: write -}; - -var index = Pbf; - -var ieee754 = index$1; - -function Pbf(buf) { - this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0); - this.pos = 0; - this.type = 0; - this.length = this.buf.length; -} - -Pbf.Varint = 0; // varint: int32, int64, uint32, uint64, sint32, sint64, bool, enum -Pbf.Fixed64 = 1; // 64-bit: double, fixed64, sfixed64 -Pbf.Bytes = 2; // length-delimited: string, bytes, embedded messages, packed repeated fields -Pbf.Fixed32 = 5; // 32-bit: float, fixed32, sfixed32 - -var SHIFT_LEFT_32 = (1 << 16) * (1 << 16); -var SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32; - -Pbf.prototype = { - - destroy: function() { - this.buf = null; - }, - - // === READING ================================================================= - - readFields: function(readField, result, end) { - var this$1 = this; - - end = end || this.length; - - while (this.pos < end) { - var val = this$1.readVarint(), - tag = val >> 3, - startPos = this$1.pos; - - this$1.type = val & 0x7; - readField(tag, result, this$1); - - if (this$1.pos === startPos) { this$1.skip(val); } - } - return result; - }, - - readMessage: function(readField, result) { - return this.readFields(readField, result, this.readVarint() + this.pos); - }, - - readFixed32: function() { - var val = readUInt32(this.buf, this.pos); - this.pos += 4; - return val; - }, - - readSFixed32: function() { - var val = readInt32(this.buf, this.pos); - this.pos += 4; - return val; - }, - - // 64-bit int handling is based on github.com/dpw/node-buffer-more-ints (MIT-licensed) - - readFixed64: function() { - var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32; - this.pos += 8; - return val; - }, - - readSFixed64: function() { - var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32; - this.pos += 8; - return val; - }, - - readFloat: function() { - var val = ieee754.read(this.buf, this.pos, true, 23, 4); - this.pos += 4; - return val; - }, - - readDouble: function() { - var val = ieee754.read(this.buf, this.pos, true, 52, 8); - this.pos += 8; - return val; - }, - - readVarint: function(isSigned) { - var buf = this.buf, - val, b; - - b = buf[this.pos++]; val = b & 0x7f; if (b < 0x80) { return val; } - b = buf[this.pos++]; val |= (b & 0x7f) << 7; if (b < 0x80) { return val; } - b = buf[this.pos++]; val |= (b & 0x7f) << 14; if (b < 0x80) { return val; } - b = buf[this.pos++]; val |= (b & 0x7f) << 21; if (b < 0x80) { return val; } - b = buf[this.pos]; val |= (b & 0x0f) << 28; - - return readVarintRemainder(val, isSigned, this); - }, - - readVarint64: function() { // for compatibility with v2.0.1 - return this.readVarint(true); - }, - - readSVarint: function() { - var num = this.readVarint(); - return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding - }, - - readBoolean: function() { - return Boolean(this.readVarint()); - }, - - readString: function() { - var end = this.readVarint() + this.pos, - str = readUtf8(this.buf, this.pos, end); - this.pos = end; - return str; - }, - - readBytes: function() { - var end = this.readVarint() + this.pos, - buffer = this.buf.subarray(this.pos, end); - this.pos = end; - return buffer; - }, - - // verbose for performance reasons; doesn't affect gzipped size - - readPackedVarint: function(arr, isSigned) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readVarint(isSigned)); } - return arr; - }, - readPackedSVarint: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readSVarint()); } - return arr; - }, - readPackedBoolean: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readBoolean()); } - return arr; - }, - readPackedFloat: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readFloat()); } - return arr; - }, - readPackedDouble: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readDouble()); } - return arr; - }, - readPackedFixed32: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readFixed32()); } - return arr; - }, - readPackedSFixed32: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readSFixed32()); } - return arr; - }, - readPackedFixed64: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readFixed64()); } - return arr; - }, - readPackedSFixed64: function(arr) { - var this$1 = this; - - var end = readPackedEnd(this); - arr = arr || []; - while (this.pos < end) { arr.push(this$1.readSFixed64()); } - return arr; - }, - - skip: function(val) { - var type = val & 0x7; - if (type === Pbf.Varint) { while (this.buf[this.pos++] > 0x7f) {} } - else if (type === Pbf.Bytes) { this.pos = this.readVarint() + this.pos; } - else if (type === Pbf.Fixed32) { this.pos += 4; } - else if (type === Pbf.Fixed64) { this.pos += 8; } - else { throw new Error('Unimplemented type: ' + type); } - }, - - // === WRITING ================================================================= - - writeTag: function(tag, type) { - this.writeVarint((tag << 3) | type); - }, - - realloc: function(min) { - var length = this.length || 16; - - while (length < this.pos + min) { length *= 2; } - - if (length !== this.length) { - var buf = new Uint8Array(length); - buf.set(this.buf); - this.buf = buf; - this.length = length; - } - }, - - finish: function() { - this.length = this.pos; - this.pos = 0; - return this.buf.subarray(0, this.length); - }, - - writeFixed32: function(val) { - this.realloc(4); - writeInt32(this.buf, val, this.pos); - this.pos += 4; - }, - - writeSFixed32: function(val) { - this.realloc(4); - writeInt32(this.buf, val, this.pos); - this.pos += 4; - }, - - writeFixed64: function(val) { - this.realloc(8); - writeInt32(this.buf, val & -1, this.pos); - writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4); - this.pos += 8; - }, - - writeSFixed64: function(val) { - this.realloc(8); - writeInt32(this.buf, val & -1, this.pos); - writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4); - this.pos += 8; - }, - - writeVarint: function(val) { - val = +val || 0; - - if (val > 0xfffffff || val < 0) { - writeBigVarint(val, this); - return; - } - - this.realloc(4); - - this.buf[this.pos++] = val & 0x7f | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) { return; } - this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) { return; } - this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) { return; } - this.buf[this.pos++] = (val >>> 7) & 0x7f; - }, - - writeSVarint: function(val) { - this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2); - }, - - writeBoolean: function(val) { - this.writeVarint(Boolean(val)); - }, - - writeString: function(str) { - str = String(str); - this.realloc(str.length * 4); - - this.pos++; // reserve 1 byte for short string length - - var startPos = this.pos; - // write the string directly to the buffer and see how much was written - this.pos = writeUtf8(this.buf, str, this.pos); - var len = this.pos - startPos; - - if (len >= 0x80) { makeRoomForExtraLength(startPos, len, this); } - - // finally, write the message length in the reserved place and restore the position - this.pos = startPos - 1; - this.writeVarint(len); - this.pos += len; - }, - - writeFloat: function(val) { - this.realloc(4); - ieee754.write(this.buf, val, this.pos, true, 23, 4); - this.pos += 4; - }, - - writeDouble: function(val) { - this.realloc(8); - ieee754.write(this.buf, val, this.pos, true, 52, 8); - this.pos += 8; - }, - - writeBytes: function(buffer) { - var this$1 = this; - - var len = buffer.length; - this.writeVarint(len); - this.realloc(len); - for (var i = 0; i < len; i++) { this$1.buf[this$1.pos++] = buffer[i]; } - }, - - writeRawMessage: function(fn, obj) { - this.pos++; // reserve 1 byte for short message length - - // write the message directly to the buffer and see how much was written - var startPos = this.pos; - fn(obj, this); - var len = this.pos - startPos; - - if (len >= 0x80) { makeRoomForExtraLength(startPos, len, this); } - - // finally, write the message length in the reserved place and restore the position - this.pos = startPos - 1; - this.writeVarint(len); - this.pos += len; - }, - - writeMessage: function(tag, fn, obj) { - this.writeTag(tag, Pbf.Bytes); - this.writeRawMessage(fn, obj); - }, - - writePackedVarint: function(tag, arr) { this.writeMessage(tag, writePackedVarint, arr); }, - writePackedSVarint: function(tag, arr) { this.writeMessage(tag, writePackedSVarint, arr); }, - writePackedBoolean: function(tag, arr) { this.writeMessage(tag, writePackedBoolean, arr); }, - writePackedFloat: function(tag, arr) { this.writeMessage(tag, writePackedFloat, arr); }, - writePackedDouble: function(tag, arr) { this.writeMessage(tag, writePackedDouble, arr); }, - writePackedFixed32: function(tag, arr) { this.writeMessage(tag, writePackedFixed32, arr); }, - writePackedSFixed32: function(tag, arr) { this.writeMessage(tag, writePackedSFixed32, arr); }, - writePackedFixed64: function(tag, arr) { this.writeMessage(tag, writePackedFixed64, arr); }, - writePackedSFixed64: function(tag, arr) { this.writeMessage(tag, writePackedSFixed64, arr); }, - - writeBytesField: function(tag, buffer) { - this.writeTag(tag, Pbf.Bytes); - this.writeBytes(buffer); - }, - writeFixed32Field: function(tag, val) { - this.writeTag(tag, Pbf.Fixed32); - this.writeFixed32(val); - }, - writeSFixed32Field: function(tag, val) { - this.writeTag(tag, Pbf.Fixed32); - this.writeSFixed32(val); - }, - writeFixed64Field: function(tag, val) { - this.writeTag(tag, Pbf.Fixed64); - this.writeFixed64(val); - }, - writeSFixed64Field: function(tag, val) { - this.writeTag(tag, Pbf.Fixed64); - this.writeSFixed64(val); - }, - writeVarintField: function(tag, val) { - this.writeTag(tag, Pbf.Varint); - this.writeVarint(val); - }, - writeSVarintField: function(tag, val) { - this.writeTag(tag, Pbf.Varint); - this.writeSVarint(val); - }, - writeStringField: function(tag, str) { - this.writeTag(tag, Pbf.Bytes); - this.writeString(str); - }, - writeFloatField: function(tag, val) { - this.writeTag(tag, Pbf.Fixed32); - this.writeFloat(val); - }, - writeDoubleField: function(tag, val) { - this.writeTag(tag, Pbf.Fixed64); - this.writeDouble(val); - }, - writeBooleanField: function(tag, val) { - this.writeVarintField(tag, Boolean(val)); - } -}; - -function readVarintRemainder(l, s, p) { - var buf = p.buf, - h, b; - - b = buf[p.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) { return toNum(l, h, s); } - b = buf[p.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) { return toNum(l, h, s); } - b = buf[p.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) { return toNum(l, h, s); } - b = buf[p.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) { return toNum(l, h, s); } - b = buf[p.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) { return toNum(l, h, s); } - b = buf[p.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) { return toNum(l, h, s); } - - throw new Error('Expected varint not more than 10 bytes'); -} - -function readPackedEnd(pbf) { - return pbf.type === Pbf.Bytes ? - pbf.readVarint() + pbf.pos : pbf.pos + 1; -} - -function toNum(low, high, isSigned) { - if (isSigned) { - return high * 0x100000000 + (low >>> 0); - } - - return ((high >>> 0) * 0x100000000) + (low >>> 0); -} - -function writeBigVarint(val, pbf) { - var low, high; - - if (val >= 0) { - low = (val % 0x100000000) | 0; - high = (val / 0x100000000) | 0; - } else { - low = ~(-val % 0x100000000); - high = ~(-val / 0x100000000); - - if (low ^ 0xffffffff) { - low = (low + 1) | 0; - } else { - low = 0; - high = (high + 1) | 0; - } - } - - if (val >= 0x10000000000000000 || val < -0x10000000000000000) { - throw new Error('Given varint doesn\'t fit into 10 bytes'); - } - - pbf.realloc(10); - - writeBigVarintLow(low, high, pbf); - writeBigVarintHigh(high, pbf); -} - -function writeBigVarintLow(low, high, pbf) { - pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7; - pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7; - pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7; - pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7; - pbf.buf[pbf.pos] = low & 0x7f; -} - -function writeBigVarintHigh(high, pbf) { - var lsb = (high & 0x07) << 4; - - pbf.buf[pbf.pos++] |= lsb | ((high >>>= 3) ? 0x80 : 0); if (!high) { return; } - pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) { return; } - pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) { return; } - pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) { return; } - pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) { return; } - pbf.buf[pbf.pos++] = high & 0x7f; -} - -function makeRoomForExtraLength(startPos, len, pbf) { - var extraLen = - len <= 0x3fff ? 1 : - len <= 0x1fffff ? 2 : - len <= 0xfffffff ? 3 : Math.ceil(Math.log(len) / (Math.LN2 * 7)); - - // if 1 byte isn't enough for encoding message length, shift the data to the right - pbf.realloc(extraLen); - for (var i = pbf.pos - 1; i >= startPos; i--) { pbf.buf[i + extraLen] = pbf.buf[i]; } -} - -function writePackedVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeVarint(arr[i]); } } -function writePackedSVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeSVarint(arr[i]); } } -function writePackedFloat(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeFloat(arr[i]); } } -function writePackedDouble(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeDouble(arr[i]); } } -function writePackedBoolean(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeBoolean(arr[i]); } } -function writePackedFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeFixed32(arr[i]); } } -function writePackedSFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeSFixed32(arr[i]); } } -function writePackedFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeFixed64(arr[i]); } } -function writePackedSFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) { pbf.writeSFixed64(arr[i]); } } - -// Buffer code below from https://github.com/feross/buffer, MIT-licensed - -function readUInt32(buf, pos) { - return ((buf[pos]) | - (buf[pos + 1] << 8) | - (buf[pos + 2] << 16)) + - (buf[pos + 3] * 0x1000000); -} - -function writeInt32(buf, val, pos) { - buf[pos] = val; - buf[pos + 1] = (val >>> 8); - buf[pos + 2] = (val >>> 16); - buf[pos + 3] = (val >>> 24); -} - -function readInt32(buf, pos) { - return ((buf[pos]) | - (buf[pos + 1] << 8) | - (buf[pos + 2] << 16)) + - (buf[pos + 3] << 24); -} - -function readUtf8(buf, pos, end) { - var str = ''; - var i = pos; - - while (i < end) { - var b0 = buf[i]; - var c = null; // codepoint - var bytesPerSequence = - b0 > 0xEF ? 4 : - b0 > 0xDF ? 3 : - b0 > 0xBF ? 2 : 1; - - if (i + bytesPerSequence > end) { break; } - - var b1, b2, b3; - - if (bytesPerSequence === 1) { - if (b0 < 0x80) { - c = b0; - } - } else if (bytesPerSequence === 2) { - b1 = buf[i + 1]; - if ((b1 & 0xC0) === 0x80) { - c = (b0 & 0x1F) << 0x6 | (b1 & 0x3F); - if (c <= 0x7F) { - c = null; - } - } - } else if (bytesPerSequence === 3) { - b1 = buf[i + 1]; - b2 = buf[i + 2]; - if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80) { - c = (b0 & 0xF) << 0xC | (b1 & 0x3F) << 0x6 | (b2 & 0x3F); - if (c <= 0x7FF || (c >= 0xD800 && c <= 0xDFFF)) { - c = null; - } - } - } else if (bytesPerSequence === 4) { - b1 = buf[i + 1]; - b2 = buf[i + 2]; - b3 = buf[i + 3]; - if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) { - c = (b0 & 0xF) << 0x12 | (b1 & 0x3F) << 0xC | (b2 & 0x3F) << 0x6 | (b3 & 0x3F); - if (c <= 0xFFFF || c >= 0x110000) { - c = null; - } - } - } - - if (c === null) { - c = 0xFFFD; - bytesPerSequence = 1; - - } else if (c > 0xFFFF) { - c -= 0x10000; - str += String.fromCharCode(c >>> 10 & 0x3FF | 0xD800); - c = 0xDC00 | c & 0x3FF; - } - - str += String.fromCharCode(c); - i += bytesPerSequence; - } - - return str; -} - -function writeUtf8(buf, str, pos) { - for (var i = 0, c, lead; i < str.length; i++) { - c = str.charCodeAt(i); // code point - - if (c > 0xD7FF && c < 0xE000) { - if (lead) { - if (c < 0xDC00) { - buf[pos++] = 0xEF; - buf[pos++] = 0xBF; - buf[pos++] = 0xBD; - lead = c; - continue; - } else { - c = lead - 0xD800 << 10 | c - 0xDC00 | 0x10000; - lead = null; - } - } else { - if (c > 0xDBFF || (i + 1 === str.length)) { - buf[pos++] = 0xEF; - buf[pos++] = 0xBF; - buf[pos++] = 0xBD; - } else { - lead = c; - } - continue; - } - } else if (lead) { - buf[pos++] = 0xEF; - buf[pos++] = 0xBF; - buf[pos++] = 0xBD; - lead = null; - } - - if (c < 0x80) { - buf[pos++] = c; - } else { - if (c < 0x800) { - buf[pos++] = c >> 0x6 | 0xC0; - } else { - if (c < 0x10000) { - buf[pos++] = c >> 0xC | 0xE0; - } else { - buf[pos++] = c >> 0x12 | 0xF0; - buf[pos++] = c >> 0xC & 0x3F | 0x80; - } - buf[pos++] = c >> 0x6 & 0x3F | 0x80; - } - buf[pos++] = c & 0x3F | 0x80; - } - } - return pos; -} - -var index$5 = Point$1; - -function Point$1(x, y) { - this.x = x; - this.y = y; -} - -Point$1.prototype = { - clone: function() { return new Point$1(this.x, this.y); }, - - add: function(p) { return this.clone()._add(p); }, - sub: function(p) { return this.clone()._sub(p); }, - mult: function(k) { return this.clone()._mult(k); }, - div: function(k) { return this.clone()._div(k); }, - rotate: function(a) { return this.clone()._rotate(a); }, - matMult: function(m) { return this.clone()._matMult(m); }, - unit: function() { return this.clone()._unit(); }, - perp: function() { return this.clone()._perp(); }, - round: function() { return this.clone()._round(); }, - - mag: function() { - return Math.sqrt(this.x * this.x + this.y * this.y); - }, - - equals: function(p) { - return this.x === p.x && - this.y === p.y; - }, - - dist: function(p) { - return Math.sqrt(this.distSqr(p)); - }, - - distSqr: function(p) { - var dx = p.x - this.x, - dy = p.y - this.y; - return dx * dx + dy * dy; - }, - - angle: function() { - return Math.atan2(this.y, this.x); - }, - - angleTo: function(b) { - return Math.atan2(this.y - b.y, this.x - b.x); - }, - - angleWith: function(b) { - return this.angleWithSep(b.x, b.y); - }, - - // Find the angle of the two vectors, solving the formula for the cross product a x b = |a||b|sin(?) for ?. - angleWithSep: function(x, y) { - return Math.atan2( - this.x * y - this.y * x, - this.x * x + this.y * y); - }, - - _matMult: function(m) { - var x = m[0] * this.x + m[1] * this.y, - y = m[2] * this.x + m[3] * this.y; - this.x = x; - this.y = y; - return this; - }, - - _add: function(p) { - this.x += p.x; - this.y += p.y; - return this; - }, - - _sub: function(p) { - this.x -= p.x; - this.y -= p.y; - return this; - }, - - _mult: function(k) { - this.x *= k; - this.y *= k; - return this; - }, - - _div: function(k) { - this.x /= k; - this.y /= k; - return this; - }, - - _unit: function() { - this._div(this.mag()); - return this; - }, - - _perp: function() { - var y = this.y; - this.y = this.x; - this.x = -y; - return this; - }, - - _rotate: function(angle) { - var cos = Math.cos(angle), - sin = Math.sin(angle), - x = cos * this.x - sin * this.y, - y = sin * this.x + cos * this.y; - this.x = x; - this.y = y; - return this; - }, - - _round: function() { - this.x = Math.round(this.x); - this.y = Math.round(this.y); - return this; - } -}; - -// constructs Point from an array if necessary -Point$1.convert = function (a) { - if (a instanceof Point$1) { - return a; - } - if (Array.isArray(a)) { - return new Point$1(a[0], a[1]); - } - return a; -}; - -var Point = index$5; - -var vectortilefeature = VectorTileFeature$2; - -function VectorTileFeature$2(pbf, end, extent, keys, values) { - // Public - this.properties = {}; - this.extent = extent; - this.type = 0; - - // Private - this._pbf = pbf; - this._geometry = -1; - this._keys = keys; - this._values = values; - - pbf.readFields(readFeature, this, end); -} - -function readFeature(tag, feature, pbf) { - if (tag == 1) { feature.id = pbf.readVarint(); } - else if (tag == 2) { readTag(pbf, feature); } - else if (tag == 3) { feature.type = pbf.readVarint(); } - else if (tag == 4) { feature._geometry = pbf.pos; } -} - -function readTag(pbf, feature) { - var end = pbf.readVarint() + pbf.pos; - - while (pbf.pos < end) { - var key = feature._keys[pbf.readVarint()], - value = feature._values[pbf.readVarint()]; - feature.properties[key] = value; - } -} - -VectorTileFeature$2.types = ['Unknown', 'Point', 'LineString', 'Polygon']; - -VectorTileFeature$2.prototype.loadGeometry = function() { - var pbf = this._pbf; - pbf.pos = this._geometry; - - var end = pbf.readVarint() + pbf.pos, - cmd = 1, - length = 0, - x = 0, - y = 0, - lines = [], - line; - - while (pbf.pos < end) { - if (!length) { - var cmdLen = pbf.readVarint(); - cmd = cmdLen & 0x7; - length = cmdLen >> 3; - } - - length--; - - if (cmd === 1 || cmd === 2) { - x += pbf.readSVarint(); - y += pbf.readSVarint(); - - if (cmd === 1) { // moveTo - if (line) { lines.push(line); } - line = []; - } - - line.push(new Point(x, y)); - - } else if (cmd === 7) { - - // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90 - if (line) { - line.push(line[0].clone()); // closePolygon - } - - } else { - throw new Error('unknown command ' + cmd); - } - } - - if (line) { lines.push(line); } - - return lines; -}; - -VectorTileFeature$2.prototype.bbox = function() { - var pbf = this._pbf; - pbf.pos = this._geometry; - - var end = pbf.readVarint() + pbf.pos, - cmd = 1, - length = 0, - x = 0, - y = 0, - x1 = Infinity, - x2 = -Infinity, - y1 = Infinity, - y2 = -Infinity; - - while (pbf.pos < end) { - if (!length) { - var cmdLen = pbf.readVarint(); - cmd = cmdLen & 0x7; - length = cmdLen >> 3; - } - - length--; - - if (cmd === 1 || cmd === 2) { - x += pbf.readSVarint(); - y += pbf.readSVarint(); - if (x < x1) { x1 = x; } - if (x > x2) { x2 = x; } - if (y < y1) { y1 = y; } - if (y > y2) { y2 = y; } - - } else if (cmd !== 7) { - throw new Error('unknown command ' + cmd); - } - } - - return [x1, y1, x2, y2]; -}; - -VectorTileFeature$2.prototype.toGeoJSON = function(x, y, z) { - var size = this.extent * Math.pow(2, z), - x0 = this.extent * x, - y0 = this.extent * y, - coords = this.loadGeometry(), - type = VectorTileFeature$2.types[this.type], - i, j; - - function project(line) { - for (var j = 0; j < line.length; j++) { - var p = line[j], y2 = 180 - (p.y + y0) * 360 / size; - line[j] = [ - (p.x + x0) * 360 / size - 180, - 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90 - ]; - } - } - - switch (this.type) { - case 1: - var points = []; - for (i = 0; i < coords.length; i++) { - points[i] = coords[i][0]; - } - coords = points; - project(coords); - break; - - case 2: - for (i = 0; i < coords.length; i++) { - project(coords[i]); - } - break; - - case 3: - coords = classifyRings(coords); - for (i = 0; i < coords.length; i++) { - for (j = 0; j < coords[i].length; j++) { - project(coords[i][j]); - } - } - break; - } - - if (coords.length === 1) { - coords = coords[0]; - } else { - type = 'Multi' + type; - } - - var result = { - type: "Feature", - geometry: { - type: type, - coordinates: coords - }, - properties: this.properties - }; - - if ('id' in this) { - result.id = this.id; - } - - return result; -}; - -// classifies an array of rings into polygons with outer rings and holes - -function classifyRings(rings) { - var len = rings.length; - - if (len <= 1) { return [rings]; } - - var polygons = [], - polygon, - ccw; - - for (var i = 0; i < len; i++) { - var area = signedArea(rings[i]); - if (area === 0) { continue; } - - if (ccw === undefined) { ccw = area < 0; } - - if (ccw === area < 0) { - if (polygon) { polygons.push(polygon); } - polygon = [rings[i]]; - - } else { - polygon.push(rings[i]); - } - } - if (polygon) { polygons.push(polygon); } - - return polygons; -} - -function signedArea(ring) { - var sum = 0; - for (var i = 0, len = ring.length, j = len - 1, p1, p2; i < len; j = i++) { - p1 = ring[i]; - p2 = ring[j]; - sum += (p2.x - p1.x) * (p1.y + p2.y); - } - return sum; -} - -var VectorTileFeature$1 = vectortilefeature; - -var vectortilelayer = VectorTileLayer$2; - -function VectorTileLayer$2(pbf, end) { - // Public - this.version = 1; - this.name = null; - this.extent = 4096; - this.length = 0; - - // Private - this._pbf = pbf; - this._keys = []; - this._values = []; - this._features = []; - - pbf.readFields(readLayer, this, end); - - this.length = this._features.length; -} - -function readLayer(tag, layer, pbf) { - if (tag === 15) { layer.version = pbf.readVarint(); } - else if (tag === 1) { layer.name = pbf.readString(); } - else if (tag === 5) { layer.extent = pbf.readVarint(); } - else if (tag === 2) { layer._features.push(pbf.pos); } - else if (tag === 3) { layer._keys.push(pbf.readString()); } - else if (tag === 4) { layer._values.push(readValueMessage(pbf)); } -} - -function readValueMessage(pbf) { - var value = null, - end = pbf.readVarint() + pbf.pos; - - while (pbf.pos < end) { - var tag = pbf.readVarint() >> 3; - - value = tag === 1 ? pbf.readString() : - tag === 2 ? pbf.readFloat() : - tag === 3 ? pbf.readDouble() : - tag === 4 ? pbf.readVarint64() : - tag === 5 ? pbf.readVarint() : - tag === 6 ? pbf.readSVarint() : - tag === 7 ? pbf.readBoolean() : null; - } - - return value; -} - -// return feature `i` from this layer as a `VectorTileFeature` -VectorTileLayer$2.prototype.feature = function(i) { - if (i < 0 || i >= this._features.length) { throw new Error('feature index out of bounds'); } - - this._pbf.pos = this._features[i]; - - var end = this._pbf.readVarint() + this._pbf.pos; - return new VectorTileFeature$1(this._pbf, end, this.extent, this._keys, this._values); -}; - -var VectorTileLayer$1 = vectortilelayer; - -var vectortile = VectorTile$1; - -function VectorTile$1(pbf, end) { - this.layers = pbf.readFields(readTile, {}, end); -} - -function readTile(tag, layers, pbf) { - if (tag === 3) { - var layer = new VectorTileLayer$1(pbf, pbf.readVarint() + pbf.pos); - if (layer.length) { layers[layer.name] = layer; } - } -} - -var VectorTile = vectortile; - -L.SVG.Tile = L.SVG.extend({ - - initialize: function (tileCoord, tileSize, options) { - L.SVG.prototype.initialize.call(this, options); - this._tileCoord = tileCoord; - this._size = tileSize; - - this._initContainer(); - this._container.setAttribute('width', this._size.x); - this._container.setAttribute('height', this._size.y); - this._container.setAttribute('viewBox', [0, 0, this._size.x, this._size.y].join(' ')); - - this._layers = {}; - }, - - getCoord: function() { - return this._tileCoord; - }, - - getContainer: function() { - return this._container; - }, - - onAdd: L.Util.falseFn, - - addTo: function(map) { - this._map = map; - if (this.options.interactive) { - for (var i in this._layers) { - var layer = this._layers[i]; - // By default, Leaflet tiles do not have pointer events. - layer._path.style.pointerEvents = 'auto'; - this._map._targets[L.stamp(layer._path)] = layer; - } - } - }, - - removeFrom: function (map) { - if (this.options.interactive) { - for (var i in this._layers) { - var layer = this._layers[i]; - delete this._map._targets[L.stamp(layer._path)]; - } - } - delete this._map; - }, - - _initContainer: function() { - L.SVG.prototype._initContainer.call(this); - var rect = L.SVG.create('rect'); - }, - - /// TODO: Modify _initPath to include an extra parameter, a group name - /// to order symbolizers by z-index - - _addPath: function (layer) { - this._rootGroup.appendChild(layer._path); - this._layers[L.stamp(layer)] = layer; - }, - - _updateIcon: function (layer) { - var path = layer._path = L.SVG.create('image'), - icon = layer.options.icon, - options = icon.options, - size = L.point(options.iconSize), - anchor = options.iconAnchor || - size && size.divideBy(2, true), - p = layer._point.subtract(anchor); - path.setAttribute('x', p.x); - path.setAttribute('y', p.y); - path.setAttribute('width', size.x + 'px'); - path.setAttribute('height', size.y + 'px'); - path.setAttribute('href', options.iconUrl); - } -}); - - -L.svg.tile = function(tileCoord, tileSize, opts){ - return new L.SVG.Tile(tileCoord, tileSize, opts); -}; - -// ??class Symbolizer -// ??inherits Class -// The abstract Symbolizer class is mostly equivalent in concept to a `L.Path` - it's an interface for -// polylines, polygons and circles. But instead of representing leaflet Layers, -// it represents things that have to be drawn inside a vector tile. - -// A vector tile *data layer* might have zero, one, or more *symbolizer definitions* -// A vector tile *feature* might have zero, one, or more *symbolizers*. -// The actual symbolizers applied will depend on filters and the symbolizer functions. - -var Symbolizer = L.Class.extend({ - // ??method initialize(feature: GeoJSON, pxPerExtent: Number) - // Initializes a new Line Symbolizer given a GeoJSON feature and the - // pixel-to-coordinate-units ratio. Internal use only. - - // ??method render(renderer, style) - // Renders this symbolizer in the given tiled renderer, with the given - // `L.Path` options. Internal use only. - render: function(renderer, style) { - this._renderer = renderer; - this.options = style; - renderer._initPath(this); - renderer._updateStyle(this); - }, - - // ??method render(renderer, style) - // Updates the `L.Path` options used to style this symbolizer, and re-renders it. - // Internal use only. - updateStyle: function(renderer, style) { - this.options = style; - renderer._updateStyle(this); - }, - - _getPixelBounds: function() { - var parts = this._parts; - var bounds = L.bounds([]); - for (var i = 0; i < parts.length; i++) { - var part = parts[i]; - for (var j = 0; j < part.length; j++) { - bounds.extend(part[j]); - } - } - - var w = this._clickTolerance(), - p = new L.Point(w, w); - - bounds.min._subtract(p); - bounds.max._add(p); - - return bounds; - }, - _clickTolerance: L.Path.prototype._clickTolerance, -}); - -// Contains mixins which are common to the Line Symbolizer and the Fill Symbolizer. - -var PolyBase = { - _makeFeatureParts: function(feat, pxPerExtent) { - var rings = feat.geometry; - var coord; - - this._parts = []; - for (var i = 0; i < rings.length; i++) { - var ring = rings[i]; - var part = []; - for (var j = 0; j < ring.length; j++) { - coord = ring[j]; - // Protobuf vector tiles return {x: , y:} - // Geojson-vt returns [,] - part.push(L.point(coord).scaleBy(pxPerExtent)); - } - this._parts.push(part); - } - }, - - makeInteractive: function() { - this._pxBounds = this._getPixelBounds(); - } -}; - -// ??class PointSymbolizer -// ??inherits CircleMarker -// A symbolizer for points. - -var PointSymbolizer = L.CircleMarker.extend({ - includes: Symbolizer.prototype, - - statics: { - iconCache: {} - }, - - initialize: function(feature, pxPerExtent) { - this.properties = feature.properties; - this._makeFeatureParts(feature, pxPerExtent); - }, - - render: function(renderer, style) { - Symbolizer.prototype.render.call(this, renderer, style); - this._radius = style.radius || L.CircleMarker.prototype.options.radius; - this._updatePath(); - }, - - _makeFeatureParts: function(feat, pxPerExtent) { - var coord = feat.geometry[0]; - if (typeof coord[0] === 'object' && 'x' in coord[0]) { - // Protobuf vector tiles return [{x: , y:}] - this._point = L.point(coord[0]).scaleBy(pxPerExtent); - this._empty = L.Util.falseFn; - } else { - // Geojson-vt returns [,] - this._point = L.point(coord).scaleBy(pxPerExtent); - this._empty = L.Util.falseFn; - } - }, - - makeInteractive: function() { - this._updateBounds(); - }, - - updateStyle: function(renderer, style) { - this._radius = style.radius || this._radius; - this._updateBounds(); - return Symbolizer.prototype.updateStyle.call(this, renderer, style); - }, - - _updateBounds: function() { - var icon = this.options.icon; - if (icon) { - var size = L.point(icon.options.iconSize), - anchor = icon.options.iconAnchor || - size && size.divideBy(2, true), - p = this._point.subtract(anchor); - this._pxBounds = new L.Bounds(p, p.add(icon.options.iconSize)); - } else { - L.CircleMarker.prototype._updateBounds.call(this); - } - }, - - _updatePath: function() { - if (this.options.icon) { - this._renderer._updateIcon(this); - } else { - L.CircleMarker.prototype._updatePath.call(this); - } - }, - - _getImage: function () { - if (this.options.icon) { - var url = this.options.icon.options.iconUrl, - img = PointSymbolizer.iconCache[url]; - if (!img) { - var icon = this.options.icon; - img = PointSymbolizer.iconCache[url] = icon.createIcon(); - } - return img; - } else { - return null; - } - - }, - - _containsPoint: function(p) { - var icon = this.options.icon; - if (icon) { - return this._pxBounds.contains(p); - } else { - return L.CircleMarker.prototype._containsPoint.call(this, p); - } - } -}); - -// ??class LineSymbolizer -// ??inherits Polyline -// A symbolizer for lines. Can be applied to line and polygon features. - -var LineSymbolizer = L.Polyline.extend({ - includes: [Symbolizer.prototype, PolyBase], - - initialize: function(feature, pxPerExtent) { - this.properties = feature.properties; - this._makeFeatureParts(feature, pxPerExtent); - }, - - render: function(renderer, style) { - style.fill = false; - Symbolizer.prototype.render.call(this, renderer, style); - this._updatePath(); - }, - - updateStyle: function(renderer, style) { - style.fill = false; - Symbolizer.prototype.updateStyle.call(this, renderer, style); - }, -}); - -// ??class FillSymbolizer -// ??inherits Polyline -// A symbolizer for filled areas. Applies only to polygon features. - -var FillSymbolizer = L.Polygon.extend({ - includes: [Symbolizer.prototype, PolyBase], - - initialize: function(feature, pxPerExtent) { - this.properties = feature.properties; - this._makeFeatureParts(feature, pxPerExtent); - }, - - render: function(renderer, style) { - Symbolizer.prototype.render.call(this, renderer, style); - this._updatePath(); - } -}); - -/* ??class VectorGrid - * ??inherits GridLayer - * - * A `VectorGrid` is a generic, abstract class for displaying tiled vector data. - * it provides facilities for symbolizing and rendering the data in the vector - * tiles, but lacks the functionality to fetch the vector tiles from wherever - * they are. - * - * Extends Leaflet's `L.GridLayer`. - */ - -L.VectorGrid = L.GridLayer.extend({ - - options: { - // ??option rendererFactory = L.svg.tile - // A factory method which will be used to instantiate the per-tile renderers. - rendererFactory: L.svg.tile, - - // ??option vectorTileLayerStyles: Object = {} - // A data structure holding initial symbolizer definitions for the vector features. - vectorTileLayerStyles: {}, - - onEachFeature: null, - - // ??option interactive: Boolean = false - // Whether this `VectorGrid` fires `Interactive Layer` events. - interactive: false, - - // ??option getFeatureId: Function = undefined - // A function that, given a vector feature, returns an unique identifier for it, e.g. - // `function(feat) { return feat.properties.uniqueIdField; }`. - // Must be defined for `setFeatureStyle` to work. - }, - - initialize: function(options) { - L.setOptions(this, options); - L.GridLayer.prototype.initialize.apply(this, arguments); - if (this.options.getFeatureId) { - this._vectorTiles = {}; - this._overriddenStyles = {}; - } - this._userLayers = {}; - this.on('tileunload', function(e) { - this._tileUnload(e); - }, this); - this._dataLayerNames = {}; - }, - - createTile: function(coords, done) { - var storeFeatures = this.options.getFeatureId; - var onEachFeature = this.options.onEachFeature; - - var tileSize = this.getTileSize(); - var renderer = this.options.rendererFactory(coords, tileSize, this.options); - - var vectorTilePromise = this._getVectorTilePromise(coords); - - if (storeFeatures) { - this._vectorTiles[this._tileCoordsToKey(coords)] = renderer; - renderer._features = {}; - } - - vectorTilePromise.then( function renderTile(vectorTile) { - for (var layerName in vectorTile.layers) { - this._dataLayerNames[layerName] = true; - var layer = vectorTile.layers[layerName]; - - var pxPerExtent = this.getTileSize().divideBy(layer.extent); - - var layerStyle = this.options.vectorTileLayerStyles[ layerName ] || - L.Path.prototype.options; - - for (var i = 0; i < layer.features.length; i++) { - var feat = layer.features[i]; - var id; - - var styleOptions = layerStyle; - if (storeFeatures) { - id = this.options.getFeatureId(feat); - var styleOverride = this._overriddenStyles[id]; - if (styleOverride) { - if (styleOverride[layerName]) { - styleOptions = styleOverride[layerName]; - } else { - styleOptions = styleOverride; - } - } - } - - if (styleOptions instanceof Function) { - styleOptions = styleOptions(feat.properties, coords.z, feat.type); - } - - if (!(styleOptions instanceof Array)) { - styleOptions = [styleOptions]; - } - - if (!styleOptions.length) { - if (onEachFeature) { - onEachFeature.call(this, feat, null, layer, coords); - } - continue; - } - - var featureLayer = this._createLayer(feat, pxPerExtent); - - if (onEachFeature) { - onEachFeature.call(this, feat, null, layer, coords); - } - - for (var j = 0; j < styleOptions.length; j++) { - if (styleOptions[j] instanceof Function) { - var styleOption = styleOptions[j](feat.properties, coords.z, feat.type); - } - var style = L.extend({}, L.Path.prototype.options, styleOption); - featureLayer.render(renderer, style); - renderer._addPath(featureLayer); - } - - if (this.options.interactive) { - featureLayer.makeInteractive(); - } - - if (storeFeatures) { - renderer._features[id] = { - layerName: layerName, - feature: featureLayer - }; - } - } - - } - if (this._map != null) { - renderer.addTo(this._map); - } - L.Util.requestAnimFrame(done.bind(coords, null, null)); - }.bind(this)); - - return renderer.getContainer(); - }, - - // ??method setFeatureStyle(id: Number, layerStyle: L.Path Options): this - // Given the unique ID for a vector features (as per the `getFeatureId` option), - // re-symbolizes that feature across all tiles it appears in. - setFeatureStyle: function(id, layerStyle) { - this._overriddenStyles[id] = layerStyle; - - for (var tileKey in this._vectorTiles) { - var tile = this._vectorTiles[tileKey]; - var features = tile._features; - var data = features[id]; - if (data) { - var feat = data.feature; - - var styleOptions = layerStyle; - if (layerStyle[data.layerName]) { - styleOptions = layerStyle[data.layerName]; - } - - this._updateStyles(feat, tile, styleOptions); - } - } - return this; - }, - - // ??method setFeatureStyle(id: Number): this - // Reverts the effects of a previous `setFeatureStyle` call. - resetFeatureStyle: function(id) { - delete this._overriddenStyles[id]; - - for (var tileKey in this._vectorTiles) { - var tile = this._vectorTiles[tileKey]; - var features = tile._features; - var data = features[id]; - if (data) { - var feat = data.feature; - var styleOptions = this.options.vectorTileLayerStyles[ data.layerName ] || - L.Path.prototype.options; - this._updateStyles(feat, tile, styleOptions); - } - } - return this; - }, - - // ??method getDataLayerNames(): Array - // Returns an array of strings, with all the known names of data layers in - // the vector tiles displayed. Useful for introspection. - getDataLayerNames: function() { - return Object.keys(this._dataLayerNames); - }, - - vtGeometryToPoint: function(geometry, vtLayer, tileCoords) { - var pxPerExtent = this.getTileSize().x / vtLayer.extent; - var tileSize = this.getTileSize(); - var offset = tileCoords.scaleBy(tileSize); - var point; - if (typeof geometry[0] === 'object' && 'x' in geometry[0]) { - // Protobuf vector tiles return [{x: , y:}] - point = L.point(offset.x + (geometry[0].x * pxPerExtent), offset.y + (geometry[0].y * pxPerExtent)); - } else { - // Geojson-vt returns [,] - point = L.point(offset.x + (geometry[0] * pxPerExtent), offset.y + (geometry[1] * pxPerExtent)); - } - return point; - }, - - vtGeometryToLatLng: function(geometry, vtLayer, tileCoords) { - return this._map.unproject(this.vtGeometryToPoint(geometry, vtLayer, tileCoords)); - }, - - addUserLayer: function(userLayer, tileCoords) { - var tileKey = this._tileCoordsToKey(tileCoords); - this._userLayers[tileKey] = this._userLayers[tileKey] || []; - this._userLayers[tileKey].push(userLayer); - this._map.addLayer(userLayer); - }, - - _tileUnload: function(e) { - var tileKey = this._tileCoordsToKey(e.coords); - if (this._vectorTiles) { - delete this._vectorTiles[tileKey]; - } - var userLayers = this._userLayers[tileKey]; - if (!userLayers) { - return; - } - for(var i = 0; i < userLayers.length; i++) { -// console.log('remove layer'); - this._map.removeLayer(userLayers[i]); - } - delete this._userLayers[tileKey]; - }, - - _updateStyles: function(feat, renderer, styleOptions) { - styleOptions = (styleOptions instanceof Function) ? - styleOptions(feat.properties, renderer.getCoord().z, feat.type) : - styleOptions; - - if (!(styleOptions instanceof Array)) { - styleOptions = [styleOptions]; - } - - for (var j = 0; j < styleOptions.length; j++) { - - var styleOption = (styleOptions[j] instanceof Function) ? - styleOptions[j](feat.properties, renderer.getCoord().z, feat.type) : - styleOptions[j]; - - var style = L.extend({}, L.Path.prototype.options, styleOption); - feat.updateStyle(renderer, style); - } - }, - - _createLayer: function(feat, pxPerExtent, layerStyle) { - var layer; - switch (feat.type) { - case 1: - layer = new PointSymbolizer(feat, pxPerExtent); - break; - case 2: - layer = new LineSymbolizer(feat, pxPerExtent); - break; - case 3: - layer = new FillSymbolizer(feat, pxPerExtent); - break; - } - - if (this.options.interactive) { - layer.addEventParent(this); - } - - return layer; - }, -}); - -/* - * ??section Extension methods - * - * Classes inheriting from `VectorGrid` **must** define the `_getVectorTilePromise` private method. - * - * ??method getVectorTilePromise(coords: Object): Promise - * Given a `coords` object in the form of `{x: Number, y: Number, z: Number}`, - * this function must return a `Promise` for a vector tile. - * - */ -L.vectorGrid = function (options) { - return new L.VectorGrid(options); -}; - -/* - * ??class VectorGrid.Protobuf - * ??extends VectorGrid - * - * A `VectorGrid` for vector tiles fetched from the internet. - * Tiles are supposed to be protobufs (AKA "protobuffer" or "Protocol Buffers"), - * containing data which complies with the - * [MapBox Vector Tile Specification](https://github.com/mapbox/vector-tile-spec/tree/master/2.1). - * - * This is the format used by: - * - Mapbox Vector Tiles - * - Mapzen Vector Tiles - * - ESRI Vector Tiles - * - [OpenMapTiles hosted Vector Tiles](https://openmaptiles.com/hosting/) - * - * ??example - * - * You must initialize a `VectorGrid.Protobuf` with a URL template, just like in - * `L.TileLayer`s. The difference is that the template must point to vector tiles - * (usually `.pbf` or `.mvt`) instead of raster (`.png` or `.jpg`) tiles, and that - * you should define the styling for all the features. - * - *

    - * - * For OpenMapTiles, with a key from [https://openmaptiles.org/docs/host/use-cdn/](https://openmaptiles.org/docs/host/use-cdn/), - * initialization looks like this: - * - * ``` - * L.vectorGrid.protobuf("https://free-{s}.tilehosting.com/data/v3/{z}/{x}/{y}.pbf.pict?key={key}", { - * vectorTileLayerStyles: { ... }, - * subdomains: "0123", - * key: 'abcdefghi01234567890', - * maxNativeZoom: 14 - * }).addTo(map); - * ``` - * - * And for Mapbox vector tiles, it looks like this: - * - * ``` - * L.vectorGrid.protobuf("https://{s}.tiles.mapbox.com/v4/mapbox.mapbox-streets-v6/{z}/{x}/{y}.vector.pbf?access_token={token}", { - * vectorTileLayerStyles: { ... }, - * subdomains: "abcd", - * token: "pk.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRTS.TUVWXTZ0123456789abcde" - * }).addTo(map); - * ``` - */ -L.VectorGrid.Protobuf = L.VectorGrid.extend({ - - options: { - // ??section - // As with `L.TileLayer`, the URL template might contain a reference to - // any option (see the example above and note the `{key}` or `token` in the URL - // template, and the corresponding option). - // - // ??option subdomains: String = 'abc' - // Akin to the `subdomains` option for `L.TileLayer`. - subdomains: 'abc', // Like L.TileLayer - // - // ??option fetchOptions: Object = {} - // options passed to `fetch`, e.g. {credentials: 'same-origin'} to send cookie for the current domain - fetchOptions: {} - }, - - initialize: function(url, options) { - // Inherits options from geojson-vt! -// this._slicer = geojsonvt(geojson, options); - this._url = url; - L.VectorGrid.prototype.initialize.call(this, options); - }, - - // ??method setUrl(url: String, noRedraw?: Boolean): this - // Updates the layer's URL template and redraws it (unless `noRedraw` is set to `true`). - setUrl: function(url, noRedraw) { - this._url = url; - - if (!noRedraw) { - this.redraw(); - } - - return this; - }, - - _getSubdomain: L.TileLayer.prototype._getSubdomain, - - _getVectorTilePromise: function(coords) { - var data = { - s: this._getSubdomain(coords), - x: coords.x, - y: coords.y, - z: coords.z -// z: this._getZoomForUrl() /// TODO: Maybe replicate TileLayer's maxNativeZoom - }; - if (this._map && !this._map.options.crs.infinite) { - var invertedY = this._globalTileRange.max.y - coords.y; - if (this.options.tms) { // Should this option be available in Leaflet.VectorGrid? - data['y'] = invertedY; - } - data['-y'] = invertedY; - } - - var tileUrl = L.Util.template(this._url, L.extend(data, this.options)); - - return fetch(tileUrl, this.options.fetchOptions).then(function(response){ - - if (!response.ok) { - return {layers:[]}; - } - - return response.blob().then( function (blob) { -// console.log(blob); - - var reader = new FileReader(); - return new Promise(function(resolve){ - reader.addEventListener("loadend", function() { - // reader.result contains the contents of blob as a typed array - - // blob.type === 'application/x-protobuf' - var pbf = new index( reader.result ); -// console.log(pbf); - return resolve(new VectorTile( pbf )); - - }); - reader.readAsArrayBuffer(blob); - }); - }); - }).then(function(json){ - -// console.log('Vector tile:', json.layers); -// console.log('Vector tile water:', json.layers.water); // Instance of VectorTileLayer - - // Normalize feature getters into actual instanced features - for (var layerName in json.layers) { - var feats = []; - - for (var i=0; i maxSqDist) {\n index = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n points[index][2] = maxSqDist; // save the point importance in squared pixels as a z coordinate\n stack.push(first);\n stack.push(index);\n first = index;\n\n } else {\n last = stack.pop();\n first = stack.pop();\n }\n }\n}\n\n// square distance from a point to a segment\nfunction getSqSegDist(p, a, b) {\n\n var x = a[0], y = a[1],\n bx = b[0], by = b[1],\n px = p[0], py = p[1],\n dx = bx - x,\n dy = by - y;\n\n if (dx !== 0 || dy !== 0) {\n\n var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = bx;\n y = by;\n\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = px - x;\n dy = py - y;\n\n return dx * dx + dy * dy;\n}\n\nvar convert_1 = convert$1;\n\nvar simplify = simplify_1;\n\n// converts GeoJSON feature into an intermediate projected JSON vector format with simplification data\n\nfunction convert$1(data, tolerance) {\n var features = [];\n\n if (data.type === 'FeatureCollection') {\n for (var i = 0; i < data.features.length; i++) {\n convertFeature(features, data.features[i], tolerance);\n }\n } else if (data.type === 'Feature') {\n convertFeature(features, data, tolerance);\n\n } else {\n // single geometry or a geometry collection\n convertFeature(features, {geometry: data}, tolerance);\n }\n return features;\n}\n\nfunction convertFeature(features, feature, tolerance) {\n if (feature.geometry === null) {\n // ignore features with null geometry\n return;\n }\n\n var geom = feature.geometry,\n type = geom.type,\n coords = geom.coordinates,\n tags = feature.properties,\n i, j, rings, projectedRing;\n\n if (type === 'Point') {\n features.push(create(tags, 1, [projectPoint(coords)]));\n\n } else if (type === 'MultiPoint') {\n features.push(create(tags, 1, project(coords)));\n\n } else if (type === 'LineString') {\n features.push(create(tags, 2, [project(coords, tolerance)]));\n\n } else if (type === 'MultiLineString' || type === 'Polygon') {\n rings = [];\n for (i = 0; i < coords.length; i++) {\n projectedRing = project(coords[i], tolerance);\n if (type === 'Polygon') { projectedRing.outer = (i === 0); }\n rings.push(projectedRing);\n }\n features.push(create(tags, type === 'Polygon' ? 3 : 2, rings));\n\n } else if (type === 'MultiPolygon') {\n rings = [];\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n projectedRing = project(coords[i][j], tolerance);\n projectedRing.outer = (j === 0);\n rings.push(projectedRing);\n }\n }\n features.push(create(tags, 3, rings));\n\n } else if (type === 'GeometryCollection') {\n for (i = 0; i < geom.geometries.length; i++) {\n convertFeature(features, {\n geometry: geom.geometries[i],\n properties: tags\n }, tolerance);\n }\n\n } else {\n throw new Error('Input data is not a valid GeoJSON object.');\n }\n}\n\nfunction create(tags, type, geometry) {\n var feature = {\n geometry: geometry,\n type: type,\n tags: tags || null,\n min: [2, 1], // initial bbox values;\n max: [-1, 0] // note that coords are usually in [0..1] range\n };\n calcBBox(feature);\n return feature;\n}\n\nfunction project(lonlats, tolerance) {\n var projected = [];\n for (var i = 0; i < lonlats.length; i++) {\n projected.push(projectPoint(lonlats[i]));\n }\n if (tolerance) {\n simplify(projected, tolerance);\n calcSize(projected);\n }\n return projected;\n}\n\nfunction projectPoint(p) {\n var sin = Math.sin(p[1] * Math.PI / 180),\n x = (p[0] / 360 + 0.5),\n y = (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI);\n\n y = y < 0 ? 0 :\n y > 1 ? 1 : y;\n\n return [x, y, 0];\n}\n\n// calculate area and length of the poly\nfunction calcSize(points) {\n var area = 0,\n dist = 0;\n\n for (var i = 0, a, b; i < points.length - 1; i++) {\n a = b || points[i];\n b = points[i + 1];\n\n area += a[0] * b[1] - b[0] * a[1];\n\n // use Manhattan distance instead of Euclidian one to avoid expensive square root computation\n dist += Math.abs(b[0] - a[0]) + Math.abs(b[1] - a[1]);\n }\n points.area = Math.abs(area / 2);\n points.dist = dist;\n}\n\n// calculate the feature bounding box for faster clipping later\nfunction calcBBox(feature) {\n var geometry = feature.geometry,\n min = feature.min,\n max = feature.max;\n\n if (feature.type === 1) { calcRingBBox(min, max, geometry); }\n else { for (var i = 0; i < geometry.length; i++) { calcRingBBox(min, max, geometry[i]); } }\n\n return feature;\n}\n\nfunction calcRingBBox(min, max, points) {\n for (var i = 0, p; i < points.length; i++) {\n p = points[i];\n min[0] = Math.min(p[0], min[0]);\n max[0] = Math.max(p[0], max[0]);\n min[1] = Math.min(p[1], min[1]);\n max[1] = Math.max(p[1], max[1]);\n }\n}\n\nvar tile = transformTile;\nvar point = transformPoint;\n\n// Transforms the coordinates of each feature in the given tile from\n// mercator-projected space into (extent x extent) tile space.\nfunction transformTile(tile, extent) {\n if (tile.transformed) { return tile; }\n\n var z2 = tile.z2,\n tx = tile.x,\n ty = tile.y,\n i, j, k;\n\n for (i = 0; i < tile.features.length; i++) {\n var feature = tile.features[i],\n geom = feature.geometry,\n type = feature.type;\n\n if (type === 1) {\n for (j = 0; j < geom.length; j++) { geom[j] = transformPoint(geom[j], extent, z2, tx, ty); }\n\n } else {\n for (j = 0; j < geom.length; j++) {\n var ring = geom[j];\n for (k = 0; k < ring.length; k++) { ring[k] = transformPoint(ring[k], extent, z2, tx, ty); }\n }\n }\n }\n\n tile.transformed = true;\n\n return tile;\n}\n\nfunction transformPoint(p, extent, z2, tx, ty) {\n var x = Math.round(extent * (p[0] * z2 - tx)),\n y = Math.round(extent * (p[1] * z2 - ty));\n return [x, y];\n}\n\nvar transform$1 = {\n tile: tile,\n point: point\n};\n\nvar clip_1 = clip$1;\n\n/* clip features between two axis-parallel lines:\n * | |\n * ___|___ | /\n * / | \____|____/\n * | |\n */\n\nfunction clip$1(features, scale, k1, k2, axis, intersect, minAll, maxAll) {\n\n k1 /= scale;\n k2 /= scale;\n\n if (minAll >= k1 && maxAll <= k2) { return features; } // trivial accept\n else if (minAll > k2 || maxAll < k1) { return null; } // trivial reject\n\n var clipped = [];\n\n for (var i = 0; i < features.length; i++) {\n\n var feature = features[i],\n geometry = feature.geometry,\n type = feature.type,\n min, max;\n\n min = feature.min[axis];\n max = feature.max[axis];\n\n if (min >= k1 && max <= k2) { // trivial accept\n clipped.push(feature);\n continue;\n } else if (min > k2 || max < k1) { continue; } // trivial reject\n\n var slices = type === 1 ?\n clipPoints(geometry, k1, k2, axis) :\n clipGeometry(geometry, k1, k2, axis, intersect, type === 3);\n\n if (slices.length) {\n // if a feature got clipped, it will likely get clipped on the next zoom level as well,\n // so there's no need to recalculate bboxes\n clipped.push({\n geometry: slices,\n type: type,\n tags: features[i].tags || null,\n min: feature.min,\n max: feature.max\n });\n }\n }\n\n return clipped.length ? clipped : null;\n}\n\nfunction clipPoints(geometry, k1, k2, axis) {\n var slice = [];\n\n for (var i = 0; i < geometry.length; i++) {\n var a = geometry[i],\n ak = a[axis];\n\n if (ak >= k1 && ak <= k2) { slice.push(a); }\n }\n return slice;\n}\n\nfunction clipGeometry(geometry, k1, k2, axis, intersect, closed) {\n\n var slices = [];\n\n for (var i = 0; i < geometry.length; i++) {\n\n var ak = 0,\n bk = 0,\n b = null,\n points = geometry[i],\n area = points.area,\n dist = points.dist,\n outer = points.outer,\n len = points.length,\n a, j, last;\n\n var slice = [];\n\n for (j = 0; j < len - 1; j++) {\n a = b || points[j];\n b = points[j + 1];\n ak = bk || a[axis];\n bk = b[axis];\n\n if (ak < k1) {\n\n if ((bk > k2)) { // ---|-----|-->\n slice.push(intersect(a, b, k1), intersect(a, b, k2));\n if (!closed) { slice = newSlice(slices, slice, area, dist, outer); }\n\n } else if (bk >= k1) { slice.push(intersect(a, b, k1)); } // ---|--> |\n\n } else if (ak > k2) {\n\n if ((bk < k1)) { // <--|-----|---\n slice.push(intersect(a, b, k2), intersect(a, b, k1));\n if (!closed) { slice = newSlice(slices, slice, area, dist, outer); }\n\n } else if (bk <= k2) { slice.push(intersect(a, b, k2)); } // | <--|---\n\n } else {\n\n slice.push(a);\n\n if (bk < k1) { // <--|--- |\n slice.push(intersect(a, b, k1));\n if (!closed) { slice = newSlice(slices, slice, area, dist, outer); }\n\n } else if (bk > k2) { // | ---|-->\n slice.push(intersect(a, b, k2));\n if (!closed) { slice = newSlice(slices, slice, area, dist, outer); }\n }\n // | --> |\n }\n }\n\n // add the last point\n a = points[len - 1];\n ak = a[axis];\n if (ak >= k1 && ak <= k2) { slice.push(a); }\n\n // close the polygon if its endpoints are not the same after clipping\n\n last = slice[slice.length - 1];\n if (closed && last && (slice[0][0] !== last[0] || slice[0][1] !== last[1])) { slice.push(slice[0]); }\n\n // add the final slice\n newSlice(slices, slice, area, dist, outer);\n }\n\n return slices;\n}\n\nfunction newSlice(slices, slice, area, dist, outer) {\n if (slice.length) {\n // we don't recalculate the area/length of the unclipped geometry because the case where it goes\n // below the visibility threshold as a result of clipping is rare, so we avoid doing unnecessary work\n slice.area = area;\n slice.dist = dist;\n if (outer !== undefined) { slice.outer = outer; }\n\n slices.push(slice);\n }\n return [];\n}\n\nvar clip$2 = clip_1;\n\nvar wrap_1 = wrap$1;\n\nfunction wrap$1(features, buffer, intersectX) {\n var merged = features,\n left = clip$2(features, 1, -1 - buffer, buffer, 0, intersectX, -1, 2), // left world copy\n right = clip$2(features, 1, 1 - buffer, 2 + buffer, 0, intersectX, -1, 2); // right world copy\n\n if (left || right) {\n merged = clip$2(features, 1, -buffer, 1 + buffer, 0, intersectX, -1, 2); // center world copy\n\n if (left) { merged = shiftFeatureCoords(left, 1).concat(merged); } // merge left into center\n if (right) { merged = merged.concat(shiftFeatureCoords(right, -1)); } // merge right into center\n }\n\n return merged;\n}\n\nfunction shiftFeatureCoords(features, offset) {\n var newFeatures = [];\n\n for (var i = 0; i < features.length; i++) {\n var feature = features[i],\n type = feature.type;\n\n var newGeometry;\n\n if (type === 1) {\n newGeometry = shiftCoords(feature.geometry, offset);\n } else {\n newGeometry = [];\n for (var j = 0; j < feature.geometry.length; j++) {\n newGeometry.push(shiftCoords(feature.geometry[j], offset));\n }\n }\n\n newFeatures.push({\n geometry: newGeometry,\n type: type,\n tags: feature.tags,\n min: [feature.min[0] + offset, feature.min[1]],\n max: [feature.max[0] + offset, feature.max[1]]\n });\n }\n\n return newFeatures;\n}\n\nfunction shiftCoords(points, offset) {\n var newPoints = [];\n newPoints.area = points.area;\n newPoints.dist = points.dist;\n\n for (var i = 0; i < points.length; i++) {\n newPoints.push([points[i][0] + offset, points[i][1], points[i][2]]);\n }\n return newPoints;\n}\n\nvar tile$1 = createTile$1;\n\nfunction createTile$1(features, z2, tx, ty, tolerance, noSimplify) {\n var tile = {\n features: [],\n numPoints: 0,\n numSimplified: 0,\n numFeatures: 0,\n source: null,\n x: tx,\n y: ty,\n z2: z2,\n transformed: false,\n min: [2, 1],\n max: [-1, 0]\n };\n for (var i = 0; i < features.length; i++) {\n tile.numFeatures++;\n addFeature(tile, features[i], tolerance, noSimplify);\n\n var min = features[i].min,\n max = features[i].max;\n\n if (min[0] < tile.min[0]) { tile.min[0] = min[0]; }\n if (min[1] < tile.min[1]) { tile.min[1] = min[1]; }\n if (max[0] > tile.max[0]) { tile.max[0] = max[0]; }\n if (max[1] > tile.max[1]) { tile.max[1] = max[1]; }\n }\n return tile;\n}\n\nfunction addFeature(tile, feature, tolerance, noSimplify) {\n\n var geom = feature.geometry,\n type = feature.type,\n simplified = [],\n sqTolerance = tolerance * tolerance,\n i, j, ring, p;\n\n if (type === 1) {\n for (i = 0; i < geom.length; i++) {\n simplified.push(geom[i]);\n tile.numPoints++;\n tile.numSimplified++;\n }\n\n } else {\n\n // simplify and transform projected coordinates for tile geometry\n for (i = 0; i < geom.length; i++) {\n ring = geom[i];\n\n // filter out tiny polylines & polygons\n if (!noSimplify && ((type === 2 && ring.dist < tolerance) ||\n (type === 3 && ring.area < sqTolerance))) {\n tile.numPoints += ring.length;\n continue;\n }\n\n var simplifiedRing = [];\n\n for (j = 0; j < ring.length; j++) {\n p = ring[j];\n // keep points with importance > tolerance\n if (noSimplify || p[2] > sqTolerance) {\n simplifiedRing.push(p);\n tile.numSimplified++;\n }\n tile.numPoints++;\n }\n\n if (type === 3) { rewind(simplifiedRing, ring.outer); }\n\n simplified.push(simplifiedRing);\n }\n }\n\n if (simplified.length) {\n tile.features.push({\n geometry: simplified,\n type: type,\n tags: feature.tags || null\n });\n }\n}\n\nfunction rewind(ring, clockwise) {\n var area = signedArea(ring);\n if (area < 0 === clockwise) { ring.reverse(); }\n}\n\nfunction signedArea(ring) {\n var sum = 0;\n for (var i = 0, len = ring.length, j = len - 1, p1, p2; i < len; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);\n }\n return sum;\n}\n\nvar index = geojsonvt;\n\nvar convert = convert_1;\nvar transform = transform$1;\nvar clip = clip_1;\nvar wrap = wrap_1;\nvar createTile = tile$1; // final simplified tile generation\n\n\nfunction geojsonvt(data, options) {\n return new GeoJSONVT(data, options);\n}\n\nfunction GeoJSONVT(data, options) {\n options = this.options = extend(Object.create(this.options), options);\n\n var debug = options.debug;\n\n if (debug) { console.time('preprocess data'); }\n\n var z2 = 1 << options.maxZoom, // 2^z\n features = convert(data, options.tolerance / (z2 * options.extent));\n\n this.tiles = {};\n this.tileCoords = [];\n\n if (debug) {\n console.timeEnd('preprocess data');\n console.log('index: maxZoom: %d, maxPoints: %d', options.indexMaxZoom, options.indexMaxPoints);\n console.time('generate tiles');\n this.stats = {};\n this.total = 0;\n }\n\n features = wrap(features, options.buffer / options.extent, intersectX);\n\n // start slicing from the top tile down\n if (features.length) { this.splitTile(features, 0, 0, 0); }\n\n if (debug) {\n if (features.length) { console.log('features: %d, points: %d', this.tiles[0].numFeatures, this.tiles[0].numPoints); }\n console.timeEnd('generate tiles');\n console.log('tiles generated:', this.total, JSON.stringify(this.stats));\n }\n}\n\nGeoJSONVT.prototype.options = {\n maxZoom: 14, // max zoom to preserve detail on\n indexMaxZoom: 5, // max zoom in the tile index\n indexMaxPoints: 100000, // max number of points per tile in the tile index\n solidChildren: false, // whether to tile solid square tiles further\n tolerance: 3, // simplification tolerance (higher means simpler)\n extent: 4096, // tile extent\n buffer: 64, // tile buffer on each side\n debug: 0 // logging level (0, 1 or 2)\n};\n\nGeoJSONVT.prototype.splitTile = function (features, z, x, y, cz, cx, cy) {\n var this$1 = this;\n\n\n var stack = [features, z, x, y],\n options = this.options,\n debug = options.debug,\n solid = null;\n\n // avoid recursion by using a processing queue\n while (stack.length) {\n y = stack.pop();\n x = stack.pop();\n z = stack.pop();\n features = stack.pop();\n\n var z2 = 1 << z,\n id = toID(z, x, y),\n tile = this$1.tiles[id],\n tileTolerance = z === options.maxZoom ? 0 : options.tolerance / (z2 * options.extent);\n\n if (!tile) {\n if (debug > 1) { console.time('creation'); }\n\n tile = this$1.tiles[id] = createTile(features, z2, x, y, tileTolerance, z === options.maxZoom);\n this$1.tileCoords.push({z: z, x: x, y: y});\n\n if (debug) {\n if (debug > 1) {\n console.log('tile z%d-%d-%d (features: %d, points: %d, simplified: %d)',\n z, x, y, tile.numFeatures, tile.numPoints, tile.numSimplified);\n console.timeEnd('creation');\n }\n var key = 'z' + z;\n this$1.stats[key] = (this$1.stats[key] || 0) + 1;\n this$1.total++;\n }\n }\n\n // save reference to original geometry in tile so that we can drill down later if we stop now\n tile.source = features;\n\n // if it's the first-pass tiling\n if (!cz) {\n // stop tiling if we reached max zoom, or if the tile is too simple\n if (z === options.indexMaxZoom || tile.numPoints <= options.indexMaxPoints) { continue; }\n\n // if a drilldown to a specific tile\n } else {\n // stop tiling if we reached base zoom or our target tile zoom\n if (z === options.maxZoom || z === cz) { continue; }\n\n // stop tiling if it's not an ancestor of the target tile\n var m = 1 << (cz - z);\n if (x !== Math.floor(cx / m) || y !== Math.floor(cy / m)) { continue; }\n }\n\n // stop tiling if the tile is solid clipped square\n if (!options.solidChildren && isClippedSquare(tile, options.extent, options.buffer)) {\n if (cz) { solid = z; } // and remember the zoom if we're drilling down\n continue;\n }\n\n // if we slice further down, no need to keep source geometry\n tile.source = null;\n\n if (debug > 1) { console.time('clipping'); }\n\n // values we'll use for clipping\n var k1 = 0.5 * options.buffer / options.extent,\n k2 = 0.5 - k1,\n k3 = 0.5 + k1,\n k4 = 1 + k1,\n tl, bl, tr, br, left, right;\n\n tl = bl = tr = br = null;\n\n left = clip(features, z2, x - k1, x + k3, 0, intersectX, tile.min[0], tile.max[0]);\n right = clip(features, z2, x + k2, x + k4, 0, intersectX, tile.min[0], tile.max[0]);\n\n if (left) {\n tl = clip(left, z2, y - k1, y + k3, 1, intersectY, tile.min[1], tile.max[1]);\n bl = clip(left, z2, y + k2, y + k4, 1, intersectY, tile.min[1], tile.max[1]);\n }\n\n if (right) {\n tr = clip(right, z2, y - k1, y + k3, 1, intersectY, tile.min[1], tile.max[1]);\n br = clip(right, z2, y + k2, y + k4, 1, intersectY, tile.min[1], tile.max[1]);\n }\n\n if (debug > 1) { console.timeEnd('clipping'); }\n\n if (tl) { stack.push(tl, z + 1, x * 2, y * 2); }\n if (bl) { stack.push(bl, z + 1, x * 2, y * 2 + 1); }\n if (tr) { stack.push(tr, z + 1, x * 2 + 1, y * 2); }\n if (br) { stack.push(br, z + 1, x * 2 + 1, y * 2 + 1); }\n }\n\n return solid;\n};\n\nGeoJSONVT.prototype.getTile = function (z, x, y) {\n var this$1 = this;\n\n var options = this.options,\n extent = options.extent,\n debug = options.debug;\n\n var z2 = 1 << z;\n x = ((x % z2) + z2) % z2; // wrap tile x coordinate\n\n var id = toID(z, x, y);\n if (this.tiles[id]) { return transform.tile(this.tiles[id], extent); }\n\n if (debug > 1) { console.log('drilling down to z%d-%d-%d', z, x, y); }\n\n var z0 = z,\n x0 = x,\n y0 = y,\n parent;\n\n while (!parent && z0 > 0) {\n z0--;\n x0 = Math.floor(x0 / 2);\n y0 = Math.floor(y0 / 2);\n parent = this$1.tiles[toID(z0, x0, y0)];\n }\n\n if (!parent || !parent.source) { return null; }\n\n // if we found a parent tile containing the original geometry, we can drill down from it\n if (debug > 1) { console.log('found parent tile z%d-%d-%d', z0, x0, y0); }\n\n // it parent tile is a solid clipped square, return it instead since it's identical\n if (isClippedSquare(parent, extent, options.buffer)) { return transform.tile(parent, extent); }\n\n if (debug > 1) { console.time('drilling down'); }\n var solid = this.splitTile(parent.source, z0, x0, y0, z, x, y);\n if (debug > 1) { console.timeEnd('drilling down'); }\n\n // one of the parent tiles was a solid clipped square\n if (solid !== null) {\n var m = 1 << (z - solid);\n id = toID(solid, Math.floor(x / m), Math.floor(y / m));\n }\n\n return this.tiles[id] ? transform.tile(this.tiles[id], extent) : null;\n};\n\nfunction toID(z, x, y) {\n return (((1 << z) * y + x) * 32) + z;\n}\n\nfunction intersectX(a, b, x) {\n return [x, (x - a[0]) * (b[1] - a[1]) / (b[0] - a[0]) + a[1], 1];\n}\nfunction intersectY(a, b, y) {\n return [(y - a[1]) * (b[0] - a[0]) / (b[1] - a[1]) + a[0], y, 1];\n}\n\nfunction extend(dest, src) {\n for (var i in src) { dest[i] = src[i]; }\n return dest;\n}\n\n// checks whether a tile is a whole-area fill after clipping; if it is, there's no sense slicing it further\nfunction isClippedSquare(tile, extent, buffer) {\n\n var features = tile.source;\n if (features.length !== 1) { return false; }\n\n var feature = features[0];\n if (feature.type !== 3 || feature.geometry.length > 1) { return false; }\n\n var len = feature.geometry[0].length;\n if (len !== 5) { return false; }\n\n for (var i = 0; i < len; i++) {\n var p = transform.point(feature.geometry[0][i], extent, tile.z2, tile.x, tile.y);\n if ((p[0] !== -buffer && p[0] !== extent + buffer) ||\n (p[1] !== -buffer && p[1] !== extent + buffer)) { return false; }\n }\n\n return true;\n}\n\nvar identity = function(x) {\n return x;\n};\n\nvar transform$3 = function(topology) {\n if ((transform = topology.transform) == null) { return identity; }\n var transform,\n x0,\n y0,\n kx = transform.scale[0],\n ky = transform.scale[1],\n dx = transform.translate[0],\n dy = transform.translate[1];\n return function(point, i) {\n if (!i) { x0 = y0 = 0; }\n point[0] = (x0 += point[0]) * kx + dx;\n point[1] = (y0 += point[1]) * ky + dy;\n return point;\n };\n};\n\nvar bbox = function(topology) {\n var bbox = topology.bbox;\n\n function bboxPoint(p0) {\n p1[0] = p0[0], p1[1] = p0[1], t(p1);\n if (p1[0] < x0) { x0 = p1[0]; }\n if (p1[0] > x1) { x1 = p1[0]; }\n if (p1[1] < y0) { y0 = p1[1]; }\n if (p1[1] > y1) { y1 = p1[1]; }\n }\n\n function bboxGeometry(o) {\n switch (o.type) {\n case \"GeometryCollection\": o.geometries.forEach(bboxGeometry); break;\n case \"Point\": bboxPoint(o.coordinates); break;\n case \"MultiPoint\": o.coordinates.forEach(bboxPoint); break;\n }\n }\n\n if (!bbox) {\n var t = transform$3(topology), p0, p1 = new Array(2), name,\n x0 = Infinity, y0 = x0, x1 = -x0, y1 = -x0;\n\n topology.arcs.forEach(function(arc) {\n var i = -1, n = arc.length;\n while (++i < n) {\n p0 = arc[i], p1[0] = p0[0], p1[1] = p0[1], t(p1, i);\n if (p1[0] < x0) { x0 = p1[0]; }\n if (p1[0] > x1) { x1 = p1[0]; }\n if (p1[1] < y0) { y0 = p1[1]; }\n if (p1[1] > y1) { y1 = p1[1]; }\n }\n });\n\n for (name in topology.objects) {\n bboxGeometry(topology.objects[name]);\n }\n\n bbox = topology.bbox = [x0, y0, x1, y1];\n }\n\n return bbox;\n};\n\nvar reverse = function(array, n) {\n var t, j = array.length, i = j - n;\n while (i < --j) { t = array[i], array[i++] = array[j], array[j] = t; }\n};\n\nvar feature = function(topology, o) {\n return o.type === \"GeometryCollection\"\n ? {type: \"FeatureCollection\", features: o.geometries.map(function(o) { return feature$1(topology, o); })}\n : feature$1(topology, o);\n};\n\nfunction feature$1(topology, o) {\n var id = o.id,\n bbox = o.bbox,\n properties = o.properties == null ? {} : o.properties,\n geometry = object(topology, o);\n return id == null && bbox == null ? {type: \"Feature\", properties: properties, geometry: geometry}\n : bbox == null ? {type: \"Feature\", id: id, properties: properties, geometry: geometry}\n : {type: \"Feature\", id: id, bbox: bbox, properties: properties, geometry: geometry};\n}\n\nfunction object(topology, o) {\n var transformPoint = transform$3(topology),\n arcs = topology.arcs;\n\n function arc(i, points) {\n if (points.length) { points.pop(); }\n for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length; k < n; ++k) {\n points.push(transformPoint(a[k].slice(), k));\n }\n if (i < 0) { reverse(points, n); }\n }\n\n function point(p) {\n return transformPoint(p.slice());\n }\n\n function line(arcs) {\n var points = [];\n for (var i = 0, n = arcs.length; i < n; ++i) { arc(arcs[i], points); }\n if (points.length < 2) { points.push(points[0].slice()); }\n return points;\n }\n\n function ring(arcs) {\n var points = line(arcs);\n while (points.length < 4) { points.push(points[0].slice()); }\n return points;\n }\n\n function polygon(arcs) {\n return arcs.map(ring);\n }\n\n function geometry(o) {\n var type = o.type, coordinates;\n switch (type) {\n case \"GeometryCollection\": return {type: type, geometries: o.geometries.map(geometry)};\n case \"Point\": coordinates = point(o.coordinates); break;\n case \"MultiPoint\": coordinates = o.coordinates.map(point); break;\n case \"LineString\": coordinates = line(o.arcs); break;\n case \"MultiLineString\": coordinates = o.arcs.map(line); break;\n case \"Polygon\": coordinates = polygon(o.arcs); break;\n case \"MultiPolygon\": coordinates = o.arcs.map(polygon); break;\n default: return null;\n }\n return {type: type, coordinates: coordinates};\n }\n\n return geometry(o);\n}\n\nvar stitch = function(topology, arcs) {\n var stitchedArcs = {},\n fragmentByStart = {},\n fragmentByEnd = {},\n fragments = [],\n emptyIndex = -1;\n\n // Stitch empty arcs first, since they may be subsumed by other arcs.\n arcs.forEach(function(i, j) {\n var arc = topology.arcs[i < 0 ? ~i : i], t;\n if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {\n t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;\n }\n });\n\n arcs.forEach(function(i) {\n var e = ends(i),\n start = e[0],\n end = e[1],\n f, g;\n\n if (f = fragmentByEnd[start]) {\n delete fragmentByEnd[f.end];\n f.push(i);\n f.end = end;\n if (g = fragmentByStart[end]) {\n delete fragmentByStart[g.start];\n var fg = g === f ? f : f.concat(g);\n fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else if (f = fragmentByStart[end]) {\n delete fragmentByStart[f.start];\n f.unshift(i);\n f.start = start;\n if (g = fragmentByEnd[start]) {\n delete fragmentByEnd[g.end];\n var gf = g === f ? f : g.concat(f);\n fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else {\n f = [i];\n fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;\n }\n });\n\n function ends(i) {\n var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1;\n if (topology.transform) { p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; }); }\n else { p1 = arc[arc.length - 1]; }\n return i < 0 ? [p1, p0] : [p0, p1];\n }\n\n function flush(fragmentByEnd, fragmentByStart) {\n for (var k in fragmentByEnd) {\n var f = fragmentByEnd[k];\n delete fragmentByStart[f.start];\n delete f.start;\n delete f.end;\n f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; });\n fragments.push(f);\n }\n }\n\n flush(fragmentByEnd, fragmentByStart);\n flush(fragmentByStart, fragmentByEnd);\n arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) { fragments.push([i]); } });\n\n return fragments;\n};\n\nfunction extractArcs(topology, object$$1, filter) {\n var arcs = [],\n geomsByArc = [],\n geom;\n\n function extract0(i) {\n var j = i < 0 ? ~i : i;\n (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom});\n }\n\n function extract1(arcs) {\n arcs.forEach(extract0);\n }\n\n function extract2(arcs) {\n arcs.forEach(extract1);\n }\n\n function extract3(arcs) {\n arcs.forEach(extract2);\n }\n\n function geometry(o) {\n switch (geom = o, o.type) {\n case \"GeometryCollection\": o.geometries.forEach(geometry); break;\n case \"LineString\": extract1(o.arcs); break;\n case \"MultiLineString\": case \"Polygon\": extract2(o.arcs); break;\n case \"MultiPolygon\": extract3(o.arcs); break;\n }\n }\n\n geometry(object$$1);\n\n geomsByArc.forEach(filter == null\n ? function(geoms) { arcs.push(geoms[0].i); }\n : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) { arcs.push(geoms[0].i); } });\n\n return arcs;\n}\n\nfunction planarRingArea(ring) {\n var i = -1, n = ring.length, a, b = ring[n - 1], area = 0;\n while (++i < n) { a = b, b = ring[i], area += a[0] * b[1] - a[1] * b[0]; }\n return Math.abs(area); // Note: doubled area!\n}\n\nvar bisect = function(a, x) {\n var lo = 0, hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (a[mid] < x) { lo = mid + 1; }\n else { hi = mid; }\n }\n return lo;\n};\n\nvar slicers = {};\nvar options;\n\nonmessage = function (e) {\n if (e.data[0] === 'slice') {\n // Given a blob of GeoJSON and some topojson/geojson-vt options, do the slicing.\n var geojson = e.data[1];\n options = e.data[2];\n\n if (geojson.type && geojson.type === 'Topology') {\n for (var layerName in geojson.objects) {\n slicers[layerName] = index(\n feature(geojson, geojson.objects[layerName])\n , options);\n }\n } else {\n slicers[options.vectorTileLayerName] = index(geojson, options);\n }\n\n } else if (e.data[0] === 'get') {\n // Gets the vector tile for the given coordinates, sends it back as a message\n var coords = e.data[1];\n\n var tileLayers = {};\n for (var layerName in slicers) {\n var slicedTileLayer = slicers[layerName].getTile(coords.z, coords.x, coords.y);\n\n if (slicedTileLayer) {\n var vectorTileLayer = {\n features: [],\n extent: options.extent,\n name: options.vectorTileLayerName,\n length: slicedTileLayer.features.length\n };\n\n for (var i in slicedTileLayer.features) {\n var feat = {\n geometry: slicedTileLayer.features[i].geometry,\n properties: slicedTileLayer.features[i].tags,\n type: slicedTileLayer.features[i].type // 1 = point, 2 = line, 3 = polygon\n };\n vectorTileLayer.features.push(feat);\n }\n tileLayers[layerName] = vectorTileLayer;\n }\n }\n postMessage({ layers: tileLayers, coords: coords });\n }\n};\n//# sourceMap" + "pingURL=slicerWebWorker.js.worker.map\n", "text/plain; charset=us-ascii", false); - -// The geojson/topojson is sliced into tiles via a web worker. -// This import statement depends on rollup-file-as-blob, so that the -// variable 'workerCode' is a blob URL. - -/* - * ??class VectorGrid.Slicer - * ??extends VectorGrid - * - * A `VectorGrid` for slicing up big GeoJSON or TopoJSON documents in vector - * tiles, leveraging [`geojson-vt`](https://github.com/mapbox/geojson-vt). - * - * ??example - * - * ``` - * var geoJsonDocument = { - * type: 'FeatureCollection', - * features: [ ... ] - * }; - * - * L.vectorGrid.slicer(geoJsonDocument, { - * vectorTileLayerStyles: { - * sliced: { ... } - * } - * }).addTo(map); - * - * ``` - * - * `VectorGrid.Slicer` can also handle [TopoJSON](https://github.com/mbostock/topojson) transparently: - * ```js - * var layer = L.vectorGrid.slicer(topojson, options); - * ``` - * - * The TopoJSON format [implicitly groups features into "objects"](https://github.com/mbostock/topojson-specification/blob/master/README.md#215-objects). - * These will be transformed into vector tile layer names when styling (the - * `vectorTileLayerName` option is ignored when using TopoJSON). - * - */ - -L.VectorGrid.Slicer = L.VectorGrid.extend({ - - options: { - // ??section - // Additionally to these options, `VectorGrid.Slicer` can take in any - // of the [`geojson-vt` options](https://github.com/mapbox/geojson-vt#options). - - // ??option vectorTileLayerName: String = 'sliced' - // Vector tiles contain a set of *data layers*, and those data layers - // contain features. Thus, the slicer creates one data layer, with - // the name given in this option. This is important for symbolizing the data. - vectorTileLayerName: 'sliced', - - extent: 4096, // Default for geojson-vt - maxZoom: 14 // Default for geojson-vt - }, - - initialize: function(geojson, options) { - L.VectorGrid.prototype.initialize.call(this, options); - - // Create a shallow copy of this.options, excluding things that might - // be functions - we only care about topojson/geojsonvt options - var options = {}; - for (var i in this.options) { - if (i !== 'rendererFactory' && - i !== 'vectorTileLayerStyles' && - typeof (this.options[i]) !== 'function' - ) { - options[i] = this.options[i]; - } - } - -// this._worker = new Worker(window.URL.createObjectURL(new Blob([workerCode]))); - this._worker = new Worker(workerCode); - - // Send initial data to worker. - this._worker.postMessage(['slice', geojson, options]); - - }, - - - _getVectorTilePromise: function(coords) { - - var _this = this; - - var p = new Promise( function waitForWorker(res) { - _this._worker.addEventListener('message', function recv(m) { - if (m.data.coords && - m.data.coords.x === coords.x && - m.data.coords.y === coords.y && - m.data.coords.z === coords.z ) { - - res(m.data); - _this._worker.removeEventListener('message', recv); - } - }); - }); - - this._worker.postMessage(['get', coords]); - - return p; - }, - -}); - - -L.vectorGrid.slicer = function (geojson, options) { - return new L.VectorGrid.Slicer(geojson, options); -}; - -L.Canvas.Tile = L.Canvas.extend({ - - initialize: function (tileCoord, tileSize, options) { - L.Canvas.prototype.initialize.call(this, options); - this._tileCoord = tileCoord; - this._size = tileSize; - - this._initContainer(); - this._container.setAttribute('width', this._size.x); - this._container.setAttribute('height', this._size.y); - this._layers = {}; - this._drawnLayers = {}; - this._drawing = true; - - if (options.interactive) { - // By default, Leaflet tiles do not have pointer events - this._container.style.pointerEvents = 'auto'; - } - }, - - getCoord: function() { - return this._tileCoord; - }, - - getContainer: function() { - return this._container; - }, - - getOffset: function() { - return this._tileCoord.scaleBy(this._size).subtract(this._map.getPixelOrigin()); - }, - - onAdd: L.Util.falseFn, - - addTo: function(map) { - this._map = map; - }, - - removeFrom: function (map) { - delete this._map; - }, - - _onClick: function (e) { - var point = this._map.mouseEventToLayerPoint(e).subtract(this.getOffset()), layer, clickedLayer; - - for (var id in this._layers) { - layer = this._layers[id]; - if (layer.options.interactive && layer._containsPoint(point) && !this._map._draggableMoved(layer)) { - clickedLayer = layer; - } - } - if (clickedLayer) { - L.DomEvent.fakeStop(e); - this._fireEvent([clickedLayer], e); - } - }, - - _onMouseMove: function (e) { - if (!this._map || this._map.dragging.moving() || this._map._animatingZoom) { return; } - - var point = this._map.mouseEventToLayerPoint(e).subtract(this.getOffset()); - this._handleMouseHover(e, point); - }, - - /// TODO: Modify _initPath to include an extra parameter, a group name - /// to order symbolizers by z-index - - _updateIcon: function (layer) { - if (!this._drawing) { return; } - - var icon = layer.options.icon, - options = icon.options, - size = L.point(options.iconSize), - anchor = options.iconAnchor || - size && size.divideBy(2, true), - p = layer._point.subtract(anchor), - ctx = this._ctx, - img = layer._getImage(); - - if (img.complete) { - ctx.drawImage(img, p.x, p.y, size.x, size.y); - } else { - L.DomEvent.on(img, 'load', function() { - ctx.drawImage(img, p.x, p.y, size.x, size.y); - }); - } - - this._drawnLayers[layer._leaflet_id] = layer; - } -}); - - -L.canvas.tile = function(tileCoord, tileSize, opts){ - return new L.Canvas.Tile(tileCoord, tileSize, opts); -}; - -// Aux file to bundle everything together, including the optional dependencies -// for protobuf tiles - -}()); -//# sourceMappingURL=Leaflet.VectorGrid.bundled.js.map diff --git a/leafletTest/js/OSMBuildings-Leaflet.js b/leafletTest/js/OSMBuildings-Leaflet.js deleted file mode 100644 index 904e0a5..0000000 --- a/leafletTest/js/OSMBuildings-Leaflet.js +++ /dev/null @@ -1,48 +0,0 @@ -(function(ca){function S(b,a){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d}function va(b){var a=b.length;if(16>a)return!1;var c,d=Infinity,f=-Infinity,e=Infinity,g=-Infinity;for(c=0;cf||1.15g/e||1.2=a?90:1<=a?-90:(2*xa(ya(E* -(1-2*a)))-J)/E*180;c[d]=f;c[za]=360*(1===b?1:(b%1+1)%1)-180;return c}function da(b,a){var c=U(1,K(0,0.5-Aa(ka(Ba+J*b/180))/E/2));return{x:(a/360+0.5)*T<<0,y:c*T<<0}}function V(b){for(var a=B+p,c=v+n,d=0,f=b.length-3;dp&&b[d]n&&b[d+1]b[c].scale&&(b[c].scale+=0.1,1c&&(c+=1);1c?b:c<2/3?a+(b-a)*(2/3-c)*6:a}var c={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",grey:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",orange:"#ffa500",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},d=function(a,b, -c,d){this.H=a;this.S=b;this.L=c;this.A=d};d.parse=function(a){var b=0,d=0,h=0,k=1,m;a=(""+a).toLowerCase();a=c[a]||a;if(m=a.match(/^#(\w{2})(\w{2})(\w{2})$/))b=parseInt(m[1],16),d=parseInt(m[2],16),h=parseInt(m[3],16);else if(m=a.match(/rgba?\((\d+)\D+(\d+)\D+(\d+)(\D+([\d.]+))?\)/))b=parseInt(m[1],10),d=parseInt(m[2],10),h=parseInt(m[3],10),k=m[4]?parseFloat(m[5]):1;else return;return this.fromRGBA(b,d,h,k)};d.fromRGBA=function(a,b,c,h){"object"===typeof a?(b=a.g/255,c=a.b/255,h=a.a,a=a.r/255):(a/= -255,b/=255,c/=255);var k=Math.max(a,b,c),m=Math.min(a,b,c),l,y=(k+m)/2,s=k-m;if(s){m=0.5d?d*(1+c):d+c-d*c,d=2*d-m,b=b/360,c=a(d,m,b+1/3);k=a(d,m,b);b= -a(d,m,b-1/3)}return{r:Math.round(255*c),g:Math.round(255*k),b:Math.round(255*b),a:h}},toString:function(){var a=this.toRGBA();return 1===a.a?"#"+(16777216+(a.r<<16)+(a.g<<8)+a.b).toString(16).slice(1,7):"rgba("+[a.r,a.g,a.b,a.a.toFixed(2)].join()+")"},hue:function(a){return new d(this.H*a,this.S,this.L,this.A)},saturation:function(a){return new d(this.H,this.S*a,this.L,this.A)},lightness:function(a){return new d(this.H,this.S,this.L*a,this.A)},alpha:function(a){return new d(this.H,this.S,this.L,this.A* -a)}};return d}(this),Ha=function(){var b=Math,a=b.PI,c=b.sin,d=b.cos,f=b.tan,e=b.asin,g=b.atan2,h=a/180,k=23.4397*h;return function(b,l,y){y=h*-y;l*=h;b=b.valueOf()/864E5-0.5+2440588-2451545;var s=h*(357.5291+0.98560028*b),D;D=h*(1.9148*c(s)+0.02*c(2*s)+3E-4*c(3*s));D=s+D+102.9372*h+a;s=e(c(0)*d(k)+d(0)*c(k)*c(D));D=g(c(D)*d(k)-f(0)*c(k),d(D));b=h*(280.16+360.9856235*b)-y-D;y=e(c(l)*c(s)+d(l)*d(s)*d(b));l=g(c(b),d(b)*c(l)-f(s)*d(l));return{altitude:y,azimuth:l-a/2}}}(),Ja=function(){function b(a){a= -a.toLowerCase();return"#"===a[0]?a:d[f[a]||a]||null}function a(a,b){var c,d,f,s,D=0,p,n;p=0;for(n=a.length-3;ph.status||299f;)k=c.shift(),d-=k.size,delete a[k.url]}};h.open("GET",b);h.send(null);return h}}var a={},c=[],d=0,f=5242880;return{loadJSON:function(a,c){return b(a,function(a){var b;try{b= -JSON.parse(a)}catch(d){}c(b)})}}}(),F={loadedItems:{},items:[],getPixelFootprint:function(b){for(var a=new ra(b.length),c,d=0,f=b.length-1;dg&&(k=e,g=h)}2a.length))return a},resetItems:function(){this.items=[];this.loadedItems={};Y.reset()},addRenderItems:function(b,a){for(var c,d,f,e=Ja.read(b),g=0,h=e.length;gga)&&(a.footprint=this.getPixelFootprint(b.footprint),a.footprint)){for(var d=a.footprint,f=Infinity,e=-Infinity,g=Infinity,h=-Infinity,k=0,m=d.length-3;k>16-x,c=p/a<<0, -d=n/a<<0,f=qa((p+B)/a),a=qa((n+v)/a),e,g=this;for(e=d;e<=a;e++)for(d=c;d<=f;d++)this.loadTile(d,e,16,b)}},loadTile:function(b,a,c,d){b=this.src.replace("{s}","abcd"[(b+a)%4]).replace("{x}",b).replace("{y}",a).replace("{z}",c);return Ka.loadJSON(b,d)}},Z={draw:function(b,a,c,d,f,e,g,h){var k,m=this._extrude(b,a,d,f,e,g),l=[];if(c)for(a=0,k=c.length;a(m.x-h.x)*(k.y-h.y)&&(b.fillStyle=h.xk.x&&h.y>k.y?e:f,b.beginPath(),this._ring(b,[k.x,k.y,h.x,h.y,m.x,m.y,l.x,l.y]),b.closePath(),b.fill()),y[s]=m.x,y[s+1]=m.y;return y},_ring:function(b,a){b.moveTo(a[0], -a[1]);for(var c=2,d=a.length-1;c(k.x-g.x)*(h.y-g.y)?(1===e&&b.lineTo(g.x,g.y),e=0,l||b.moveTo(g.x,g.y),b.lineTo(h.x,h.y)):(0===e&&b.lineTo(k.x,k.y),e=1,l||b.moveTo(k.x,k.y),b.lineTo(m.x,m.y));if(c)for(l=0,q=c.length;l(e.x-g.x)*(h.y-g.y)?(1===c&&b.lineTo(g.x,g.y),c=0,l||b.moveTo(g.x,g.y),b.lineTo(h.x,h.y)):(0===c&&b.lineTo(e.x,e.y),c=1,l||b.moveTo(e.x,e.y),b.lineTo(m.x,m.y));b.closePath();b.fill()}},w={draw:function(b,a,c,d,f,e,g,h,k){a={x:a.x-p,y:a.y-n};var m=q/(q-f),l=q/(q-e);f=r.project(a,m);d*=m;e&&(a=r.project(a,l),c*=l);(m=this._tangents(a, -c,f,d))?(e=P(m[0].y1-a.y,m[0].x1-a.x),m=P(m[1].y1-a.y,m[1].x1-a.x)):(e=1.5*E,m=1.5*E);b.fillStyle=g;b.beginPath();b.arc(f.x,f.y,d,J,e,!0);b.arc(a.x,a.y,c,e,J);b.closePath();b.fill();b.fillStyle=h;b.beginPath();b.arc(f.x,f.y,d,m,J,!0);b.arc(a.x,a.y,c,J,m);b.closePath();b.fill();b.fillStyle=k;this._circle(b,f,d)},simplified:function(b,a,c){this._circle(b,{x:a.x-p,y:a.y-n},c)},shadow:function(b,a,c,d,f,e){a={x:a.x-p,y:a.y-n};f=z.project(a,f);var g;e&&(a=z.project(a,e));var h=this._tangents(a,c,f,d); -h?(e=P(h[0].y1-a.y,h[0].x1-a.x),g=P(h[1].y1-a.y,h[1].x1-a.x),b.moveTo(h[1].x2,h[1].y2),b.arc(f.x,f.y,d,g,e),b.arc(a.x,a.y,c,e,g)):(b.moveTo(a.x+c,a.y),b.arc(a.x,a.y,c,0,2*E))},shadowMask:function(b,a,c){var d=a.x-p;a=a.y-n;b.moveTo(d+c,a);b.arc(d,a,c,0,2*E)},hitArea:function(b,a,c,d,f,e,g){a={x:a.x-p,y:a.y-n};var h=q/(q-f),k=q/(q-e);f=r.project(a,h);d*=h;e&&(a=r.project(a,k),c*=k);e=this._tangents(a,c,f,d);b.fillStyle=g;b.beginPath();e?(g=P(e[0].y1-a.y,e[0].x1-a.x),h=P(e[1].y1-a.y,e[1].x1-a.x),b.moveTo(e[1].x2, -e[1].y2),b.arc(f.x,f.y,d,h,g),b.arc(a.x,a.y,c,g,h)):(b.moveTo(a.x+c,a.y),b.arc(a.x,a.y,c,0,2*E));b.closePath();b.fill()},_circle:function(b,a,c){b.beginPath();b.arc(a.x,a.y,c,0,2*E);b.stroke();b.fill()},_tangents:function(b,a,c,d){var f=b.x-c.x,e=b.y-c.y,g=a-d,h=f*f+e*e;if(!(h<=g*g)){var h=pa(h),f=-f/h,e=-e/h,g=g/h,h=[],k,m,l;k=pa(K(0,1-g*g));for(var n=1;-1<=n;n-=2)m=f*g-n*k*e,l=e*g+n*k*f,h.push({x1:b.x+a*m<<0,y1:b.y+a*l<<0,x2:c.x+d*m<<0,y2:c.y+d*l<<0});return h}}},R={draw:function(b,a,c,d,f,e,g){var h= -q/(q-f);c=r.project({x:c.x-p,y:c.y-n},q/(q-d));d={x:0,y:0};for(var k={x:0,y:0},m=0,l=a.length-3;m(c.x-d.x)*(k.y-d.y)&&(b.fillStyle=d.xk.x&&d.y>k.y?g:e,b.beginPath(),this._triangle(b,d,k,c),b.closePath(),b.fill())},_triangle:function(b,a,c,d){b.moveTo(a.x,a.y);b.lineTo(c.x,c.y);b.lineTo(d.x,d.y)},_ring:function(b,a){b.moveTo(a[0]-p,a[1]-n);for(var c=2,d=a.length-1;c< -d;c+=2)b.lineTo(a[c]-p,a[c+1]-n)},shadow:function(b,a,c,d,f){var e={x:0,y:0},g={x:0,y:0};c=z.project({x:c.x-p,y:c.y-n},d);d=0;for(var h=a.length-3;d(c.x-e.x)*(g.y-e.y)&&this._triangle(b,e,g,c)},shadowMask:function(b,a){this._ring(b,a)},hitArea:function(b,a,c,d,f,e){var g=q/(q-f);c=r.project({x:c.x-p,y:c.y-n},q/(q-d));d={x:0,y:0};var h={x:0,y:0};b.fillStyle=e;b.beginPath();e=0;for(var k= -a.length-3;e(c.x-d.x)*(h.y-d.y)&&this._triangle(b,d,h,c);b.closePath();b.fill()}},r={project:function(b,a){return{x:(b.x-M)*a+M<<0,y:(b.y-N)*a+N<<0}},render:function(){var b=this.context;b.clearRect(0,0,B,v);if(!(xa.scale?a.height*a.scale:a.height;d=0;a.minHeight&&(d=1>a.scale?a.minHeight*a.scale:a.minHeight);g=a.wallColor||ha;h=a.altColor||aa;k=a.roofColor||X;b.strokeStyle=h;switch(a.shape){case "cylinder":w.draw(b,a.center,a.radius,a.radius,c,d,g,h,k);break;case "cone":w.draw(b,a.center,a.radius,0,c,d,g,h);break;case "dome":w.draw(b,a.center,a.radius,a.radius/2,c,d,g,h);break;case "sphere":w.draw(b,a.center,a.radius,a.radius,c,d,g,h,k);break;case "pyramid":R.draw(b, -e,a.center,c,d,g,h);break;default:Z.draw(b,e,a.holes,c,d,g,h,k)}switch(a.roofShape){case "cone":w.draw(b,a.center,a.radius,0,c+a.roofHeight,c,k,""+I.parse(k).lightness(0.9));break;case "dome":w.draw(b,a.center,a.radius,a.radius/2,c+a.roofHeight,c,k,""+I.parse(k).lightness(0.9));break;case "pyramid":R.draw(b,e,a.center,c+a.roofHeight,c,k,I.parse(k).lightness(0.9))}}}}},ia={maxZoom:G+2,maxHeight:5,isSimple:function(b){return x<=this.maxZoom&&b.height+b.roofHeightthis.maxZoom))for(var a,c,d=F.items,f=0,e=d.length;f=this.maxHeight)&&(c=a.footprint,V(c)))switch(b.strokeStyle=a.altColor||aa,b.fillStyle=a.roofColor||X,a.shape){case "cylinder":case "cone":case "dome":case "sphere":w.simplified(b,a.center,a.radius);break;default:Z.simplified(b,c,a.holes)}}},z={enabled:!0,color:"#666666",blurColor:"#000000",blurSize:15,date:new Date,direction:{x:0,y:0},project:function(b,a){return{x:b.x+ -this.direction.x*a,y:b.y+this.direction.y*a}},render:function(){var b=this.context,a,c,d;b.clearRect(0,0,B,v);if(!(!this.enabled||x=a.altitude))){c=1/ka(a.altitude);d=5>c?0.75:1/c*5;this.direction.x=Fa(a.azimuth)*c;this.direction.y=Ea(a.azimuth)*c;var f,e,g,h;a=F.items;b.canvas.style.opacity=d/(2*C);b.shadowColor=this.blurColor;b.shadowBlur=C/2*this.blurSize;b.fillStyle=this.color;b.beginPath();d=0;for(c=a.length;df.scale?f.height*f.scale:f.height;g=0;f.minHeight&&(g=1>f.scale?f.minHeight*f.scale:f.minHeight);switch(f.shape){case "cylinder":w.shadow(b,f.center,f.radius,f.radius,e,g);break;case "cone":w.shadow(b,f.center,f.radius,0,e,g);break;case "dome":w.shadow(b,f.center,f.radius,f.radius/2,e,g);break;case "sphere":w.shadow(b,f.center,f.radius,f.radius,e,g);break;case "pyramid":R.shadow(b,h,f.center,e,g);break;default:Z.shadow(b,h,f.holes,e,g)}switch(f.roofShape){case "cone":w.shadow(b, -f.center,f.radius,0,e+f.roofHeight,e);break;case "dome":w.shadow(b,f.center,f.radius,f.radius/2,e+f.roofHeight,e);break;case "pyramid":R.shadow(b,h,f.center,e+f.roofHeight,e)}}b.closePath();b.fill();b.shadowBlur=null;b.globalCompositeOperation="destination-out";b.beginPath();d=0;for(c=a.length;d>8&255,a>>16&255].join()+")"}}, -$,A={container:document.createElement("DIV"),items:[],init:function(){this.container.style.pointerEvents="none";this.container.style.position="absolute";this.container.style.left=0;this.container.style.top=0;z.context=this.createContext(this.container);ia.context=this.createContext(this.container);r.context=this.createContext(this.container);Y.context=this.createContext()},render:function(b){Ga(function(){b||(z.render(),ia.render(),Y.render());r.render()})},createContext:function(b){var a=document.createElement("CANVAS"); -a.style.transform="translate3d(0, 0, 0)";a.style.imageRendering="optimizeSpeed";a.style.position="absolute";a.style.left=0;a.style.top=0;var c=a.getContext("2d");c.lineCap="round";c.lineJoin="round";c.lineWidth=1;c.imageSmoothingEnabled=!1;this.items.push(a);b&&b.appendChild(a);return c},appendTo:function(b){b.appendChild(this.container)},remove:function(){this.container.parentNode.removeChild(this.container)},setSize:function(b,a){for(var c=0,d=this.items.length;cOSM Buildings');F.update()};t.onRemove=function(){var b=this.map;b.attributionControl&&b.attributionControl.removeAttribution('© OSM Buildings');b.off({move:this.onMove, -moveend:this.onMoveEnd,zoomstart:this.onZoomStart,zoomend:this.onZoomEnd,resize:this.onResize,viewreset:this.onViewReset,click:this.onClick},this);b.options.zoomAnimation&&b.off("zoomanim",this.onZoom,this);A.remove()};t.onMove=function(b){b=this.getOffset();ea({x:this.offset.x-b.x,y:this.offset.y-b.y})};t.onMoveEnd=function(b){if(this.noMoveEnd)this.noMoveEnd=!1;else{var a=this.map;b=this.getOffset();var c=a.getPixelOrigin();this.offset=b;A.setPosition(-b.x,-b.y);ea({x:0,y:0});la({width:a._size.x, -height:a._size.y});a=c.y-b.y;p=c.x-b.x;n=a;A.render();F.update()}};t.onZoomStart=function(b){Q=!0;A.render()};t.onZoom=function(b){};t.onZoomEnd=function(b){b=this.map;var a=this.getOffset(),c=b.getPixelOrigin(),d=c.y-a.y;p=c.x-a.x;n=d;b=b._zoom;Q=!1;ma(b);F.update();A.render();this.noMoveEnd=!0};t.onResize=function(){};t.onViewReset=function(){var b=this.getOffset();this.offset=b;A.setPosition(-b.x,-b.y);ea({x:0,y:0})};t.onClick=function(b){var a=Y.getIdFromXY(b.containerPoint.x,b.containerPoint.y); -a&&ua({feature:a,lat:b.latlng.lat,lon:b.latlng.lng})};t.getOffset=function(){return L.DomUtil.getPosition(this.map._mapPane)};t.style=function(b){b=b||{};var a;if(a=b.color||b.wallColor)H=I.parse(a),ha=""+H.alpha(C),ba=H.lightness(0.8),aa=""+ba.alpha(C),O=H.lightness(1.2),X=""+O.alpha(C);b.roofColor&&(O=I.parse(b.roofColor),X=""+O.alpha(C));void 0!==b.shadows&&(z.enabled=!!b.shadows);A.render();return this};t.date=function(b){z.date=b;z.render();return this};t.load=function(b){F.load(b);return this}; -t.set=function(b){F.set(b);return this};var ta=function(){};t.each=function(b){ta=function(a){return b(a)};return this};var ua=function(){};t.click=function(b){ua=function(a){return b(a)};return this};u.VERSION="0.2.2b";u.ATTRIBUTION='© OSM Buildings';ca.OSMBuildings=u})(this); diff --git a/leafletTest/js/labelgun.min.js b/leafletTest/js/labelgun.min.js deleted file mode 100644 index 41eb5d4..0000000 --- a/leafletTest/js/labelgun.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("rbush")):"function"==typeof define&&define.amd?define(["rbush"],t):"object"==typeof exports?exports.labelgun=t(require("rbush")):e.labelgun=t(e.rbush)}(this,function(e){return function(e){function t(l){if(a[l])return a[l].exports;var n=a[l]={i:l,l:!1,exports:{}};return e[l].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,l){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:l})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,a){"use strict";function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var a=0;at.weight||a.isDragged)return!1;return!0}},{key:"_compare",value:function(e,t){return e.weight>t.weight?-1:e.weight0&&(this.hasChanged.forEach(function(t){e._handleLabelIngestion(t)}),this.hasChanged=[])}},{key:"_handleLabelIngestion",value:function(e){var t=this.allLabels[e];this.ingestLabel({bottomLeft:[t.minX,t.minY],topRight:[t.maxX,t.maxY]},t.id,t.weight,t.labelObject,t.name,t.isDragged)}},{key:"update",value:function(e){this.allChanged=!e,this._setupLabels(),this._compareLabels(),this._callLabelCallbacks()}},{key:"removeLabel",value:function(e){var t=this.allLabels[e];this.tree.remove(t),delete this.allLabels[e]}},{key:"_addToTree",value:function(e){this.allLabels[e.id]=e,this.tree.insert(e)}},{key:"ingestLabel",value:function(e,t,a,l,n,i){if(void 0!==a&&null!==a||(a=0),!e||!e.bottomLeft||!e.topRight)throw Error("Bounding box must be defined with bottomLeft and topRight properties");if("string"!=typeof t&&"number"!=typeof t)throw Error("Label IDs must be a string or a number");var s=this.allLabels[t];s&&this.removeLabel(s.id);var r={minX:e.bottomLeft[0],minY:e.bottomLeft[1],maxX:e.topRight[0],maxY:e.topRight[1],state:"hide",id:t,weight:a,labelObject:l,name:n,isDragged:i};this._addToTree(r)}},{key:"labelHasChanged",value:function(e){-1===this.hasChanged.indexOf(e)&&this.hasChanged.push(e)}}]),e}();t.default=r},function(t,a){t.exports=e}])}); \ No newline at end of file diff --git a/leafletTest/js/labels.js b/leafletTest/js/labels.js deleted file mode 100644 index 33ae252..0000000 --- a/leafletTest/js/labels.js +++ /dev/null @@ -1,60 +0,0 @@ -var hideLabel = function(label) { - label.labelObject.style.opacity = 0; - label.labelObject.style.transition = 'opacity 0s'; -}; -var showLabel = function(label) { - label.labelObject.style.opacity = 1; - label.labelObject.style.transition = 'opacity 1s'; -}; -labelEngine = new labelgun.default(hideLabel, showLabel); - -var id = 0; -var labels = []; -var totalMarkers = 0; - -function resetLabels(markers) { - labelEngine.reset(); - var i = 0; - for (var j = 0; j < markers.length; j++) { - markers[j].eachLayer(function(label){ - addLabel(label, ++i); - }); - } - labelEngine.update(); -} - -function addLabel(layer, id) { - - // This is ugly but there is no getContainer method on the tooltip :( - var label = layer.getTooltip()._source._tooltip._container; - if (label) { - - // We need the bounding rectangle of the label itself - var rect = label.getBoundingClientRect(); - - // We convert the container coordinates (screen space) to Lat/lng - var bottomLeft = map.containerPointToLatLng([rect.left, rect.bottom]); - var topRight = map.containerPointToLatLng([rect.right, rect.top]); - var boundingBox = { - bottomLeft : [bottomLeft.lng, bottomLeft.lat], - topRight : [topRight.lng, topRight.lat] - }; - - // Ingest the label into labelgun itself - labelEngine.ingestLabel( - boundingBox, - id, - parseInt(Math.random() * (5 - 1) + 1), // Weight - label, - "Test " + id, - false - ); - - // If the label hasn't been added to the map already - // add it and set the added flag to true - if (!layer.added) { - layer.addTo(map); - layer.added = true; - } - } -} \ No newline at end of file diff --git a/leafletTest/js/leaflet-hash.js b/leafletTest/js/leaflet-hash.js deleted file mode 100644 index 70a1007..0000000 --- a/leafletTest/js/leaflet-hash.js +++ /dev/null @@ -1,162 +0,0 @@ -(function(window) { - var HAS_HASHCHANGE = (function() { - var doc_mode = window.documentMode; - return ('onhashchange' in window) && - (doc_mode === undefined || doc_mode > 7); - })(); - - L.Hash = function(map) { - this.onHashChange = L.Util.bind(this.onHashChange, this); - - if (map) { - this.init(map); - } - }; - - L.Hash.parseHash = function(hash) { - if(hash.indexOf('#') === 0) { - hash = hash.substr(1); - } - var args = hash.split("/"); - if (args.length == 3) { - var zoom = parseInt(args[0], 10), - lat = parseFloat(args[1]), - lon = parseFloat(args[2]); - if (isNaN(zoom) || isNaN(lat) || isNaN(lon)) { - return false; - } else { - return { - center: new L.LatLng(lat, lon), - zoom: zoom - }; - } - } else { - return false; - } - }; - - L.Hash.formatHash = function(map) { - var center = map.getCenter(), - zoom = map.getZoom(), - precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2)); - - return "#" + [zoom, - center.lat.toFixed(precision), - center.lng.toFixed(precision) - ].join("/"); - }, - - L.Hash.prototype = { - map: null, - lastHash: null, - - parseHash: L.Hash.parseHash, - formatHash: L.Hash.formatHash, - - init: function(map) { - this.map = map; - - // reset the hash - this.lastHash = null; - this.onHashChange(); - - if (!this.isListening) { - this.startListening(); - } - }, - - removeFrom: function(map) { - if (this.changeTimeout) { - clearTimeout(this.changeTimeout); - } - - if (this.isListening) { - this.stopListening(); - } - - this.map = null; - }, - - onMapMove: function() { - // bail if we're moving the map (updating from a hash), - // or if the map is not yet loaded - - if (this.movingMap || !this.map._loaded) { - return false; - } - - var hash = this.formatHash(this.map); - if (this.lastHash != hash) { - location.replace(hash); - this.lastHash = hash; - } - }, - - movingMap: false, - update: function() { - var hash = location.hash; - if (hash === this.lastHash) { - return; - } - var parsed = this.parseHash(hash); - if (parsed) { - this.movingMap = true; - - this.map.setView(parsed.center, parsed.zoom); - - this.movingMap = false; - } else { - this.onMapMove(this.map); - } - }, - - // defer hash change updates every 100ms - changeDefer: 100, - changeTimeout: null, - onHashChange: function() { - // throttle calls to update() so that they only happen every - // `changeDefer` ms - if (!this.changeTimeout) { - var that = this; - this.changeTimeout = setTimeout(function() { - that.update(); - that.changeTimeout = null; - }, this.changeDefer); - } - }, - - isListening: false, - hashChangeInterval: null, - startListening: function() { - this.map.on("moveend", this.onMapMove, this); - - if (HAS_HASHCHANGE) { - L.DomEvent.addListener(window, "hashchange", this.onHashChange); - } else { - clearInterval(this.hashChangeInterval); - this.hashChangeInterval = setInterval(this.onHashChange, 50); - } - this.isListening = true; - }, - - stopListening: function() { - this.map.off("moveend", this.onMapMove, this); - - if (HAS_HASHCHANGE) { - L.DomEvent.removeListener(window, "hashchange", this.onHashChange); - } else { - clearInterval(this.hashChangeInterval); - } - this.isListening = false; - } - }; - L.hash = function(map) { - return new L.Hash(map); - }; - L.Map.prototype.addHash = function() { - this._hash = L.hash(this); - }; - L.Map.prototype.removeHash = function() { - this._hash.removeFrom(); - }; -})(window); diff --git a/leafletTest/js/leaflet-heat.js b/leafletTest/js/leaflet-heat.js deleted file mode 100644 index aa8031a..0000000 --- a/leafletTest/js/leaflet-heat.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - (c) 2014, Vladimir Agafonkin - simpleheat, a tiny JavaScript library for drawing heatmaps with Canvas - https://github.com/mourner/simpleheat -*/ -!function(){"use strict";function t(i){return this instanceof t?(this._canvas=i="string"==typeof i?document.getElementById(i):i,this._ctx=i.getContext("2d"),this._width=i.width,this._height=i.height,this._max=1,void this.clear()):new t(i)}t.prototype={defaultRadius:25,defaultGradient:{.4:"blue",.6:"cyan",.7:"lime",.8:"yellow",1:"red"},data:function(t,i){return this._data=t,this},max:function(t){return this._max=t,this},add:function(t){return this._data.push(t),this},clear:function(){return this._data=[],this},radius:function(t,i){i=i||15;var a=this._circle=document.createElement("canvas"),s=a.getContext("2d"),e=this._r=t+i;return a.width=a.height=2*e,s.shadowOffsetX=s.shadowOffsetY=200,s.shadowBlur=i,s.shadowColor="black",s.beginPath(),s.arc(e-200,e-200,t,0,2*Math.PI,!0),s.closePath(),s.fill(),this},gradient:function(t){var i=document.createElement("canvas"),a=i.getContext("2d"),s=a.createLinearGradient(0,0,0,256);i.width=1,i.height=256;for(var e in t)s.addColorStop(e,t[e]);return a.fillStyle=s,a.fillRect(0,0,1,256),this._grad=a.getImageData(0,0,1,256).data,this},draw:function(t){this._circle||this.radius(this.defaultRadius),this._grad||this.gradient(this.defaultGradient);var i=this._ctx;i.clearRect(0,0,this._width,this._height);for(var a,s=0,e=this._data.length;e>s;s++)a=this._data[s],i.globalAlpha=Math.max(a[2]/this._max,t||.05),i.drawImage(this._circle,a[0]-this._r,a[1]-this._r);var n=i.getImageData(0,0,this._width,this._height);return this._colorize(n.data,this._grad),i.putImageData(n,0,0),this},_colorize:function(t,i){for(var a,s=3,e=t.length;e>s;s+=4)a=4*t[s],a&&(t[s-3]=i[a],t[s-2]=i[a+1],t[s-1]=i[a+2])}},window.simpleheat=t}(),/* - (c) 2014, Vladimir Agafonkin - Leaflet.heat, a tiny and fast heatmap plugin for Leaflet. - https://github.com/Leaflet/Leaflet.heat -*/ -L.HeatLayer=(L.Layer?L.Layer:L.Class).extend({initialize:function(t,i){this._latlngs=t,L.setOptions(this,i)},setLatLngs:function(t){return this._latlngs=t,this.redraw()},addLatLng:function(t){return this._latlngs.push(t),this.redraw()},setOptions:function(t){return L.setOptions(this,t),this._heat&&this._updateOptions(),this.redraw()},redraw:function(){return!this._heat||this._frame||this._map._animating||(this._frame=L.Util.requestAnimFrame(this._redraw,this)),this},onAdd:function(t){this._map=t,this._canvas||this._initCanvas(),t._panes.overlayPane.appendChild(this._canvas),t.on("moveend",this._reset,this),t.options.zoomAnimation&&L.Browser.any3d&&t.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(t){t.getPanes().overlayPane.removeChild(this._canvas),t.off("moveend",this._reset,this),t.options.zoomAnimation&&t.off("zoomanim",this._animateZoom,this)},addTo:function(t){return t.addLayer(this),this},_initCanvas:function(){var t=this._canvas=L.DomUtil.create("canvas","leaflet-heatmap-layer leaflet-layer"),i=L.DomUtil.testProp(["transformOrigin","WebkitTransformOrigin","msTransformOrigin"]);t.style[i]="50% 50%";var a=this._map.getSize();t.width=a.x,t.height=a.y;var s=this._map.options.zoomAnimation&&L.Browser.any3d;L.DomUtil.addClass(t,"leaflet-zoom-"+(s?"animated":"hide")),this._heat=simpleheat(t),this._updateOptions()},_updateOptions:function(){this._heat.radius(this.options.radius||this._heat.defaultRadius,this.options.blur),this.options.gradient&&this._heat.gradient(this.options.gradient),this.options.max&&this._heat.max(this.options.max)},_reset:function(){var t=this._map.containerPointToLayerPoint([0,0]);L.DomUtil.setPosition(this._canvas,t);var i=this._map.getSize();this._heat._width!==i.x&&(this._canvas.width=this._heat._width=i.x),this._heat._height!==i.y&&(this._canvas.height=this._heat._height=i.y),this._redraw()},_redraw:function(){var t,i,a,s,e,n,h,o,r,d=[],_=this._heat._r,l=this._map.getSize(),m=new L.Bounds(L.point([-_,-_]),l.add([_,_])),c=void 0===this.options.max?1:this.options.max,u=void 0===this.options.maxZoom?this._map.getMaxZoom():this.options.maxZoom,f=1/Math.pow(2,Math.max(0,Math.min(u-this._map.getZoom(),12))),g=_/2,p=[],v=this._map._getMapPanePos(),w=v.x%g,y=v.y%g;for(t=0,i=this._latlngs.length;i>t;t++)if(a=this._map.latLngToContainerPoint(this._latlngs[t]),m.contains(a)){e=Math.floor((a.x-w)/g)+2,n=Math.floor((a.y-y)/g)+2;var x=void 0!==this._latlngs[t].alt?this._latlngs[t].alt:void 0!==this._latlngs[t][2]?+this._latlngs[t][2]:1;r=x*f,p[n]=p[n]||[],s=p[n][e],s?(s[0]=(s[0]*s[2]+a.x*r)/(s[2]+r),s[1]=(s[1]*s[2]+a.y*r)/(s[2]+r),s[2]+=r):p[n][e]=[a.x,a.y,r]}for(t=0,i=p.length;i>t;t++)if(p[t])for(h=0,o=p[t].length;o>h;h++)s=p[t][h],s&&d.push([Math.round(s[0]),Math.round(s[1]),Math.min(s[2],c)]);this._heat.data(d).draw(this.options.minOpacity),this._frame=null},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),a=this._map._getCenterOffset(t.center)._multiplyBy(-i).subtract(this._map._getMapPanePos());L.DomUtil.setTransform?L.DomUtil.setTransform(this._canvas,a,i):this._canvas.style[L.DomUtil.TRANSFORM]=L.DomUtil.getTranslateString(a)+" scale("+i+")"}}),L.heatLayer=function(t,i){return new L.HeatLayer(t,i)}; \ No newline at end of file diff --git a/leafletTest/js/leaflet-svg-shape-markers.min.js b/leafletTest/js/leaflet-svg-shape-markers.min.js deleted file mode 100644 index aae7f73..0000000 --- a/leafletTest/js/leaflet-svg-shape-markers.min.js +++ /dev/null @@ -1 +0,0 @@ -L.SVG.include({_updateShape:function(t){var i=t._point,s=t._radius,e=t.options.shape;if("diamond"===e){var n="M "+(i.x-s)+" "+i.y+", L "+i.x+" "+(i.y-s)+", L"+(i.x+s)+" "+i.y+", L"+i.x+" "+(i.y+s)+", L"+(i.x-s)+" "+i.y;this._setPath(t,n)}if("square"===e){var n="M "+(i.x-s)+" "+(i.y-s)+", L "+(i.x+s)+" "+(i.y-s)+", L"+(i.x+s)+" "+(i.y+s)+", L"+(i.x-s)+" "+(i.y+s)+", L"+(i.x-s)+" "+(i.y-s);this._setPath(t,n)}if("triangle"===e){var n="M"+(i.x-s)+" "+(i.y+s)+" L"+i.x+" "+(i.y-s)+" L"+(i.x+s)+" "+(i.y+s)+" Z";this._setPath(t,n)}if("circle"===e&&this._updateCircle(t),"x"===e){var s=s/2,n="M"+(i.x+s)+","+(i.y+s)+"L"+(i.x-s)+","+(i.y-s)+"M"+(i.x-s)+","+(i.y+s)+"L"+(i.x+s)+","+(i.y-s);this._setPath(t,n)}}}),L.ShapeMarker=L.Path.extend({options:{fill:!0,shape:"triangle",radius:10},initialize:function(t,i){L.setOptions(this,i),this._latlng=L.latLng(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=L.latLng(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return L.Path.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,s=this._clickTolerance(),e=[t+s,i+s];this._pxBounds=new L.Bounds(this._point.subtract(e),this._point.add(e))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateShape(this)},_empty:function(){return this._size&&!this._renderer._bounds.intersects(this._pxBounds)},toGeoJSON:function(){return L.GeoJSON.getFeature(this,{type:"Point",coordinates:L.GeoJSON.latLngToCoords(this.getLatLng())})}}),L.shapeMarker=function(t,i){return new L.ShapeMarker(t,i)}; \ No newline at end of file diff --git a/leafletTest/js/leaflet-tilelayer-wmts.js b/leafletTest/js/leaflet-tilelayer-wmts.js deleted file mode 100644 index 64433fd..0000000 --- a/leafletTest/js/leaflet-tilelayer-wmts.js +++ /dev/null @@ -1 +0,0 @@ -L.TileLayer.WMTS=L.TileLayer.extend({defaultWmtsParams:{service:"WMTS",request:"GetTile",version:"1.0.0",layer:"",style:"",tilematrixSet:"",format:"image/jpeg"},initialize:function(e,t){this._url=e;var n=L.extend({},this.defaultWmtsParams),r=t.tileSize||this.options.tileSize;if(t.detectRetina&&L.Browser.retina){n.width=n.height=r*2}else{n.width=n.height=r}for(var i in t){if(!this.options.hasOwnProperty(i)&&i!="matrixIds"){n[i]=t[i]}}this.wmtsParams=n;this.matrixIds=t.matrixIds||this.getDefaultMatrix();L.setOptions(this,t)},onAdd:function(e){L.TileLayer.prototype.onAdd.call(this,e)},getTileUrl:function(e,t){var n=this._map;crs=n.options.crs;tileSize=this.options.tileSize;nwPoint=e.multiplyBy(tileSize);nwPoint.x+=1;nwPoint.y-=1;sePoint=nwPoint.add(new L.Point(tileSize,tileSize));nw=crs.project(n.unproject(nwPoint,t));se=crs.project(n.unproject(sePoint,t));tilewidth=se.x-nw.x;t=n.getZoom();ident=this.matrixIds[t].identifier;X0=this.matrixIds[t].topLeftCorner.lng;Y0=this.matrixIds[t].topLeftCorner.lat;tilecol=Math.floor((nw.x-X0)/tilewidth);tilerow=-Math.floor((nw.y-Y0)/tilewidth);url=L.Util.template(this._url,{s:this._getSubdomain(e)});return url+L.Util.getParamString(this.wmtsParams,url)+"&tilematrix="+ident+"&tilerow="+tilerow+"&tilecol="+tilecol},setParams:function(e,t){L.extend(this.wmtsParams,e);if(!t){this.redraw()}return this},getDefaultMatrix:function(){var e=new Array(22);for(var t=0;t<22;t++){e[t]={identifier:""+t,topLeftCorner:new L.LatLng(20037508.3428,-20037508.3428)}}return e}});L.tileLayer.wmts=function(e,t){return new L.TileLayer.WMTS(e,t)} diff --git a/leafletTest/js/leaflet.js b/leafletTest/js/leaflet.js deleted file mode 100644 index 1de4ee1..0000000 --- a/leafletTest/js/leaflet.js +++ /dev/null @@ -1,5 +0,0 @@ -/* @preserve - * Leaflet 1.2.0+Detached: 1ac320ba232cb85b73ac81f3d82780c9d07f0d4e.1ac320b, a JS library for interactive maps. http://leafletjs.com - * (c) 2010-2017 Vladimir Agafonkin, (c) 2010-2011 CloudMade - */ -!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function i(t){var i,e,n,o;for(e=1,n=arguments.length;e=0}function I(t,i,e,n){return"touchstart"===i?O(t,e,n):"touchmove"===i?W(t,e,n):"touchend"===i&&H(t,e,n),this}function A(t,i,e){var n=t["_leaflet_"+i+e];return"touchstart"===i?t.removeEventListener(Xi,n,!1):"touchmove"===i?t.removeEventListener(Ji,n,!1):"touchend"===i&&(t.removeEventListener($i,n,!1),t.removeEventListener(Qi,n,!1)),this}function O(t,i,n){var o=e(function(t){if("mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(te.indexOf(t.target.tagName)<0))return;$(t)}j(t,i)});t["_leaflet_touchstart"+n]=o,t.addEventListener(Xi,o,!1),ee||(document.documentElement.addEventListener(Xi,R,!0),document.documentElement.addEventListener(Ji,D,!0),document.documentElement.addEventListener($i,N,!0),document.documentElement.addEventListener(Qi,N,!0),ee=!0)}function R(t){ie[t.pointerId]=t,ne++}function D(t){ie[t.pointerId]&&(ie[t.pointerId]=t)}function N(t){delete ie[t.pointerId],ne--}function j(t,i){t.touches=[];for(var e in ie)t.touches.push(ie[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(Ji,n,!1)}function H(t,i,e){var n=function(t){j(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener($i,n,!1),t.addEventListener(Qi,n,!1)}function F(t,i,e){function n(t){var i;if(Wi){if(!Li||"mouse"===t.pointerType)return;i=ne}else i=t.touches.length;if(!(i>1)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function o(t){if(a&&!r.cancelBubble){if(Wi){if(!Li||"mouse"===t.pointerType)return;var e,n,o={};for(n in r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type="dblclick",i(r),s=null}}var s,r,a=!1,h=250;return t[re+oe+e]=n,t[re+se+e]=o,t[re+"dblclick"+e]=i,t.addEventListener(oe,n,!1),t.addEventListener(se,o,!1),t.addEventListener("dblclick",i,!1),this}function U(t,i){var e=t[re+oe+i],n=t[re+se+i],o=t[re+"dblclick"+i];return t.removeEventListener(oe,e,!1),t.removeEventListener(se,n,!1),Li||t.removeEventListener("dblclick",o,!1),this}function V(t,i,e,n){if("object"==typeof i)for(var o in i)q(t,o,i[o],e);else for(var s=0,r=(i=u(i)).length;s100&&n<500||t.target._simulatedClick&&!t._simulated?Q(t):(di=e,i(t))}function rt(t){return"string"==typeof t?document.getElementById(t):t}function at(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function ht(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function ut(t){var i=t.parentNode;i&&i.removeChild(t)}function lt(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ct(t){var i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function _t(t){var i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function dt(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=gt(t);return e.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function pt(t,i){if(void 0!==t.classList)for(var e=u(i),n=0,o=e.length;nh&&(s=r,h=a);h>e&&(i[s]=1,St(t,i,e,n,s),St(t,i,e,s,o))}function kt(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;ni&&(e.push(t[n]),o=n);return oi.max.x&&(e|=2),t.yi.max.y&&(e|=8),e}function Ot(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Rt(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new x(s,r)}function Dt(t){return!ei(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Nt(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Dt(t)}function jt(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=P(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=P(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.xi.y&&n.y=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lati.lng&&n.lng1,Gi=!!document.createElement("canvas").getContext,qi=!(!document.createElementNS||!S("svg").createSVGRect),Ki=!qi&&function(){try{var t=document.createElement("div");t.innerHTML='';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),Yi=(Object.freeze||Object)({ie:xi,ielt9:wi,edge:Li,webkit:bi,android:Pi,android23:Ti,opera:zi,chrome:Mi,gecko:Ci,safari:Zi,phantom:Ei,opera12:Si,win:ki,ie3d:Bi,webkit3d:Ii,gecko3d:Ai,any3d:Oi,mobile:Ri,mobileWebkit:Di,mobileWebkit3d:Ni,msPointer:ji,pointer:Wi,touch:Hi,mobileOpera:Fi,mobileGecko:Ui,retina:Vi,canvas:Gi,svg:qi,vml:Ki}),Xi=ji?"MSPointerDown":"pointerdown",Ji=ji?"MSPointerMove":"pointermove",$i=ji?"MSPointerUp":"pointerup",Qi=ji?"MSPointerCancel":"pointercancel",te=["INPUT","SELECT","OPTION"],ie={},ee=!1,ne=0,oe=ji?"MSPointerDown":Wi?"pointerdown":"touchstart",se=ji?"MSPointerUp":Wi?"pointerup":"touchend",re="_leaflet_",ae="_leaflet_events",he=ki&&Mi?2*window.devicePixelRatio:Ci?window.devicePixelRatio:1,ue={},le=(Object.freeze||Object)({on:V,off:G,stopPropagation:Y,disableScrollPropagation:X,disableClickPropagation:J,preventDefault:$,stop:Q,getMousePosition:tt,getWheelDelta:it,fakeStop:et,skipped:nt,isExternalTarget:ot,addListener:V,removeListener:G}),ce=xt(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),_e=xt(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===_e||"OTransition"===_e?_e+"End":"transitionend";if("onselectstart"in document)pi=function(){V(window,"selectstart",$)},mi=function(){G(window,"selectstart",$)};else{var pe=xt(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);pi=function(){if(pe){var t=document.documentElement.style;fi=t[pe],t[pe]="none"}},mi=function(){pe&&(document.documentElement.style[pe]=fi,fi=void 0)}}var me,fe,ge=(Object.freeze||Object)({TRANSFORM:ce,TRANSITION:_e,TRANSITION_END:de,get:rt,getStyle:at,create:ht,remove:ut,empty:lt,toFront:ct,toBack:_t,hasClass:dt,addClass:pt,removeClass:mt,setClass:ft,getClass:gt,setOpacity:vt,testProp:xt,setTransform:wt,setPosition:Lt,getPosition:bt,disableTextSelection:pi,enableTextSelection:mi,disableImageDrag:Pt,enableImageDrag:Tt,preventOutline:zt,restoreOutline:Mt}),ve=ui.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=bt(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;ithis.options.maxZoom?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i=new M(t.coords.latitude,t.coords.longitude),e=i.toBounds(t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}ut(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)ut(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=ht("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new T(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=z(t),e=w(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=P(this.project(a,n),this.project(r,n)).getSize(),l=Oi?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new b(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var i=w(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(w(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return tt(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=rt(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");V(i,"scroll",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Oi,pt(t,"leaflet-container"+(Hi?" leaflet-touch":"")+(Vi?" leaflet-retina":"")+(wi?" leaflet-oldie":"")+(Zi?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=at(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Lt(this._mapPane,new x(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(pt(t.markerPane,"leaflet-zoom-hide"),pt(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){Lt(this._mapPane,new x(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t){return t&&this.fire("zoomstart"),this.fire("movestart")},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Lt(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[n(this._container)]=this;var i=t?G:V;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),Oi&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,o=[],s="mouseout"===i||"mouseover"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!ot(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return o.length||a||s||!ot(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!nt(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i||zt(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var s=n[0];"contextmenu"===e&&s.listens(e,!0)&&$(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s.options&&"icon"in s.options;r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=Oi?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){mt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._floor();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=ht("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=ce,e=this._proxy.style[i];wt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var t=this.getCenter(),i=this.getZoom();wt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ut(this._proxy),delete this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,pt(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250)},_onZoomTransitionEnd:function(){this._animatingZoom&&(mt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),xe=v.extend({options:{position:"topright"},initialize:function(t){l(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return pt(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return this._map?(ut(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),we=function(t){return new xe(t)};ye.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=e+t+" "+e+o;i[t+o]=ht("div",s,n)}var i=this._controlCorners={},e="leaflet-",n=this._controlContainer=ht("div",e+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ut(this._controlCorners[t]);ut(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Le=xe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(n(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=o):i=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),V(i,"click",this._onInputClick,this);var s=document.createElement("span");s.innerHTML=" "+t.name;var r=document.createElement("div");return e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&ni.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),be=xe.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=ht("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=ht("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),J(s),V(s,"click",Q),V(s,"click",o,this),V(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";mt(this._zoomInButton,i),mt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&pt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&pt(this._zoomInButton,i)}});ye.mergeOptions({zoomControl:!0}),ye.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new be,this.addControl(this.zoomControl))});var Pe=xe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i=ht("div","leaflet-control-scale"),e=this.options;return this._addScales(e,"leaflet-control-scale-line",i),t.on(e.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=ht("div",i,e)),t.imperial&&(this._iScale=ht("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Te=xe.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=ht("div","leaflet-control-attribution"),J(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});ye.mergeOptions({attributionControl:!0}),ye.addInitHook(function(){this.options.attributionControl&&(new Te).addTo(this)});xe.Layers=Le,xe.Zoom=be,xe.Scale=Pe,xe.Attribution=Te,we.layers=function(t,i,e){return new Le(t,i,e)},we.zoom=function(t){return new be(t)},we.scale=function(t){return new Pe(t)},we.attribution=function(t){return new Te(t)};var ze,Me=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}}),Ce={Events:hi},Ze=Hi?"touchstart mousedown":"mousedown",Ee={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Se={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},ke=ui.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(V(this._dragStartTarget,Ze,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ke._dragging===this&&this.finishDrag(),G(this._dragStartTarget,Ze,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!dt(this._element,"leaflet-zoom-anim")&&!(ke._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(ke._dragging=this,this._preventOutline&&zt(this._element),Pt(),pi(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t;this._startPoint=new x(i.clientX,i.clientY),V(document,Se[t.type],this._onMove,this),V(document,Ee[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new x(i.clientX,i.clientY).subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new M(a*e,t.x*e/n)}},Re=(Object.freeze||Object)({LonLat:Ae,Mercator:Oe,SphericalMercator:_i}),De=i({},ci,{code:"EPSG:3395",projection:Oe,transformation:function(){var t=.5/(Math.PI*Oe.R);return E(t,.5,-t,.5)}()}),Ne=i({},ci,{code:"EPSG:4326",projection:Ae,transformation:E(1/180,1,-1/180,.5)}),je=i({},li,{projection:Ae,transformation:E(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});li.Earth=ci,li.EPSG3395=De,li.EPSG3857=gi,li.EPSG900913=vi,li.EPSG4326=Ne,li.Simple=je;var We=ui.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});ye.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=n(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=n(t);return this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?ei(t)?t:[t]:[]).length;ithis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()i)return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return Dt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=Dt(t),n=0,o=t.length;n=2&&i[0]instanceof M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){Je.prototype._setLatLngs.call(this,t),Dt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Dt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new b(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||Je.prototype._containsPoint.call(this,t,!0)}}),Qe=Fe.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=ei(t)?t:t.features;if(o){for(i=0,e=o.length;io?(i.height=o+"px",pt(t,"leaflet-popup-scrolled")):mt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Lt(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,i=parseInt(at(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new x(this._containerLeft,-e-this._containerBottom);o._add(bt(this._container));var s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Q(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});ye.mergeOptions({closePopupOnClick:!0}),ye.include({openPopup:function(t,i,e){return t instanceof rn||(t=new rn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),We.include({bindPopup:function(t,i){return t instanceof rn?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new rn(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){if(t instanceof We||(i=t,t=this),t instanceof Fe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i=t.layer||t.target;this._popup&&this._map&&(Q(t),i instanceof Ke?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var an=sn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){sn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){sn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=sn.prototype.getEvents.call(this);return Hi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ht("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();"top"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.xthis.options.maxZoom||en&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new x(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new x(_,c);d.z=this._tileZoom,this._isValidTile(d)&&(this._tiles[this._tileCoordsToKey(d)]||r.push(d))}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var p=document.createDocumentFragment();for(_=0;_e.max.x)||!i.wrapLat&&(t.ye.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToBounds:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e),s=new T(i.unproject(n,t.z),i.unproject(o,t.z));return this.options.noWrap||i.wrapLatLngBounds(s),s},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new x(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(ut(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){pt(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=r,t.onmousemove=r,wi&&this.options.opacity<1&&vt(t,this.options.opacity),Pi&&!Ti&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),Lt(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,n){if(this._map){i&&this.fire("tileerror",{error:i,tile:n,coords:t});var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map._fadeAnimated?(vt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(pt(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),wi||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new b(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),ln=un.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Vi&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),Pi||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url=t,i||this.redraw(),this},createTile:function(t,i){var n=document.createElement("img");return V(n,"load",e(this._tileOnLoad,this,i,n)),V(n,"error",e(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=""),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Vi?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return _(this._url,i(e,this.options))},_tileOnLoad:function(t,i){wi?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.src!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=ni,ut(i)))}}),cn=ln.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);e=l(this,e),n.width=n.height=e.tileSize*(e.detectRetina&&Vi?2:1),this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,ln.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToBounds(t),e=this._crs.project(i.getNorthWest()),n=this._crs.project(i.getSouthEast()),o=(this._wmsVersion>=1.3&&this._crs===Ne?[n.y,e.x,e.y,n.x]:[e.x,n.y,n.x,e.y]).join(","),s=ln.prototype.getTileUrl.call(this,t);return s+c(this.wmsParams,s,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+o},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});ln.WMS=cn,Yt.wms=function(t,i){return new cn(t,i)};var _n=We.extend({options:{padding:.1},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&pt(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=bt(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);Oi?wt(this._container,a,e):Lt(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new b(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),dn=_n.extend({getEvents:function(){var t=_n.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){_n.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");V(t,"mousemove",o(this._onMouseMove,32,this),this),V(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),V(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){delete this._ctx,ut(this._container),G(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var t in this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},_n.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Vi?2:1;Lt(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Vi&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){_n.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[L.stamp(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var i,e=t.options.dashArray.split(","),n=[];for(i=0;i')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),mn={_initContainer:function(){this._container=ht("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(_n.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=pn("shape");pt(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=pn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ut(i),t.removeInteractiveTarget(i),delete this._layers[n(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=pn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=ei(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=pn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){ct(t._container)},_bringToBack:function(t){_t(t._container)}},fn=Ki?pn:S,gn=_n.extend({getEvents:function(){var t=_n.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=fn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=fn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ut(this._container),G(this._container),delete this._container,delete this._rootGroup},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){_n.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),Lt(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=fn("path");t.options.className&&pt(i,t.options.className),t.options.interactive&&pt(i,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ut(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var i=t._point,e=t._radius,n="a"+e+","+(t._radiusY||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){ct(t._path)},_bringToBack:function(t){_t(t._path)}});Ki&&gn.include(mn),ye.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this.options.preferCanvas&&Xt()||Jt()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=gn&&Jt({pane:t})||dn&&Xt({pane:t}),this._paneRenderers[t]=i),i}});var vn=$e.extend({initialize:function(t,i){$e.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});gn.create=fn,gn.pointsToPath=k,Qe.geometryToLayer=Wt,Qe.coordsToLatLng=Ht,Qe.coordsToLatLngs=Ft,Qe.latLngToCoords=Ut,Qe.latLngsToCoords=Vt,Qe.getFeature=Gt,Qe.asFeature=qt,ye.mergeOptions({boxZoom:!0});var yn=Me.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){V(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){G(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ut(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),pi(),Pt(),this._startPoint=this._map.mouseEventToContainerPoint(t),V(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ht("div","leaflet-zoom-box",this._container),pt(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new b(this._point,this._startPoint),e=i.getSize();Lt(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(ut(this._box),mt(this._container,"leaflet-crosshair")),mi(),Tt(),G(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var i=new T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});ye.addInitHook("addHandler","boxZoom",yn),ye.mergeOptions({doubleClickZoom:!0});var xn=Me.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});ye.addInitHook("addHandler","doubleClickZoom",xn),ye.mergeOptions({dragging:!0,inertia:!Ti,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var wn=Me.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ke(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}pt(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){mt(this._map._container,"leaflet-grab"),mt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=z(this._map.options.maxBounds);this._offsetLimit=P(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),i-this._times[0]>50&&(this._positions.shift(),this._times.shift())}this._map.fire("move",t).fire("drag",t)},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.xi.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});ye.addInitHook("addHandler","scrollWheelZoom",bn),ye.mergeOptions({tap:!0,tapTolerance:15});var Pn=Me.extend({addHooks:function(){V(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){G(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if($(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new x(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&pt(n,"leaflet-active"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),V(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),G(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&mt(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new x(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});Hi&&!Wi&&ye.addInitHook("addHandler","tap",Pn),ye.mergeOptions({touchZoom:Hi&&!Ti,bounceAtZoomLimits:!0});var Tn=Me.extend({addHooks:function(){pt(this._map._container,"leaflet-touch-zoom"),V(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){mt(this._map._container,"leaflet-touch-zoom"),G(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),V(document,"touchmove",this._onTouchMove,this),V(document,"touchend",this._onTouchEnd,this),$(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoomi.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0),this._moved=!0),g(this._animRequest);var a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),$(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),G(document,"touchmove",this._onTouchMove),G(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});ye.addInitHook("addHandler","touchZoom",Tn),ye.BoxZoom=yn,ye.DoubleClickZoom=xn,ye.Drag=wn,ye.Keyboard=Ln,ye.ScrollWheelZoom=bn,ye.Tap=Pn,ye.TouchZoom=Tn;var zn=window.L;window.L=t,Object.freeze=$t,t.version="1.2.0+HEAD.1ac320b",t.noConflict=function(){return window.L=zn,this},t.Control=xe,t.control=we,t.Browser=Yi,t.Evented=ui,t.Mixin=Ce,t.Util=ai,t.Class=v,t.Handler=Me,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=le,t.DomUtil=ge,t.PosAnimation=ve,t.Draggable=ke,t.LineUtil=Be,t.PolyUtil=Ie,t.Point=x,t.point=w,t.Bounds=b,t.bounds=P,t.Transformation=Z,t.transformation=E,t.Projection=Re,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=li,t.GeoJSON=Qe,t.geoJSON=Kt,t.geoJson=en,t.Layer=We,t.LayerGroup=He,t.layerGroup=function(t){return new He(t)},t.FeatureGroup=Fe,t.featureGroup=function(t){return new Fe(t)},t.ImageOverlay=nn,t.imageOverlay=function(t,i,e){return new nn(t,i,e)},t.VideoOverlay=on,t.videoOverlay=function(t,i,e){return new on(t,i,e)},t.DivOverlay=sn,t.Popup=rn,t.popup=function(t,i){return new rn(t,i)},t.Tooltip=an,t.tooltip=function(t,i){return new an(t,i)},t.Icon=Ue,t.icon=function(t){return new Ue(t)},t.DivIcon=hn,t.divIcon=function(t){return new hn(t)},t.Marker=qe,t.marker=function(t,i){return new qe(t,i)},t.TileLayer=ln,t.tileLayer=Yt,t.GridLayer=un,t.gridLayer=function(t){return new un(t)},t.SVG=gn,t.svg=Jt,t.Renderer=_n,t.Canvas=dn,t.canvas=Xt,t.Path=Ke,t.CircleMarker=Ye,t.circleMarker=function(t,i){return new Ye(t,i)},t.Circle=Xe,t.circle=function(t,i,e){return new Xe(t,i,e)},t.Polyline=Je,t.polyline=function(t,i){return new Je(t,i)},t.Polygon=$e,t.polygon=function(t,i){return new $e(t,i)},t.Rectangle=vn,t.rectangle=function(t,i){return new vn(t,i)},t.Map=ye,t.map=function(t,i){return new ye(t,i)}}); \ No newline at end of file diff --git a/leafletTest/js/leaflet.js.map b/leafletTest/js/leaflet.js.map deleted file mode 100644 index e4298b3..0000000 --- a/leafletTest/js/leaflet.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["dist/leaflet-src.js"],"names":["global","factory","exports","module","define","amd","L","this","extend","dest","i","j","len","src","arguments","length","bind","fn","obj","slice","Array","prototype","apply","call","args","concat","stamp","_leaflet_id","lastId","throttle","time","context","lock","wrapperFn","later","setTimeout","wrapNum","x","range","includeMax","max","min","d","falseFn","formatNum","num","digits","pow","Math","undefined","round","trim","str","replace","splitWords","split","setOptions","options","hasOwnProperty","create","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","template","data","templateRe","key","value","Error","array","el","getPrefixed","name","window","timeoutDefer","Date","timeToCall","lastTime","requestAnimFrame","immediate","requestFn","cancelAnimFrame","id","cancelFn","Class","checkDeprecatedMixinEvents","includes","Mixin","isArray","Events","console","warn","stack","Point","y","toPoint","Bounds","a","b","points","toBounds","LatLngBounds","corner1","corner2","latlngs","toLatLngBounds","LatLng","lat","lng","alt","isNaN","toLatLng","c","lon","Transformation","_a","_b","_c","_d","toTransformation","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","p","svg","userAgentContains","navigator","userAgent","toLowerCase","addPointerListener","type","handler","_addPointerStart","_addPointerMove","_addPointerEnd","removePointerListener","removeEventListener","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","onDown","e","pointerType","MSPOINTER_TYPE_MOUSE","TAG_WHITE_LIST","target","tagName","preventDefault","_handlePointer","addEventListener","_pointerDocListener","documentElement","_globalPointerDown","_globalPointerMove","_globalPointerUp","_pointers","pointerId","_pointersCount","touches","changedTouches","onMove","buttons","onUp","addDoubleTapListener","onTouchStart","count","pointer","edge","now","delta","last","touch$$1","doubleTap","delay","onTouchEnd","cancelBubble","prop","newTouch","_pre","_touchstart","_touchend","removeDoubleTapListener","touchstart","touchend","dblclick","get","getElementById","getStyle","style","currentStyle","defaultView","css","getComputedStyle","create$1","className","container","createElement","appendChild","remove","parent","parentNode","removeChild","empty","firstChild","toFront","lastChild","toBack","insertBefore","hasClass","classList","contains","getClass","RegExp","test","addClass","classes","add","setClass","removeClass","baseVal","setOpacity","opacity","_setOpacityIE","filter","filterName","filters","item","Enabled","Opacity","testProp","props","setTransform","offset","scale","pos","TRANSFORM","ie3d","setPosition","point","_leaflet_pos","any3d","left","top","getPosition","disableImageDrag","on","enableImageDrag","off","preventOutline","element","tabIndex","restoreOutline","_outlineElement","_outlineStyle","outline","getSizedParentNode","offsetWidth","offsetHeight","body","getScale","rect","getBoundingClientRect","width","height","boundingClientRect","types","addOne","removeOne","eventsKey","event","originalHandler","touch","chrome","isExternalTarget","android","filterClick","attachEvent","detachEvent","stopPropagation","originalEvent","_stopped","skipped","disableScrollPropagation","disableClickPropagation","fakeStop","returnValue","stop","getMousePosition","clientX","clientY","clientLeft","clientTop","getWheelDelta","wheelDeltaY","deltaY","deltaMode","wheelPxFactor","deltaX","deltaZ","wheelDelta","detail","abs","skipEvents","events","related","relatedTarget","err","timeStamp","elapsed","lastClick","_simulatedClick","_simulated","simplify","tolerance","sqTolerance","_reducePoints","_simplifyDP","pointToSegmentDistance","p1","p2","sqrt","_sqClosestPointOnSegment","markers","Uint8Array","_simplifyDPStep","newPoints","first","index","sqDist","maxSqDist","reducedPoints","prev","_sqDist","clipSegment","bounds","useLastCode","codeOut","newCode","codeA","_lastCode","_getBitCode","codeB","_getEdgeIntersection","code","dx","dy","t","dot","isFlat","_flat","clipPolygon","clippedPoints","k","edges","_code","geometryToLayer","geojson","latlng","geometry","coords","coordinates","layers","pointToLayer","_coordsToLatLng","coordsToLatLng","Marker","FeatureGroup","coordsToLatLngs","Polyline","Polygon","geometries","layer","properties","levelsDeep","latLngToCoords","precision","latLngsToCoords","getFeature","newGeometry","feature","asFeature","geoJSON","GeoJSON","tileLayer","url","TileLayer","canvas$1","canvas","Canvas","svg$1","vml","SVG","freeze","Object","F","proto","toString","emptyImageUrl","requestAnimationFrame","cancelAnimationFrame","clearTimeout","Util","NewClass","initialize","callInitHooks","parentProto","__super__","constructor","statics","_initHooks","_initHooksCalled","include","mergeOptions","addInitHook","init","_on","_off","_events","typeListeners","newListener","ctx","listeners","l","_firingCount","splice","fire","propagate","listens","sourceTarget","_propagateEvent","_eventParents","once","addEventParent","removeEventParent","propagatedFrom","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","trunc","v","floor","ceil","clone","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","equals","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","intersects","min2","max2","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","sw2","ne2","sw","_southWest","ne","_northEast","pad","bufferRatio","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","CRS","latLngToPoint","zoom","projectedPoint","projection","project","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","s","transform","wrapLng","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","R","latlng1","latlng2","rad","lat1","lat2","sinDLat","sin","sinDLon","atan2","SphericalMercator","MAX_LATITUDE","atan","exp","disableTextSelection","enableTextSelection","_userSelect","EPSG3857","EPSG900913","style$1","ie","ielt9","webkit","android23","webkitVer","parseInt","exec","androidStock","opera","gecko","safari","phantom","opera12","win","platform","webkit3d","WebKitCSSMatrix","gecko3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","L_NO_TOUCH","DocumentTouch","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","getContext","createSVGRect","div","innerHTML","shape","behavior","adj","Browser","TRANSITION","TRANSITION_END","userSelectProperty","DomUtil","DomEvent","addListener","removeListener","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","_offset","_startTime","_animate","_step","_complete","_animId","_runFrame","_easeOut","progress","Map","crs","minZoom","maxZoom","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","setZoom","zoomIn","zoomOut","setZoomAround","getZoomScale","viewHalf","centerOffset","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","getZoom","_panAnim","step","_onPanTransitionStep","end","_onPanTransitionEnd","noMoveStart","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","r","w1","w0","rho2","u1","sq","sinh","n","cosh","tanh","w","r0","rho","u","easeOut","frame","start","S","_flyToFrame","_move","from","to","startZoom","getScaleZoom","_moveEnd","size","_moveStart","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_container","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getPixelBounds","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","position","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","_getNewPixelOrigin","pinch","_getZoomSpan","remove$$1","_targets","onOff","_handleDOMEvent","_onMoveEnd","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_draggableMoved","_fireDOMEvent","_mouseEvents","synth","isMarker","getLatLng","_radius","containerPoint","bubblingMouseEvents","enabled","moved","boxZoom","disable","whenReady","callback","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","right","proxy","mapPane","_animatingZoom","_onZoomTransitionEnd","z","_destroyAnimProxy","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","Control","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","control","createCorner","vSide","hSide","corners","_controlContainer","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_form","acceptableHeight","offsetTop","collapse","setAttribute","form","mouseenter","mouseleave","link","_layersLink","href","title","_baseLayersList","_separator","_overlaysList","overlay","sort","setZIndex","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","input","label","hasLayer","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","_expand","_collapse","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","zoomControl","Scale","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","text","ratio","pow10","Attribution","prefix","_attributions","attributionControl","getAttribution","addAttribution","setPrefix","removeAttribution","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","START","END","mousedown","pointerdown","MSPointerDown","MOVE","Draggable","clickTolerance","dragStartTarget","preventOutline$$1","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","which","button","_moving","sizedParent","_startPoint","_parentScale","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_animRequest","_lastEvent","_updatePosition","LineUtil","closestPointOnSegment","PolyUtil","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","setStyle","bringToFront","bringToBack","Icon","popupAnchor","tooltipAnchor","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","path","MarkerDrag","marker","_marker","icon","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","origin","panBounds","movement","_panRequest","_oldLatLng","closePopup","autoPan","shadow","_shadow","_latlng","oldLatLng","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","draggable","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","setRadius","getRadius","_point","_updateBounds","r2","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","Circle","legacyOptions","_mRadius","half","latR","bottom","lngR","acos","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","jLen","_parts","halfDist","segDist","dist","_rings","addLatLng","_defaultShape","_convertLatLngs","result","flat","_projectLatlngs","projectedBounds","ring","_clipPoints","segment","parts","_simplifyPoints","_updatePoly","part","f","area","pop","clipped","addData","features","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","PointToGeoJSON","toGeoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","crossOrigin","errorOverlayUrl","_url","_image","_initImage","styleOpts","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","VideoOverlay","autoplay","loop","vid","onloadeddata","sourceElements","getElementsByTagName","sources","source","DivOverlay","_source","_removeTimeout","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","isOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","Popup","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","openOn","openPopup","popup","closeOnClick","closePopupOnClick","preclick","_close","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","_onCloseButtonClick","whiteSpace","marginBottom","containerHeight","containerWidth","layerPos","containerPos","_popupHandlersAdded","click","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","keyCode","Tooltip","direction","permanent","sticky","tooltip","closeTooltip","_setPosition","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","bindTooltip","_tooltip","_initTooltipInteractions","unbindTooltip","_tooltipHandlersAdded","_moveTooltip","_openTooltip","mousemove","toggleTooltip","isTooltipOpen","setTooltipContent","getTooltip","DivIcon","bgPos","backgroundPosition","Default","GridLayer","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","viewprereset","_invalidateAll","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","tile","current","loaded","fade","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_updateLevels","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","_clampZoom","noPrune","tileZoom","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","pixelCenter","halfSize","pixelBounds","tileRange","tileCenter","queue","margin","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","WebkitBackfaceVisibility","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","getAttribute","tilePoint","complete","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","version","wmsParams","realRetina","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","ev","_updateTransform","currentCenterPoint","_center","topLeftOffset","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","_drawnLayers","m","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","Number","_dashArray","_clear","clearRect","save","beginPath","clip","_drawing","restore","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","_fireEvent","moving","_handleMouseHover","_hoveredLayer","candidateHoveredLayer","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","create$2","zoomstart","_onZoomStart","_rootGroup","_svgSize","removeAttribute","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","keydown","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","noInertia","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","tap","tapTolerance","Tap","_fireClick","_holdTimeout","_isTapValid","_simulateEvent","touchmove","simulatedEvent","createEvent","initMouseEvent","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","moveFn","Projection","latLng","layerGroup","featureGroup","imageOverlay","videoOverlay","video","divIcon","gridLayer","circleMarker","circle","polyline","polygon","rectangle","oldL","noConflict"],"mappings":"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","file":"dist/leaflet.js.map"} \ No newline at end of file diff --git a/leafletTest/js/leaflet.markercluster.js b/leafletTest/js/leaflet.markercluster.js deleted file mode 100644 index 020abe6..0000000 --- a/leafletTest/js/leaflet.markercluster.js +++ /dev/null @@ -1,6 +0,0 @@ -/* - Leaflet.markercluster, Provides Beautiful Animated Marker Clustering functionality for Leaflet, a JS library for interactive maps. - https://github.com/Leaflet/Leaflet.markercluster - (c) 2012-2013, Dave Leaver, smartrak -*/ -!function(e,t,i){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[];var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this;if(!this._map)return this._needsClustering.push(e),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this._topClusterLevel._recalculateBounds();var t=e,i=this._map.getZoom();if(e.__parent)for(;t.__parent._zoom>=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):e.getLatLng?this._map?e.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this._topClusterLevel._recalculateBounds(),e.off("move",this._childMarkerMoved,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push(e),this):(this._nonPointGroup.removeLayer(e),this)},addLayers:function(e){if(!L.Util.isArray(e))return this.addLayer(e);var t,i=this._featureGroup,n=this._nonPointGroup,s=this.options.chunkedLoading,r=this.options.chunkInterval,o=this.options.chunkProgress,a=e.length,h=0,u=!0;if(this._map){var l=(new Date).getTime(),_=L.bind(function(){for(var d=(new Date).getTime();a>h;h++){if(s&&0===h%200){var c=(new Date).getTime()-d;if(c>r)break}if(t=e[h],t instanceof L.LayerGroup)u&&(e=e.slice(),u=!1),this._extractNonGroupLayers(t,e),a=e.length;else if(t.getLatLng){if(!this.hasLayer(t)&&(this._addLayer(t,this._maxZoom),t.__parent&&2===t.__parent.getChildCount())){var p=t.__parent.getAllChildMarkers(),f=p[0]===t?p[1]:p[0];i.removeLayer(f)}}else n.addLayer(t)}o&&o(h,a,(new Date).getTime()-l),h===a?(this._topClusterLevel._recalculateBounds(),this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()}),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(_,this.options.chunkDelay)},this);_()}else for(var d=this._needsClustering;a>h;h++)t=e[h],t instanceof L.LayerGroup?(u&&(e=e.slice(),u=!1),this._extractNonGroupLayers(t,e),a=e.length):t.getLatLng?this.hasLayer(t)||d.push(t):n.addLayer(t);return this},removeLayers:function(e){var t,i,n=e.length,s=this._featureGroup,r=this._nonPointGroup,o=!0;if(!this._map){for(t=0;n>t;t++)i=e[t],i instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),n=e.length):(this._arraySplice(this._needsClustering,i),r.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push(i));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=n;for(t=0;h>t;t++)i=a[t],i instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;n>t;t++)i=e[t],i instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),n=e.length):i.__parent?(this._removeLayer(i,!0,!0),s.hasLayer(i)&&(s.removeLayer(i),i.clusterShow&&i.clusterShow())):r.removeLayer(i);return this._topClusterLevel._recalculateBounds(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),s.eachLayer(function(e){e instanceof L.MarkerCluster&&e._updateIcon()}),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off("move",this._childMarkerMoved,this),delete e.__parent}),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,n=this._needsClustering.slice(),s=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(n),i=n.length-1;i>=0;i--)-1===s.indexOf(n[i])&&e.call(t,n[i]);this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer(function(t){e.push(t)}),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer(function(i){L.stamp(i)===e&&(t=i)}),t},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;t>=0;t--)if(i[t]===e)return!0;for(i=this._needsRemoving,t=i.length-1;t>=0;t--)if(i[t]===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){"function"!=typeof t&&(t=function(){});var i=function(){!e._icon&&!e.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",i,this),this.off("animationend",i,this),e._icon?t():e.__parent._icon&&(this.once("spiderfied",t,this),e.__parent.spiderfy()))};if(e._icon&&this._map.getBounds().contains(e.getLatLng()))t();else if(e.__parent._zoomt;t++)n=this._needsRemoving[t],this._removeLayer(n,!0);this._needsRemoving=[],this._zoom=this._map.getZoom(),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i)},onRemove:function(e){e.off("zoomend",this._zoomEnd,this),e.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;i>=0;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,n=this._gridUnclustered;t>=0&&n[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerMoved:function(e){this._ignoreMove||(e.target._latlng=e.oldLatLng,this.removeLayer(e.target),e.target._latlng=e.latlng,this.addLayer(e.target))},_removeLayer:function(e,t,i){var n=this._gridClusters,s=this._gridUnclustered,r=this._featureGroup,o=this._map;t&&this._removeFromGridUnclustered(e,this._maxZoom);var a,h=e.__parent,u=h._markers;for(this._arraySplice(u,e);h&&(h._childCount--,h._boundsNeedUpdate=!0,!(h._zoom<0));)t&&h._childCount<=1?(a=h._markers[0]===e?h._markers[1]:h._markers[0],n[h._zoom].removeObject(h,o.project(h._cLatLng,h._zoom)),s[h._zoom].addObject(a,o.project(a.getLatLng(),h._zoom)),this._arraySplice(h.__parent._childClusters,h),h.__parent._markers.push(a),a.__parent=h.__parent,h._icon&&(r.removeLayer(h),i||r.addLayer(a))):i&&h._icon||h._updateIcon(),h=h.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,i){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e="cluster"+e}L.FeatureGroup.prototype.fire.call(this,e,t,i)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,"cluster"+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),i=" marker-cluster-";return i+=10>t?"small":100>t?"medium":"large",new L.DivIcon({html:"
    "+t+"
    ",className:"marker-cluster"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick;(t||n)&&this.on("clusterclick",this._zoomOrSpiderfy,this),i&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){for(var t=e.layer,i=t;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,n=this._map;(e||i)&&this.off("clusterclick",this._zoomOrSpiderfy,this),t&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),n.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=this._map.getMaxZoom(),t=this.options.maxClusterRadius,i=t;"function"!=typeof t&&(i=function(){return t}),this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var n=e;n>=0;n--)this._gridClusters[n]=new L.DistanceGrid(i(n)),this._gridUnclustered[n]=new L.DistanceGrid(i(n));this._topClusterLevel=new this._markerCluster(this,-1)},_addLayer:function(e,t){var i,n,s=this._gridClusters,r=this._gridUnclustered;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on("move",this._childMarkerMoved,this);t>=0;t--){i=this._map.project(e.getLatLng(),t);var o=s[t].getNearObject(i);if(o)return o._addChild(e),e.__parent=o,void 0;if(o=r[t].getNearObject(i)){var a=o.__parent;a&&this._removeLayer(o,!1);var h=new this._markerCluster(this,t,o,e);s[t].addObject(h,this._map.project(h._cLatLng,t)),o.__parent=h,e.__parent=h;var u=h;for(n=t-1;n>a._zoom;n--)u=new this._markerCluster(this,n,u),s[n].addObject(u,this._map.project(o.getLatLng(),n));return a._addChild(u),this._removeFromGridUnclustered(o,t),void 0}r[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;ee?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return t!==i&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,n=e.getLayers(),s=0;for(t=t||[];s=0;i--)o=h[i],n.contains(o._latlng)||s.removeLayer(o)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(n,t),s.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(n,e,t,function(e){e._recursivelyRestoreChildPositions(t)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(n,e,0,function(e){s.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,n=this._featureGroup;n.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){n.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._map.getZoom())))}},_animationZoomOutSingle:function(e,t,i){var n=this._getExpandedVisibleBounds();e._recursivelyAnimateChildrenInAndAddSelfToMap(n,t+1,i);var s=this;this._forceLayout(),e._recursivelyBecomeVisible(n,i),this._enqueue(function(){if(1===e._childCount){var r=e._markers[0];this._ignoreMove=!0,r.setLatLng(r.getLatLng()),this._ignoreMove=!1,r.clusterShow&&r.clusterShow()}else e._recursively(n,i,0,function(e){e._recursivelyRemoveChildrenFromMap(n,t+1)});s._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(t.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)},L.MarkerCluster=L.Marker.extend({initialize:function(e,t,i,n){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),n&&this._addChild(n)},getAllChildMarkers:function(e){e=e||[];for(var t=this._childClusters.length-1;t>=0;t--)this._childClusters[t].getAllChildMarkers(e);for(var i=this._markers.length-1;i>=0;i--)e.push(this._markers[i]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var e,t=this._childClusters.slice(),i=this._group._map,n=i.getBoundsZoom(this._bounds),s=this._zoom+1,r=i.getZoom();t.length>0&&n>s;){s++;var o=[];for(e=0;es?this._group._map.setView(this._latlng,s):r>=n?this._group._map.setView(this._latlng,r+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,n,s=this._markers,r=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e=0;i--)n=s[i],n._icon&&(n._setPos(t),n.clusterHide())},function(e){var i,n,s=e._childClusters;for(i=s.length-1;i>=0;i--)n=s[i],n._icon&&(n._setPos(t),n.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,i){this._recursively(e,i,0,function(n){n._recursivelyAnimateChildrenIn(e,n._group._map.latLngToLayerPoint(n.getLatLng()).round(),t),n._isSingleParent()&&t-1===i?(n.clusterShow(),n._recursivelyRemoveChildrenFromMap(e,t)):n.clusterHide(),n._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,0,t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(e,t,i){this._recursively(i,-1,t,function(n){if(t!==n._zoom)for(var s=n._markers.length-1;s>=0;s--){var r=n._markers[s];i.contains(r._latlng)&&(e&&(r._backupLatlng=r.getLatLng(),r.setLatLng(e),r.clusterHide&&r.clusterHide()),n._group._featureGroup.addLayer(r))}},function(t){t._addToMap(e)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var n=this._childClusters.length-1;n>=0;n--)this._childClusters[n]._restorePosition();else for(var s=this._childClusters.length-1;s>=0;s--)this._childClusters[s]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i){var n,s;this._recursively(e,-1,t-1,function(e){for(s=e._markers.length-1;s>=0;s--)n=e._markers[s],i&&i.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())},function(e){for(s=e._childClusters.length-1;s>=0;s--)n=e._childClusters[s],i&&i.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())})},_recursively:function(e,t,i,n,s){var r,o,a=this._childClusters,h=this._zoom;if(t>h)for(r=a.length-1;r>=0;r--)o=a[r],e.intersects(o._bounds)&&o._recursively(e,t,i,n,s);else if(n&&n(this),s&&this._zoom===i&&s(this),i>h)for(r=a.length-1;r>=0;r--)o=a[r],e.intersects(o._bounds)&&o._recursively(e,t,i,n,s)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var e=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered);return delete this.options.opacityWhenUnclustered,e}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),n=this._getCoord(t.y),s=this._grid,r=s[n]=s[n]||{},o=r[i]=r[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,n,s=this._getCoord(t.x),r=this._getCoord(t.y),o=this._grid,a=o[r]=o[r]||{},h=a[s]=a[s]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,n=h.length;n>i;i++)if(h[i]===e)return h.splice(i,1),1===n&&delete a[s],!0},eachObject:function(e,t){var i,n,s,r,o,a,h,u=this._grid;for(i in u){o=u[i];for(n in o)for(a=o[n],s=0,r=a.length;r>s;s++)h=e.call(t,a[s]),h&&(s--,r--)}},getNearObject:function(e){var t,i,n,s,r,o,a,h,u=this._getCoord(e.x),l=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,c=null;for(t=l-1;l+1>=t;t++)if(s=this._grid[t])for(i=u-1;u+1>=i;i++)if(r=s[i])for(n=0,o=r.length;o>n;n++)a=r[n],h=this._sqDist(_[L.Util.stamp(a)],e),d>h&&(d=h,c=a);return c},_getCoord:function(e){return Math.floor(e/this._cellSize)},_sqDist:function(e,t){var i=t.x-e.x,n=t.y-e.y;return i*i+n*n}},function(){L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat,n=t[0].lng-t[1].lng;return n*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,n,s,r=0,o=null,a=[];for(i=t.length-1;i>=0;i--)n=t[i],s=this.getDistant(n,e),s>0&&(a.push(n),s>r&&(r=s,o=n));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],n=this.findMostDistantPointFromBaseLine(e,t);return n.maxPoint?(i=i.concat(this.buildConvexHull([e[0],n.maxPoint],n.newPoints)),i=i.concat(this.buildConvexHull([n.maxPoint,e[1]],n.newPoints))):[e[0]]},getConvexHull:function(e){var t,i=!1,n=!1,s=!1,r=!1,o=null,a=null,h=null,u=null,l=null,_=null;for(t=e.length-1;t>=0;t--){var d=e[t];(i===!1||d.lat>i)&&(o=d,i=d.lat),(n===!1||d.lats)&&(h=d,s=d.lng),(r===!1||d.lng=0;t--)e=i[t].getLatLng(),n.push(e);return L.QuickHull.getConvexHull(n)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(),i=this._group,n=i._map,s=n.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,t.length>=this._circleSpiralSwitchover?e=this._generatePointsSpiral(t.length,s):(s.y+=10,e=this._generatePointsCircle(t.length,s)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,n,s=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e),r=s/this._2PI,o=this._2PI/e,a=[];for(a.length=e,i=e-1;i>=0;i--)n=this._circleStartAngle+i*o,a[i]=new L.Point(t.x+r*Math.cos(n),t.y+r*Math.sin(n))._round();return a},_generatePointsSpiral:function(e,t){var i,n=this._group.options.spiderfyDistanceMultiplier,s=n*this._spiralLengthStart,r=n*this._spiralFootSeparation,o=n*this._spiralLengthFactor*this._2PI,a=0,h=[];for(h.length=e,i=e-1;i>=0;i--)a+=r/s+5e-4*i,h[i]=new L.Point(t.x+s*Math.cos(a),t.y+s*Math.sin(a))._round(),s+=o/a;return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,n=i._map,s=i._featureGroup,r=this.getAllChildMarkers();for(i._ignoreMove=!0,this.setOpacity(1),t=r.length-1;t>=0;t--)e=r[t],s.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(n.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire("unspiderfied",{cluster:this,markers:r}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,n,s,r,o=this._group,a=o._map,h=o._featureGroup,u=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i=0;n--)h=_.layerPointToLatLng(t[n]),s=e[n],s._preSpiderfyLatlng=s._latlng,s.setLatLng(h),s.clusterShow&&s.clusterShow(),f&&(r=s._spiderLeg,o=r._path,o.style.strokeDashoffset=0,r.setStyle({opacity:g}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire("spiderfied",{cluster:u,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,n,s,r,o,a=this,h=this._group,u=h._map,l=h._featureGroup,_=e?u._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):u.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(),c=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;i>=0;i--)t=d[i],t._preSpiderfyLatlng&&(t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&l.removeLayer(t),c&&(n=t._spiderLeg,s=n._path,r=s.getTotalLength()+.1,s.style.strokeDashoffset=r,n.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;i>=0;i--)t=d[i],t._spiderLeg&&e++;for(i=d.length-1;i>=0;i--)t=d[i],t._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),e>1&&l.removeLayer(t),u.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire("unspiderfied",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}})}(window,document); \ No newline at end of file diff --git a/leafletTest/js/leaflet.pattern.js b/leafletTest/js/leaflet.pattern.js deleted file mode 100644 index d08c185..0000000 --- a/leafletTest/js/leaflet.pattern.js +++ /dev/null @@ -1,6 +0,0 @@ -/* - Leaflet.pattern, Provides tools to set the backgrounds of vector shapes in Leaflet to be patterns. - https://github.com/teastman/Leaflet.pattern - (c) 2015, Tyler Eastman -*/ -!function(t,e){L.Pattern=L.Class.extend({includes:[L.Mixin.Events],options:{x:0,y:0,width:8,height:8,patternUnits:"userSpaceOnUse",patternContentUnits:"userSpaceOnUse"},_addShapes:L.Util.falseFn,_update:L.Util.falseFn,initialize:function(t){this._shapes={},L.setOptions(this,t)},onAdd:function(t){this._map=t.target?t.target:t,this._map._initDefRoot(),this._initDom();for(var e in this._shapes)this._shapes[e].onAdd(this);this._addShapes(),this._addDom(),this.redraw(),this.getEvents&&this._map.on(this.getEvents(),this),this.fire("add"),this._map.fire("patternadd",{pattern:this})},onRemove:function(){this._removeDom()},redraw:function(){if(this._map){this._update();for(var t in this._shapes)this._shapes[t].redraw()}return this},setStyle:function(t){return L.setOptions(this,t),this._map&&(this._updateStyle(),this.redraw()),this},addTo:function(t){return t.addPattern(this),this},remove:function(){return this.removeFrom(this._map)},removeFrom:function(t){return t&&t.removePattern(this),this}}),L.Map.addInitHook(function(){this._patterns={}}),L.Map.include({addPattern:function(t){var e=L.stamp(t);return this._patterns[e]?t:(this._patterns[e]=t,this.whenReady(t.onAdd,t),this)},removePattern:function(t){var e=L.stamp(t);return this._patterns[e]?(this._loaded&&t.onRemove(this),t.getEvents&&this.off(t.getEvents(),t),delete this._patterns[e],this._loaded&&(this.fire("patternremove",{pattern:t}),t.fire("remove")),t._map=null,this):this},hasPattern:function(t){return!!t&&L.stamp(t)in this._patterns}}),L.Pattern.SVG_NS="http://www.w3.org/2000/svg",L.Pattern=L.Pattern.extend({_createElement:function(t){return e.createElementNS(L.Pattern.SVG_NS,t)},_initDom:function(){this._dom=this._createElement("pattern"),this.options.className&&L.DomUtil.addClass(this._dom,this.options.className),this._updateStyle()},_addDom:function(){this._map._defRoot.appendChild(this._dom)},_removeDom:function(){L.DomUtil.remove(this._dom)},_updateStyle:function(){var t=this._dom,e=this.options;if(t){if(t.setAttribute("id",L.stamp(this)),t.setAttribute("x",e.x),t.setAttribute("y",e.y),t.setAttribute("width",e.width),t.setAttribute("height",e.height),t.setAttribute("patternUnits",e.patternUnits),t.setAttribute("patternContentUnits",e.patternContentUnits),e.patternTransform||e.angle){var i=e.patternTransform?e.patternTransform+" ":"";i+=e.angle?"rotate("+e.angle+") ":"",t.setAttribute("patternTransform",i)}else t.removeAttribute("patternTransform");for(var s in this._shapes)this._shapes[s]._updateStyle()}}}),L.Map.include({_initDefRoot:function(){if(!this._defRoot)if("function"==typeof this.getRenderer){var t=this.getRenderer(this);this._defRoot=L.Pattern.prototype._createElement("defs"),t._container.appendChild(this._defRoot)}else this._pathRoot||this._initPathRoot(),this._defRoot=L.Pattern.prototype._createElement("defs"),this._pathRoot.appendChild(this._defRoot)}}),L.SVG?L.SVG.include({_superUpdateStyle:L.SVG.prototype._updateStyle,_updateStyle:function(t){this._superUpdateStyle(t),t.options.fill&&t.options.fillPattern&&t._path.setAttribute("fill","url(#"+L.stamp(t.options.fillPattern)+")")}}):L.Path.include({_superUpdateStyle:L.Path.prototype._updateStyle,_updateStyle:function(){this._superUpdateStyle(),this.options.fill&&this.options.fillPattern&&this._path.setAttribute("fill","url(#"+L.stamp(this.options.fillPattern)+")")}}),L.StripePattern=L.Pattern.extend({options:{weight:4,spaceWeight:4,color:"#000000",spaceColor:"#ffffff",opacity:1,spaceOpacity:0},_addShapes:function(){this._stripe=new L.PatternPath({stroke:!0,weight:this.options.weight,color:this.options.color,opacity:this.options.opacity}),this._space=new L.PatternPath({stroke:!0,weight:this.options.spaceWeight,color:this.options.spaceColor,opacity:this.options.spaceOpacity}),this.addShape(this._stripe),this.addShape(this._space),this._update()},_update:function(){this._stripe.options.d="M0 "+this._stripe.options.weight/2+" H "+this.options.width,this._space.options.d="M0 "+(this._stripe.options.weight+this._space.options.weight/2)+" H "+this.options.width},setStyle:L.Pattern.prototype.setStyle}),L.stripePattern=function(t){return new L.StripePattern(t)},L.PatternShape=L.Class.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",fillOpacity:.2,fillRule:"evenodd"},initialize:function(t){L.setOptions(this,t)},onAdd:function(t){this._pattern=t,this._pattern._dom&&(this._initDom(),this._addDom())},addTo:function(t){return t.addShape(this),this},redraw:function(){return this._pattern&&this._updateShape(),this},setStyle:function(t){return L.setOptions(this,t),this._pattern&&this._updateStyle(),this},setShape:function(t){this.options=L.extend({},this.options,t),this._updateShape()}}),L.Pattern.include({addShape:function(t){var e=L.stamp(t);return this._shapes[e]?t:(this._shapes[e]=t,t.onAdd(this),void 0)}}),L.PatternShape.SVG_NS="http://www.w3.org/2000/svg",L.PatternShape=L.PatternShape.extend({_createElement:function(t){return e.createElementNS(L.PatternShape.SVG_NS,t)},_initDom:L.Util.falseFn,_updateShape:L.Util.falseFn,_initDomElement:function(t){this._dom=this._createElement(t),this.options.className&&L.DomUtil.addClass(this._dom,this.options.className),this._updateStyle()},_addDom:function(){this._pattern._dom.appendChild(this._dom)},_updateStyle:function(){var t=this._dom,e=this.options;t&&(e.stroke?(t.setAttribute("stroke",e.color),t.setAttribute("stroke-opacity",e.opacity),t.setAttribute("stroke-width",e.weight),t.setAttribute("stroke-linecap",e.lineCap),t.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?t.setAttribute("stroke-dasharray",e.dashArray):t.removeAttribute("stroke-dasharray"),e.dashOffset?t.setAttribute("stroke-dashoffset",e.dashOffset):t.removeAttribute("stroke-dashoffset")):t.setAttribute("stroke","none"),e.fill?(e.fillPattern?t.setAttribute("fill","url(#"+L.stamp(e.fillPattern)+")"):t.setAttribute("fill",e.fillColor||e.color),t.setAttribute("fill-opacity",e.fillOpacity),t.setAttribute("fill-rule",e.fillRule||"evenodd")):t.setAttribute("fill","none"),t.setAttribute("pointer-events",e.pointerEvents||(e.interactive?"visiblePainted":"none")))}}),L.PatternPath=L.PatternShape.extend({_initDom:function(){this._initDomElement("path")},_updateShape:function(){this._dom&&this._dom.setAttribute("d",this.options.d)}}),L.PatternCircle=L.PatternShape.extend({options:{x:0,y:0,radius:0},_initDom:function(){this._initDomElement("circle")},_updateShape:function(){this._dom&&(this._dom.setAttribute("cx",this.options.x),this._dom.setAttribute("cy",this.options.y),this._dom.setAttribute("r",this.options.radius))}}),L.PatternRect=L.PatternShape.extend({options:{x:0,y:0,width:10,height:10},_initDom:function(){this._initDomElement("rect")},_updateShape:function(){this._dom&&(this._dom.setAttribute("x",this.options.x),this._dom.setAttribute("y",this.options.y),this._dom.setAttribute("width",this.options.width),this._dom.setAttribute("height",this.options.height),this.options.rx&&this._dom.setAttribute("rx",this.options.rx),this.options.ry&&this._dom.setAttribute("ry",this.options.ry))}})}(window,document); \ No newline at end of file diff --git a/leafletTest/js/leaflet.rotatedMarker.js b/leafletTest/js/leaflet.rotatedMarker.js deleted file mode 100644 index 9d9be5a..0000000 --- a/leafletTest/js/leaflet.rotatedMarker.js +++ /dev/null @@ -1,51 +0,0 @@ -(function() { - // save these original methods before they are overwritten - var proto_initIcon = L.Marker.prototype._initIcon; - var proto_setPos = L.Marker.prototype._setPos; - - var oldIE = (L.DomUtil.TRANSFORM === 'msTransform'); - - L.Marker.addInitHook(function () { - var iconOptions = this.options.icon && this.options.icon.options; - var iconAnchor = iconOptions && this.options.icon.options.iconAnchor; - if (iconAnchor) { - iconAnchor = (iconAnchor[0] + 'px ' + iconAnchor[1] + 'px'); - } - this.options.rotationOrigin = this.options.rotationOrigin || iconAnchor || 'center bottom' ; - this.options.rotationAngle = this.options.rotationAngle || 0; - }); - - L.Marker.include({ - _initIcon: function() { - proto_initIcon.call(this); - }, - - _setPos: function (pos) { - proto_setPos.call(this, pos); - - if(this.options.rotationAngle) { - this._icon.style[L.DomUtil.TRANSFORM+'Origin'] = this.options.rotationOrigin; - - if(oldIE) { - // for IE 9, use the 2D rotation - this._icon.style[L.DomUtil.TRANSFORM] = 'rotate(' + this.options.rotationAngle + 'deg)'; - } else { - // for modern browsers, prefer the 3D accelerated version - this._icon.style[L.DomUtil.TRANSFORM] += ' rotateZ(' + this.options.rotationAngle + 'deg)'; - } - } - }, - - setRotationAngle: function(angle) { - this.options.rotationAngle = angle; - this.update(); - return this; - }, - - setRotationOrigin: function(origin) { - this.options.rotationOrigin = origin; - this.update(); - return this; - } - }); -})(); diff --git a/leafletTest/js/leaflet.wms.js b/leafletTest/js/leaflet.wms.js deleted file mode 100644 index e234ff6..0000000 --- a/leafletTest/js/leaflet.wms.js +++ /dev/null @@ -1,495 +0,0 @@ -/*! - * leaflet.wms.js - * A collection of Leaflet utilities for working with Web Mapping services. - * (c) 2014-2016, Houston Engineering, Inc. - * MIT License - */ - -(function (factory) { - // Module systems magic dance, Leaflet edition - if (typeof define === 'function' && define.amd) { - // AMD - define(['leaflet'], factory); - } else if (typeof module !== 'undefined') { - // Node/CommonJS - module.exports = factory(require('leaflet')); - } else { - // Browser globals - if (typeof this.L === 'undefined') - throw 'Leaflet must be loaded first!'; - // Namespace - this.L.WMS = this.L.wms = factory(this.L); - } -}(function (L) { - -// Module object -var wms = {}; - -// Quick shim for Object.keys() -if (!('keys' in Object)) { - Object.keys = function(obj) { - var result = []; - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - result.push(i); - } - } - return result; - }; -} - -/* - * wms.Source - * The Source object manages a single WMS connection. Multiple "layers" can be - * created with the getLayer function, but a single request will be sent for - * each image update. Can be used in non-tiled "overlay" mode (default), or - * tiled mode, via an internal wms.Overlay or wms.TileLayer, respectively. - */ -wms.Source = L.Layer.extend({ - 'options': { - 'untiled': true, - 'identify': true - }, - - 'initialize': function(url, options) { - L.setOptions(this, options); - if (this.options.tiled) { - this.options.untiled = false; - } - this._url = url; - this._subLayers = {}; - this._overlay = this.createOverlay(this.options.untiled); - }, - - 'createOverlay': function(untiled) { - // Create overlay with all options other than untiled & identify - var overlayOptions = {}; - for (var opt in this.options) { - if (opt != 'untiled' && opt != 'identify') { - overlayOptions[opt] = this.options[opt]; - } - } - if (untiled) { - return wms.overlay(this._url, overlayOptions); - } else { - return wms.tileLayer(this._url, overlayOptions); - } - }, - - 'onAdd': function() { - this.refreshOverlay(); - }, - - 'getEvents': function() { - if (this.options.identify) { - return {'click': this.identify}; - } else { - return {}; - } - }, - - 'setOpacity': function(opacity) { - this.options.opacity = opacity; - if (this._overlay) { - this._overlay.setOpacity(opacity); - } - }, - - 'bringToBack': function() { - this.options.isBack = true; - if (this._overlay) { - this._overlay.bringToBack(); - } - }, - - 'bringToFront': function() { - this.options.isBack = false; - if (this._overlay) { - this._overlay.bringToFront(); - } - }, - - 'getLayer': function(name) { - return wms.layer(this, name); - }, - - 'addSubLayer': function(name) { - this._subLayers[name] = true; - this.refreshOverlay(); - }, - - 'removeSubLayer': function(name) { - delete this._subLayers[name]; - this.refreshOverlay(); - }, - - 'refreshOverlay': function() { - var subLayers = Object.keys(this._subLayers).join(","); - if (!this._map) { - return; - } - if (!subLayers) { - this._overlay.remove(); - } else { - this._overlay.setParams({'layers': subLayers}); - this._overlay.addTo(this._map); - } - }, - - 'identify': function(evt) { - // Identify map features in response to map clicks. To customize this - // behavior, create a class extending wms.Source and override one or - // more of the following hook functions. - - var layers = this.getIdentifyLayers(); - if (!layers.length) { - return; - } - this.getFeatureInfo( - evt.containerPoint, evt.latlng, layers, - this.showFeatureInfo - ); - }, - - 'getFeatureInfo': function(point, latlng, layers, callback) { - // Request WMS GetFeatureInfo and call callback with results - // (split from identify() to faciliate use outside of map events) - var params = this.getFeatureInfoParams(point, layers), - url = this._url + L.Util.getParamString(params, this._url); - - this.showWaiting(); - this.ajax(url, done); - - function done(result) { - this.hideWaiting(); - var text = this.parseFeatureInfo(result, url); - callback.call(this, latlng, text); - } - }, - - 'ajax': function(url, callback) { - ajax.call(this, url, callback); - }, - - 'getIdentifyLayers': function() { - // Hook to determine which layers to identify - if (this.options.identifyLayers) - return this.options.identifyLayers; - return Object.keys(this._subLayers); - }, - - 'getFeatureInfoParams': function(point, layers) { - // Hook to generate parameters for WMS service GetFeatureInfo request - var wmsParams, overlay; - if (this.options.untiled) { - // Use existing overlay - wmsParams = this._overlay.wmsParams; - } else { - // Create overlay instance to leverage updateWmsParams - overlay = this.createOverlay(true); - overlay.updateWmsParams(this._map); - wmsParams = overlay.wmsParams; - wmsParams.layers = layers.join(','); - } - var infoParams = { - 'request': 'GetFeatureInfo', - 'query_layers': layers.join(','), - 'X': Math.round(point.x), - 'Y': Math.round(point.y) - }; - return L.extend({}, wmsParams, infoParams); - }, - - 'parseFeatureInfo': function(result, url) { - // Hook to handle parsing AJAX response - if (result == "error") { - // AJAX failed, possibly due to CORS issues. - // Try loading content in