diff --git a/src/main/resources/leafletmap/leaflet-color-markers/README.md b/src/main/resources/leafletmap/leaflet-color-markers/README.md new file mode 100644 index 0000000..b37cfab --- /dev/null +++ b/src/main/resources/leafletmap/leaflet-color-markers/README.md @@ -0,0 +1,29 @@ +leaflet-color-markers +===================== + +color variations of the standard leaflet markers: + +| Color | Marker 2x | Marker | +| ------------- |:-------------:|:-----:| +| Blue | ![Marker Red 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-blue.png?raw=true) | ![Marker Red](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png?raw=true) | +| Red | ![Marker Red 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-red.png?raw=true) | ![Marker Red](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-red.png?raw=true) | +| Green | ![Marker Green 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-green.png?raw=true) | ![Marker Green](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-green.png?raw=true) | +| Orange | ![Marker Orange 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-orange.png?raw=true) | ![Marker Orange](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-orange.png?raw=true) | +| Yellow | ![Marker Grey 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-yellow.png?raw=true) | ![Marker Grey](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-yellow.png?raw=true) | +| Violet | ![Marker Grey 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-violet.png?raw=true) | ![Marker Grey](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-violet.png?raw=true) | +| Grey | ![Marker Grey 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-grey.png?raw=true) | ![Marker Grey](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-grey.png?raw=true) | +| Black | ![Marker Grey 2x](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-black.png?raw=true) | ![Marker Grey](https://raw.github.com/pointhi/leaflet-color-markers/master/img/marker-icon-black.png?raw=true) | + +### Usage +```javascript +var greenIcon = new L.Icon({ + iconUrl: 'https://cdn.rawgit.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-green.png', + shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map); +``` diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/aircraft.png b/src/main/resources/leafletmap/leaflet-color-markers/images/aircraft.png new file mode 100644 index 0000000000000000000000000000000000000000..8dede3bce79b267873eebbaee2475d39223919ca GIT binary patch literal 8588 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 S!X8op0000 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 M07*qoM6N<$f(C|`*Z=?k literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-black-2x.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-black-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..23c94cfed50fb9b7adc5f0b99c5d5e8f4eeb58bc GIT binary patch literal 3183 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-green-2x.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-green-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c359abb6c2c2a1ee7272e3f85ee825583f6924f2 GIT binary patch literal 4203 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-grey-2x.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-grey-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..43b3eb4d01d07fc61d750ad727deb9149c4104f4 GIT binary patch literal 3534 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-orange-2x.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-orange-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c863211cc4075394728df321f3e0281140139c GIT binary patch literal 4167 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 ANB{r; literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-red-2x.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-red-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1c26e9fc20884780a361a49238287ea2f9d50b44 GIT binary patch literal 4230 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-red.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-red.png new file mode 100644 index 0000000000000000000000000000000000000000..3e64e06d1db4eecf0d6e4446630fc4f9b97694b2 GIT binary patch literal 1870 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-violet.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-violet.png new file mode 100644 index 0000000000000000000000000000000000000000..28efc3cc0c72330f9053b3a8ffdd943cb0e3bb41 GIT binary patch literal 1859 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 JPDHLkV1j#5>~{bF literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-yellow.png b/src/main/resources/leafletmap/leaflet-color-markers/images/marker-icon-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..b011eea310ca7f7f53f77a47f99392939667cafb GIT binary patch literal 1862 zcmV-M2f6r(P)P001cn1^@s6z>|W`00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-3$s2F$4pbMwI{n2GdDI zK~z}7rI%}rT~!sw|7-7a?z!jOSEn#j$q0bS222k9=q& z!Q8>1&oXn5AQ4H&)yAaKTI)+eqmX#QTKltGZawzuvLN5NiNyBZ+xG+Fo?O0wTrTH% zo(~~1AR;g`Y^tG5h%gLQtu{r>{5`)bxc8$U`I}x6@~7W#yOtq;=eq8@RFIfpqrcwLWk|l&-Q8Wv<$P#01!jYG2a$y1 z77<1YLqmg2^5n*k-}=u%01y|049TD8^TlisWTE15SgXOz^8^wLKDSmwC6n-d4~0U> zF_HP@#oPh_o_uWEXPD(ptFP|#jIIK(EfT_k>vtgIbwS7#$ar0FGaV2zGcVTYD!MvX zdPH)^kzZ~5A^^~{k8chVLu2dKbq84wFuLBd3{JKPtFssztD@O#LhBe(x(I?Iu3D9c zlm?n>fVP+R$SELBfO2^#&N{Z!i5WLY;ZUyVLnWhtoEw}&5)#ViFJSG4o3Z7?pGKj$ z9?kk7`d)tueQzAW+O?g?20jd5dO3qSa>c74rL-~I8yur(YY=#_CI+XbWg{t*!_de$ z-o2?8*T47n+5ZZq_1LuS>sZlwJx;!KKi+w57hoJPr?VLA#PA%C>Y?5$i1@}_(etfU z)3cZnk&9X-1c?$hzUOlbR@61ueGIw622`e+)B7{WZ>>VE==nr^qp*w}e$EBkq;<11 z4x%W*s?}RTM2nX0n(iHlQw?%ti=S-*Kj*?Sb~swwfQZ1DDbbn1%rJ)GIQbZ6d-#fIw&C>9)OI}X-7r~F+Axe~9O z7&I`thnN|MAKvux`fEyCyE+AoskTg;B|)M9DRW2?MjR`6o{MZ&z)}dUYaqjy6+;Q* zla|ZpsxN;SLSQu21njr{x68T~bnW;dTVQ4)yT_khj zSrSAhi^22tNX58+wn0+Cd0Hv0Y83@xv(tU(GO;$`G=foea2f$xFBm6m7E=>35@i}A z>oz_!3)$6sBDEGj8Xjpx((}QB0k+H6Ourkv(2R`X2M+H1t!ceajCp8$G?rm#A!Kmb z60|3g3DAfXs?~&yN*`^xPXJ)|U1x>?JXC(G9!crXoL;*O0YU^g-`|J;Jh12P*Cysc z06-_|zNxB0qoE<4+=4gYViF=iy`G|8O)UcV`)D}`bH<*#Uz=d2L+AU$NXp#Bv)|S% zq?1GWTr;#5_wDLEQC$=Q0NP{^)uyzm)fA+Y0}(GN$H}8sQ)t#xZH#&F@|^P^U)g)C zM#SGO_eGHq0j!;FBa4ZdK;)zUY#3S+_wK&yOk+t10I;9=VHBC9T20}&`76#sdId~X z6{4nzy;Akzh4L*3+0}a@v=#@;eMuxJn7Op(?*$P-*euF@NyJRwy5sZb;uRRsgOiweB>P)e{rQeSA-lq{DL-y z4xB%0BOwA1$?0Vx2~dD?zlp8Ifr~xre}VwO$kBg4o~CAaY&eAwc>oqt7BKp@f==w< z$kEfkSt`epkb}>&Wv2ZX`fUsZAo9WNWBRw)fAD#>|2G5xhQ4}&hmrQNSz0Qkv+@B5eM)21Zilf8Go zy18ASz%m9i?TteaGws9jjJz!U_y_Mluw2i70ck(V0nU5%!2kdN07*qoM6N<$f=$hI A%>V!Z literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet-color-markers/leaflet-color-markers.js b/src/main/resources/leafletmap/leaflet-color-markers/leaflet-color-markers.js new file mode 100644 index 0000000..b45252b --- /dev/null +++ b/src/main/resources/leafletmap/leaflet-color-markers/leaflet-color-markers.js @@ -0,0 +1,93 @@ +const blueIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-blue.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-blue-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const redIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-red.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-red-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const greenIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-green.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-green-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const orangeIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-orange.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-orange-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const yellowIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-yellow.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-yellow-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const violetIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-violet.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-violet-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const greyIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-grey.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-grey-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const blackIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/marker-icon-black.png', + iconRetinaUrl: 'leaflet-color-markers/images/marker-icon-black-2x.png', + shadowUrl: 'leaflet/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); + +const aircraftIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/aircraft.png', + iconSize: [32, 32], + iconAnchor: [16, 16], + popupAnchor: [1, -34], +}); + +const aircraftSmallIcon = new L.Icon({ + iconUrl: 'leaflet-color-markers/images/aircraftSmall.png', + iconSize: [32, 32], + iconAnchor: [16, 16], + popupAnchor: [1, -34], +}); \ No newline at end of file diff --git a/src/main/resources/leafletmap/leaflet/images/layers-2x.png b/src/main/resources/leafletmap/leaflet/images/layers-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..200c333dca9652ac4cba004d609e5af4eee168c1 GIT binary patch literal 1259 zcmVFhCYNy;#0irRPomHqW|G1C*;4?@4#E?jH>?v@U%cy?3dQAc-DchXVErpOh~ z-jbon+tNbnl6hoEb;)TVk+%hTDDi_G%i3*RZ&15!$Fjr^f;Ke&A@|?=`2&+{zr+3a z{D*=t(`AXyS%X7N z%a#RZw6vD^t_rnM`L4E>m=U&R!A-&}nZIi$BOPvkhrCuUe@BN~-lRD)f44;J%TwgE zcze8u!PQ_NR7?o(NylLXVTfDO zxs5=@|GsYEsNo4M#nT%N!UE(?dnS)t2+{ELYAFp*3=iF=|EQnTp`#vlSXuGVraYo? z+RCzXo6h3qA8{KG?S4nE(lM+;Eb4nT3XV;7gcAxUi5m)`k5tv}cPy()8ZR3TLW3I- zAS^}cq-IJvL7a4RgR!yk@~RT%$lA7{L5ES*hyx)M4(yxI$Ub(4f)K|^v1>zvwQY!_ zIrWw8q9GS^!Dp~}+?mbnB6jDF8mVlbQ!jFKDY;w=7;XO{9bq7>LXGK24WA`;rL)_Z z)&j}pbV(;6gY;VMhbxgvn`X;6x}VUEE-7 z%)7j-%t8S=ZL3yc)HbXDAqJZvBTPoiW_A-+a8m3_Z?v{DN7Tnr#O_VUMT0UBt$;p` zDh6JbGHN8JJ*JN%y2%msb97@_S>9!%Egwk;?PEkU9ntz&3uR}%Fj5d$JHQbQb3}a{ zSzFT^#n=VInPpcAS}CNxj?_ zVscANk5Cfz(51EI1pz};AWWb|kgbYNb4wCEGUn3+eMUMV?1-{=I4TlmLJMot@rd07 zZuo2hk1ccu{YmGkcYdWAVdk{Z4Nm?^cTD&}jGm+Q1SYIXMwmG*oO*83&#>l%nbR`G zhh=lZ%xIb7kU3#;TBbfECrnC9P=-XpL|TG2BoZdj61*XiFbW8?1Z_wp%#;>${SUIy V$8qr;L*)Pf002ovPDHLkV1hYLS~36t literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet/images/layers.png b/src/main/resources/leafletmap/leaflet/images/layers.png new file mode 100644 index 0000000000000000000000000000000000000000..1a72e5784b2b456eac5d7670738db80697af3377 GIT binary patch literal 696 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 UQO-*oc+)|Q_08}VdXD6O0C*xx%>V!Z literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet/images/marker-icon.png b/src/main/resources/leafletmap/leaflet/images/marker-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..950edf24677ded147df13b26f91baa2b0fa70513 GIT binary patch literal 1466 zcmV;r1x5OaP)P001cn1^@s6z>|W`000GnNklGNuHDcIX17Zdjl&3`L?0sTjIws<{((Dh&g-s0<@jYQyl?D*X^?%13;ml^gy> ziMrY_^1WI=(g@LMizu=zCoA>C`6|QEq1eV92k*7m>G65*&@&6)aC&e}G zI)pf-Za|N`DT&Cn1J|o`19mumxW~hiKiKyc-P`S@q)rdTo84@QI@;0yXrG%9uhI>A zG5QHb6s4=<6xy{1 z@NMxEkryp{LS44%z$3lP^cX!9+2-;CTt3wM4(k*#C{aiIiLuB>jJj;KPhPzIC00bL zU3a#;aJld94lCW=`4&aAy8M7PY=HQ>O%$YEP4c4UY#CRxfgbE~(|uiI=YS8q;O9y6 zmIkXzR`}p7ti|PrM3a}WMnR=3NVnWdAAR>b9X@)DKL6=YsvmH%?I24wdq?Gh54_;# z$?_LvgjEdspdQlft#4CQ z`2Zyvy?*)N1Ftw|{_hakhG9WjS?Az@I@+IZ8JbWewR!XUK4&6346+d#~gsE0SY(LX8&JfY>Aj)RxGy96nwhs2rv zzW6pTnMpFkDSkT*a*6Dx|u@ds6ISVn0@^RmIsKZ5Y;bazbc;tTSq(kg(=481ODrPyNB6n z-$+U}(w$m6U6H$w17Bw+wDaFIe~GvNMYvnw31MpY0eQKT9l>SU``8k7w4)z!GZKMI z#_cEKq7k~i%nlK@6c-K?+R;B#5$?T#YpKD`t_4bAs^#E+@5QW$@OX3*`;(#{U^d-vY)&xEE>n5lYl&T?Amke9$Lam@{1K@O ze*LXqlKQHiv=gx+V^Cbb2?z@ISBQ*3amF;9UJ3SBg(N|710TLamQmYZ&Qjn2LuO<* zCZlB4n%@pc&7NNnY1}x+NWpHlq`OJEo|`aYN9<`RBUB+79g;>dgb6YlfN#kGL?lO_ z!6~M^7sOnbsUkKk<@Ysie&`G>ruxH&Mgy&8;i=A zB9OO!xR{AyODw>DS-q5YM{0ExFEAzt zm>RdS+ssW(-8|?xr0(?$vBVB*%(xDLtq3Hf0I5yFm<_g=W2`QWAax{1rWVH=I!VrP zs(rTFX@W#t$hXNvbgX`gK&^w_YD;CQ!B@e0QbLIWaKAXQe2-kkloo;{iF#6}z!4=W zi$giRj1{ zt;2w`VSCF#WE&*ev7jpsC=6175@(~nTE2;7M-L((0bH@yG}-TB$R~WXd?tA$s3|%y zA`9$sA(>F%J3ioz<-LJl*^o1|w84l>HBR`>3l9c8$5Xr@xCiIQ7{x$fMCzOk_-M=% z+{a_Q#;42`#KfUte@$NT77uaTz?b-fBe)1s5XE$yA79fm?KqM^VgLXD07*qoM6N<$ Ef<_J(9smFU literal 0 HcmV?d00001 diff --git a/src/main/resources/leafletmap/leaflet/leaflet.css b/src/main/resources/leafletmap/leaflet/leaflet.css new file mode 100644 index 0000000..95efed7 --- /dev/null +++ b/src/main/resources/leafletmap/leaflet/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; + } \ No newline at end of file diff --git a/src/main/resources/leafletmap/leaflet/leaflet.js b/src/main/resources/leafletmap/leaflet/leaflet.js new file mode 100644 index 0000000..24042d1 --- /dev/null +++ b/src/main/resources/leafletmap/leaflet/leaflet.js @@ -0,0 +1,9 @@ +/* + Leaflet 1.0.3+ed36a04, a JS library for interactive maps. http://leafletjs.com + (c) 2010-2016 Vladimir Agafonkin, (c) 2010-2011 CloudMade +*/ +!function(t,e,i){function n(){var e=t.L;o.noConflict=function(){return t.L=e,this},t.L=o}var o={version:"1.0.3+ed36a04"};"object"==typeof module&&"object"==typeof module.exports?module.exports=o:"function"==typeof define&&define.amd&&define(o),"undefined"!=typeof t&&n(),o.Util={extend:function(t){var e,i,n,o;for(i=1,n=arguments.length;i1}}(),o.Point=function(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e},o.Point.prototype={clone:function(){return new o.Point(this.x,this.y)},add:function(t){return this.clone()._add(o.point(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(o.point(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new o.Point(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new o.Point(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},distanceTo:function(t){t=o.point(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=o.point(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=o.point(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+o.Util.formatNum(this.x)+", "+o.Util.formatNum(this.y)+")"}},o.point=function(t,e,n){return t instanceof o.Point?t:o.Util.isArray(t)?new o.Point(t[0],t[1]):t===i||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new o.Point(t.x,t.y):new o.Point(t,e,n)},o.Bounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,r=s.x>=e.x&&n.x<=i.x,a=s.y>=e.y&&n.y<=i.y;return r&&a},overlaps:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,s=t.max,r=s.x>e.x&&n.xe.y&&n.y0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(n)},addClass:function(t,e){if(t.classList!==i)for(var n=o.Util.splitWords(e),s=0,r=n.length;s=n.lat&&i.lat<=s.lat&&e.lng>=n.lng&&i.lng<=s.lng},intersects:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),r=s.lat>=e.lat&&n.lat<=i.lat,a=s.lng>=e.lng&&n.lng<=i.lng;return r&&a},overlaps:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),s=t.getNorthEast(),r=s.lat>e.lat&&n.late.lng&&n.lngthis.options.maxZoom?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,o.latLngBounds(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=o.extend({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),s=i.divideBy(2).round(),r=n.subtract(s);return r.x||r.y?(t.animate&&t.pan?this.panBy(r):(t.pan&&this._rawPanBy(r),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=o.extend({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),s=n.toBounds(t.coords.accuracy),r=this._locateOptions;if(r.setView){var a=this.getBoundsZoom(s);this.setView(n,r.maxZoom?Math.min(a,r.maxZoom):a)}var h={latlng:n,bounds:s,timestamp:t.timestamp};for(var l in t.coords)"number"==typeof t.coords[l]&&(h[l]=t.coords[l]);this.fire("locationfound",h)},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=i,this._containerId=i}o.DomUtil.remove(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");for(var t in this._layers)this._layers[t].remove();return this},createPane:function(t,e){var i="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=o.DomUtil.create("div",i,e||this._mapPane);return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new o.LatLngBounds(e,i)},getMinZoom:function(){return this.options.minZoom===i?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===i?this._layersMaxZoom===i?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=o.latLngBounds(t),i=o.point(i||[0,0]);var n=this.getZoom()||0,s=this.getMinZoom(),r=this.getMaxZoom(),a=t.getNorthWest(),h=t.getSouthEast(),l=this.getSize().subtract(i),u=o.bounds(this.project(h,n),this.project(a,n)).getSize(),c=o.Browser.any3d?this.options.zoomSnap:1,d=Math.min(l.x/u.x,l.y/u.y);return n=this.getScaleZoom(d,n),c&&(n=Math.round(n/(c/100))*(c/100),n=e?Math.ceil(n/c)*c:Math.floor(n/c)*c),Math.max(s,Math.min(r,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new o.Point(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new o.Bounds(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(t===i?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var n=this.options.crs;return e=e===i?this._zoom:e,n.scale(t)/n.scale(e)},getScaleZoom:function(t,e){var n=this.options.crs;e=e===i?this._zoom:e;var o=n.zoom(t*n.scale(e));return isNaN(o)?1/0:o},project:function(t,e){return e=e===i?this._zoom:e,this.options.crs.latLngToPoint(o.latLng(t),e)},unproject:function(t,e){return e=e===i?this._zoom:e,this.options.crs.pointToLatLng(o.point(t),e)},layerPointToLatLng:function(t){var e=o.point(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(o.latLng(t))._round();return e._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(o.latLng(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(o.latLngBounds(t))},distance:function(t,e){return this.options.crs.distance(o.latLng(t),o.latLng(e))},containerPointToLayerPoint:function(t){return o.point(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return o.point(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(o.point(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(o.latLng(t)))},mouseEventToContainerPoint:function(t){return o.DomEvent.getMousePosition(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=o.DomUtil.get(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");o.DomEvent.addListener(e,"scroll",this._onScroll,this),this._containerId=o.Util.stamp(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&o.Browser.any3d, +o.DomUtil.addClass(t,"leaflet-container"+(o.Browser.touch?" leaflet-touch":"")+(o.Browser.retina?" leaflet-retina":"")+(o.Browser.ielt9?" leaflet-oldie":"")+(o.Browser.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=o.DomUtil.getStyle(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),o.DomUtil.setPosition(this._mapPane,new o.Point(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(o.DomUtil.addClass(t.markerPane,"leaflet-zoom-hide"),o.DomUtil.addClass(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){o.DomUtil.setPosition(this._mapPane,new o.Point(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t){return t&&this.fire("zoomstart"),this.fire("movestart")},_move:function(t,e,n){e===i&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(o||n&&n.pinch)&&this.fire("zoom",n),this.fire("move",n)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return o.Util.cancelAnimFrame(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){o.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(e){if(o.DomEvent){this._targets={},this._targets[o.stamp(this._container)]=this;var i=e?"off":"on";o.DomEvent[i](this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&o.DomEvent[i](t,"resize",this._onResize,this),o.Browser.any3d&&this.options.transform3DLimit&&this[i]("moveend",this._onMoveEnd)}},_onResize:function(){o.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=o.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],s="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if(i=this._targets[o.stamp(r)],i&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(s&&!o.DomEvent._isExternalTarget(r,t))break;if(n.push(i),s)break}if(r===this._container)break;r=r.parentNode}return n.length||a||s||!o.DomEvent._isExternalTarget(r,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!o.DomEvent._skipped(t)){var e="keypress"===t.type&&13===t.keyCode?"click":t.type;"mousedown"===e&&o.DomUtil.preventOutline(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_fireDOMEvent:function(t,e,i){if("click"===t.type){var n=o.Util.extend({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}if(!t._stopped&&(i=(i||[]).concat(this._findEventTargets(t,e)),i.length)){var s=i[0];"contextmenu"===e&&s.listens(e,!0)&&o.DomEvent.preventDefault(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s instanceof o.Marker;r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=o.Browser.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){o.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._floor();return!((e&&e.animate)!==!0&&!this.getSize().contains(i))&&(this.panBy(i,e),!0)},_createAnimProxy:function(){var t=this._proxy=o.DomUtil.create("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(e){var i=o.DomUtil.TRANSFORM,n=t.style[i];o.DomUtil.setTransform(t,this.project(e.center,e.zoom),this.getZoomScale(e.zoom,1)),n===t.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var e=this.getCenter(),i=this.getZoom();o.DomUtil.setTransform(t,this.project(e,i),this.getZoomScale(i,1))},this)},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),s=this._getCenterOffset(t)._divideBy(1-1/n);return!(i.animate!==!0&&!this.getSize().contains(s))&&(o.Util.requestAnimFrame(function(){this._moveStart(!0)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,i,n){i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},_onZoomTransitionEnd:function(){this._animatingZoom&&(o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),o.Util.requestAnimFrame(function(){this._moveEnd(!0)},this))}}),o.map=function(t,e){return new o.Map(t,e)},o.Layer=o.Evented.extend({options:{pane:"overlayPane",nonBubblingEvents:[],attribution:null},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[o.stamp(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[o.stamp(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}}),o.Map.include({addLayer:function(t){var e=o.stamp(t);return this._layers[e]?this:(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var e=o.stamp(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&o.stamp(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){t=t?o.Util.isArray(t)?t:[t]:[];for(var e=0,i=t.length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===i&&this._layersMinZoom&&this.getZoom()100&&n<500||t.target._simulatedClick&&!t._simulated?void o.DomEvent.stop(t):(o.DomEvent._lastClick=i,void e(t))}},o.DomEvent.addListener=o.DomEvent.on,o.DomEvent.removeListener=o.DomEvent.off,o.PosAnimation=o.Evented.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;e1e-7;l++)e=r*Math.sin(h),e=Math.pow((1-e)/(1+e),r/2),u=Math.PI/2-2*Math.atan(a*e)-h,h+=u;return new o.LatLng(h*i,t.x*i/n)}},o.CRS.EPSG3395=o.extend({},o.CRS.Earth,{code:"EPSG:3395",projection:o.Projection.Mercator,transformation:function(){var t=.5/(Math.PI*o.Projection.Mercator.R);return new o.Transformation(t,.5,-t,.5)}()}),o.GridLayer=o.Layer.extend({options:{tileSize:256,opacity:1,updateWhenIdle:o.Browser.mobile,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:i,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){o.setOptions(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),o.DomUtil.remove(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=null},bringToFront:function(){return this._map&&(o.DomUtil.toFront(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(o.DomUtil.toBack(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return e.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof o.Point?t:new o.Point(t,t)},_updateZIndex:function(){this._container&&this.options.zIndex!==i&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var e,i=this.getPane().children,n=-t(-(1/0),1/0),o=0,s=i.length;othis.options.maxZoom||in&&this._retainParent(s,r,a,n))},_retainChildren:function(t,e,i,n){for(var s=2*t;s<2*t+2;s++)for(var r=2*e;r<2*e+2;r++){var a=new o.Point(s,r);a.z=i+1;var h=this._tileCoordsToKey(a),l=this._tiles[h];l&&l.active?l.retain=!0:(l&&l.loaded&&(l.retain=!0),i+1this.options.maxZoom||this.options.minZoom!==i&&s1)return void this._setView(t,s);for(var m=a.min.y;m<=a.max.y;m++)for(var p=a.min.x;p<=a.max.x;p++){var f=new o.Point(p,m);if(f.z=this._tileZoom,this._isValidTile(f)){var g=this._tiles[this._tileCoordsToKey(f)];g?g.current=!0:l.push(f)}}if(l.sort(function(t,e){return t.distanceTo(h)-e.distanceTo(h)}),0!==l.length){this._loading||(this._loading=!0,this.fire("loading"));var v=e.createDocumentFragment();for(p=0;pi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return o.latLngBounds(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToBounds:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),s=n.add(i),r=e.unproject(n,t.z),a=e.unproject(s,t.z),h=new o.LatLngBounds(r,a);return this.options.noWrap||e.wrapLatLngBounds(h),h},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new o.Point(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(o.DomUtil.remove(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){o.DomUtil.addClass(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,o.Browser.ielt9&&this.options.opacity<1&&o.DomUtil.setOpacity(t,this.options.opacity),o.Browser.android&&!o.Browser.android23&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),o.bind(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&o.Util.requestAnimFrame(o.bind(this._tileReady,this,t,null,s)),o.DomUtil.setPosition(s,i),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){if(this._map){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);i=this._tiles[n],i&&(i.loaded=+new Date,this._map._fadeAnimated?(o.DomUtil.setOpacity(i.el,0),o.Util.cancelAnimFrame(this._fadeFrame),this._fadeFrame=o.Util.requestAnimFrame(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(o.DomUtil.addClass(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),o.Browser.ielt9||!this._map._fadeAnimated?o.Util.requestAnimFrame(this._pruneTiles,this):setTimeout(o.bind(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new o.Point(this._wrapX?o.Util.wrapNum(t.x,this._wrapX):t.x,this._wrapY?o.Util.wrapNum(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new o.Bounds(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),o.gridLayer=function(t){return new o.GridLayer(t)},o.TileLayer=o.GridLayer.extend({options:{minZoom:0,maxZoom:18,maxNativeZoom:null,minNativeZoom:null,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,e=o.setOptions(this,e),e.detectRetina&&o.Browser.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),o.Browser.android||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},createTile:function(t,i){var n=e.createElement("img");return o.DomEvent.on(n,"load",o.bind(this._tileOnLoad,this,i,n)),o.DomEvent.on(n,"error",o.bind(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=""),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:o.Browser.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return o.Util.template(this._url,o.extend(e,this.options))},_tileOnLoad:function(t,e){o.Browser.ielt9?setTimeout(o.bind(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.src!==n&&(e.src=n),t(i,e)},getTileSize:function(){var t=this._map,e=o.GridLayer.prototype.getTileSize.call(this),i=this._tileZoom+this.options.zoomOffset,n=this.options.minNativeZoom,s=this.options.maxNativeZoom;return null!==n&&is?e.divideBy(t.getZoomScale(s,i)).round():e},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom,i=this.options.zoomReverse,n=this.options.zoomOffset,o=this.options.minNativeZoom,s=this.options.maxNativeZoom;return i&&(t=e-t),t+=n,null!==o&&ts?s:t},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=o.Util.falseFn,e.onerror=o.Util.falseFn,e.complete||(e.src=o.Util.emptyImageUrl,o.DomUtil.remove(e)))}}),o.tileLayer=function(t,e){return new o.TileLayer(t,e)},o.TileLayer.WMS=o.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=o.extend({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);e=o.setOptions(this,e),i.width=i.height=e.tileSize*(e.detectRetina&&o.Browser.retina?2:1),this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,o.TileLayer.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToBounds(t),i=this._crs.project(e.getNorthWest()),n=this._crs.project(e.getSouthEast()),s=(this._wmsVersion>=1.3&&this._crs===o.CRS.EPSG4326?[n.y,i.x,i.y,n.x]:[i.x,n.y,n.x,i.y]).join(","),r=o.TileLayer.prototype.getTileUrl.call(this,t);return r+o.Util.getParamString(this.wmsParams,r,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+s},setParams:function(t,e){return o.extend(this.wmsParams,t),e||this.redraw(),this}}),o.tileLayer.wms=function(t,e){return new o.TileLayer.WMS(t,e)},o.ImageOverlay=o.Layer.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1},initialize:function(t,e,i){this._url=t,this._bounds=o.latLngBounds(e),o.setOptions(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(o.DomUtil.addClass(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){o.DomUtil.remove(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._image),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=t,this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._image=o.DomUtil.create("img","leaflet-image-layer "+(this._zoomAnimated?"leaflet-zoom-animated":""));t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,t.onload=o.bind(this.fire,this,"load"),this.options.crossOrigin&&(t.crossOrigin=""),t.src=this._url,t.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min; +o.DomUtil.setTransform(this._image,i,e)},_reset:function(){var t=this._image,e=new o.Bounds(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();o.DomUtil.setPosition(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){o.DomUtil.setOpacity(this._image,this.options.opacity)}}),o.imageOverlay=function(t,e,i){return new o.ImageOverlay(t,e,i)},o.Icon=o.Class.extend({initialize:function(t){o.setOptions(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(i,e&&"IMG"===e.tagName?e:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i=this.options,n=i[e+"Size"];"number"==typeof n&&(n=[n,n]);var s=o.point(n),r=o.point("shadow"===e&&i.shadowAnchor||i.iconAnchor||s&&s.divideBy(2,!0));t.className="leaflet-marker-"+e+" "+(i.className||""),r&&(t.style.marginLeft=-r.x+"px",t.style.marginTop=-r.y+"px"),s&&(t.style.width=s.x+"px",t.style.height=s.y+"px")},_createImg:function(t,i){return i=i||e.createElement("img"),i.src=t,i},_getIconUrl:function(t){return o.Browser.retina&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),o.icon=function(t){return new o.Icon(t)},o.Icon.Default=o.Icon.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return o.Icon.Default.imagePath||(o.Icon.Default.imagePath=this._detectIconPath()),(this.options.imagePath||o.Icon.Default.imagePath)+o.Icon.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=o.DomUtil.create("div","leaflet-default-icon-path",e.body),i=o.DomUtil.getStyle(t,"background-image")||o.DomUtil.getStyle(t,"backgroundImage");return e.body.removeChild(t),0===i.indexOf("url")?i.replace(/^url\([\"\']?/,"").replace(/marker-icon\.png[\"\']?\)$/,""):""}}),o.Marker=o.Layer.extend({options:{icon:new o.Icon.Default,interactive:!0,draggable:!1,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",nonBubblingEvents:["click","dblclick","mouseover","mouseout","contextmenu"]},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var e=this._latlng;return this._latlng=o.latLng(t),this.update(),this.fire("move",{oldLatLng:e,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,e="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),i=t.icon.createIcon(this._icon),n=!1;i!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(i.title=t.title),t.alt&&(i.alt=t.alt)),o.DomUtil.addClass(i,e),t.keyboard&&(i.tabIndex="0"),this._icon=i,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var s=t.icon.createShadow(this._shadow),r=!1;s!==this._shadow&&(this._removeShadow(),r=!0),s&&(o.DomUtil.addClass(s,e),s.alt=""),this._shadow=s,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),s&&r&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),o.DomUtil.remove(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&o.DomUtil.remove(this._shadow),this._shadow=null},_setPos:function(t){o.DomUtil.setPosition(this._icon,t),this._shadow&&o.DomUtil.setPosition(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(e)},_initInteraction:function(){if(this.options.interactive&&(o.DomUtil.addClass(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),o.Handler.MarkerDrag)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new o.Handler.MarkerDrag(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;o.DomUtil.setOpacity(this._icon,t),this._shadow&&o.DomUtil.setOpacity(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor||[0,0]},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor||[0,0]}}),o.marker=function(t,e){return new o.Marker(t,e)},o.DivIcon=o.Icon.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:e.createElement("div"),n=this.options;if(i.innerHTML=n.html!==!1?n.html:"",n.bgPos){var s=o.point(n.bgPos);i.style.backgroundPosition=-s.x+"px "+-s.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}}),o.divIcon=function(t){return new o.DivIcon(t)},o.DivOverlay=o.Layer.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,e){o.setOptions(this,t),this._source=e},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(o.DomUtil.setOpacity(this._container,0),this._removeTimeout=setTimeout(o.bind(o.DomUtil.remove,o.DomUtil,this._container),200)):o.DomUtil.remove(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._container),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,e="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof e)t.innerHTML=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(e)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=o.point(this.options.offset),i=this._getAnchor();this._zoomAnimated?o.DomUtil.setPosition(this._container,t.add(i)):e=e.add(t).add(i);var n=this._containerBottom=-e.y,s=this._containerLeft=-Math.round(this._containerWidth/2)+e.x;this._container.style.bottom=n+"px",this._container.style.left=s+"px"}},_getAnchor:function(){return[0,0]}}),o.Popup=o.DivOverlay.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof o.Path||this._source.on("preclick",o.DomEvent.stopPropagation))},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof o.Path||this._source.off("preclick",o.DomEvent.stopPropagation))},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",e=this._container=o.DomUtil.create("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated");if(this.options.closeButton){var i=this._closeButton=o.DomUtil.create("a",t+"-close-button",e);i.href="#close",i.innerHTML="×",o.DomEvent.on(i,"click",this._onCloseButtonClick,this)}var n=this._wrapper=o.DomUtil.create("div",t+"-content-wrapper",e);this._contentNode=o.DomUtil.create("div",t+"-content",n),o.DomEvent.disableClickPropagation(n).disableScrollPropagation(this._contentNode).on(n,"contextmenu",o.DomEvent.stopPropagation),this._tipContainer=o.DomUtil.create("div",t+"-tip-container",e),this._tip=o.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateLayout:function(){var t=this._contentNode,e=t.style;e.width="",e.whiteSpace="nowrap";var i=t.offsetWidth;i=Math.min(i,this.options.maxWidth),i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height="";var n=t.offsetHeight,s=this.options.maxHeight,r="leaflet-popup-scrolled";s&&n>s?(e.height=s+"px",o.DomUtil.addClass(t,r)):o.DomUtil.removeClass(t,r),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();o.DomUtil.setPosition(this._container,e.add(i))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,e=parseInt(o.DomUtil.getStyle(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,s=new o.Point(this._containerLeft,-i-this._containerBottom);s._add(o.DomUtil.getPosition(this._container));var r=t.layerPointToContainerPoint(s),a=o.point(this.options.autoPanPadding),h=o.point(this.options.autoPanPaddingTopLeft||a),l=o.point(this.options.autoPanPaddingBottomRight||a),u=t.getSize(),c=0,d=0;r.x+n+l.x>u.x&&(c=r.x+n-u.x+l.x),r.x-c-h.x<0&&(c=r.x-h.x),r.y+i+l.y>u.y&&(d=r.y+i-u.y+l.y),r.y-d-h.y<0&&(d=r.y-h.y),(c||d)&&t.fire("autopanstart").panBy([c,d])}},_onCloseButtonClick:function(t){this._close(),o.DomEvent.stop(t)},_getAnchor:function(){return o.point(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),o.popup=function(t,e){return new o.Popup(t,e)},o.Map.mergeOptions({closePopupOnClick:!0}),o.Map.include({openPopup:function(t,e,i){return t instanceof o.Popup||(t=new o.Popup(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),o.Layer.include({bindPopup:function(t,e){return t instanceof o.Popup?(o.setOptions(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new o.Popup(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){if(t instanceof o.Layer||(e=t,t=this),t instanceof o.FeatureGroup)for(var i in this._layers){t=this._layers[i];break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;if(this._popup&&this._map)return o.DomEvent.stop(t),e instanceof o.Path?void this.openPopup(t.layer||t.target,t.latlng):void(this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)}}),o.Tooltip=o.DivOverlay.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return o.Browser.touch&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip",e=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=o.DomUtil.create("div",e)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e=this._map,i=this._container,n=e.latLngToContainerPoint(e.getCenter()),s=e.layerPointToContainerPoint(t),r=this.options.direction,a=i.offsetWidth,h=i.offsetHeight,l=o.point(this.options.offset),u=this._getAnchor();"top"===r?t=t.add(o.point(-a/2+l.x,-h+l.y+u.y,!0)):"bottom"===r?t=t.subtract(o.point(a/2-l.x,-l.y,!0)):"center"===r?t=t.subtract(o.point(a/2+l.x,h/2-u.y+l.y,!0)):"right"===r||"auto"===r&&s.xh&&(s=r,h=a);h>i&&(e[s]=1,this._simplifyDPStep(t,e,i,n,s),this._simplifyDPStep(t,e,i,s,o))},_reducePoints:function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;ne&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},_sqClosestPointOnSegment:function(t,e,i,n){var s,r=e.x,a=e.y,h=i.x-r,l=i.y-a,u=h*h+l*l;return u>0&&(s=((t.x-r)*h+(t.y-a)*l)/u,s>1?(r=i.x,a=i.y):s>0&&(r+=h*s,a+=l*s)),h=t.x-r,l=t.y-a,n?h*h+l*l:new o.Point(r,a)}},o.Polyline=o.Path.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,e){o.setOptions(this,e),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var e,i,n=1/0,s=null,r=o.LineUtil._sqClosestPointOnSegment,a=0,h=this._parts.length;ae)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=o.latLng(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new o.LatLngBounds,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return o.Polyline._flat(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=o.Polyline._flat(t),n=0,s=t.length;n=2&&e[0]instanceof o.LatLng&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){o.Polyline.prototype._setLatLngs.call(this,t),o.Polyline._flat(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return o.Polyline._flat(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new o.Point(e,e);if(t=new o.Bounds(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings);for(var n,s=0,r=this._rings.length;s';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),o.SVG.include(o.Browser.vml?{_initContainer:function(){this._container=o.DomUtil.create("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(o.Renderer.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=o.SVG.create("shape");o.DomUtil.addClass(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=o.SVG.create("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[o.stamp(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;o.DomUtil.remove(e),t.removeInteractiveTarget(e),delete this._layers[o.stamp(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,s=t._container;s.stroked=!!n.stroke,s.filled=!!n.fill,n.stroke?(e||(e=t._stroke=o.SVG.create("stroke")),s.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=o.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(s.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=o.SVG.create("fill")),s.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(s.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){o.DomUtil.toFront(t._container)},_bringToBack:function(t){o.DomUtil.toBack(t._container)}}:{}),o.Browser.vml&&(o.SVG.create=function(){try{return e.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return e.createElement("')}}catch(t){return function(t){return e.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}()),o.Canvas=o.Renderer.extend({getEvents:function(){var t=o.Renderer.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){o.Renderer.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=e.createElement("canvas");o.DomEvent.on(t,"mousemove",o.Util.throttle(this._onMouseMove,32,this),this).on(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this).on(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;this._redrawBounds=null;for(var e in this._layers)t=this._layers[e],t._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},o.Renderer.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=o.Browser.retina?2:1;o.DomUtil.setPosition(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",o.Browser.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){o.Renderer.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[o.stamp(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[o.stamp(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var e,i=t.options.dashArray.split(","),n=[];for(e=0;et.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||o.Polyline.prototype._containsPoint.call(this,t,!0)},o.CircleMarker.prototype._containsPoint=function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()},o.GeoJSON=o.FeatureGroup.extend({initialize:function(t,e){o.setOptions(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,s=o.Util.isArray(t)?t:t.features;if(s){for(e=0,i=s.length;e1)return void(this._moved=!0);var n=i.touches&&1===i.touches.length?i.touches[0]:i,s=new o.Point(n.clientX,n.clientY),r=s.subtract(this._startPoint);(r.x||r.y)&&(Math.abs(r.x)+Math.abs(r.y)50&&(this._positions.shift(),this._times.shift())}this._map.fire("move",t).fire("drag",t)},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}}),o.Map.addInitHook("addHandler","scrollWheelZoom",o.Map.ScrollWheelZoom),o.extend(o.DomEvent,{_touchstart:o.Browser.msPointer?"MSPointerDown":o.Browser.pointer?"pointerdown":"touchstart",_touchend:o.Browser.msPointer?"MSPointerUp":o.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(t,e,i){function n(t){var e;if(o.Browser.pointer){if(!o.Browser.edge||"mouse"===t.pointerType)return;e=o.DomEvent._pointersCount}else e=t.touches.length;if(!(e>1)){var i=Date.now(),n=i-(r||i);a=t.touches?t.touches[0]:t,h=n>0&&n<=l,r=i}}function s(t){if(h&&!a.cancelBubble){if(o.Browser.pointer){if(!o.Browser.edge||"mouse"===t.pointerType)return;var i,n,s={};for(n in a)i=a[n],s[n]=i&&i.bind?i.bind(a):i;a=s}a.type="dblclick",e(a),r=null}}var r,a,h=!1,l=250,u="_leaflet_",c=this._touchstart,d=this._touchend;return t[u+c+i]=n,t[u+d+i]=s,t[u+"dblclick"+i]=e,t.addEventListener(c,n,!1),t.addEventListener(d,s,!1),t.addEventListener("dblclick",e,!1),this},removeDoubleTapListener:function(t,e){var i="_leaflet_",n=t[i+this._touchstart+e],s=t[i+this._touchend+e],r=t[i+"dblclick"+e];return t.removeEventListener(this._touchstart,n,!1),t.removeEventListener(this._touchend,s,!1),o.Browser.edge||t.removeEventListener("dblclick",r,!1),this}}),o.extend(o.DomEvent,{POINTER_DOWN:o.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:o.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:o.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:o.Browser.msPointer?"MSPointerCancel":"pointercancel",TAG_WHITE_LIST:["INPUT","SELECT","OPTION"],_pointers:{},_pointersCount:0,addPointerListener:function(t,e,i,n){return"touchstart"===e?this._addPointerStart(t,i,n):"touchmove"===e?this._addPointerMove(t,i,n):"touchend"===e&&this._addPointerEnd(t,i,n),this},removePointerListener:function(t,e,i){var n=t["_leaflet_"+e+i];return"touchstart"===e?t.removeEventListener(this.POINTER_DOWN,n,!1):"touchmove"===e?t.removeEventListener(this.POINTER_MOVE,n,!1):"touchend"===e&&(t.removeEventListener(this.POINTER_UP,n,!1),t.removeEventListener(this.POINTER_CANCEL,n,!1)),this},_addPointerStart:function(t,i,n){var s=o.bind(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(this.TAG_WHITE_LIST.indexOf(t.target.tagName)<0))return;o.DomEvent.preventDefault(t)}this._handlePointer(t,i)},this);if(t["_leaflet_touchstart"+n]=s,t.addEventListener(this.POINTER_DOWN,s,!1),!this._pointerDocListener){var r=o.bind(this._globalPointerUp,this);e.documentElement.addEventListener(this.POINTER_DOWN,o.bind(this._globalPointerDown,this),!0),e.documentElement.addEventListener(this.POINTER_MOVE,o.bind(this._globalPointerMove,this),!0),e.documentElement.addEventListener(this.POINTER_UP,r,!0),e.documentElement.addEventListener(this.POINTER_CANCEL,r,!0),this._pointerDocListener=!0}},_globalPointerDown:function(t){this._pointers[t.pointerId]=t,this._pointersCount++},_globalPointerMove:function(t){this._pointers[t.pointerId]&&(this._pointers[t.pointerId]=t)},_globalPointerUp:function(t){delete this._pointers[t.pointerId],this._pointersCount--},_handlePointer:function(t,e){t.touches=[];for(var i in this._pointers)t.touches.push(this._pointers[i]);t.changedTouches=[t],e(t)},_addPointerMove:function(t,e,i){var n=o.bind(function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&this._handlePointer(t,e)},this);t["_leaflet_touchmove"+i]=n,t.addEventListener(this.POINTER_MOVE,n,!1)},_addPointerEnd:function(t,e,i){var n=o.bind(function(t){this._handlePointer(t,e)},this);t["_leaflet_touchend"+i]=n,t.addEventListener(this.POINTER_UP,n,!1),t.addEventListener(this.POINTER_CANCEL,n,!1)}}),o.Map.mergeOptions({touchZoom:o.Browser.touch&&!o.Browser.android23,bounceAtZoomLimits:!0}),o.Map.TouchZoom=o.Handler.extend({addHooks:function(){o.DomUtil.addClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){o.DomUtil.removeClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var n=i.mouseEventToContainerPoint(t.touches[0]),s=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(n.add(s)._divideBy(2))),this._startDist=n.distanceTo(s),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),o.DomEvent.on(e,"touchmove",this._onTouchMove,this).on(e,"touchend",this._onTouchEnd,this),o.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest);var a=o.bind(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=o.Util.requestAnimFrame(a,this,!0),o.DomEvent.preventDefault(t)}},_onTouchEnd:function(){return this._moved&&this._zooming?(this._zooming=!1,o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(e,"touchmove",this._onTouchMove).off(e,"touchend",this._onTouchEnd),void(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):void(this._zooming=!1)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new o.Point(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.addClass(n,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),o.DomEvent.on(e,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(e,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],n=i.target;n&&n.tagName&&"a"===n.tagName.toLowerCase()&&o.DomUtil.removeClass(n,"leaflet-active"),this._simulateEvent("mouseup",i), +this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(i,n){var o=e.createEvent("MouseEvents");o._simulated=!0,n.target._simulatedClick=!0,o.initMouseEvent(i,!0,!0,t,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),n.target.dispatchEvent(o)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_resetState:function(){this._moved=!1},_onMouseDown:function(t){return!(!t.shiftKey||1!==t.which&&1!==t.button)&&(this._resetState(),o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startPoint=this._map.mouseEventToContainerPoint(t),void o.DomEvent.on(e,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this))},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=o.DomUtil.create("div","leaflet-zoom-box",this._container),o.DomUtil.addClass(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new o.Bounds(this._point,this._startPoint),i=e.getSize();o.DomUtil.setPosition(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(o.DomUtil.remove(this._box),o.DomUtil.removeClass(this._container,"leaflet-crosshair")),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(e,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){setTimeout(o.bind(this._resetState,this),0);var e=new o.LatLngBounds(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanDelta:80}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),o.DomEvent.on(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),o.DomEvent.off(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var i=e.body,n=e.documentElement,o=i.scrollTop||n.scrollTop,s=i.scrollLeft||n.scrollLeft;this._map._container.focus(),t.scrollTo(s,o)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;e0&&t.screenY>0&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,s){var r=i+t+" "+i+s;e[t+s]=o.DomUtil.create("div",r,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){o.DomUtil.remove(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,s){var r=o.DomUtil.create("a",i,n);return r.innerHTML=t,r.href="#",r.title=e,r.setAttribute("role","button"),r.setAttribute("aria-label",e),o.DomEvent.on(r,"mousedown dblclick",o.DomEvent.stopPropagation).on(r,"click",o.DomEvent.stop).on(r,"click",s,this).on(r,"click",this._refocusOnMap,this),r},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&o.DomUtil.addClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent&&o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(new o.Control.Attribution).addTo(this)}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=o.DomUtil.create("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=o.DomUtil.create("div",e,i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(o.stamp(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,i){var n='",o=e.createElement("div");return o.innerHTML=n,o.firstChild},_addItem:function(t){var i,n=e.createElement("label"),s=this._map.hasLayer(t.layer);t.overlay?(i=e.createElement("input"),i.type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=s):i=this._createRadioElement("leaflet-base-layers",s),i.layerId=o.stamp(t.layer),o.DomEvent.on(i,"click",this._onInputClick,this);var r=e.createElement("span");r.innerHTML=" "+t.name;var a=e.createElement("div");n.appendChild(a),a.appendChild(i),a.appendChild(r);var h=t.overlay?this._overlaysList:this._baseLayersList;return h.appendChild(n),this._checkDisabledLayers(),n},_onInputClick:function(){var t,e,i,n=this._form.getElementsByTagName("input"),o=[],s=[];this._handlingClick=!0;for(var r=n.length-1;r>=0;r--)t=n[r],e=this._getLayer(t.layerId).layer,i=this._map.hasLayer(e),t.checked&&!i?o.push(e):!t.checked&&i&&s.push(e);for(r=0;r=0;s--)t=n[s],e=this._getLayer(t.layerId).layer,t.disabled=e.options.minZoom!==i&&oe.options.maxZoom},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)}}(window,document); \ No newline at end of file diff --git a/src/main/resources/leafletmap/leaflet/leaflet.rotatedMarker.js b/src/main/resources/leafletmap/leaflet/leaflet.rotatedMarker.js new file mode 100644 index 0000000..832a30c --- /dev/null +++ b/src/main/resources/leafletmap/leaflet/leaflet.rotatedMarker.js @@ -0,0 +1,57 @@ +(function() { + // save these original methods before they are overwritten + var proto_initIcon = L.Marker.prototype._initIcon; + var proto_setPos = L.Marker.prototype._setPos; + + var oldIE = (L.DomUtil.TRANSFORM === 'msTransform'); + + L.Marker.addInitHook(function () { + var iconOptions = this.options.icon && this.options.icon.options; + var iconAnchor = iconOptions && this.options.icon.options.iconAnchor; + if (iconAnchor) { + iconAnchor = (iconAnchor[0] + 'px ' + iconAnchor[1] + 'px'); + } + this.options.rotationOrigin = this.options.rotationOrigin || iconAnchor || 'center bottom' ; + this.options.rotationAngle = this.options.rotationAngle || 0; + + // Ensure marker keeps rotated during dragging + this.on('drag', function(e) { e.target._applyRotation(); }); + }); + + L.Marker.include({ + _initIcon: function() { + proto_initIcon.call(this); + }, + + _setPos: function (pos) { + proto_setPos.call(this, pos); + this._applyRotation(); + }, + + _applyRotation: function () { + if(this.options.rotationAngle) { + this._icon.style[L.DomUtil.TRANSFORM+'Origin'] = this.options.rotationOrigin; + + if(oldIE) { + // for IE 9, use the 2D rotation + this._icon.style[L.DomUtil.TRANSFORM] = 'rotate(' + this.options.rotationAngle + 'deg)'; + } else { + // for modern browsers, prefer the 3D accelerated version + this._icon.style[L.DomUtil.TRANSFORM] += ' rotateZ(' + this.options.rotationAngle + 'deg)'; + } + } + }, + + setRotationAngle: function(angle) { + this.options.rotationAngle = angle; + this.update(); + return this; + }, + + setRotationOrigin: function(origin) { + this.options.rotationOrigin = origin; + this.update(); + return this; + } + }); +})(); \ No newline at end of file diff --git a/src/main/resources/leafletmap/leafletmap.html b/src/main/resources/leafletmap/leafletmap.html new file mode 100644 index 0000000..9f95dc3 --- /dev/null +++ b/src/main/resources/leafletmap/leafletmap.html @@ -0,0 +1,33 @@ + + + + Leaflet Map + + + + + + + + + + + + + + + + + +
+ +