diff --git a/webapp_test/css/MarkerCluster.Default.css b/webapp_test/css/MarkerCluster.Default.css
new file mode 100644
index 0000000..bbc8c9f
--- /dev/null
+++ b/webapp_test/css/MarkerCluster.Default.css
@@ -0,0 +1,60 @@
+.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/webapp_test/css/MarkerCluster.css b/webapp_test/css/MarkerCluster.css
new file mode 100644
index 0000000..c60d71b
--- /dev/null
+++ b/webapp_test/css/MarkerCluster.css
@@ -0,0 +1,14 @@
+.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/webapp_test/css/fontawesome-all.min.css b/webapp_test/css/fontawesome-all.min.css
new file mode 100644
index 0000000..8539c00
--- /dev/null
+++ b/webapp_test/css/fontawesome-all.min.css
@@ -0,0 +1,5 @@
+/*!
+ * 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/webapp_test/css/images/cancel.png b/webapp_test/css/images/cancel.png
new file mode 100644
index 0000000..a4e7c49
Binary files /dev/null and b/webapp_test/css/images/cancel.png differ
diff --git a/webapp_test/css/images/cancel_@2X.png b/webapp_test/css/images/cancel_@2X.png
new file mode 100644
index 0000000..dcc72f0
Binary files /dev/null and b/webapp_test/css/images/cancel_@2X.png differ
diff --git a/webapp_test/css/images/check.png b/webapp_test/css/images/check.png
new file mode 100644
index 0000000..55f274b
Binary files /dev/null and b/webapp_test/css/images/check.png differ
diff --git a/webapp_test/css/images/check_@2X.png b/webapp_test/css/images/check_@2X.png
new file mode 100644
index 0000000..df8032e
Binary files /dev/null and b/webapp_test/css/images/check_@2X.png differ
diff --git a/webapp_test/css/images/focus.png b/webapp_test/css/images/focus.png
new file mode 100644
index 0000000..5a87d24
Binary files /dev/null and b/webapp_test/css/images/focus.png differ
diff --git a/webapp_test/css/images/focus_@2X.png b/webapp_test/css/images/focus_@2X.png
new file mode 100644
index 0000000..1eb7dd4
Binary files /dev/null and b/webapp_test/css/images/focus_@2X.png differ
diff --git a/webapp_test/css/images/layers-2x.png b/webapp_test/css/images/layers-2x.png
new file mode 100644
index 0000000..a2cf7f9
Binary files /dev/null and b/webapp_test/css/images/layers-2x.png differ
diff --git a/webapp_test/css/images/layers.png b/webapp_test/css/images/layers.png
new file mode 100644
index 0000000..bca0a0e
Binary files /dev/null and b/webapp_test/css/images/layers.png differ
diff --git a/webapp_test/css/images/marker-icon-2x.png b/webapp_test/css/images/marker-icon-2x.png
new file mode 100644
index 0000000..0015b64
Binary files /dev/null and b/webapp_test/css/images/marker-icon-2x.png differ
diff --git a/webapp_test/css/images/marker-icon.png b/webapp_test/css/images/marker-icon.png
new file mode 100644
index 0000000..e2e9f75
Binary files /dev/null and b/webapp_test/css/images/marker-icon.png differ
diff --git a/webapp_test/css/images/marker-shadow.png b/webapp_test/css/images/marker-shadow.png
new file mode 100644
index 0000000..d1e773c
Binary files /dev/null and b/webapp_test/css/images/marker-shadow.png differ
diff --git a/webapp_test/css/images/measure-control.png b/webapp_test/css/images/measure-control.png
new file mode 100644
index 0000000..b88e8e4
Binary files /dev/null and b/webapp_test/css/images/measure-control.png differ
diff --git a/webapp_test/css/images/rulers.png b/webapp_test/css/images/rulers.png
new file mode 100644
index 0000000..b88e8e4
Binary files /dev/null and b/webapp_test/css/images/rulers.png differ
diff --git a/webapp_test/css/images/rulers_@2X.png b/webapp_test/css/images/rulers_@2X.png
new file mode 100644
index 0000000..7247a0c
Binary files /dev/null and b/webapp_test/css/images/rulers_@2X.png differ
diff --git a/webapp_test/css/images/start.png b/webapp_test/css/images/start.png
new file mode 100644
index 0000000..b8ca942
Binary files /dev/null and b/webapp_test/css/images/start.png differ
diff --git a/webapp_test/css/images/start_@2X.png b/webapp_test/css/images/start_@2X.png
new file mode 100644
index 0000000..01da494
Binary files /dev/null and b/webapp_test/css/images/start_@2X.png differ
diff --git a/webapp_test/css/images/throbber.gif b/webapp_test/css/images/throbber.gif
new file mode 100644
index 0000000..c0c52a0
Binary files /dev/null and b/webapp_test/css/images/throbber.gif differ
diff --git a/webapp_test/css/images/trash.png b/webapp_test/css/images/trash.png
new file mode 100644
index 0000000..7ff478a
Binary files /dev/null and b/webapp_test/css/images/trash.png differ
diff --git a/webapp_test/css/images/trash_@2X.png b/webapp_test/css/images/trash_@2X.png
new file mode 100644
index 0000000..fea11a8
Binary files /dev/null and b/webapp_test/css/images/trash_@2X.png differ
diff --git a/webapp_test/css/leaflet-control-geocoder.Geocoder.css b/webapp_test/css/leaflet-control-geocoder.Geocoder.css
new file mode 100644
index 0000000..badbd30
--- /dev/null
+++ b/webapp_test/css/leaflet-control-geocoder.Geocoder.css
@@ -0,0 +1,123 @@
+.leaflet-control-geocoder {
+ border-radius: 4px;
+ background: white;
+ min-width: 26px;
+ min-height: 26px;
+}
+
+.leaflet-touch .leaflet-control-geocoder {
+ min-width: 30px;
+ min-height: 30px;
+}
+
+.leaflet-control-geocoder a, .leaflet-control-geocoder .leaflet-control-geocoder-icon {
+ border-bottom: none;
+ display: inline-block;
+}
+
+.leaflet-control-geocoder .leaflet-control-geocoder-alternatives a {
+ width: inherit;
+ height: inherit;
+ line-height: inherit;
+}
+
+.leaflet-control-geocoder a:hover, .leaflet-control-geocoder .leaflet-control-geocoder-icon:hover {
+ border-bottom: none;
+ display: inline-block;
+}
+
+.leaflet-control-geocoder-form {
+ display: none;
+ vertical-align: middle;
+}
+.leaflet-control-geocoder-expanded .leaflet-control-geocoder-form {
+ display: inline-block;
+}
+.leaflet-control-geocoder-form input {
+ font-size: 120%;
+ border: 0;
+ background-color: transparent;
+ width: 246px;
+}
+
+.leaflet-control-geocoder-icon {
+ border-radius: 4px;
+ width: 26px;
+ height: 26px;
+ border: none;
+ background-color: white;
+ //background-image: url(images/geocoder.png);
+ background-repeat: no-repeat;
+ background-position: center;
+ cursor: pointer;
+}
+
+.leaflet-touch .leaflet-control-geocoder-icon {
+ width: 30px;
+ height: 30px;
+}
+
+.leaflet-control-geocoder-throbber .leaflet-control-geocoder-icon {
+ background-image: url(images/throbber.gif);
+}
+
+.leaflet-control-geocoder-form-no-error {
+ display: none;
+}
+
+.leaflet-control-geocoder-form input:focus {
+ outline: none;
+}
+
+.leaflet-control-geocoder-form button {
+ display: none;
+}
+.leaflet-control-geocoder-error {
+ margin-top: 8px;
+ margin-left: 8px;
+ display: block;
+ color: #444;
+}
+.leaflet-control-geocoder-alternatives {
+ display: block;
+ width: 272px;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.leaflet-control-geocoder-alternatives-minimized {
+ display: none;
+ height: 0;
+}
+.leaflet-control-geocoder-alternatives li {
+ white-space: nowrap;
+ display: block;
+ overflow: hidden;
+ padding: 5px 8px;
+ text-overflow: ellipsis;
+ border-bottom: 1px solid #ccc;
+ cursor: pointer;
+}
+
+.leaflet-control-geocoder-alternatives li a, .leaflet-control-geocoder-alternatives li a:hover {
+ width: inherit;
+ height: inherit;
+ line-height: inherit;
+ background: inherit;
+ border-radius: inherit;
+ text-align: left;
+}
+
+.leaflet-control-geocoder-alternatives li:last-child {
+ border-bottom: none;
+}
+.leaflet-control-geocoder-alternatives li:hover, .leaflet-control-geocoder-selected {
+ background-color: #f5f5f5;
+}
+.leaflet-control-geocoder-address-detail {
+
+}
+.leaflet-control-geocoder-address-context {
+ color: #666;
+}
\ No newline at end of file
diff --git a/webapp_test/css/leaflet.css b/webapp_test/css/leaflet.css
new file mode 100644
index 0000000..609a662
--- /dev/null
+++ b/webapp_test/css/leaflet.css
@@ -0,0 +1,640 @@
+/* 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;
+ }
+/* Prevents IE11 from highlighting tiles in blue */
+.leaflet-tile::selection {
+ background: transparent;
+}
+/* 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,
+.leaflet-container .leaflet-tile {
+ max-width: none !important;
+ max-height: 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;
+ /* Fallback for FF which doesn't support pinch-zoom */
+ touch-action: none;
+ 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;
+ 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);
+ 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;
+ transition: none;
+ }
+
+.leaflet-zoom-anim .leaflet-zoom-hide {
+ visibility: hidden;
+ }
+
+
+/* cursors */
+
+.leaflet-interactive {
+ cursor: pointer;
+ }
+.leaflet-grab {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: 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;
+ cursor: 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,
+svg.leaflet-image-layer.leaflet-interactive path {
+ 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);
+ 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/webapp_test/css/qgis2web.css b/webapp_test/css/qgis2web.css
new file mode 100644
index 0000000..9bb0a02
--- /dev/null
+++ b/webapp_test/css/qgis2web.css
@@ -0,0 +1,129 @@
+
+ #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;
+ 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;
+ }
+ .abstract {
+ font: bold 18px 'Lucida Console', Monaco, monospace;
+ text-indent: 1px;
+ background-color: #f8f8f8 !important;
+ width: 30px !important;
+ color: #000000 !important;
+ height: 30px !important;
+ text-align: center !important;
+ line-height: 30px !important;
+ }
+ .abstractUncollapsed {
+ padding: 6px 8px;
+ font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
+ background-color:#f8f8f8 !important;
+ color: #000000 !important;
+ box-shadow: 0 0 15px rgba(0,0,0,0.2);
+ border-radius: 5px;
+ max-width: 40%;
+ }
+ .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/webapp_test/data/wf_1.js b/webapp_test/data/wf_1.js
new file mode 100644
index 0000000..2e5a6ef
--- /dev/null
+++ b/webapp_test/data/wf_1.js
@@ -0,0 +1,78 @@
+var json_wf_1 = {
+"type": "FeatureCollection",
+"name": "wf_1",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
+"features": [
+{ "type": "Feature", "properties": { "Location": "London, United Kingdom of Great Britain and Ireland", "Year": 1851.0, "Dates": "04\/1851-10\/1851", "Theme": "Industry of all Nations", "Notables": "The Crystal Palace", "Visitors in millions": 6.0, "Type": "World Expo", "No. countries represented": 25.0, "Thumbnail": "
", "Image Source": "[Crystal Palace stereograph], 1851, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1851.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -0.0717997, 51.4549504 ] } },
+{ "type": "Feature", "properties": { "Location": "Paris, France", "Year": 1867.0, "Dates": "04\/1867-11\/1867", "Theme": "Agriculture, Industry and Arts", "Notables": "Champ de Mars", "Visitors in millions": 15.0, "Type": "World Expo", "No. countries represented": 42.0, "Thumbnail": "
", "Image Source": "Exposition universelle de 1867, à Paris: plan d'en..., 1867, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1867.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 2.333631100000011, 48.866828099999985 ] } },
+{ "type": "Feature", "properties": { "Location": "Vienna, Austria-Hungary", "Year": 1873.0, "Dates": "05\/1873-10\/1873", "Theme": "Culture and Education", "Notables": "Rotunde", "Visitors in millions": 7.25, "Type": "World Expo", "No. countries represented": 35.0, "Thumbnail": "
", "Image Source": "Vienna Universal Exhibition, 1873: ground plan, [1873], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1873.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 16.373818900000014, 48.208174299999989 ] } },
+{ "type": "Feature", "properties": { "Location": "Philadelphia, United States", "Year": 1876.0, "Dates": "05\/1876-11\/1876", "Theme": "Arts, Manufactures and Products of the Soil and Mine", "Notables": "Centennial Arboretum, Telephone, Heinz Ketchup", "Visitors in millions": 10.0, "Type": "World Expo", "No. countries represented": 35.0, "Thumbnail": "
", "Image Source": "Map of Centennial grounds, Fairmount Park, Philade..., [1876], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1876.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -75.2138397, 39.983015099999989 ] } },
+{ "type": "Feature", "properties": { "Location": "Paris, France", "Year": 1878.0, "Dates": "05\/1878-11\/1878", "Theme": "New Technologies", "Notables": "Statue of Liberty, Telephone, Braille", "Visitors in millions": 16.0, "Type": "World Expo", "No. countries represented": 36.0, "Thumbnail": "
", "Image Source": "General plan of the International Exposition, Pari..., 1878, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1878.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 2.295145399999989, 48.8660811 ] } },
+{ "type": "Feature", "properties": { "Location": "Paris, France", "Year": 1889.0, "Dates": "05\/1889-10\/1889", "Theme": "French Revolution", "Notables": "Eiffel Tower, Annie Oakley", "Visitors in millions": 32.0, "Type": "World Expo", "No. countries represented": 35.0, "Thumbnail": "
", "Image Source": "General plan of the International Exposition, Pari..., 1878, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1889.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 2.295145399999989, 48.8660811 ] } },
+{ "type": "Feature", "properties": { "Location": "Chicago, United States", "Year": 1893.0, "Dates": "05\/1893-10\/1893", "Theme": "Discovery of America", "Notables": "Midway Plaisance, Fine Arts Building, Fluorescent lamp, Ferris wheel", "Visitors in millions": 27.5, "Type": "World Expo", "No. countries represented": 19.0, "Thumbnail": "
", "Image Source": "[World's fair album, 1893], [1893], © The Newberry Library. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1893.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -87.6162816, 41.7796598 ] } },
+{ "type": "Feature", "properties": { "Location": "Brussels, Belgium", "Year": 1897.0, "Dates": "05\/1897-11\/1897", "Theme": "Modern Life", "Notables": null, "Visitors in millions": 7.8, "Type": "World Expo", "No. countries represented": 27.0, "Thumbnail": "
", "Image Source": "Bruxelles-exposition 1897: plan général, 16 Nov 1895, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1897.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 4.3579037, 50.8419778 ] } },
+{ "type": "Feature", "properties": { "Location": "Paris, France", "Year": 1900.0, "Dates": "04\/1900-11\/1900", "Theme": "19th Century: an overview", "Notables": "Motion Pictures, Escalator, Summer Olympics", "Visitors in millions": 50.8, "Type": "World Expo", "No. countries represented": 58.0, "Thumbnail": "
", "Image Source": "[Maps and plans], [1900], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1900.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 2.347822, 48.834566 ] } },
+{ "type": "Feature", "properties": { "Location": "St. Louis, United States", "Year": 1904.0, "Dates": "04\/1904-12\/1904", "Theme": "Louisiana Purchase", "Notables": "Forest Park, Palace of Fine Art, Vulcan statue, In conjunction with Summer Olympics", "Visitors in millions": 19.69, "Type": "World Expo", "No. countries represented": 63.0, "Thumbnail": "
", "Image Source": "Ground plan of the Louisiana Purchase Exposition: ..., [1904], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1904.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -90.0637281, 29.9579735 ] } },
+{ "type": "Feature", "properties": { "Location": "Liège, Belgium", "Year": 1905.0, "Dates": "04\/1905-11\/1905", "Theme": "Commemoration of the 75th anniversary of independence", "Notables": null, "Visitors in millions": 7.0, "Type": "World Expo", "No. countries represented": 31.0, "Thumbnail": "
", "Image Source": "Plan bijou de l'Exposition Universelle de Liège 19..., [1905], © Hagley Museum and Library. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1905.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 5.5796662, 50.6325574 ] } },
+{ "type": "Feature", "properties": { "Location": "Brussels, Belgium", "Year": 1910.0, "Dates": "04\/1910-11\/1910", "Theme": "Works of Art and Science, Agricultural and Industrial Products of All Nations", "Notables": null, "Visitors in millions": 13.0, "Type": "World Expo", "No. countries represented": 26.0, "Thumbnail": "
", "Image Source": "Colonies Française, [1910], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1910.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 4.3579037, 50.8419778 ] } },
+{ "type": "Feature", "properties": { "Location": "San Francisco, United States", "Year": 1915.0, "Dates": "02\/1915-12\/1915", "Theme": "Inauguration of the Panama Canal", "Notables": "Tower of Jewels. Palace of Fine Arts", "Visitors in millions": 19.0, "Type": "World Expo", "No. countries represented": 32.0, "Thumbnail": "
", "Image Source": "Souvenir postcard featuring 'Elizabeth, the living..., 18 Nov 1915, © Bancroft Library, University of California, Berkeley. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1915.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -122.4686755, 37.771469 ] } },
+{ "type": "Feature", "properties": { "Location": "Barcelona, Spain", "Year": 1929.0, "Dates": "05\/1929-01\/1930", "Theme": "Arts, Industryand Sport", "Notables": "Barcelona Pavilion. Palau Nacional. Montjuïc Stadium", "Visitors in millions": 5.8, "Type": "World Expo", "No. countries represented": 29.0, "Thumbnail": "
", "Image Source": "International Exhibition Barcelona 1929, [1929], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1929.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 2.1501628, 41.3706091 ] } },
+{ "type": "Feature", "properties": { "Location": "Chicago, United States", "Year": 1933.0, "Dates": "05\/1933-10\/1934", "Theme": "The interdependence among Industry and scientific research", "Notables": "Sky Ride, Graf Zeppelin, Homes of Tomorrow", "Visitors in millions": 48.6, "Type": "World Expo", "No. countries represented": 19.0, "Thumbnail": "
", "Image Source": "Havoline thermometer, 1933, © University of Illinois at Chicago Library, Special Collections. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1933.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -87.629798199999982, 41.878113599999985 ] } },
+{ "type": "Feature", "properties": { "Location": "Stockholm, Sweden", "Year": 1936.0, "Dates": "05\/1936-06\/1936", "Theme": "Aviation", "Notables": "Stockholm Bromma Airport", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 8.0, "Thumbnail": "
", "Image Source": "Stockholms utställningen 1930: officiellt vyalbum, 1930, © Hagley Museum and Library. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1936.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 18.06858080000001, 59.3293235 ] } },
+{ "type": "Feature", "properties": { "Location": "Paris, France", "Year": 1937.0, "Dates": "05\/1937-11\/1937", "Theme": "Arts and Technology in modern life", "Notables": "Arc de Triomphe", "Visitors in millions": 31.0, "Type": "World Expo", "No. countries represented": 44.0, "Thumbnail": "
", "Image Source": "Paris welcomes you, [1937], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1937.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 2.356317500000012, 48.851756699999981 ] } },
+{ "type": "Feature", "properties": { "Location": "New York City, United States", "Year": 1939.0, "Dates": "05\/1939-09\/1939", "Theme": "Building The World of Tomorrow", "Notables": "Flushing Park, Bell Labs' Voder, Magna Carta, 1st World Science Fiction Convention", "Visitors in millions": 45.0, "Type": "World Expo", "No. countries represented": 54.0, "Thumbnail": "
", "Image Source": "Postcards, [1933-1934]; [1939-1940], © University of Illinois at Chicago Library, Special Collections. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1939_NYC.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -73.840785, 40.7397136 ] } },
+{ "type": "Feature", "properties": { "Location": "Brussels, Belgium", "Year": 1958.0, "Dates": "07\/1958-09\/1958", "Theme": "A World View: A New Humanism", "Notables": "Heysel, Atomium", "Visitors in millions": 41.0, "Type": "World Expo", "No. countries represented": 42.0, "Thumbnail": "
", "Image Source": "Plan Expo 58, [1958], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1958.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 4.341547, 50.894941 ] } },
+{ "type": "Feature", "properties": { "Location": "Seattle, United States", "Year": 1962.0, "Dates": "04\/1962-10\/1962", "Theme": "Man in the Space Age", "Notables": "Seattle Center, Space Needle, Seattle Monorail", "Visitors in millions": 9.6, "Type": "World Expo", "No. countries represented": 24.0, "Thumbnail": "
", "Image Source": "[Seattle 1962 slides], [1962], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1962.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -122.3173963, 47.711200499999975 ] } },
+{ "type": "Feature", "properties": { "Location": "Montreal, Canada", "Year": 1967.0, "Dates": "04\/1967-10\/1967", "Theme": "Man and His World", "Notables": "Canadian Centennial, Montreal Metro, Habitat '67, Montreal Biosphère", "Visitors in millions": 50.0, "Type": "World Expo", "No. countries represented": 62.0, "Thumbnail": "
", "Image Source": "Master plan for pavilion complex, 1964, © Government of Canada. Reproduced with the permission of Library and Archives Canada (2015).. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1967.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -73.5437127, 45.4998316 ] } },
+{ "type": "Feature", "properties": { "Location": "San Antonio, United States", "Year": 1968.0, "Dates": "04\/1968-10\/1968", "Theme": "Confluence of Civilizations in the Americas", "Notables": "Tower of the Americas, Institute of Texan Cultures, HemisFair Arena", "Visitors in millions": 6.4, "Type": "Specialised Expo", "No. countries represented": 23.0, "Thumbnail": "
", "Image Source": "[Routes to San Antonio and a map of HemisFair '68], [1968], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1968.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -98.484081499999988, 29.4191082 ] } },
+{ "type": "Feature", "properties": { "Location": "Osaka, Japan", "Year": 1970.0, "Dates": "03\/1970-09\/1970", "Theme": "Progress and Harmony for Mankind", "Notables": "Tower of the Sun, Moon rock, Electric Cars", "Visitors in millions": 64.2, "Type": "World Expo", "No. countries represented": 75.0, "Thumbnail": "
", "Image Source": "[1969 calendar], [1969], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1970.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 135.5257193, 34.686178699999971 ] } },
+{ "type": "Feature", "properties": { "Location": "Spokane, United States", "Year": 1974.0, "Dates": "05\/1974-11\/1974", "Theme": "Celebrating Tomorrow's Fresh New Environment", "Notables": "IMAX", "Visitors in millions": 5.6, "Type": "Specialised Expo", "No. countries represented": 10.0, "Thumbnail": "
", "Image Source": "[Promotional material for Expo '74], [1972-1973], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1974.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -117.4193856, 47.662695399999983 ] } },
+{ "type": "Feature", "properties": { "Location": "Okinawa, Japan", "Year": 1975.0, "Dates": "07\/1975-01\/1976", "Theme": "The Sea We would like to See", "Notables": "Okinawa Churaumi Aquarium", "Visitors in millions": 3.48, "Type": "Specialised Expo", "No. countries represented": 35.0, "Thumbnail": "
", "Image Source": "[Expo '75 brochure], 1975, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1975.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 127.805605800000023, 26.334353299999989 ] } },
+{ "type": "Feature", "properties": { "Location": "Knoxville, United States", "Year": 1982.0, "Dates": "05\/1982-10\/1982", "Theme": "Energy Turns the World", "Notables": "Sunsphere", "Visitors in millions": 11.0, "Type": "Specialised Expo", "No. countries represented": 16.0, "Thumbnail": "
", "Image Source": "The 1982 World's Fair: souvenir pictorial book, 1981, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1982.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -83.9231848, 35.961648799999978 ] } },
+{ "type": "Feature", "properties": { "Location": "New Orleans, United States", "Year": 1984.0, "Dates": "05\/1984-11\/1984", "Theme": "The World of Rivers– Fresh Water as a source of life", "Notables": "Convention Center", "Visitors in millions": 7.35, "Type": "Specialised Expo", "No. countries represented": 15.0, "Thumbnail": "
", "Image Source": "[Assorted postcards], 1983-1984, © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1984.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -90.0715323, 29.951065799999977 ] } },
+{ "type": "Feature", "properties": { "Location": "Tsukuba, Japan", "Year": 1985.0, "Dates": "03\/1985-09\/1985", "Theme": "Dwellings and Surroundings – Science and Technology for Man at Home", "Notables": null, "Visitors in millions": 20.3, "Type": "Specialised Expo", "No. countries represented": 48.0, "Thumbnail": "
", "Image Source": "Tsukuba Expo '85: official guide book, [1985], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1985.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 140.076445399999983, 36.0835255 ] } },
+{ "type": "Feature", "properties": { "Location": "Vancouver, Canada", "Year": 1986.0, "Dates": "05\/1986-10\/1986", "Theme": "Transportationand Communication: World in Motion - World in Touch", "Notables": "Science World, Skytrain, BC Place, Canada Place", "Visitors in millions": 22.11, "Type": "Specialised Expo", "No. countries represented": 55.0, "Thumbnail": "
", "Image Source": "Official souvenir guide: Expo 86, [1986], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1986.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -123.1221515, 49.2731889 ] } },
+{ "type": "Feature", "properties": { "Location": "Brisbane, Australia", "Year": 1988.0, "Dates": "04\/1988-10\/1988", "Theme": "Leisure in the Age of Technology", "Notables": "Sunsails, Skyneedle", "Visitors in millions": 18.5, "Type": "Specialised Expo", "No. countries represented": 36.0, "Thumbnail": "
", "Image Source": "Sculpture: the World Expo 88 collection, 1988, © Hagley Museum and Library. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/1988.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 153.0251235, -27.4697707 ] } },
+{ "type": "Feature", "properties": { "Location": "Hanover, Germany", "Year": 2000.0, "Dates": "06\/2000-10\/2000", "Theme": "Man, Nature, Technology", "Notables": "Hannover Principles", "Visitors in millions": 18.1, "Type": "World Expo", "No. countries represented": 155.0, "Thumbnail": "
", "Image Source": "Beiträge zur Diskussion: Weltausstellung EXPO 2000..., 5 Oct 1991, © Hagley Museum and Library. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/2000.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 9.8202205, 52.319133799999989 ] } },
+{ "type": "Feature", "properties": { "Location": "Aichi, Japan", "Year": 2005.0, "Dates": "03\/2005-09\/2005", "Theme": "Nature's Wisdom", "Notables": "Satsuki and Mei's House, ASIMO, The Frozen Mammoth", "Visitors in millions": 22.04, "Type": "Specialised Expo", "No. countries represented": 121.0, "Thumbnail": "
", "Image Source": "Expo 2005 Aichi Japan official map, [2005], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/2005.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 137.090657, 35.172823299999983 ] } },
+{ "type": "Feature", "properties": { "Location": "Zaragoza, Spain", "Year": 2008.0, "Dates": "06\/2008-09\/2008", "Theme": "Water and Sustainable development", "Notables": "Bridge Pavilion, Water Tower", "Visitors in millions": 5.65, "Type": "Specialised Expo", "No. countries represented": 108.0, "Thumbnail": "
", "Image Source": "[Collection of brochures], April-Jul 2006; May 2007; [2008], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/2008.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ -0.897957, 41.6684737 ] } },
+{ "type": "Feature", "properties": { "Location": "Shanghai, China", "Year": 2010.0, "Dates": "05\/2010-10\/2010", "Theme": "Better City, Better Life", "Notables": "Expo Axis, Oriental Crown (Currently China Art Museum, Shanghai)", "Visitors in millions": 73.08, "Type": "World Expo", "No. countries represented": 246.0, "Thumbnail": "
", "Image Source": "Expo 2010 Shanghai, China: official map, [2010], © Special Collections Research Center, Henry Madden Library, California State University, Fresno. Accessed from World's Fairs: A Global History of Expositions", "Image Link": "https:\/\/github.com\/taylorhixson\/WF\/blob\/master\/images\/2010.pdf.png?raw=true" }, "geometry": { "type": "Point", "coordinates": [ 121.494775, 31.184475 ] } },
+{ "type": "Feature", "properties": { "Location": "Paris, France", "Year": 1855.0, "Dates": "05\/1855-11\/1855", "Theme": "Agriculture, Industry and Art", "Notables": "Palais d'Industrie, Bordeaux Wine classification", "Visitors in millions": 5.0, "Type": "World Expo", "No. countries represented": 25.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 2.3522219, 48.856614 ] } },
+{ "type": "Feature", "properties": { "Location": "London, United Kingdom of Great Britain and Ireland", "Year": 1862.0, "Dates": "05\/1862-11\/1862", "Theme": "Industry and Arts", "Notables": null, "Visitors in millions": 6.0, "Type": "World Expo", "No. countries represented": 39.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 0.029846, 51.5084601 ] } },
+{ "type": "Feature", "properties": { "Location": "Melbourne, Australia", "Year": 1880.0, "Dates": "10\/1880-04\/1881", "Theme": "Arts, Manufacturing, Agriculture and Industrial Products of all Nations", "Notables": "Royal Exhibition Buildings & Carlton Gardens", "Visitors in millions": 1.3, "Type": "World Expo", "No. countries represented": 33.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 144.968927799999989, -37.8225942 ] } },
+{ "type": "Feature", "properties": { "Location": "Barcelona, Spain", "Year": 1888.0, "Dates": "04\/1888-12\/1888", "Theme": "Fine and Industrial Arts", "Notables": "Arc de Triomf, Columbus Monument", "Visitors in millions": 2.3, "Type": "World Expo", "No. countries represented": 30.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 2.1734035, 41.385063899999984 ] } },
+{ "type": "Feature", "properties": { "Location": "Milan, Italy", "Year": 1906.0, "Dates": "04\/1906-11\/1906", "Theme": "Transport", "Notables": "Electric Tramways", "Visitors in millions": 10.0, "Type": "World Expo", "No. countries represented": 25.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 9.2168477, 45.4418333 ] } },
+{ "type": "Feature", "properties": { "Location": "Ghent, Belgium", "Year": 1913.0, "Dates": "04\/1913-11\/1913", "Theme": "Peace, Industry and Art", "Notables": "Gent-Sint-Pieters railway station", "Visitors in millions": 9.5, "Type": "World Expo", "No. countries represented": 24.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 3.6919535, 51.026938800000025 ] } },
+{ "type": "Feature", "properties": { "Location": "Brussels, Belgium", "Year": 1935.0, "Dates": "04\/1935-11\/1935", "Theme": "Transports", "Notables": null, "Visitors in millions": 20.0, "Type": "World Expo", "No. countries represented": 30.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 4.3579037, 50.8419778 ] } },
+{ "type": "Feature", "properties": { "Location": "Helsinki, Finland", "Year": 1938.0, "Dates": "05\/1938-05\/1938", "Theme": "Aerospace", "Notables": "Malmi Airterminal", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 25.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 24.9383791, 60.1698557 ] } },
+{ "type": "Feature", "properties": { "Location": "Liège, Belgium", "Year": 1939.0, "Dates": "04\/1939-10\/1940", "Theme": "Art of Water", "Notables": "Albert Canal", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 8.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 5.5796662, 50.6325574 ] } },
+{ "type": "Feature", "properties": { "Location": "Paris, France", "Year": 1947.0, "Dates": "07\/1947-08\/1947", "Theme": "Urbanism and Housing", "Notables": "Immeubles d’Etat", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 14.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 2.3522219, 48.856614 ] } },
+{ "type": "Feature", "properties": { "Location": "Stockholm, Sweden", "Year": 1949.0, "Dates": "07\/1949-08\/1949", "Theme": "Sport and physical culture", "Notables": "Pehr Henrik Ling", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 37.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 18.06858080000001, 59.3293235 ] } },
+{ "type": "Feature", "properties": { "Location": "Lyon, France", "Year": 1949.0, "Dates": "09\/1949-10\/1949", "Theme": "Rural Habitat", "Notables": "Foire de Lyon", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": null, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 4.835659, 45.764043 ] } },
+{ "type": "Feature", "properties": { "Location": "Port-au-Prince, Haiti", "Year": 1950.0, "Dates": "12\/1949-06\/1950", "Theme": "The festival of Peace", "Notables": "Gulf of Gonâve", "Visitors in millions": null, "Type": "World Expo", "No. countries represented": 15.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ -72.3460117, 18.5486189 ] } },
+{ "type": "Feature", "properties": { "Location": "Lille, France", "Year": 1951.0, "Dates": "04\/1951-05\/1951", "Theme": "Textile", "Notables": "Textile", "Visitors in millions": 1.5, "Type": "Specialised Expo", "No. countries represented": 22.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 3.057256, 50.62925 ] } },
+{ "type": "Feature", "properties": { "Location": "Rome, Italy", "Year": 1953.0, "Dates": "07\/1953-10\/1953", "Theme": "Agriculture", "Notables": "Esposizione Universale Roma, Palazzo della Civiltà Italiana", "Visitors in millions": 1.7, "Type": "Specialised Expo", "No. countries represented": null, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 12.4963655, 41.902783499999984 ] } },
+{ "type": "Feature", "properties": { "Location": "Jerusalem, Israel", "Year": 1953.0, "Dates": "09\/1953-10\/1953", "Theme": "Conquest of the Desert", "Notables": null, "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 13.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 35.21371, 31.768319 ] } },
+{ "type": "Feature", "properties": { "Location": "Naples, Italy", "Year": 1954.0, "Dates": "05\/1954-10\/1954", "Theme": "Navigation", "Notables": null, "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 25.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 14.26812, 40.8517983 ] } },
+{ "type": "Feature", "properties": { "Location": "Turin, Italy", "Year": 1955.0, "Dates": "05\/1955-06\/1955", "Theme": "Sport", "Notables": null, "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 11.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 7.686864, 45.0703393 ] } },
+{ "type": "Feature", "properties": { "Location": "Helsingborg, Sweden", "Year": 1955.0, "Dates": "06\/1955-08\/1955", "Theme": "Modern Man in the Environment", "Notables": null, "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 10.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 12.6945121, 56.046467399999976 ] } },
+{ "type": "Feature", "properties": { "Location": "Beit Dagan, Israel", "Year": 1956.0, "Dates": "05\/1956-06\/1956", "Theme": "Citrus", "Notables": null, "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": null, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 34.8297087, 32.001781599999973 ] } },
+{ "type": "Feature", "properties": { "Location": "Berlin, Germany", "Year": 1957.0, "Dates": "07\/1957-09\/1957", "Theme": "Reconstruction of Hansa District", "Notables": "Hansaviertel", "Visitors in millions": 1.0, "Type": "Specialised Expo", "No. countries represented": 13.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 13.3442606, 52.5175227 ] } },
+{ "type": "Feature", "properties": { "Location": "Turin, Italy", "Year": 1961.0, "Dates": "05\/1961-10\/1961", "Theme": "Celebration of centennial of Italian unity", "Notables": "Palazzo del Lavoro", "Visitors in millions": 5.0, "Type": "Specialised Expo", "No. countries represented": 19.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 7.686864, 45.0703393 ] } },
+{ "type": "Feature", "properties": { "Location": "Munich, Germany", "Year": 1965.0, "Dates": "06\/1965-10\/1965", "Theme": "Transport", "Notables": "E03", "Visitors in millions": 3.2, "Type": "Specialised Expo", "No. countries represented": 36.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 11.5819805, 48.135125299999984 ] } },
+{ "type": "Feature", "properties": { "Location": "Budapest, Hungary", "Year": 1971.0, "Dates": "08\/1971-09\/1971", "Theme": "The Hunt through the World", "Notables": "International Council for Game and Wildlife Conservation (CIC)", "Visitors in millions": 1.9, "Type": "Specialised Expo", "No. countries represented": 52.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 19.040235, 47.497912 ] } },
+{ "type": "Feature", "properties": { "Location": "Plovdiv, Bulgaria", "Year": 1981.0, "Dates": "06\/1981-07\/1981", "Theme": "Hunting", "Notables": "International Fair Plovdiv", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": null, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 24.7452904, 42.135407899999976 ] } },
+{ "type": "Feature", "properties": { "Location": "Plovdiv, Bulgaria", "Year": 1985.0, "Dates": "11\/1985-11\/1985", "Theme": "Inventions", "Notables": "International Fair Plovdiv", "Visitors in millions": 1.0, "Type": "Specialised Expo", "No. countries represented": 73.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 24.7452904, 42.135407899999976 ] } },
+{ "type": "Feature", "properties": { "Location": "Plovdiv, Bulgaria", "Year": 1991.0, "Dates": "06\/1991-07\/1991", "Theme": "The activity of young people in the service of a World of Peace", "Notables": "World Intellectual Property Organization", "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": 8.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 24.7452904, 42.135407899999976 ] } },
+{ "type": "Feature", "properties": { "Location": "Seville, Spain", "Year": 1992.0, "Dates": "04\/1992-10\/1992", "Theme": "The Era of Discovery", "Notables": "Puente del Alamillo", "Visitors in millions": 41.8, "Type": "World Expo", "No. countries represented": 108.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ -6.0079945, 37.3942036 ] } },
+{ "type": "Feature", "properties": { "Location": "Genoa, Italy", "Year": 1992.0, "Dates": "05\/1992-08\/1992", "Theme": "Christopher Columbus, The Ship and the Sea", "Notables": "Aquarium of Genoa", "Visitors in millions": 1.7, "Type": "Specialised Expo", "No. countries represented": 54.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 8.946256, 44.405649899999986 ] } },
+{ "type": "Feature", "properties": { "Location": "Daejeon, South Korea", "Year": 1993.0, "Dates": "08\/1993-11\/1993", "Theme": "The Challenge of a New Road of Development", "Notables": "Expo Science Park, Daejeon Museum of Art", "Visitors in millions": 14.5, "Type": "Specialised Expo", "No. countries represented": 141.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 127.384547499999968, 36.3504119 ] } },
+{ "type": "Feature", "properties": { "Location": "Lisbon, Portugal", "Year": 1998.0, "Dates": "05\/1998-09\/1998", "Theme": "The Oceans: A Heritage for the Future", "Notables": "Pavilhão Atlântico, Lisbon Oceanarium, Pavilion of Portugal", "Visitors in millions": 10.1, "Type": "Specialised Expo", "No. countries represented": 143.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ -9.095460900000013, 38.7656643 ] } },
+{ "type": "Feature", "properties": { "Location": "Yeosu, South Korea", "Year": 2012.0, "Dates": "05\/2012-08\/2012", "Theme": "The Living Ocean and Coast", "Notables": "The Big-O, The Sky Tower", "Visitors in millions": 8.2, "Type": "Specialised Expo", "No. countries represented": 103.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 127.7481192, 34.7470952 ] } },
+{ "type": "Feature", "properties": { "Location": "Milan, Italy", "Year": 2015.0, "Dates": "05\/2015-10\/2015", "Theme": "Feeding the planet, Energy for life", "Notables": "The Tree of Life", "Visitors in millions": 21.5, "Type": "World Expo", "No. countries represented": 145.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 9.1005501, 45.520111300000011 ] } },
+{ "type": "Feature", "properties": { "Location": "Astana, Kazakhstan", "Year": 2017.0, "Dates": "06\/2017-09\/2017", "Theme": "Future Energy", "Notables": "The Nur Alem Sphere", "Visitors in millions": 4.1, "Type": "Specialised Expo", "No. countries represented": 115.0, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 71.415963099999971, 51.0892196 ] } },
+{ "type": "Feature", "properties": { "Location": "Dubai, United Arab Emirates", "Year": 2020.0, "Dates": "2020", "Theme": "Connecting Minds, Creating the Future", "Notables": null, "Visitors in millions": null, "Type": "World Expo", "No. countries represented": null, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 55.1585112, 24.967213799999989 ] } },
+{ "type": "Feature", "properties": { "Location": "Buenos Aires, Argentina", "Year": 2023.0, "Dates": "2023", "Theme": "Creative Industries in Digital Convergence", "Notables": null, "Visitors in millions": null, "Type": "Specialised Expo", "No. countries represented": null, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ -58.381559100000011, -34.6036844 ] } },
+{ "type": "Feature", "properties": { "Location": "Osaka, Japan", "Year": 2025.0, "Dates": "2025", "Theme": "Designing Future Society for Our Lives", "Notables": null, "Visitors in millions": null, "Type": "World Expo", "No. countries represented": null, "Thumbnail": null, "Image Source": null, "Image Link": null }, "geometry": { "type": "Point", "coordinates": [ 135.519444199999981, 34.688172 ] } }
+]
+}
diff --git a/webapp_test/index.html b/webapp_test/index.html
new file mode 100644
index 0000000..8a8ef85
--- /dev/null
+++ b/webapp_test/index.html
@@ -0,0 +1,175 @@
+
+
+
(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.x k.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(!(x a.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.roofHeight this.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;d f.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;c OSM Buildings