Compare commits
2490 Commits
v3.6.0
...
v3.18.0-al
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7bc26050f0 | ||
|
|
5d8b99ab10 | ||
|
|
3c37ce3990 | ||
|
|
091dc9fbf4 | ||
|
|
343d2c032d | ||
|
|
7d4c7b7982 | ||
|
|
130052c935 | ||
|
|
8957e618a5 | ||
|
|
c49fbf9070 | ||
|
|
d840bba905 | ||
|
|
ccf15b8be3 | ||
|
|
d7180fd1e8 | ||
|
|
2845f50ff7 | ||
|
|
39e06151c5 | ||
|
|
460ea4e809 | ||
|
|
6910c471bf | ||
|
|
b5da32340e | ||
|
|
102eb1b94f | ||
|
|
ee3e302f69 | ||
|
|
eb92c268ab | ||
|
|
518212ce7d | ||
|
|
bbfc93b1d8 | ||
|
|
4d10a6b9a1 | ||
|
|
2e68be13f6 | ||
|
|
d05f1ce743 | ||
|
|
a30d4843cf | ||
|
|
5e98b27afd | ||
|
|
294a129083 | ||
|
|
c95c9846fb | ||
|
|
512c442ccc | ||
|
|
2d4bccacb5 | ||
|
|
9624357bc3 | ||
|
|
9cc724550a | ||
|
|
d3e15e4394 | ||
|
|
0dbca294b2 | ||
|
|
27e3124dca | ||
|
|
34cc5c6bde | ||
|
|
c74d7171aa | ||
|
|
6ebc67f1c5 | ||
|
|
72568305c0 | ||
|
|
749660dd22 | ||
|
|
ed80d243fb | ||
|
|
3eea9d4558 | ||
|
|
0d26c33484 | ||
|
|
1775a5aeea | ||
|
|
f196ed8102 | ||
|
|
c56432cf2e | ||
|
|
17e11fb84a | ||
|
|
4154df9aa8 | ||
|
|
728e1dd1f2 | ||
|
|
6d41e87ff5 | ||
|
|
77e66221c1 | ||
|
|
b562f4d68a | ||
|
|
e7c2d9ab32 | ||
|
|
39de933e64 | ||
|
|
c43740a4ad | ||
|
|
7a43a667ce | ||
|
|
1b662ff048 | ||
|
|
93a98337d8 | ||
|
|
65c8eba59b | ||
|
|
059ac56fef | ||
|
|
64afa2eab5 | ||
|
|
13546d27f2 | ||
|
|
a2326f7180 | ||
|
|
ffe0529df8 | ||
|
|
38f7aef6b0 | ||
|
|
618cb389e5 | ||
|
|
a655234cc3 | ||
|
|
4cde6a0a6d | ||
|
|
a1e0969d9f | ||
|
|
3e928718f4 | ||
|
|
f549f1946c | ||
|
|
449ea370c0 | ||
|
|
bc506389fc | ||
|
|
5d85867fbf | ||
|
|
6b4ee42c90 | ||
|
|
cf7ff841a7 | ||
|
|
55edf4003f | ||
|
|
6b465902cd | ||
|
|
9453984f9a | ||
|
|
35129af7f0 | ||
|
|
3726b25ba2 | ||
|
|
7048de8e83 | ||
|
|
4b7cdffaf4 | ||
|
|
14cecb7163 | ||
|
|
29c8af7559 | ||
|
|
b19ac3c26d | ||
|
|
f26bcf5c3e | ||
|
|
e4168e3582 | ||
|
|
dd8dc8ad0f | ||
|
|
b8ce70fbf0 | ||
|
|
e916345e8c | ||
|
|
925a272fb8 | ||
|
|
eaa0d70289 | ||
|
|
030c0dad3d | ||
|
|
0fef14137c | ||
|
|
04287e0fd5 | ||
|
|
ea1c7a6551 | ||
|
|
6da5a1e9f7 | ||
|
|
ec12c34edd | ||
|
|
837c48a2e2 | ||
|
|
04c4b4efc1 | ||
|
|
96a14e0515 | ||
|
|
cd4f1c109b | ||
|
|
609c891524 | ||
|
|
5442c1f587 | ||
|
|
810c655940 | ||
|
|
9d5232d9af | ||
|
|
265068e782 | ||
|
|
44a4fbdda2 | ||
|
|
6902791dc5 | ||
|
|
95a3f42315 | ||
|
|
6fe1a58b26 | ||
|
|
466b02836b | ||
|
|
e5cc971dc9 | ||
|
|
bda673f389 | ||
|
|
fa995cf7f3 | ||
|
|
1a159f3ac4 | ||
|
|
6718fc982e | ||
|
|
2809df86ca | ||
|
|
1d20215bfa | ||
|
|
7d210948e8 | ||
|
|
3c50d12ad9 | ||
|
|
bb32b6ac55 | ||
|
|
103ff01456 | ||
|
|
d26ac55ed0 | ||
|
|
31dcb80725 | ||
|
|
f3acac5259 | ||
|
|
06249be6bd | ||
|
|
400484e663 | ||
|
|
ab4da04312 | ||
|
|
4bf1f56405 | ||
|
|
08f8cd0f16 | ||
|
|
40ead5b329 | ||
|
|
2c29512c80 | ||
|
|
09202cf95d | ||
|
|
e39ea746a7 | ||
|
|
54f7bb6958 | ||
|
|
27853ea7dd | ||
|
|
395f3c0756 | ||
|
|
e63b4d1f48 | ||
|
|
3935b7db24 | ||
|
|
e289bfbb7d | ||
|
|
a598737ec5 | ||
|
|
1f48198e95 | ||
|
|
072728b083 | ||
|
|
abec4f4ba7 | ||
|
|
edb3987054 | ||
|
|
c51fc84b72 | ||
|
|
de9c338fb1 | ||
|
|
26789d91d2 | ||
|
|
aa9dbb984a | ||
|
|
b2120b2bab | ||
|
|
b4b61e737f | ||
|
|
0dca194525 | ||
|
|
9e980663ee | ||
|
|
2ec4969ac7 | ||
|
|
ca07de422c | ||
|
|
eddd006fcf | ||
|
|
9e209a3362 | ||
|
|
30482f023e | ||
|
|
3d8ca68bac | ||
|
|
3b1c76a1da | ||
|
|
578b653c40 | ||
|
|
da5f47999f | ||
|
|
d51fecd827 | ||
|
|
370f810f6b | ||
|
|
d270643ce1 | ||
|
|
1e2ea333cc | ||
|
|
a9df88004c | ||
|
|
f477a6ccb9 | ||
|
|
2305991ee9 | ||
|
|
3bdcdb5937 | ||
|
|
bb8b43abce | ||
|
|
4877a7864c | ||
|
|
1b70931433 | ||
|
|
0acbaa20f9 | ||
|
|
d2c8823359 | ||
|
|
2cac34e938 | ||
|
|
15ede94380 | ||
|
|
bd0140f42d | ||
|
|
f3248e9c19 | ||
|
|
420374294b | ||
|
|
271e7c5bb1 | ||
|
|
b434a30603 | ||
|
|
ec1d21e29a | ||
|
|
4e1decab52 | ||
|
|
92632f1d63 | ||
|
|
2063c1be71 | ||
|
|
77baa67e71 | ||
|
|
f3e6630db3 | ||
|
|
1038b2abea | ||
|
|
e0cada9c5d | ||
|
|
a6a621834f | ||
|
|
4653a01ba4 | ||
|
|
7196e18479 | ||
|
|
e70ce9d624 | ||
|
|
0efb3994eb | ||
|
|
d666bb4a36 | ||
|
|
50408d7c1a | ||
|
|
d50082b860 | ||
|
|
ac4653ada5 | ||
|
|
feb6fe9dce | ||
|
|
b2b902e22f | ||
|
|
6f5965f6a5 | ||
|
|
9870e8c04c | ||
|
|
5542f045d5 | ||
|
|
025c063251 | ||
|
|
841c8a5747 | ||
|
|
81d5849207 | ||
|
|
bbd1af6056 | ||
|
|
e3f58b3e84 | ||
|
|
d52586d586 | ||
|
|
4044ae4cd0 | ||
|
|
be2fc808be | ||
|
|
d08cca5a0c | ||
|
|
2117f2e3b1 | ||
|
|
1345d049b1 | ||
|
|
9f501aeb0e | ||
|
|
8afae37c4c | ||
|
|
2bff721227 | ||
|
|
7a1756d8a9 | ||
|
|
412dc0457e | ||
|
|
693e91970e | ||
|
|
557a3aee04 | ||
|
|
7080c508a4 | ||
|
|
bc95ec053c | ||
|
|
443d252ec1 | ||
|
|
9a83339724 | ||
|
|
1a1d55d54e | ||
|
|
57e9e96e5f | ||
|
|
5949170df0 | ||
|
|
70dd26a412 | ||
|
|
21e8f69d97 | ||
|
|
9b9d006d75 | ||
|
|
350c4d525b | ||
|
|
1c03814860 | ||
|
|
532275e779 | ||
|
|
ef52a757b1 | ||
|
|
048865d975 | ||
|
|
fb402d120e | ||
|
|
5a5ad7ce31 | ||
|
|
476191b0d0 | ||
|
|
94b8c853a7 | ||
|
|
a810feb257 | ||
|
|
5c07628044 | ||
|
|
4c82b3403c | ||
|
|
cce7b148bb | ||
|
|
176ddd3403 | ||
|
|
4626554a18 | ||
|
|
9523fb6edd | ||
|
|
31d0278dfb | ||
|
|
e74434299e | ||
|
|
3fc70bac00 | ||
|
|
0d2b833e06 | ||
|
|
19692ed60a | ||
|
|
0daa2cf574 | ||
|
|
dd358af0f2 | ||
|
|
ab9ff536f5 | ||
|
|
c7aeebed8c | ||
|
|
a1c86ed560 | ||
|
|
4f0b4dacbd | ||
|
|
ed34caa25a | ||
|
|
535e8f5e35 | ||
|
|
d0e5b1e395 | ||
|
|
49e2fd0df3 | ||
|
|
d59ace1a61 | ||
|
|
d6395a3c82 | ||
|
|
d27ea0974e | ||
|
|
b49546d2af | ||
|
|
8c8c4c3df4 | ||
|
|
fa067b7e8a | ||
|
|
c4387c14ff | ||
|
|
afcaa2ea51 | ||
|
|
e55dc30257 | ||
|
|
cb50e4a102 | ||
|
|
7d805393fc | ||
|
|
684d49cb78 | ||
|
|
2a44669e18 | ||
|
|
39087b2fa4 | ||
|
|
5c76cb01af | ||
|
|
f57065c412 | ||
|
|
e94939d01b | ||
|
|
56a365acf4 | ||
|
|
fbb9194923 | ||
|
|
ffe8daec66 | ||
|
|
7984cc2b57 | ||
|
|
7944144c65 | ||
|
|
ae46b40def | ||
|
|
ed421ce4b2 | ||
|
|
51397ee294 | ||
|
|
d316651c35 | ||
|
|
ff37fe128f | ||
|
|
72468f3470 | ||
|
|
b2c6bb11cf | ||
|
|
088c439c34 | ||
|
|
0b4ef31750 | ||
|
|
f3cc873d65 | ||
|
|
b1648c949e | ||
|
|
18520cd89d | ||
|
|
e2b2004aa4 | ||
|
|
a6a0c88641 | ||
|
|
54e1e3408b | ||
|
|
9ea297c54f | ||
|
|
5044c49ac3 | ||
|
|
f835d86333 | ||
|
|
7c15280e81 | ||
|
|
9f3c951c71 | ||
|
|
6abecb0192 | ||
|
|
4e17f58b26 | ||
|
|
15b6921bc9 | ||
|
|
c7898bcb0e | ||
|
|
c28fd2ae1c | ||
|
|
690ef18ee2 | ||
|
|
cd2ea6c7d6 | ||
|
|
36b8f31f40 | ||
|
|
0151d802d3 | ||
|
|
a54c686691 | ||
|
|
ebc28aefd4 | ||
|
|
d49bcdeedc | ||
|
|
2939ebc9b9 | ||
|
|
c17e23f2ae | ||
|
|
73a04c14f5 | ||
|
|
88d20a69ad | ||
|
|
138fe6ede1 | ||
|
|
12849a678e | ||
|
|
c72a39ff53 | ||
|
|
ec832243a2 | ||
|
|
c5f81a5706 | ||
|
|
664507b79b | ||
|
|
c3217e8d30 | ||
|
|
e3e0d23a83 | ||
|
|
6002d4c3e8 | ||
|
|
63ebed437b | ||
|
|
762aa3029c | ||
|
|
1ca28506ac | ||
|
|
c11e95099c | ||
|
|
3a1ff59cfb | ||
|
|
9186d1fbda | ||
|
|
2f72804fc3 | ||
|
|
af294bd44e | ||
|
|
ed6ac93222 | ||
|
|
8f96251618 | ||
|
|
343f41e99e | ||
|
|
255e449dd3 | ||
|
|
b37cd3fae6 | ||
|
|
d425f75bea | ||
|
|
989c04cf12 | ||
|
|
e85d8fa749 | ||
|
|
394ef94fd3 | ||
|
|
5934f9d416 | ||
|
|
ead6063170 | ||
|
|
c7af6bd494 | ||
|
|
2076ef02ca | ||
|
|
130b4d9459 | ||
|
|
60926626df | ||
|
|
405ed2af56 | ||
|
|
44f09497f0 | ||
|
|
c40993d0d3 | ||
|
|
18a29ea6d3 | ||
|
|
f7147960a9 | ||
|
|
0e4692e69e | ||
|
|
3de5a021a9 | ||
|
|
b7278f184c | ||
|
|
e46c8370d5 | ||
|
|
dca7d6fc8f | ||
|
|
db9dbc96b2 | ||
|
|
2496662070 | ||
|
|
8e3e47bed4 | ||
|
|
92c96b95f9 | ||
|
|
8e1ffbf91e | ||
|
|
8562c9a4fc | ||
|
|
400204357f | ||
|
|
e6e9b12bac | ||
|
|
a2c3dfd5de | ||
|
|
72e354dce3 | ||
|
|
f92a38b28c | ||
|
|
c15f8c8f07 | ||
|
|
de4e51efe8 | ||
|
|
d4ac5800d5 | ||
|
|
9507020218 | ||
|
|
ccfc3f7798 | ||
|
|
593132c902 | ||
|
|
6a6a906e83 | ||
|
|
ed4ac8d83b | ||
|
|
35f0928802 | ||
|
|
044f6638ea | ||
|
|
936d38ca6f | ||
|
|
737daaeea9 | ||
|
|
01a6612ab3 | ||
|
|
05ceaab620 | ||
|
|
f9fd73c44e | ||
|
|
27f20e2f54 | ||
|
|
50b956b108 | ||
|
|
33db3d4941 | ||
|
|
06ac1b603c | ||
|
|
fb96ed94ec | ||
|
|
664efa18fc | ||
|
|
2a64d9ef55 | ||
|
|
1ecd47aeb9 | ||
|
|
bb5b461192 | ||
|
|
9fb4a88841 | ||
|
|
231234f9d0 | ||
|
|
c92223d792 | ||
|
|
cd6494149b | ||
|
|
6efd3dab0b | ||
|
|
935eb9994c | ||
|
|
cd32875f37 | ||
|
|
6fc4427f4f | ||
|
|
481bcbd5b3 | ||
|
|
880d4b89a2 | ||
|
|
fe33910ec2 | ||
|
|
c9ffcef766 | ||
|
|
8c9ac5932f | ||
|
|
6be704af69 | ||
|
|
c549fadc01 | ||
|
|
e099dcd9a9 | ||
|
|
53a9341ef0 | ||
|
|
18e9ff98ee | ||
|
|
f011b5266e | ||
|
|
d275b1cf74 | ||
|
|
b691c47e78 | ||
|
|
f2c30cffe2 | ||
|
|
f645d81fee | ||
|
|
38718ee5e6 | ||
|
|
fc6b078642 | ||
|
|
587e8a6ecd | ||
|
|
db9c6a99c8 | ||
|
|
5302882fba | ||
|
|
60fb3b55ff | ||
|
|
f20e446689 | ||
|
|
e36ffca838 | ||
|
|
4b832708e5 | ||
|
|
a7f61e6dda | ||
|
|
825d525d3f | ||
|
|
a42d76d69d | ||
|
|
02d262e387 | ||
|
|
fe372847f8 | ||
|
|
9a57c8745e | ||
|
|
84401c132f | ||
|
|
2ee1969de7 | ||
|
|
19fd3d6987 | ||
|
|
4b14c86fd1 | ||
|
|
c535cf04e2 | ||
|
|
80e984a9c3 | ||
|
|
1cd7b76efe | ||
|
|
fb4992b580 | ||
|
|
4141572725 | ||
|
|
02f4f8b1d5 | ||
|
|
0dc7313afb | ||
|
|
3ba2d71784 | ||
|
|
3416991166 | ||
|
|
106657572d | ||
|
|
c9aff61110 | ||
|
|
e222409f50 | ||
|
|
b96de85044 | ||
|
|
3f0de09dd7 | ||
|
|
13a0eb4ca7 | ||
|
|
fb6353a816 | ||
|
|
24665747b3 | ||
|
|
c2749bbdd1 | ||
|
|
4077886165 | ||
|
|
44e04be67f | ||
|
|
baf5287ad2 | ||
|
|
548e4abd35 | ||
|
|
cc9d4d8794 | ||
|
|
ee53fd772d | ||
|
|
18f3d7243d | ||
|
|
dfc1bb7592 | ||
|
|
5a00289e8e | ||
|
|
d3de8c38b5 | ||
|
|
627632ce1b | ||
|
|
c3447873b6 | ||
|
|
03d78cdd1c | ||
|
|
19b0c65e4c | ||
|
|
4d26305564 | ||
|
|
863589e5ed | ||
|
|
68fd5267c2 | ||
|
|
126e49cd39 | ||
|
|
b9073013db | ||
|
|
8f8068b88c | ||
|
|
85f11b093d | ||
|
|
4a33db370b | ||
|
|
2fd6352a57 | ||
|
|
94998c8ec7 | ||
|
|
8389c16315 | ||
|
|
cf9e24feb1 | ||
|
|
f4b4e26f19 | ||
|
|
e5012856a1 | ||
|
|
927d73d410 | ||
|
|
f29bc74b7f | ||
|
|
03038b123f | ||
|
|
bc1b9b9677 | ||
|
|
0bb3f1e228 | ||
|
|
8ef230768b | ||
|
|
64654e1e72 | ||
|
|
ae905593b3 | ||
|
|
09370952fd | ||
|
|
9425088610 | ||
|
|
94f83b53df | ||
|
|
b3796aa3a1 | ||
|
|
5276fd0580 | ||
|
|
2f67fca2a6 | ||
|
|
690152a07b | ||
|
|
feabf58740 | ||
|
|
8bf208558d | ||
|
|
d9d46bc1f7 | ||
|
|
f835364822 | ||
|
|
c0de5a6835 | ||
|
|
a18bf636f8 | ||
|
|
2159a35bb8 | ||
|
|
f9a16898a5 | ||
|
|
35ac1c4577 | ||
|
|
26ed4c33a3 | ||
|
|
3e5e271331 | ||
|
|
e752a8cea3 | ||
|
|
290f8b5c7d | ||
|
|
c9cb9b6d36 | ||
|
|
ce61fb300c | ||
|
|
92ef1724d1 | ||
|
|
fe5219eb84 | ||
|
|
e9cf0bbf6e | ||
|
|
051ed439ca | ||
|
|
e126df11e7 | ||
|
|
e742181fe9 | ||
|
|
399d8ce326 | ||
|
|
9fc2f5c19f | ||
|
|
0554c7f685 | ||
|
|
587817af94 | ||
|
|
a2a3ca84e2 | ||
|
|
1634aaa9dd | ||
|
|
f35887d6e7 | ||
|
|
14bed81994 | ||
|
|
e00149562a | ||
|
|
0f86b1df69 | ||
|
|
5001f0896e | ||
|
|
579ce6c5ad | ||
|
|
4e3d6bd556 | ||
|
|
caf3e4b062 | ||
|
|
cf6baf2cd1 | ||
|
|
e65c522cb4 | ||
|
|
1e8f0026eb | ||
|
|
bd47db8a55 | ||
|
|
d41bfde25d | ||
|
|
7990bb3bf6 | ||
|
|
c6f568f99b | ||
|
|
f380f34468 | ||
|
|
d8f7aa193c | ||
|
|
d7ad543c12 | ||
|
|
8437f95c86 | ||
|
|
01d2b84ee1 | ||
|
|
cd70f58e34 | ||
|
|
234e8c2fde | ||
|
|
22d03cb2ee | ||
|
|
309843b53d | ||
|
|
f0cca94456 | ||
|
|
a421b4fb65 | ||
|
|
ed71cf74f6 | ||
|
|
0eb7e8220d | ||
|
|
f0814628b7 | ||
|
|
ec2daf2118 | ||
|
|
ef0487c3ab | ||
|
|
42c2dd8702 | ||
|
|
42f41e1cf4 | ||
|
|
05cf57dcfc | ||
|
|
51dfe89425 | ||
|
|
1339d6b3a6 | ||
|
|
d0b2016bb6 | ||
|
|
f77c7dded2 | ||
|
|
88f8515fb6 | ||
|
|
2133d6d081 | ||
|
|
ef40f66c93 | ||
|
|
cf0c4dcf3f | ||
|
|
873e4176c6 | ||
|
|
8f0f278832 | ||
|
|
109bda60d0 | ||
|
|
3492628dc4 | ||
|
|
19cfc140a8 | ||
|
|
577e45cd97 | ||
|
|
658a2b317e | ||
|
|
9c573a5b3c | ||
|
|
908d4051cd | ||
|
|
a81150508d | ||
|
|
8f9a8e9bb1 | ||
|
|
5ba64024ab | ||
|
|
f4bb232279 | ||
|
|
242a0937a3 | ||
|
|
a857a66a98 | ||
|
|
def755f1eb | ||
|
|
6f2747cf14 | ||
|
|
0181e525ce | ||
|
|
5da0fe3300 | ||
|
|
2f079ad059 | ||
|
|
9ba4208616 | ||
|
|
4b5bb42961 | ||
|
|
24886f2710 | ||
|
|
c30ecace75 | ||
|
|
b0984070db | ||
|
|
1c57686d1f | ||
|
|
0d24be6767 | ||
|
|
074eff1efd | ||
|
|
648011c64d | ||
|
|
37899a3feb | ||
|
|
d46407f7b6 | ||
|
|
7b1e92580d | ||
|
|
88701db4c4 | ||
|
|
339c7c5c23 | ||
|
|
08b19549ce | ||
|
|
f58b7cf347 | ||
|
|
3186a411b2 | ||
|
|
10fa741476 | ||
|
|
44d0578389 | ||
|
|
0a3b7e56a9 | ||
|
|
9db16bfa94 | ||
|
|
c0b27bca8f | ||
|
|
93abfc9a03 | ||
|
|
8eb3e55aa0 | ||
|
|
a2175afcad | ||
|
|
67e511765a | ||
|
|
5b21ab8811 | ||
|
|
a3cc322593 | ||
|
|
600c139a61 | ||
|
|
6c191d0fef | ||
|
|
9365fbdb7e | ||
|
|
9cc628939a | ||
|
|
410dddaa46 | ||
|
|
7230b83cbd | ||
|
|
194c47d962 | ||
|
|
da40527077 | ||
|
|
c1263af9b1 | ||
|
|
3197972e14 | ||
|
|
5b43e8a31e | ||
|
|
df4f1c1389 | ||
|
|
74006a91fe | ||
|
|
fdee0d73de | ||
|
|
3164dc874e | ||
|
|
7c5e1b808d | ||
|
|
fb6cd4f586 | ||
|
|
166dd98b72 | ||
|
|
fedf477f29 | ||
|
|
bf30e86b84 | ||
|
|
6062128b4b | ||
|
|
cda6d678dc | ||
|
|
0dd36736c7 | ||
|
|
6e45eef2a0 | ||
|
|
a118eeded9 | ||
|
|
ef2121bb70 | ||
|
|
8a6962da9e | ||
|
|
02aee14600 | ||
|
|
4157882f2e | ||
|
|
441a7c093f | ||
|
|
cb251f1648 | ||
|
|
0b3155a47e | ||
|
|
249f3b2e47 | ||
|
|
40397aa39e | ||
|
|
47a18d41f0 | ||
|
|
9ea9b29a69 | ||
|
|
8b1ad633be | ||
|
|
7cf433eb68 | ||
|
|
091e8059c5 | ||
|
|
fd256027ec | ||
|
|
d5564a04db | ||
|
|
0377e4a322 | ||
|
|
6c74e90c5d | ||
|
|
2564bb3e58 | ||
|
|
8a279dd94b | ||
|
|
acd76a10b6 | ||
|
|
b5dc619e0e | ||
|
|
93f26a90d0 | ||
|
|
8c487d3036 | ||
|
|
951b400227 | ||
|
|
f3479a4bc4 | ||
|
|
26078e1f34 | ||
|
|
1cbb482900 | ||
|
|
a3d7a216d5 | ||
|
|
263f5bb8ab | ||
|
|
44de935ef0 | ||
|
|
8b95602211 | ||
|
|
dc2faea5eb | ||
|
|
2113c749b1 | ||
|
|
7fe1d1d68c | ||
|
|
bfb73c992e | ||
|
|
f1fee79ca4 | ||
|
|
4a73335839 | ||
|
|
124badb961 | ||
|
|
8725b4fcf4 | ||
|
|
d12dce1c03 | ||
|
|
afb8efc0e9 | ||
|
|
bef31dc386 | ||
|
|
e8cd5e322f | ||
|
|
82020bcd1f | ||
|
|
258765dc48 | ||
|
|
787e5d4dbf | ||
|
|
3793bb18ae | ||
|
|
167ee487d6 | ||
|
|
beb80ce987 | ||
|
|
0ab9dd8bd0 | ||
|
|
9ba059a159 | ||
|
|
7da7cba812 | ||
|
|
b09f7e30b2 | ||
|
|
57f7811cd0 | ||
|
|
90b4eea1cd | ||
|
|
544de3b91c | ||
|
|
811eea0d3a | ||
|
|
e210328dba | ||
|
|
1e98f1227b | ||
|
|
b87a912ecc | ||
|
|
750a01aa80 | ||
|
|
143af1e091 | ||
|
|
e1f0e8d75b | ||
|
|
2f9d4e68eb | ||
|
|
4eb6997be9 | ||
|
|
afb64ed2bf | ||
|
|
71faef3dfd | ||
|
|
09eee46822 | ||
|
|
ae4d8195c0 | ||
|
|
df4f154a93 | ||
|
|
34d8d77344 | ||
|
|
c9852250e4 | ||
|
|
1877910b7e | ||
|
|
9c594bc997 | ||
|
|
1925e39b69 | ||
|
|
0c8bec2126 | ||
|
|
8b2259bf25 | ||
|
|
8ba04ac77a | ||
|
|
f6f22b155c | ||
|
|
2cb48d3d62 | ||
|
|
e3b88b8785 | ||
|
|
efdc892219 | ||
|
|
5aa175241a | ||
|
|
bc01fdb59a | ||
|
|
66f23c1aed | ||
|
|
4cebe3d92b | ||
|
|
ad0a13ebb2 | ||
|
|
e8e5dc6332 | ||
|
|
f271fdb993 | ||
|
|
fbbbcf5cdb | ||
|
|
9fe2970fb3 | ||
|
|
b4c4a81afb | ||
|
|
7478e82b9a | ||
|
|
4b586df2b5 | ||
|
|
ed62203527 | ||
|
|
fbb3ffc9e5 | ||
|
|
9819aa38f5 | ||
|
|
58d8b290af | ||
|
|
16f63a7e0c | ||
|
|
23172a3695 | ||
|
|
8553da6679 | ||
|
|
8256ff60b6 | ||
|
|
d5fb6dda49 | ||
|
|
e9a5fadacc | ||
|
|
8465875b24 | ||
|
|
41c12bcea9 | ||
|
|
cf23d0541c | ||
|
|
aaf03a8fc2 | ||
|
|
5b38eaa116 | ||
|
|
9b8ab88e41 | ||
|
|
3194d0ebd4 | ||
|
|
2a1bc70b97 | ||
|
|
2427d0e684 | ||
|
|
941f220f3d | ||
|
|
50aad8f42d | ||
|
|
24069fa7bf | ||
|
|
0e5dfec3bf | ||
|
|
7b6820a012 | ||
|
|
a172e04d5b | ||
|
|
750830b887 | ||
|
|
a51e7804b8 | ||
|
|
94debcfc3a | ||
|
|
c5d3dfd41c | ||
|
|
7491b90c30 | ||
|
|
e3f25ee71f | ||
|
|
588dd54fb6 | ||
|
|
00a0f14743 | ||
|
|
ef42267cfe | ||
|
|
0407e779f9 | ||
|
|
78d6d5ab1b | ||
|
|
fa180cfa13 | ||
|
|
d190d27534 | ||
|
|
916127d8f6 | ||
|
|
7583d8d434 | ||
|
|
b19aa01b72 | ||
|
|
148ef7afef | ||
|
|
5ad42f3b25 | ||
|
|
33bcd7194f | ||
|
|
edf2096b1b | ||
|
|
7fcf2650ee | ||
|
|
81e563b2b3 | ||
|
|
68088341d6 | ||
|
|
348f61951c | ||
|
|
48064306a1 | ||
|
|
373393dce7 | ||
|
|
bd5c85acc3 | ||
|
|
8a6afb3836 | ||
|
|
d8d7ae8e1b | ||
|
|
805b81cea7 | ||
|
|
514243a8e9 | ||
|
|
37113837d1 | ||
|
|
73d4c3565c | ||
|
|
cc30f5f3da | ||
|
|
8395bea72d | ||
|
|
ac17a2f2a7 | ||
|
|
a365f185cc | ||
|
|
7e7d8ac4e2 | ||
|
|
4e11a86b4e | ||
|
|
9f21f1dac4 | ||
|
|
d0f71bf64f | ||
|
|
950bb1810c | ||
|
|
81d0e9ea63 | ||
|
|
4b55175b7e | ||
|
|
cdf9eda132 | ||
|
|
7a953a166e | ||
|
|
f2d5d572ab | ||
|
|
02904cda8e | ||
|
|
24b7b27836 | ||
|
|
9da8cd890e | ||
|
|
eaab8e47ce | ||
|
|
b440872e60 | ||
|
|
247eb62e3b | ||
|
|
960c51f95d | ||
|
|
8e489304c1 | ||
|
|
2df40f4b88 | ||
|
|
c2d4bf113d | ||
|
|
806588edc6 | ||
|
|
ad6c731823 | ||
|
|
17749dbf96 | ||
|
|
a8c6baa188 | ||
|
|
ef63908539 | ||
|
|
d642fe6783 | ||
|
|
268d6eda8f | ||
|
|
84288cd8bb | ||
|
|
996e119b25 | ||
|
|
345763fcd3 | ||
|
|
f54a8ea432 | ||
|
|
5b21d61688 | ||
|
|
1f04495dc3 | ||
|
|
8373814243 | ||
|
|
d7c0aa4887 | ||
|
|
e6c2fa52f5 | ||
|
|
17b667d6e0 | ||
|
|
81750ea6b1 | ||
|
|
12b8624cdb | ||
|
|
a546e09b96 | ||
|
|
1e8bbb0ae4 | ||
|
|
6c7d6817bd | ||
|
|
8e72eb8652 | ||
|
|
308e37a48e | ||
|
|
82f6fb9e6d | ||
|
|
1d21f76ad3 | ||
|
|
59574da74c | ||
|
|
ccf47de448 | ||
|
|
84b418b5c6 | ||
|
|
7b8feaa48f | ||
|
|
612280c676 | ||
|
|
35579ab714 | ||
|
|
83e251621a | ||
|
|
6e7b130a45 | ||
|
|
69aa277848 | ||
|
|
a9675576d3 | ||
|
|
38e43e018c | ||
|
|
7cc43d36ef | ||
|
|
9cb86df61c | ||
|
|
00fbb77c19 | ||
|
|
2d2ebe0e12 | ||
|
|
92da3629d7 | ||
|
|
7822f5ce5d | ||
|
|
f77480ec28 | ||
|
|
2d6ce527e2 | ||
|
|
9baa296a49 | ||
|
|
f36c02b0b8 | ||
|
|
5bc00d8535 | ||
|
|
9f0fefd42d | ||
|
|
068960e4b2 | ||
|
|
6276bbce38 | ||
|
|
5e4e9100e4 | ||
|
|
c836f97ec3 | ||
|
|
e8ed9c7e49 | ||
|
|
bcf379cc8e | ||
|
|
7e6115a763 | ||
|
|
a5e463464a | ||
|
|
126e065d77 | ||
|
|
1902d597ef | ||
|
|
03761642ed | ||
|
|
44c6972f31 | ||
|
|
55d56d65bc | ||
|
|
7f02b63ccc | ||
|
|
25f5776d8e | ||
|
|
952b99742e | ||
|
|
a109062b1f | ||
|
|
aa508acde4 | ||
|
|
296ec9799f | ||
|
|
34392b464c | ||
|
|
7431990f70 | ||
|
|
e7c57ada95 | ||
|
|
7003920163 | ||
|
|
332d6e9d5c | ||
|
|
95fd0e177f | ||
|
|
cf083e4f42 | ||
|
|
2f3c25cb95 | ||
|
|
df977d50b6 | ||
|
|
ff07f3a385 | ||
|
|
0303604c37 | ||
|
|
27f1fb6fc6 | ||
|
|
cd2dfc7f10 | ||
|
|
09517659b1 | ||
|
|
c27b1e4e3b | ||
|
|
58416b9883 | ||
|
|
0432c863c7 | ||
|
|
2336bbf5ef | ||
|
|
160294e05d | ||
|
|
a11ab03b99 | ||
|
|
9dbf9541e9 | ||
|
|
27908edea1 | ||
|
|
d15992bfc2 | ||
|
|
f1fdfb7971 | ||
|
|
726e5613b3 | ||
|
|
48ff0b90d3 | ||
|
|
98b823c5fc | ||
|
|
557372203f | ||
|
|
6fbe160159 | ||
|
|
d7e275a309 | ||
|
|
0704453aff | ||
|
|
3e9683d88d | ||
|
|
4722d341af | ||
|
|
b53d74285b | ||
|
|
6c1d0f1bbe | ||
|
|
cf5006617c | ||
|
|
adb5b78cb6 | ||
|
|
6779ab5e29 | ||
|
|
a513754d25 | ||
|
|
9703be932d | ||
|
|
0493f3f5f8 | ||
|
|
a664dbb507 | ||
|
|
f3a3d34f71 | ||
|
|
b584a9aeb5 | ||
|
|
c621f8606b | ||
|
|
f7e20377ec | ||
|
|
b46cc5a241 | ||
|
|
a924908f12 | ||
|
|
2035bec7ad | ||
|
|
42100e0ab1 | ||
|
|
00583e9b39 | ||
|
|
efa82dccf9 | ||
|
|
057633c2c4 | ||
|
|
d0eb6322c3 | ||
|
|
3f36e0967f | ||
|
|
a44e71aad1 | ||
|
|
57c5632de2 | ||
|
|
8c6883db34 | ||
|
|
ca5eaddfa0 | ||
|
|
0c23d9a7ff | ||
|
|
72ea0ecfd8 | ||
|
|
d67f33bcd6 | ||
|
|
e2fe897811 | ||
|
|
417dbf36c8 | ||
|
|
fd394151fd | ||
|
|
f38d8bf824 | ||
|
|
8b9c393820 | ||
|
|
8aecb3270c | ||
|
|
0dce343d4f | ||
|
|
1a9367228d | ||
|
|
554887ae14 | ||
|
|
3c0ef430db | ||
|
|
a74af66d5f | ||
|
|
619e070d80 | ||
|
|
3a4b504a5d | ||
|
|
17a2466894 | ||
|
|
a2171124e1 | ||
|
|
49b210973e | ||
|
|
aedbf45c8c | ||
|
|
c43de104ce | ||
|
|
ff1f44773a | ||
|
|
8444d066f5 | ||
|
|
f73dbc513b | ||
|
|
edb4f233b0 | ||
|
|
a910ab626a | ||
|
|
04db1c3e4d | ||
|
|
b9b4778d05 | ||
|
|
46fc1c2a1b | ||
|
|
289e571fb0 | ||
|
|
473cbba26e | ||
|
|
a29e7027ca | ||
|
|
00116b7c74 | ||
|
|
a848321842 | ||
|
|
42df157a04 | ||
|
|
af1f2bdda8 | ||
|
|
7a8d15fe47 | ||
|
|
f3b97d6bef | ||
|
|
f10c90bdba | ||
|
|
78f44dcc8a | ||
|
|
e48ab95735 | ||
|
|
c62e76ab67 | ||
|
|
80df1f5ae8 | ||
|
|
dc0393acff | ||
|
|
73f5e11039 | ||
|
|
ac1d7572e4 | ||
|
|
ec6f2e575b | ||
|
|
8b171d3ca6 | ||
|
|
136c8af878 | ||
|
|
8d0ef13505 | ||
|
|
cf4556f115 | ||
|
|
5ba8b13ccf | ||
|
|
c51d717657 | ||
|
|
d7497f9686 | ||
|
|
f35d0106b8 | ||
|
|
2b451e7893 | ||
|
|
7e27ba1d42 | ||
|
|
6ac3f30c8f | ||
|
|
1a6daa297e | ||
|
|
0f216659f9 | ||
|
|
3f2d79b7fe | ||
|
|
d87482e415 | ||
|
|
9f2e2cd1e8 | ||
|
|
cf7d30d41c | ||
|
|
e5428a0738 | ||
|
|
ebc98ec1bb | ||
|
|
1771df0109 | ||
|
|
6586c7f007 | ||
|
|
665fdbdc2b | ||
|
|
57f4d8cefb | ||
|
|
31e1fbaf40 | ||
|
|
434349cb55 | ||
|
|
4b17721a33 | ||
|
|
2fb33ba940 | ||
|
|
d81af7594c | ||
|
|
e08a88b76c | ||
|
|
ef0e95847f | ||
|
|
9bcf624382 | ||
|
|
5bd3fb494c | ||
|
|
ab793a58b6 | ||
|
|
9b492f49c7 | ||
|
|
d820b54443 | ||
|
|
640c59d9af | ||
|
|
d743ada8fd | ||
|
|
d1b6a17773 | ||
|
|
1089934486 | ||
|
|
0d5168ca0b | ||
|
|
39ead1bb49 | ||
|
|
29a644d48c | ||
|
|
3264d9a6ea | ||
|
|
21b740ccf9 | ||
|
|
6c2302f6d3 | ||
|
|
a1fbe2428f | ||
|
|
7b202c4112 | ||
|
|
44e17c440d | ||
|
|
d8330d56a0 | ||
|
|
c989de3175 | ||
|
|
39b9ba87fc | ||
|
|
b6fa480c97 | ||
|
|
ecb2a42900 | ||
|
|
dad92e723c | ||
|
|
ae74ff1db7 | ||
|
|
0a51e4ac32 | ||
|
|
80f6fb5802 | ||
|
|
9cda669b3b | ||
|
|
8b64e9b3ea | ||
|
|
950ce4c88e | ||
|
|
f67a52d9ef | ||
|
|
6f525bfd2e | ||
|
|
552d77f041 | ||
|
|
474fd8d47e | ||
|
|
5e6b4e55c5 | ||
|
|
10c6d86d13 | ||
|
|
49a5c832ea | ||
|
|
415ac07a60 | ||
|
|
aff41cfcc0 | ||
|
|
aca849ffb1 | ||
|
|
a9cbea1563 | ||
|
|
2b523fff7c | ||
|
|
e53d8226db | ||
|
|
9562756eeb | ||
|
|
a05c932973 | ||
|
|
398a292053 | ||
|
|
551a2edf4b | ||
|
|
9bf2242626 | ||
|
|
be3e985344 | ||
|
|
58abb9b165 | ||
|
|
98da9f1800 | ||
|
|
44764ec1d1 | ||
|
|
f4582d2f46 | ||
|
|
e674255ebe | ||
|
|
7b78c215ae | ||
|
|
52c6739b95 | ||
|
|
6290fb3227 | ||
|
|
ebcccd2cf7 | ||
|
|
73b6adba49 | ||
|
|
d8631c35eb | ||
|
|
4c2b17a42e | ||
|
|
483376deb2 | ||
|
|
d091f3f835 | ||
|
|
299a62804c | ||
|
|
98338565d0 | ||
|
|
682e65fead | ||
|
|
b7cbd20b6f | ||
|
|
0b70124cdd | ||
|
|
906a132e89 | ||
|
|
b9c3981261 | ||
|
|
9132d91f66 | ||
|
|
f2c1fd207e | ||
|
|
d32d6e6851 | ||
|
|
f0e396678c | ||
|
|
7787bc2c07 | ||
|
|
aec4e468e3 | ||
|
|
7d168cb6e2 | ||
|
|
d2cc04d770 | ||
|
|
ccdb189e77 | ||
|
|
b5e7a2673d | ||
|
|
e782e1262c | ||
|
|
2975b92fea | ||
|
|
031c31d367 | ||
|
|
30d8d6efd7 | ||
|
|
268298d2d8 | ||
|
|
10837fb91a | ||
|
|
7277e295e6 | ||
|
|
85ead5486c | ||
|
|
b134b080db | ||
|
|
eb395894e1 | ||
|
|
86c7f950d6 | ||
|
|
4b441dc503 | ||
|
|
1ad3d4e764 | ||
|
|
f0b0e00b06 | ||
|
|
4dbc4c5bfd | ||
|
|
d8296e5dac | ||
|
|
2d151fb353 | ||
|
|
341ba5b859 | ||
|
|
308565f8f4 | ||
|
|
5b98066d16 | ||
|
|
93ed1ee50a | ||
|
|
5961431505 | ||
|
|
d6a8c9465e | ||
|
|
dc820fced4 | ||
|
|
db3ad70a3d | ||
|
|
5b40190cbe | ||
|
|
69ad741dd4 | ||
|
|
ffb9674243 | ||
|
|
22dab733f0 | ||
|
|
ace3ac4f1d | ||
|
|
3a368809fb | ||
|
|
50daa17c2a | ||
|
|
cd308e47d2 | ||
|
|
5dfb4199ca | ||
|
|
83e173d91f | ||
|
|
fdc2f9d97e | ||
|
|
f725a46220 | ||
|
|
08e51d1c8e | ||
|
|
3f5a8085b6 | ||
|
|
4ef1f5e63f | ||
|
|
936cd6a028 | ||
|
|
3df9ae8c5e | ||
|
|
63b17022f6 | ||
|
|
d2ecb1e819 | ||
|
|
1757fa973b | ||
|
|
dccf867308 | ||
|
|
3607cddcca | ||
|
|
c9e2b384e7 | ||
|
|
11bd31c15b | ||
|
|
2c3ed38714 | ||
|
|
5504916b80 | ||
|
|
fd77ab64ad | ||
|
|
13a981c94b | ||
|
|
8d80924ba8 | ||
|
|
0a5d15db50 | ||
|
|
8f0ecc4df2 | ||
|
|
534124ec2f | ||
|
|
8c38d22b60 | ||
|
|
0555bb081a | ||
|
|
3cf8618fc7 | ||
|
|
59a66c7aaa | ||
|
|
e6f6dcc230 | ||
|
|
b1d00af58b | ||
|
|
fd0e2436da | ||
|
|
932bf4deb3 | ||
|
|
54df314936 | ||
|
|
ec10b661f3 | ||
|
|
29a723166d | ||
|
|
4e0cddcb41 | ||
|
|
cca86886f1 | ||
|
|
3602a37c96 | ||
|
|
f627f7679b | ||
|
|
154b8babc4 | ||
|
|
3f23dfb87b | ||
|
|
aac1d921c7 | ||
|
|
179b241aec | ||
|
|
f0fc4d4e73 | ||
|
|
9ae748408a | ||
|
|
8ab5a338b5 | ||
|
|
227c984d89 | ||
|
|
abd0d66e66 | ||
|
|
23eebf396c | ||
|
|
98dedfd2ff | ||
|
|
681948e71c | ||
|
|
b3578325cb | ||
|
|
b0a70b0ca6 | ||
|
|
38d0e98ff5 | ||
|
|
23f3e21ba4 | ||
|
|
1d65bab158 | ||
|
|
80f9a7c5a5 | ||
|
|
c2f90f21db | ||
|
|
a3147c5d08 | ||
|
|
7222af3284 | ||
|
|
d916e8ccaf | ||
|
|
5001272a2e | ||
|
|
d05b519f2f | ||
|
|
0f8373dd2d | ||
|
|
dfb534f1d4 | ||
|
|
7a644730a5 | ||
|
|
4066d38e4a | ||
|
|
393a95e41c | ||
|
|
7a8451adeb | ||
|
|
b8fc917016 | ||
|
|
6b8da1237c | ||
|
|
5c49e399ce | ||
|
|
32dadc008b | ||
|
|
aff6449c74 | ||
|
|
2237dc8e72 | ||
|
|
a4b34c16d7 | ||
|
|
e336947e8d | ||
|
|
bc0d783f50 | ||
|
|
4ba443e829 | ||
|
|
3d8adaab67 | ||
|
|
24f8cba0a1 | ||
|
|
607d8ad154 | ||
|
|
cde6dce939 | ||
|
|
1caaf6d75f | ||
|
|
1300cde76c | ||
|
|
310023e179 | ||
|
|
8c6d9c9e66 | ||
|
|
bd6566f85b | ||
|
|
b8d69e0f3b | ||
|
|
10e2510f0f | ||
|
|
15be53e98c | ||
|
|
ce3030268b | ||
|
|
aeffd48ccb | ||
|
|
2f1975636a | ||
|
|
b7be16eac7 | ||
|
|
d55afd57b5 | ||
|
|
22b1460595 | ||
|
|
efc601a76d | ||
|
|
ffd9ace84e | ||
|
|
251cddfa96 | ||
|
|
d9b89a8ebe | ||
|
|
a1c72d8890 | ||
|
|
9fe3d8b2e2 | ||
|
|
52667c1166 | ||
|
|
de1f18417a | ||
|
|
acd8b3ddc1 | ||
|
|
a65d2d4078 | ||
|
|
9f43716723 | ||
|
|
d6235e714e | ||
|
|
cdf9a8e84d | ||
|
|
437412362e | ||
|
|
7a364e0593 | ||
|
|
65b90df4b8 | ||
|
|
38fd9f2685 | ||
|
|
de3e3d74ce | ||
|
|
becaf20ee9 | ||
|
|
3f16b340fc | ||
|
|
5c70d37da6 | ||
|
|
c0b6eac0c2 | ||
|
|
a34c0e262b | ||
|
|
31a1aae02e | ||
|
|
b208550e6e | ||
|
|
cd1304aaae | ||
|
|
767ac44e99 | ||
|
|
28240adaf5 | ||
|
|
9cdf7678bb | ||
|
|
300b5cad44 | ||
|
|
72ec3fd48d | ||
|
|
e1712eb44a | ||
|
|
552063aeac | ||
|
|
dad58ba622 | ||
|
|
bbc49ca805 | ||
|
|
38bb1569af | ||
|
|
e07c0ec829 | ||
|
|
6dbb4e6737 | ||
|
|
863cc1bae3 | ||
|
|
60179e9ab9 | ||
|
|
a512a5b115 | ||
|
|
46647373ee | ||
|
|
4b7e8f5f83 | ||
|
|
20be8980e1 | ||
|
|
34139f4dce | ||
|
|
9affb99899 | ||
|
|
f395a0f8c5 | ||
|
|
80f10ce824 | ||
|
|
46a266fa5c | ||
|
|
4f2df30f1d | ||
|
|
c1b16217f2 | ||
|
|
34fb85a9d7 | ||
|
|
6bc6fd9cbc | ||
|
|
945f1e7580 | ||
|
|
ae90c32f01 | ||
|
|
25e0053a13 | ||
|
|
88255fd776 | ||
|
|
e0be143ed5 | ||
|
|
dd4e88525e | ||
|
|
5d64762bcb | ||
|
|
7c98e922c3 | ||
|
|
41c81dec88 | ||
|
|
887e90af1e | ||
|
|
69c44e50df | ||
|
|
bd4c1f8da6 | ||
|
|
95443d0c88 | ||
|
|
9b1416da29 | ||
|
|
195e802f7c | ||
|
|
48c8f9ea84 | ||
|
|
9f5d85f2c6 | ||
|
|
c4237c7858 | ||
|
|
fbb59d29b9 | ||
|
|
554aaf1574 | ||
|
|
2ebcadfcd5 | ||
|
|
d9bb3adbe8 | ||
|
|
070a6b11f0 | ||
|
|
43e1c86b6e | ||
|
|
b0b202f112 | ||
|
|
2fdf7f508d | ||
|
|
e14197c060 | ||
|
|
814fd858d8 | ||
|
|
97995cf20b | ||
|
|
8fc85198b0 | ||
|
|
2b64a7af7b | ||
|
|
fc2c9176a6 | ||
|
|
7192644c07 | ||
|
|
992870e2d2 | ||
|
|
ad3c6713da | ||
|
|
3fef07f9e9 | ||
|
|
0c3aed0083 | ||
|
|
a5abd8df23 | ||
|
|
73158b8c71 | ||
|
|
4f85cbec54 | ||
|
|
8f4c6a5bbf | ||
|
|
5b7227a0bf | ||
|
|
f387bb75bf | ||
|
|
e27bfc4fa6 | ||
|
|
aa2838cdcd | ||
|
|
be16ba01ca | ||
|
|
3413f6d138 | ||
|
|
954a5077cf | ||
|
|
0050f00703 | ||
|
|
867bcce1cc | ||
|
|
257abb63d7 | ||
|
|
004e7ad0d0 | ||
|
|
ba93698c20 | ||
|
|
35064a45f7 | ||
|
|
a940cdd6a7 | ||
|
|
e978133b85 | ||
|
|
0b4c0ee41c | ||
|
|
5a1588a2dc | ||
|
|
abb680d28f | ||
|
|
8fcedb03a4 | ||
|
|
7ecb6700fb | ||
|
|
4892a2f039 | ||
|
|
9363a6a340 | ||
|
|
6e58be72bb | ||
|
|
6530fbe6c3 | ||
|
|
612aa3493b | ||
|
|
609e94a58a | ||
|
|
652638e902 | ||
|
|
7149113ab6 | ||
|
|
2215f49617 | ||
|
|
40fec9ca35 | ||
|
|
279eae1dba | ||
|
|
cf1b1822b8 | ||
|
|
952a282756 | ||
|
|
51b62fb188 | ||
|
|
5a123d0840 | ||
|
|
a186254e14 | ||
|
|
8b0bd11fc8 | ||
|
|
d96d82939a | ||
|
|
1ebdba13a6 | ||
|
|
f6326fcc99 | ||
|
|
c8e35afecb | ||
|
|
a2e3f28060 | ||
|
|
ef54dddbbc | ||
|
|
46b7f80fef | ||
|
|
890b515e44 | ||
|
|
7174f65da3 | ||
|
|
fb52d472d2 | ||
|
|
5f0ea2c2c7 | ||
|
|
f0048a5611 | ||
|
|
a9cd2cd278 | ||
|
|
8d72589743 | ||
|
|
90e224bd96 | ||
|
|
290a83e2ed | ||
|
|
44a3595d77 | ||
|
|
6525bda9fd | ||
|
|
1b36050621 | ||
|
|
7cc2a070e8 | ||
|
|
230f24208b | ||
|
|
0ecf981673 | ||
|
|
cacf2629fd | ||
|
|
2c935dc4e0 | ||
|
|
a2d7f56933 | ||
|
|
b338c77726 | ||
|
|
40e9f0eaf2 | ||
|
|
a2011b035d | ||
|
|
e34c18a26e | ||
|
|
1092f6b2a2 | ||
|
|
6897e3cc52 | ||
|
|
2242224a0f | ||
|
|
f63963403b | ||
|
|
498e3aa3ee | ||
|
|
b0c14cfe05 | ||
|
|
0259977fa9 | ||
|
|
eb5607544c | ||
|
|
4999c792f1 | ||
|
|
5af338f92b | ||
|
|
071aad4815 | ||
|
|
a43cca7720 | ||
|
|
aa260f800e | ||
|
|
a4fb2501d8 | ||
|
|
627abaf1a7 | ||
|
|
5ead77bcd1 | ||
|
|
9ffed70ffd | ||
|
|
cbfd533d49 | ||
|
|
d3ff8d7fb0 | ||
|
|
19fe73e78e | ||
|
|
72a0f70e7a | ||
|
|
645a0ce2d4 | ||
|
|
d19bf0970b | ||
|
|
10eb041199 | ||
|
|
99ca4047dd | ||
|
|
d838214f96 | ||
|
|
c463321643 | ||
|
|
a94a00de1d | ||
|
|
9a35c08300 | ||
|
|
8bd97532df | ||
|
|
baed03d50d | ||
|
|
c984bedd09 | ||
|
|
e6343ca272 | ||
|
|
f88681951a | ||
|
|
87fcca91bd | ||
|
|
6fd6b794ef | ||
|
|
2fff18fd0c | ||
|
|
91a772a952 | ||
|
|
88ec3b9f6c | ||
|
|
2e8f4806d2 | ||
|
|
b8cf2b213b | ||
|
|
3035bbdfd3 | ||
|
|
c3165252f8 | ||
|
|
5a511c7591 | ||
|
|
48be3ee572 | ||
|
|
734712bf9c | ||
|
|
a2f84b144f | ||
|
|
74f2b4cb74 | ||
|
|
58d22350d8 | ||
|
|
b69e453061 | ||
|
|
a8cd6b735f | ||
|
|
51d5182592 | ||
|
|
6240162ecf | ||
|
|
5c592731f3 | ||
|
|
aef097e348 | ||
|
|
77ca38aa10 | ||
|
|
0b23eae429 | ||
|
|
b92565a096 | ||
|
|
3dcc2843ae | ||
|
|
34dd7b76b1 | ||
|
|
b435723b8c | ||
|
|
749dacc749 | ||
|
|
fd44295b17 | ||
|
|
17e69f9326 | ||
|
|
b44d1f4fec | ||
|
|
10ed2997d8 | ||
|
|
bfd33becbc | ||
|
|
50c28cdd60 | ||
|
|
764875147a | ||
|
|
440a8bdea7 | ||
|
|
faf9e467e4 | ||
|
|
072a347a54 | ||
|
|
eee205c688 | ||
|
|
f0dbedd39d | ||
|
|
f4ad1214e7 | ||
|
|
ca575bd35d | ||
|
|
fabda7c4b2 | ||
|
|
18c41bfc19 | ||
|
|
dfbe7447c9 | ||
|
|
5e0b0e69a5 | ||
|
|
6280ed2201 | ||
|
|
44cfb190f3 | ||
|
|
f86a7455c4 | ||
|
|
69c332b023 | ||
|
|
6280b35035 | ||
|
|
4a97e26bd9 | ||
|
|
152dc6e5d0 | ||
|
|
f5a148e6b3 | ||
|
|
a8a796f922 | ||
|
|
4c19e13bf6 | ||
|
|
1c6a56f781 | ||
|
|
3aabc44746 | ||
|
|
b426fa5509 | ||
|
|
70d376f215 | ||
|
|
c5f4710b8d | ||
|
|
14338e9c16 | ||
|
|
41a232de60 | ||
|
|
ce5ab5b59c | ||
|
|
c3c8c4fa73 | ||
|
|
0f70a21ba6 | ||
|
|
132861e175 | ||
|
|
bd1febeb41 | ||
|
|
f588fcf7b0 | ||
|
|
99a902a311 | ||
|
|
e8c99e4e63 | ||
|
|
afba132c13 | ||
|
|
8a7907e4cf | ||
|
|
bb5377fb8c | ||
|
|
657af1983d | ||
|
|
ab7e608129 | ||
|
|
0c2c058534 | ||
|
|
a52187a276 | ||
|
|
a9987de308 | ||
|
|
c02fdf2393 | ||
|
|
ca50e9e5b7 | ||
|
|
069a81db74 | ||
|
|
df460d2ed1 | ||
|
|
b29b969cfe | ||
|
|
a020251f69 | ||
|
|
b2292cc6fd | ||
|
|
647c1a6351 | ||
|
|
bfbb802b85 | ||
|
|
a446147902 | ||
|
|
d968f32456 | ||
|
|
1aea2c2b0c | ||
|
|
5b817f3146 | ||
|
|
a58f66a9a9 | ||
|
|
8e15f80d7a | ||
|
|
a35b3a5f52 | ||
|
|
9cf26f1fac | ||
|
|
fadf63cbd0 | ||
|
|
daa970fe4c | ||
|
|
3254e08785 | ||
|
|
544f951c14 | ||
|
|
08a640b793 | ||
|
|
d29f3b9068 | ||
|
|
d68991e982 | ||
|
|
5c536aafc7 | ||
|
|
757d46541c | ||
|
|
dc3bf0d04b | ||
|
|
9cde0ab860 | ||
|
|
bb00f4dafd | ||
|
|
16670e4015 | ||
|
|
4b85dd89a5 | ||
|
|
71f7c70279 | ||
|
|
2d24c8942e | ||
|
|
d24dcc7753 | ||
|
|
bea1501bb7 | ||
|
|
5751d342ff | ||
|
|
8514a85353 | ||
|
|
4a163b54f3 | ||
|
|
ad85e0e98d | ||
|
|
66a99dd6c4 | ||
|
|
eb762b6f4a | ||
|
|
14a1add08d | ||
|
|
cbd1aee0cc | ||
|
|
135d66dac7 | ||
|
|
3f30072de5 | ||
|
|
925a89ecdb | ||
|
|
d5c7f805ab | ||
|
|
67f42ed33a | ||
|
|
610ed7294f | ||
|
|
6c813020c2 | ||
|
|
0149924551 | ||
|
|
85264111cd | ||
|
|
921d736340 | ||
|
|
98c9b0eb39 | ||
|
|
7946298e67 | ||
|
|
c0271e3509 | ||
|
|
ad3ee7cb33 | ||
|
|
363ef8f45e | ||
|
|
9529200d4f | ||
|
|
85ca4e1888 | ||
|
|
c0da5ff8ef | ||
|
|
0b7cd12eaa | ||
|
|
9e25251891 | ||
|
|
e5c44b37c9 | ||
|
|
979342091a | ||
|
|
dc0e37b782 | ||
|
|
7f4c6e3634 | ||
|
|
085a6c8135 | ||
|
|
c5dac0aa70 | ||
|
|
40c1a6d112 | ||
|
|
6d9dd030a1 | ||
|
|
9f5240dd15 | ||
|
|
4a8782f1e0 | ||
|
|
d59f6979f7 | ||
|
|
7b8b058190 | ||
|
|
c6803838ab | ||
|
|
4846a49258 | ||
|
|
7cf12d1c12 | ||
|
|
2f06d214f5 | ||
|
|
80b78b8b5a | ||
|
|
5d264d2bf0 | ||
|
|
5832943773 | ||
|
|
2b2ac47b1f | ||
|
|
4be89715ed | ||
|
|
80fa26ddd8 | ||
|
|
656023e569 | ||
|
|
b99954e93a | ||
|
|
8daff341d0 | ||
|
|
66338a662d | ||
|
|
4784b7f2e2 | ||
|
|
af69933c64 | ||
|
|
8e9b20db51 | ||
|
|
0e8e104a2d | ||
|
|
29b64d8628 | ||
|
|
bda3a6803c | ||
|
|
cd2a2ebbc5 | ||
|
|
9df280a884 | ||
|
|
6e2f82c397 | ||
|
|
63629e1ee2 | ||
|
|
dbedbc19ee | ||
|
|
c0c5443782 | ||
|
|
4b942bc4f6 | ||
|
|
7d3fc3ccc7 | ||
|
|
fa88b578a4 | ||
|
|
598111b78e | ||
|
|
8f4756c99b | ||
|
|
05dfc226b7 | ||
|
|
a60a7f7c09 | ||
|
|
a3dbe4b658 | ||
|
|
c9beb6d4f4 | ||
|
|
eb75f4eedf | ||
|
|
80caaa5399 | ||
|
|
15c1323ff9 | ||
|
|
48f98717b6 | ||
|
|
09063b47b5 | ||
|
|
bd9aff46af | ||
|
|
b27acb8d5e | ||
|
|
9764dac149 | ||
|
|
79d803aba8 | ||
|
|
78a961e6ef | ||
|
|
a84db3add6 | ||
|
|
519e7976cd | ||
|
|
7d95df1a9d | ||
|
|
1c1010a65d | ||
|
|
ac84e98c7f | ||
|
|
945847d0a1 | ||
|
|
e5c2a226dd | ||
|
|
5541e9a236 | ||
|
|
c8eb3adf1e | ||
|
|
c2bde4e482 | ||
|
|
eb174f7a82 | ||
|
|
55a969f95f | ||
|
|
f344f2cdb2 | ||
|
|
ecdbab40ba | ||
|
|
819b9ce6ca | ||
|
|
c86a61eacb | ||
|
|
571760fb32 | ||
|
|
965b88d7c8 | ||
|
|
d950dada31 | ||
|
|
e49f529fe6 | ||
|
|
6f9fa4c12e | ||
|
|
b816128728 | ||
|
|
70021be919 | ||
|
|
32fa3501df | ||
|
|
a7cde96056 | ||
|
|
52a7c5e582 | ||
|
|
f52f9b6817 | ||
|
|
9f8ab48f1f | ||
|
|
8fb1d1f244 | ||
|
|
f3d5d16a82 | ||
|
|
783acfa961 | ||
|
|
3f897cfb79 | ||
|
|
c6e2c6a16e | ||
|
|
6431622881 | ||
|
|
00a8b4da16 | ||
|
|
0f09607725 | ||
|
|
94caa07168 | ||
|
|
5388f96551 | ||
|
|
3353eeb0c3 | ||
|
|
402697c369 | ||
|
|
4bcea473eb | ||
|
|
043b206705 | ||
|
|
76974a5888 | ||
|
|
59bce75d2a | ||
|
|
7a1533925a | ||
|
|
a2ae2f0f3e | ||
|
|
f078a9c935 | ||
|
|
404fa10bb7 | ||
|
|
8f1aab9236 | ||
|
|
c899100dab | ||
|
|
0c48a560b2 | ||
|
|
690a5f1f90 | ||
|
|
87337570e0 | ||
|
|
7864ed7861 | ||
|
|
03c75a8648 | ||
|
|
726bcbef83 | ||
|
|
016df5b902 | ||
|
|
14e20e23a0 | ||
|
|
aad5f94556 | ||
|
|
615b54eb67 | ||
|
|
fc23a38692 | ||
|
|
3b1d72202a | ||
|
|
4c236a64b8 | ||
|
|
3cc8291df4 | ||
|
|
c2b21985f4 | ||
|
|
168b675191 | ||
|
|
ebc1bc0096 | ||
|
|
be6bf00d74 | ||
|
|
f481070f82 | ||
|
|
9a460b5f6b | ||
|
|
8b38928aad | ||
|
|
30cd0aa584 | ||
|
|
8ab197eba6 | ||
|
|
6482ccf2f7 | ||
|
|
0f408e341f | ||
|
|
ed1e49045a | ||
|
|
be0a0de759 | ||
|
|
15575288e0 | ||
|
|
f2f77091ad | ||
|
|
c205323ff2 | ||
|
|
b0694c1e3b | ||
|
|
e0cfa1951a | ||
|
|
63084d30e9 | ||
|
|
9b82f19cc2 | ||
|
|
3f567b0bf0 | ||
|
|
bc74273208 | ||
|
|
6e08fc9e13 | ||
|
|
bf65b8a4fe | ||
|
|
e14bede9e9 | ||
|
|
ac76989447 | ||
|
|
b221e1ac1f | ||
|
|
ebc3f24671 | ||
|
|
fcffce46b4 | ||
|
|
2cc2027353 | ||
|
|
c425b9c0e6 | ||
|
|
1222287f22 | ||
|
|
44a64ba451 | ||
|
|
df6b90246a | ||
|
|
2d50511527 | ||
|
|
fcdff1c841 | ||
|
|
7a070dd859 | ||
|
|
afdd22bd1d | ||
|
|
a04022e8df | ||
|
|
c27bcd86d3 | ||
|
|
a3550a5b00 | ||
|
|
b477367099 | ||
|
|
671f774593 | ||
|
|
552e345fbf | ||
|
|
4d43fe3346 | ||
|
|
6ec5e9a07d | ||
|
|
ee82fde184 | ||
|
|
5dbaeb9ee5 | ||
|
|
cd99d44704 | ||
|
|
449131a516 | ||
|
|
93f371ab9f | ||
|
|
2f5ccbd54d | ||
|
|
718f32b177 | ||
|
|
1f8ee3a5ae | ||
|
|
16b3893166 | ||
|
|
fce065e185 | ||
|
|
b54bc6cd42 | ||
|
|
257313969c | ||
|
|
657b9dc018 | ||
|
|
bd4b7a890d | ||
|
|
d29e5eaef1 | ||
|
|
a639291ea7 | ||
|
|
53704379fa | ||
|
|
3d82da1c7e | ||
|
|
b4061e7b35 | ||
|
|
00a6357c4d | ||
|
|
0a76145a93 | ||
|
|
b75ef3ae18 | ||
|
|
f2df971eb0 | ||
|
|
47a7b03e0e | ||
|
|
9386415633 | ||
|
|
e111e30f33 | ||
|
|
61ce463cf9 | ||
|
|
758bab8e30 | ||
|
|
dea723bac3 | ||
|
|
dcfeff11bf | ||
|
|
475504cd85 | ||
|
|
936118955f | ||
|
|
d5ec75a643 | ||
|
|
d0f5585157 | ||
|
|
db0c8c3c3a | ||
|
|
1941be9995 | ||
|
|
313bff7aff | ||
|
|
2cd64d33ec | ||
|
|
ba3e65c919 | ||
|
|
03ed8085b9 | ||
|
|
fa91748741 | ||
|
|
c067f40ecf | ||
|
|
c9c845394f | ||
|
|
63bc9459d9 | ||
|
|
f6d40faa3d | ||
|
|
c475902e19 | ||
|
|
1f7bdd10f8 | ||
|
|
687a65aa95 | ||
|
|
4c207d9460 | ||
|
|
5fb7a8bc34 | ||
|
|
391e2b6fea | ||
|
|
04c16106cd | ||
|
|
85163bceb6 | ||
|
|
094f8d5391 | ||
|
|
09026af4fa | ||
|
|
d429eba4ae | ||
|
|
dc0c0877d7 | ||
|
|
21d001b22a | ||
|
|
487c22ceae | ||
|
|
72a9460ff6 | ||
|
|
46a1140583 | ||
|
|
f95b154117 | ||
|
|
7c5bec260b | ||
|
|
7cefe56167 | ||
|
|
ce9ac92028 | ||
|
|
da830a7670 | ||
|
|
e242c2ca1d | ||
|
|
82e989b652 | ||
|
|
0e83c90377 | ||
|
|
fb243807e8 | ||
|
|
d495b19448 | ||
|
|
ef5cdb0ec6 | ||
|
|
b3493c6382 | ||
|
|
17bac04030 | ||
|
|
e01c16c00b | ||
|
|
5abeaf3716 | ||
|
|
1d86ae3e3f | ||
|
|
7192a6d1a5 | ||
|
|
deea8060af | ||
|
|
faff14c44c | ||
|
|
2d7d002c85 | ||
|
|
9b3f61a084 | ||
|
|
4cf1ee769e | ||
|
|
0a617bef12 | ||
|
|
fef1b0981e | ||
|
|
b092bce4ff | ||
|
|
ef9b64673e | ||
|
|
4d53049a7f | ||
|
|
900827987a | ||
|
|
53d079ed95 | ||
|
|
63ae481dae | ||
|
|
9b6ad1b36f | ||
|
|
e5397cbfca | ||
|
|
a38ac3a07b | ||
|
|
d5c5d651cb | ||
|
|
ef0153692e | ||
|
|
5daf741922 | ||
|
|
ae657518c5 | ||
|
|
7d110c829f | ||
|
|
369f5a6171 | ||
|
|
b11c9c3b9c | ||
|
|
7530e46cfa | ||
|
|
2b84e0f245 | ||
|
|
5502083af9 | ||
|
|
02fe825113 | ||
|
|
6aa75c490b | ||
|
|
89456e7906 | ||
|
|
442caade91 | ||
|
|
e479411614 | ||
|
|
f360080fa7 | ||
|
|
e65384a407 | ||
|
|
3552f5ff66 | ||
|
|
54d4434900 | ||
|
|
7ceb7a439e | ||
|
|
f9b07991e1 | ||
|
|
e1f477ad8c | ||
|
|
30e2f44825 | ||
|
|
138adf0509 | ||
|
|
31a68e21a5 | ||
|
|
f5788a32a7 | ||
|
|
be2e4a33ae | ||
|
|
3c4e663224 | ||
|
|
eb5088eb40 | ||
|
|
d728c71f02 | ||
|
|
8813180d41 | ||
|
|
6bdacced92 | ||
|
|
74fffd5851 | ||
|
|
c4d5036878 | ||
|
|
e6c5fa9cd7 | ||
|
|
d29db03863 | ||
|
|
c8f0bb0ade | ||
|
|
e7ba63e020 | ||
|
|
8e122334ed | ||
|
|
ea8ffd8b6a | ||
|
|
8248ec63ba | ||
|
|
79766ad25c | ||
|
|
901eee1887 | ||
|
|
cd5b15fa55 | ||
|
|
ab87eb8af0 | ||
|
|
1aca93d297 | ||
|
|
871575607f | ||
|
|
509cb3a3c9 | ||
|
|
5acf9023d0 | ||
|
|
fd729216b5 | ||
|
|
b48cabee28 | ||
|
|
ed3dcd636f | ||
|
|
ac7db89a91 | ||
|
|
8209ed0a4c | ||
|
|
bc58c383ba | ||
|
|
d2dd7584d8 | ||
|
|
23de622d29 | ||
|
|
fbef99ae96 | ||
|
|
7d2c8be391 | ||
|
|
4a66289e5a | ||
|
|
9a923cc5dc | ||
|
|
0188809918 | ||
|
|
496cece074 | ||
|
|
cd152cca14 | ||
|
|
252e60b5af | ||
|
|
f49e82ade1 | ||
|
|
9e2a393426 | ||
|
|
4e7f558234 | ||
|
|
da611b9cb5 | ||
|
|
88c3891bef | ||
|
|
504e67303f | ||
|
|
ba5b950d5c | ||
|
|
5c274adddb | ||
|
|
d939fcec3f | ||
|
|
e8257e805d | ||
|
|
4c32ec4d67 | ||
|
|
fd69e5f2be | ||
|
|
e877a21b8e | ||
|
|
2ed3f28ab8 | ||
|
|
55908485f2 | ||
|
|
d6f03697d7 | ||
|
|
6c5775e6f6 | ||
|
|
28eef6c479 | ||
|
|
4e48170fac | ||
|
|
f746cb7f57 | ||
|
|
5cac9d61cc | ||
|
|
29a1ea9ae3 | ||
|
|
c48ce003ba | ||
|
|
27d1e808b8 | ||
|
|
b3b31ea16d | ||
|
|
83c59ee255 | ||
|
|
36e336f406 | ||
|
|
e3951fa3c6 | ||
|
|
a86c270f6a | ||
|
|
3a0683f373 | ||
|
|
6638ae855d | ||
|
|
b36d697585 | ||
|
|
7659e47e07 | ||
|
|
cf5eadebaa | ||
|
|
0927c55b3c | ||
|
|
d610b206f7 | ||
|
|
7352ddeb89 | ||
|
|
8eea827343 | ||
|
|
710353784b | ||
|
|
06b34055d1 | ||
|
|
3de0aad52a | ||
|
|
4fa590965c | ||
|
|
2b53d43faa | ||
|
|
0f55d173b8 | ||
|
|
cbb72c1ce4 | ||
|
|
66ad8364e0 | ||
|
|
b5ecc6e43c | ||
|
|
c1c07e2f3c | ||
|
|
4b993727c8 | ||
|
|
6c581b8eaf | ||
|
|
779811b52d | ||
|
|
c7a98f19b7 | ||
|
|
10d4aeb1c6 | ||
|
|
20b694b8c1 | ||
|
|
13273fb632 | ||
|
|
05da0ceaab | ||
|
|
68442578ba | ||
|
|
0e4c73072f | ||
|
|
bd7ff16537 | ||
|
|
241047795f | ||
|
|
293c65088d | ||
|
|
c56ee19763 | ||
|
|
08699e2b04 | ||
|
|
35dfa6c811 | ||
|
|
3e49fc6081 | ||
|
|
a42e4d4f4e | ||
|
|
631b92412e | ||
|
|
27fb1b6fde | ||
|
|
2b77e1601a | ||
|
|
eeba5f4d10 | ||
|
|
ceb39b0d07 | ||
|
|
d7ca176362 | ||
|
|
b0fe36e609 | ||
|
|
1fceb4a709 | ||
|
|
5350e9ba37 | ||
|
|
390153adc8 | ||
|
|
a096ec5bf7 | ||
|
|
007194a18f | ||
|
|
4c0d857f41 | ||
|
|
c8e9525f3b | ||
|
|
37d0176642 | ||
|
|
7c3bf59084 | ||
|
|
e4ea5e17f7 | ||
|
|
0acb2a335d | ||
|
|
c06d7aeacc | ||
|
|
e77d705d52 | ||
|
|
7252227ac6 | ||
|
|
3ddc260687 | ||
|
|
f30744c0b8 | ||
|
|
c37e80cd97 | ||
|
|
0a28c4282e | ||
|
|
dd8422c8a0 | ||
|
|
ee4f009d2f | ||
|
|
901c55bf41 | ||
|
|
e884a8704d | ||
|
|
b53e4e39ad | ||
|
|
6963c3c037 | ||
|
|
d0621a1949 | ||
|
|
0c21afc3e4 | ||
|
|
9a83db1c85 | ||
|
|
85498983c0 | ||
|
|
9894ceda2a | ||
|
|
880be210a1 | ||
|
|
7a38a8945c | ||
|
|
cdf6fe44d8 | ||
|
|
483f567d26 | ||
|
|
436561d9dd | ||
|
|
5162fda686 | ||
|
|
250e86e5f2 | ||
|
|
0bc8858760 | ||
|
|
3978dd87be | ||
|
|
0def9728bb | ||
|
|
b128675e60 | ||
|
|
9f57e57400 | ||
|
|
0d23ab44b3 | ||
|
|
b5a6eba175 | ||
|
|
44b1c9da89 | ||
|
|
e81b68ce8b | ||
|
|
167480bde6 | ||
|
|
4f45bbc05d | ||
|
|
8a703640d0 | ||
|
|
a5626a0573 | ||
|
|
33dbaccb68 | ||
|
|
f65129850d | ||
|
|
851d7e065a | ||
|
|
37112e07b6 | ||
|
|
263960aad1 | ||
|
|
b1f56c1e98 | ||
|
|
73b67f7a74 | ||
|
|
80995159b1 | ||
|
|
bfa16529de | ||
|
|
9543cc10dd | ||
|
|
7896350fe4 | ||
|
|
badf14e0f1 | ||
|
|
ea8ad4fc16 | ||
|
|
139bcca26a | ||
|
|
a613420953 | ||
|
|
946ef8878d | ||
|
|
e88f06b70f | ||
|
|
da627dda4b | ||
|
|
059ee6eaa5 | ||
|
|
8afa911eb5 | ||
|
|
a6f16e58e5 | ||
|
|
758118e00d | ||
|
|
1bebf55d30 | ||
|
|
32c776ba9f | ||
|
|
c2c4dbfc32 | ||
|
|
b2566cb64c | ||
|
|
dedf0a5d63 | ||
|
|
41bb512952 | ||
|
|
a1da682722 | ||
|
|
6da7cf3f84 | ||
|
|
216be8a673 | ||
|
|
411419e45f | ||
|
|
6617bdd57f | ||
|
|
6838fdd4c9 | ||
|
|
085c2d7e33 | ||
|
|
6c854ed056 | ||
|
|
d0b87ecd63 | ||
|
|
0469a31ea9 | ||
|
|
31f2e334cf | ||
|
|
b7f199c8cd | ||
|
|
d3a4fd115b | ||
|
|
0fec4c5ff7 | ||
|
|
d0722cab6a | ||
|
|
f02ad3e584 | ||
|
|
bb5b711dac | ||
|
|
7c2fffed68 | ||
|
|
989adabb1f | ||
|
|
1e78c45466 | ||
|
|
9b738b6cb6 | ||
|
|
4aa2369244 | ||
|
|
d702aad450 | ||
|
|
d41bb2663b | ||
|
|
07b1f5ea45 | ||
|
|
bf35b32a20 | ||
|
|
dba6e04a1b | ||
|
|
cb9054f7fd | ||
|
|
ad56dea388 | ||
|
|
529f869803 | ||
|
|
5371d8dd34 | ||
|
|
fc51ab05f4 | ||
|
|
053538cc42 | ||
|
|
8311f090de | ||
|
|
a09c07a427 | ||
|
|
eed926fa94 | ||
|
|
fe153b94fb | ||
|
|
fce931afbe | ||
|
|
d036602cec | ||
|
|
1a240ccf9d | ||
|
|
91f47a876c | ||
|
|
9f5d8d3901 | ||
|
|
0bfd22b235 | ||
|
|
965a27b115 | ||
|
|
47fbbf6ce2 | ||
|
|
cc6e0f1b3c | ||
|
|
0001e0989b | ||
|
|
6d87fffb73 | ||
|
|
5760e427d2 | ||
|
|
c4d4962806 | ||
|
|
250cb35f8e | ||
|
|
2b995fd8cf | ||
|
|
0a99d0f211 | ||
|
|
fd4eff7292 | ||
|
|
6f40544732 | ||
|
|
4e58ebd360 | ||
|
|
43f72031f9 | ||
|
|
3811228ac7 | ||
|
|
c57f5e5f0a | ||
|
|
0d32a49244 | ||
|
|
6a0fa114da | ||
|
|
7b805ead9e | ||
|
|
95030cd838 | ||
|
|
e568eb3ccf | ||
|
|
813afe1e3f | ||
|
|
8b6ab65ca7 | ||
|
|
f5df71ba70 | ||
|
|
1553dce3dc | ||
|
|
055df25c58 | ||
|
|
4dddf4c3d9 | ||
|
|
4d5cf372b0 | ||
|
|
34f65a8908 | ||
|
|
b4dec522f1 | ||
|
|
af553366d4 | ||
|
|
66524a8075 | ||
|
|
33229597c8 | ||
|
|
e41ba12445 | ||
|
|
31a074daf5 | ||
|
|
4045e06aa9 | ||
|
|
61fe8a8418 | ||
|
|
954c1c313e | ||
|
|
c1575e810b | ||
|
|
16d687205d | ||
|
|
15ef7eec85 | ||
|
|
db68c09e4d | ||
|
|
9d07300e71 | ||
|
|
ffc24e892e | ||
|
|
49b8f90e66 | ||
|
|
eb4dab90e5 | ||
|
|
7b9828a7a7 | ||
|
|
727586ecb9 | ||
|
|
b3860a8fd5 | ||
|
|
e189667d20 | ||
|
|
fe69c0e354 | ||
|
|
1c549b4df3 | ||
|
|
931100e030 | ||
|
|
6c13de715e | ||
|
|
37cdbcc72f | ||
|
|
da5bf46dbf | ||
|
|
2c8e5600ce | ||
|
|
cb8e4e0ee7 | ||
|
|
c5fe7df2e4 | ||
|
|
0194c8e3c2 | ||
|
|
980dbc121a | ||
|
|
d09506f5b1 | ||
|
|
13a9d2f6af | ||
|
|
d91f5ecc48 | ||
|
|
b180149100 | ||
|
|
6bbc411521 | ||
|
|
0ba7856d49 | ||
|
|
90ec289c89 | ||
|
|
b724ce6c0d | ||
|
|
9cccbd0712 | ||
|
|
3852be0d7e | ||
|
|
daa4781072 | ||
|
|
8ec2bcef17 | ||
|
|
c74277cae8 | ||
|
|
bc1328528a | ||
|
|
ff01bba55a | ||
|
|
8329da8d1c | ||
|
|
5865d5bc55 | ||
|
|
6d7f51f111 | ||
|
|
da4b863ad8 | ||
|
|
2d92791b17 | ||
|
|
4c615d8ddf | ||
|
|
c14d64b4e7 | ||
|
|
c2f4b38981 | ||
|
|
b1973fcdf4 | ||
|
|
6260c4d744 | ||
|
|
5029b5dc97 | ||
|
|
7505460d65 | ||
|
|
e211c908f8 | ||
|
|
87a1031de5 | ||
|
|
fef0088bf9 | ||
|
|
8a4bdd4046 | ||
|
|
da4d5caea8 | ||
|
|
2aa7812fc5 | ||
|
|
fdba4fc381 | ||
|
|
8730fc8824 | ||
|
|
35d26f1280 | ||
|
|
7e7494d5c7 | ||
|
|
a8797ae1ff | ||
|
|
a6c49dabcf | ||
|
|
296564a4ce | ||
|
|
5f7e6ac61a | ||
|
|
33da0e7b66 | ||
|
|
d042b4c277 | ||
|
|
338d0570fd | ||
|
|
cafbb82c41 | ||
|
|
de0266ded7 | ||
|
|
e703a58c5d | ||
|
|
fefc39147c | ||
|
|
d204d7764a | ||
|
|
92655b2d20 | ||
|
|
204f8f9813 | ||
|
|
b0dd3782a8 | ||
|
|
2ae22a934d | ||
|
|
594eb7fe95 | ||
|
|
c60b80b566 | ||
|
|
0578e8f2f6 | ||
|
|
daf85c75c7 | ||
|
|
b94a4832f7 | ||
|
|
ab24d9043e | ||
|
|
6dc7f2cfec | ||
|
|
5b80da7f6e | ||
|
|
0691d1d74e | ||
|
|
ade361479a | ||
|
|
0c06a429fb | ||
|
|
4233061dda | ||
|
|
7e579f1ec0 | ||
|
|
0e538b29c0 | ||
|
|
23f29ab65a | ||
|
|
464ce13b13 | ||
|
|
861e1515d4 | ||
|
|
2bd0fdf07b | ||
|
|
1921e009e6 | ||
|
|
b0584acaa5 | ||
|
|
eb8be03792 | ||
|
|
e57919e55b | ||
|
|
b01fa94ecd | ||
|
|
47b53ded6d | ||
|
|
3c8aeb7287 | ||
|
|
7b899fa767 | ||
|
|
73d4ba2a51 | ||
|
|
a673c39251 | ||
|
|
a1946a6e69 | ||
|
|
f695cb012a | ||
|
|
317a27d6f3 | ||
|
|
eb2a30e461 | ||
|
|
e49ce543a4 | ||
|
|
575fff6737 | ||
|
|
b3f14f09c4 | ||
|
|
6812de6a77 | ||
|
|
0ec70256d6 | ||
|
|
23ae91cfd5 | ||
|
|
999880f350 | ||
|
|
85815a32a0 | ||
|
|
0a6745f1e4 | ||
|
|
08c01de6b0 | ||
|
|
ad2b4a3863 | ||
|
|
91d6844ecd | ||
|
|
929ce05f81 | ||
|
|
81b7a77954 | ||
|
|
91045b0ad1 | ||
|
|
b11f6abb3c | ||
|
|
571f3f30a4 | ||
|
|
85ddded15c | ||
|
|
d3c8880b22 | ||
|
|
54d3bbd625 | ||
|
|
405a8db075 | ||
|
|
27e58be43d | ||
|
|
cee34fa51b | ||
|
|
16aa548383 | ||
|
|
860fdabd76 | ||
|
|
761aa0ea5c | ||
|
|
d493d0a820 | ||
|
|
d6e35edac5 | ||
|
|
2143eebd30 | ||
|
|
64225776d4 | ||
|
|
355c3c7b58 | ||
|
|
e792a121f4 | ||
|
|
3364dbb46e | ||
|
|
23610efe30 | ||
|
|
75bf3e1ccf | ||
|
|
f2f5cd2630 | ||
|
|
6f6698dd6a | ||
|
|
4320b07c5d | ||
|
|
25603d7cf1 | ||
|
|
935eb63876 | ||
|
|
6111b91cca | ||
|
|
7a34d22b37 | ||
|
|
c3f51c676a | ||
|
|
968c8aa34e | ||
|
|
b001a48567 | ||
|
|
bf9156cbeb | ||
|
|
bafd8548d1 | ||
|
|
e3ead5df06 | ||
|
|
22ca08179d | ||
|
|
c8df907ff2 | ||
|
|
c0950dee11 | ||
|
|
da3d8952da | ||
|
|
95e43c852d | ||
|
|
d4d3555a88 | ||
|
|
ef9a1a25b1 | ||
|
|
44fdfaa630 | ||
|
|
112473afee | ||
|
|
5e505f200a | ||
|
|
5e4474ca8c | ||
|
|
d3f766c748 | ||
|
|
2b1acc6216 | ||
|
|
c008de1a88 | ||
|
|
e6a38d8211 | ||
|
|
e6f4054d3b | ||
|
|
fe636a0e98 | ||
|
|
76d36d4b20 | ||
|
|
89b62cd53b | ||
|
|
abb5fef043 | ||
|
|
0c486c522a | ||
|
|
af3c38052e | ||
|
|
f1ff39cc8b | ||
|
|
643c2e6f21 | ||
|
|
d5aa0d9a8e | ||
|
|
793b27e9f5 | ||
|
|
9d28549b2b | ||
|
|
ef90f5a097 | ||
|
|
c50d775330 | ||
|
|
6da6cef760 | ||
|
|
1d94d71a5b | ||
|
|
65fee5b7ac | ||
|
|
5267776627 | ||
|
|
a721ce03c9 | ||
|
|
23e2fcefef | ||
|
|
d17d470d48 | ||
|
|
c6dedbc40b | ||
|
|
de107c5502 | ||
|
|
6740ca9ee8 | ||
|
|
2c82ca86f0 | ||
|
|
b7ad9160ef | ||
|
|
acc97a53eb | ||
|
|
7634c0c2c4 | ||
|
|
49cc39c4dd | ||
|
|
3595c2cce7 | ||
|
|
80c4809aee | ||
|
|
10b4aa1bab | ||
|
|
8f7cbc5ed6 | ||
|
|
b66a114873 | ||
|
|
7094f65ef7 | ||
|
|
ac8e62818f | ||
|
|
c89fb3ccfe | ||
|
|
223d5ab60d | ||
|
|
2142b538ac | ||
|
|
5149889bd2 | ||
|
|
b57cdb730c | ||
|
|
8600d46a0e | ||
|
|
7509425aa4 | ||
|
|
c9ab9bc711 | ||
|
|
cd6ac857b9 | ||
|
|
7b35557cee | ||
|
|
4549d2f7a8 | ||
|
|
7780d77ade | ||
|
|
bfaac061c8 | ||
|
|
afce912f11 | ||
|
|
a705c6fe11 | ||
|
|
26e146b1d8 | ||
|
|
64ab764827 | ||
|
|
314b04df7a | ||
|
|
29b1f0d55d | ||
|
|
a62bbd6650 | ||
|
|
38fa805f03 | ||
|
|
1d3f8b5d7d | ||
|
|
c53aa7e8d5 | ||
|
|
109cd6f3a6 | ||
|
|
4f703efd23 | ||
|
|
a157fff318 | ||
|
|
84ed12ec46 | ||
|
|
5fb692a876 | ||
|
|
06908775e8 | ||
|
|
da66a37182 | ||
|
|
96eaf2de06 | ||
|
|
86d9d691e4 | ||
|
|
c69ba6a3dd | ||
|
|
2adf3befb8 | ||
|
|
f81e36d8e0 | ||
|
|
f7d62f054c | ||
|
|
9a44895d41 | ||
|
|
56e871f8b5 | ||
|
|
de6ecb22a8 | ||
|
|
c0b6eefd8f | ||
|
|
a09fa923a5 | ||
|
|
7c207d47bb | ||
|
|
eac5d652cf | ||
|
|
4d3e903670 | ||
|
|
e7cd691362 | ||
|
|
74759142d9 | ||
|
|
3021d3a6a7 | ||
|
|
cfafe90235 | ||
|
|
ccaca9fc52 | ||
|
|
3f918f4e8d | ||
|
|
5871d64c9d | ||
|
|
d1f19b8e0d | ||
|
|
7b4a954c40 | ||
|
|
1159e1f792 | ||
|
|
3f214f6ac4 | ||
|
|
0159d20d6d | ||
|
|
ce20380078 | ||
|
|
f9e5c9c596 | ||
|
|
7d04ef3e2d | ||
|
|
ced3633d80 | ||
|
|
e62b2e4479 | ||
|
|
8cf57941ac | ||
|
|
dd132c9fad | ||
|
|
1cdfc709ae | ||
|
|
1b01efc08b | ||
|
|
28450cbb5a | ||
|
|
1c341e288c | ||
|
|
3f23deb09a | ||
|
|
ceafa88dc8 | ||
|
|
54186d7893 | ||
|
|
9a0c0e2f2b | ||
|
|
ae1221d811 | ||
|
|
c6d1778202 | ||
|
|
e532727713 | ||
|
|
edc16b9739 | ||
|
|
59871274ca | ||
|
|
039b54de48 | ||
|
|
5993b45c63 | ||
|
|
5c5364bbb7 | ||
|
|
6411c9267b | ||
|
|
f85fcf30a2 | ||
|
|
b5e0ae6f8c | ||
|
|
e6f5c2a008 | ||
|
|
31cfa0d952 | ||
|
|
a753d282cc | ||
|
|
e3a8dc89de | ||
|
|
18aa9b5091 | ||
|
|
84e051d19b | ||
|
|
af319c259b | ||
|
|
0af5642569 | ||
|
|
d6118f31e4 | ||
|
|
7463a58066 | ||
|
|
f645a9e1e4 | ||
|
|
a9591f8b99 | ||
|
|
43d9ebe51d | ||
|
|
aa90c97ba3 | ||
|
|
874c4aef21 | ||
|
|
2249c82ac2 | ||
|
|
a2c9a0796c | ||
|
|
d6bb13b54b | ||
|
|
d628f6b098 | ||
|
|
e2da56afa1 | ||
|
|
f74e4c95ff | ||
|
|
b8cb1fe795 | ||
|
|
1e8968d97a | ||
|
|
9c480d77f5 | ||
|
|
0e943f5832 | ||
|
|
e99f43af8d | ||
|
|
2bcb10c973 | ||
|
|
9301fff6cb | ||
|
|
83c33a03c6 | ||
|
|
e848acd806 | ||
|
|
72cc824502 | ||
|
|
4b3aac32c3 | ||
|
|
acab0ebd57 | ||
|
|
6a4d1c9b89 | ||
|
|
698b62af98 | ||
|
|
817370a65b | ||
|
|
07d5211e30 | ||
|
|
3fcecc98e6 | ||
|
|
6ed677a3f0 | ||
|
|
dd16bb984c | ||
|
|
f672c1792b | ||
|
|
0286564e8a | ||
|
|
96e75ab17f | ||
|
|
a6dddfa282 | ||
|
|
5a2a7d30e6 | ||
|
|
d5ea855108 | ||
|
|
d8a495b639 | ||
|
|
4aa3ef59d5 | ||
|
|
7451e176ef | ||
|
|
872d869ded | ||
|
|
d48e818390 | ||
|
|
fad3cf9672 | ||
|
|
9acd65270a | ||
|
|
57e1dda5f1 | ||
|
|
53d5d8c1d9 | ||
|
|
54da473991 | ||
|
|
f186ed3deb | ||
|
|
973cc6fd89 | ||
|
|
36b521a00e | ||
|
|
7065722fa6 | ||
|
|
10b54a9f3f | ||
|
|
e3bc0bca3e | ||
|
|
b903cee7dd | ||
|
|
282fdafad7 | ||
|
|
2fd894ffb9 | ||
|
|
5569bd9113 | ||
|
|
b044372cd8 | ||
|
|
a3a33c1dcd | ||
|
|
75a3c5f6ff | ||
|
|
c530f872f9 | ||
|
|
ab9100450b |
@@ -10,8 +10,6 @@ insert_final_newline = true
|
|||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
[Makefile]
|
[Makefile]
|
||||||
|
|||||||
2
.eslintignore
Normal file
2
.eslintignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
examples/Jugl.js
|
||||||
|
examples/resources/
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
*.pyc
|
|
||||||
/build/
|
/build/
|
||||||
/node_modules/
|
/node_modules/
|
||||||
/dist/
|
/dist/
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
*.pyc
|
|
||||||
/build/
|
/build/
|
||||||
|
|||||||
18
.travis.yml
18
.travis.yml
@@ -1,16 +1,30 @@
|
|||||||
|
sudo: false
|
||||||
|
|
||||||
|
language: node_js
|
||||||
|
|
||||||
|
node_js:
|
||||||
|
- "6"
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- node_modules
|
||||||
env:
|
env:
|
||||||
- DISPLAY=:99.0
|
- DISPLAY=:99.0
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- "sudo pip install -r requirements.txt"
|
- "npm prune"
|
||||||
- "npm install -g npm && npm install"
|
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- "rm src/ol/renderer/webgl/*shader.js"
|
- "rm src/ol/renderer/webgl/*shader.js"
|
||||||
- "sh -e /etc/init.d/xvfb start"
|
- "sh -e /etc/init.d/xvfb start"
|
||||||
|
- "npm ls"
|
||||||
|
|
||||||
script: "make ci"
|
script: "make ci"
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
- "make test-coverage"
|
- "make test-coverage"
|
||||||
- "cat coverage/lcov.info | ./node_modules/.bin/coveralls"
|
- "cat coverage/lcov.info | ./node_modules/.bin/coveralls"
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
|||||||
168
CONTRIBUTING.md
168
CONTRIBUTING.md
@@ -21,11 +21,14 @@ Look for `readme.md` files! Several directories contain a `readme.md` file that
|
|||||||
|
|
||||||
## Contributing Code
|
## Contributing Code
|
||||||
|
|
||||||
|
See [`DEVELOPING.md`](https://github.com/openlayers/ol3/blob/master/DEVELOPING.md) to learn how to get started developing.
|
||||||
|
|
||||||
Our preferred means of receiving contributions is through [pull requests](https://help.github.com/articles/using-pull-requests). Make sure
|
Our preferred means of receiving contributions is through [pull requests](https://help.github.com/articles/using-pull-requests). Make sure
|
||||||
that your pull request follows our pull request guidelines below before submitting it.
|
that your pull request follows our pull request guidelines below before submitting it.
|
||||||
|
|
||||||
This page describes what you need to know to contribute code to ol3 as a developer.
|
This page describes what you need to know to contribute code to ol3 as a developer.
|
||||||
|
|
||||||
|
|
||||||
## Contributor License Agreement
|
## Contributor License Agreement
|
||||||
|
|
||||||
Before accepting a contribution, we ask that you provide us a Contributor
|
Before accepting a contribution, we ask that you provide us a Contributor
|
||||||
@@ -35,162 +38,11 @@ Contributor License Agreement](https://raw.github.com/openlayers/cla/master/ccla
|
|||||||
making your contribution as an individual, you can submit a digital [Individual
|
making your contribution as an individual, you can submit a digital [Individual
|
||||||
Contributor License Agreement](https://docs.google.com/spreadsheet/viewform?formkey=dGNNVUJEMXF2dERTU0FXM3JjNVBQblE6MQ).
|
Contributor License Agreement](https://docs.google.com/spreadsheet/viewform?formkey=dGNNVUJEMXF2dERTU0FXM3JjNVBQblE6MQ).
|
||||||
|
|
||||||
## Setting up development environment
|
|
||||||
|
|
||||||
You will obviously start by
|
|
||||||
[forking](https://github.com/openlayers/ol3/fork_select) the ol3 repository.
|
|
||||||
|
|
||||||
### Travis CI
|
|
||||||
|
|
||||||
The Travis CI hook is enabled on the Github repository. This means every pull request
|
|
||||||
is run through a full test suite to ensure it compiles and passes the tests. Failing
|
|
||||||
pull requests will not be merged.
|
|
||||||
|
|
||||||
Although not mandatory, it is also recommended to set up Travis CI for your ol3 fork.
|
|
||||||
For that go to your ol3 fork's Service Hooks page and set up the Travis hook.
|
|
||||||
Then every time you push to your fork, the test suite will be run. This means
|
|
||||||
errors can be caught before creating a pull request. For those making
|
|
||||||
small or occasional contributions, this may be enough to check that your contributions
|
|
||||||
are ok; in this case, you do not need to install the build tools on your local environment
|
|
||||||
as described below.
|
|
||||||
|
|
||||||
### Development dependencies
|
|
||||||
|
|
||||||
The minimum requirements are:
|
|
||||||
|
|
||||||
* GNU Make
|
|
||||||
* Git
|
|
||||||
* [Node.js](http://nodejs.org/) (0.10.x or higher)
|
|
||||||
* Python 2.6 or 2.7 with a couple of extra modules (see below)
|
|
||||||
* Java 7 (JRE and JDK)
|
|
||||||
|
|
||||||
The executables `git`, `node`, `python` and `java` should be in your `PATH`.
|
|
||||||
|
|
||||||
You can check your configuration by running:
|
|
||||||
|
|
||||||
$ make check-deps
|
|
||||||
|
|
||||||
To install the Node.js dependencies run
|
|
||||||
|
|
||||||
$ npm install
|
|
||||||
|
|
||||||
To install the extra Python modules, run:
|
|
||||||
|
|
||||||
$ sudo pip install -r requirements.txt
|
|
||||||
or
|
|
||||||
|
|
||||||
$ cat requirements.txt | sudo xargs easy_install
|
|
||||||
|
|
||||||
depending on your OS and Python installation.
|
|
||||||
|
|
||||||
(You can also install the Python modules in a Python virtual environment if you want to.)
|
|
||||||
|
|
||||||
## Working with the build tool
|
|
||||||
|
|
||||||
As an ol3 developer you will use `make` to run build targets defined in the
|
|
||||||
`Makefile` located at the root of the repository. The `Makefile` includes
|
|
||||||
targets for running the linter, the compiler, the tests, etc.
|
|
||||||
|
|
||||||
The usage of `make` is as follows:
|
|
||||||
|
|
||||||
$ make <target>
|
|
||||||
|
|
||||||
where `<target>` is the name of the build target you want to execute. For
|
|
||||||
example:
|
|
||||||
|
|
||||||
$ make test
|
|
||||||
|
|
||||||
The main build targets are `serve`, `lint`, `build`, `test`, and `check`. The
|
|
||||||
latter is a meta-target that basically runs `lint`, `build`, and `test`.
|
|
||||||
|
|
||||||
The `serve` target starts a node-based web server, which we will refer to as the *dev server*. You'll need to start that server for running the examples and the tests in a browser. More information on that further down.
|
|
||||||
|
|
||||||
Other targets include `apidoc` and `ci`. The latter is the target used on Travis CI. See ol3's [Travis configuration file](https://github.com/openlayers/ol3/blob/master/.travis.yml).
|
|
||||||
|
|
||||||
## Running the `check` target
|
|
||||||
|
|
||||||
The `check` target is to be run before pushing code to GitHub and opening pull
|
|
||||||
requests. Branches that don't pass `check` won't pass the integration tests,
|
|
||||||
and have therefore no chance of being merged into `master`.
|
|
||||||
|
|
||||||
To run the `check` target:
|
|
||||||
|
|
||||||
$ make check
|
|
||||||
|
|
||||||
If you want to run the full suite of integration tests, see "Running the integration
|
|
||||||
tests" below.
|
|
||||||
|
|
||||||
## Running examples
|
|
||||||
|
|
||||||
To run the examples you first need to start the dev server:
|
|
||||||
|
|
||||||
$ make serve
|
|
||||||
|
|
||||||
Then, just point your browser <http://localhost:3000/build/examples> in your browser. For example <http://localhost:3000/build/examples/side-by-side.html>.
|
|
||||||
|
|
||||||
Run examples against the `ol.js` standalone build:
|
|
||||||
|
|
||||||
The examples can also be run against the `ol.js` standalone build, just like
|
|
||||||
the examples [hosted](http://openlayers.org/en/master/examples/) on GitHub.
|
|
||||||
Start by executing the `host-examples` build target:
|
|
||||||
|
|
||||||
$ make host-examples
|
|
||||||
|
|
||||||
After running `host-examples` you can now open the examples index page in the browser: <http://localhost:3000/build/hosted/master/examples/>. (This assumes that you still have the dev server running.)
|
|
||||||
|
|
||||||
Append `?mode=raw` to make the example work in full debug mode. In raw mode the OpenLayers and Closure Library scripts are loaded individually by the Closure Library's `base.js` script (which the example page loads and executes before any other script).
|
|
||||||
|
|
||||||
## Running tests
|
|
||||||
|
|
||||||
To run the tests in a browser start the dev server (`make serve`) and open <http://localhost:3000/test/index.html> in the browser.
|
|
||||||
|
|
||||||
To run the tests on the console (headless testing with PhantomJS) use the `test` target:
|
|
||||||
|
|
||||||
$ make test
|
|
||||||
|
|
||||||
See also the test-specific [README](../master/test/README.md).
|
|
||||||
|
|
||||||
## Running the integration tests
|
|
||||||
|
|
||||||
When you submit a pull request the [Travis continuous integration
|
|
||||||
server](https://travis-ci.org/) will run a full suite of tests, including
|
|
||||||
building all versions of the library and checking that all of the examples
|
|
||||||
work. You will receive an email with the results, and the status will be
|
|
||||||
displayed in the pull request.
|
|
||||||
|
|
||||||
To run the full suite of integration tests use the `ci` target:
|
|
||||||
|
|
||||||
$ make ci
|
|
||||||
|
|
||||||
Running the full suite of integration tests currently takes 5-10 minutes.
|
|
||||||
|
|
||||||
This makes sure that your commit won't break the build. It also runs JSDoc3 to
|
|
||||||
make sure that there are no invalid API doc directives.
|
|
||||||
|
|
||||||
## Adding examples
|
|
||||||
|
|
||||||
Adding functionality often implies adding one or several examples. This
|
|
||||||
section provides explanations related to adding examples.
|
|
||||||
|
|
||||||
The examples are located in the `examples` directory. Adding a new example
|
|
||||||
implies creating two or three files in this directory, an `.html` file, a `.js`
|
|
||||||
file, and, optionally, a `.css` file.
|
|
||||||
|
|
||||||
You can use `simple.js` and `simple.html` as templates for new examples.
|
|
||||||
|
|
||||||
### Use of the `goog` namespace in examples
|
|
||||||
|
|
||||||
Short story: the ol3 examples should not use the `goog` namespace, except
|
|
||||||
for `goog.require`.
|
|
||||||
|
|
||||||
Longer story: we want that the ol3 examples work in multiple modes, with the
|
|
||||||
standalone lib (which has implications of the symbols and properties we
|
|
||||||
export), and compiled together with the ol3 library.
|
|
||||||
|
|
||||||
Compiling the examples together with the library makes it mandatory to declare dependencies with `goog.require` statements.
|
|
||||||
|
|
||||||
## Pull request guidelines
|
## Pull request guidelines
|
||||||
|
|
||||||
|
Before working on a pull request, create an issue explaining what you want to contribute. This ensures that your pull request won't go unnoticed, and that you are not contributing something that is not suitable for the project. Once a core developer has set the `pull request accepted` label on the issue, you can submit a pull request. The pull request description should reference the original issue.
|
||||||
|
|
||||||
Your pull request must:
|
Your pull request must:
|
||||||
|
|
||||||
* Follow OpenLayers 3's coding style.
|
* Follow OpenLayers 3's coding style.
|
||||||
@@ -229,8 +81,7 @@ include:
|
|||||||
|
|
||||||
OpenLayers 3 follows [Google's JavaScript Style
|
OpenLayers 3 follows [Google's JavaScript Style
|
||||||
Guide](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml).
|
Guide](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml).
|
||||||
This is checked using the [Closure
|
This is checked using [ESLint](http://eslint.org/), you
|
||||||
Linter](https://developers.google.com/closure/utilities/) in strict mode. You
|
|
||||||
can run the linter locally on your machine before committing using the `lint`
|
can run the linter locally on your machine before committing using the `lint`
|
||||||
target:
|
target:
|
||||||
|
|
||||||
@@ -250,13 +101,6 @@ style of the existing OpenLayers 3 code, which includes:
|
|||||||
|
|
||||||
* Do not use assignments inside expressions.
|
* Do not use assignments inside expressions.
|
||||||
|
|
||||||
* Avoid the use of `goog.array.clone` with arrays (use slice instead).
|
|
||||||
|
|
||||||
* Use `array.length = 0` instead of `goog.array.clear`.
|
|
||||||
|
|
||||||
* Use bracket notation instead of `goog.object.set` and `goog.object.get` (with
|
|
||||||
two arguments).
|
|
||||||
|
|
||||||
* Use uppercase for `@const` variables.
|
* Use uppercase for `@const` variables.
|
||||||
|
|
||||||
### Configure your editor
|
### Configure your editor
|
||||||
|
|||||||
136
DEVELOPING.md
Normal file
136
DEVELOPING.md
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
# Developing
|
||||||
|
|
||||||
|
## Setting up development environment
|
||||||
|
|
||||||
|
You will obviously start by
|
||||||
|
[forking](https://github.com/openlayers/ol3/fork) the ol3 repository.
|
||||||
|
|
||||||
|
### Travis CI
|
||||||
|
|
||||||
|
The Travis CI hook is enabled on the Github repository. This means every pull request
|
||||||
|
is run through a full test suite to ensure it compiles and passes the tests. Failing
|
||||||
|
pull requests will not be merged.
|
||||||
|
|
||||||
|
### Development dependencies
|
||||||
|
|
||||||
|
The minimum requirements are:
|
||||||
|
|
||||||
|
* GNU Make
|
||||||
|
* Git
|
||||||
|
* [Node.js](http://nodejs.org/) (higher than 0.12.x)
|
||||||
|
* Python 2.6 or 2.7
|
||||||
|
* Java 7 (JRE and JDK)
|
||||||
|
|
||||||
|
The executables `git`, `node`, and `java` should be in your `PATH`.
|
||||||
|
|
||||||
|
You can check your configuration by running:
|
||||||
|
|
||||||
|
$ make check-deps
|
||||||
|
|
||||||
|
To install the Node.js dependencies run
|
||||||
|
|
||||||
|
$ npm install
|
||||||
|
|
||||||
|
## Working with the build tool
|
||||||
|
|
||||||
|
As an ol3 developer you will use `make` to run build targets defined in the
|
||||||
|
`Makefile` located at the root of the repository. The `Makefile` includes
|
||||||
|
targets for running the linter, the compiler, the tests, etc.
|
||||||
|
|
||||||
|
The usage of `make` is as follows:
|
||||||
|
|
||||||
|
$ make <target>
|
||||||
|
|
||||||
|
where `<target>` is the name of the build target you want to execute. For
|
||||||
|
example:
|
||||||
|
|
||||||
|
$ make test
|
||||||
|
|
||||||
|
The main build targets are `serve`, `lint`, `build`, `test`, and `check`. The
|
||||||
|
latter is a meta-target that basically runs `lint`, `build`, and `test`.
|
||||||
|
|
||||||
|
The `serve` target starts a node-based web server, which we will refer to as the *dev server*. You'll need to start that server for running the examples and the tests in a browser. More information on that further down.
|
||||||
|
|
||||||
|
Other targets include `apidoc` and `ci`. The latter is the target used on Travis CI. See ol3's [Travis configuration file](https://github.com/openlayers/ol3/blob/master/.travis.yml).
|
||||||
|
|
||||||
|
## Running the `check` target
|
||||||
|
|
||||||
|
The `check` target is to be run before pushing code to GitHub and opening pull
|
||||||
|
requests. Branches that don't pass `check` won't pass the integration tests,
|
||||||
|
and have therefore no chance of being merged into `master`.
|
||||||
|
|
||||||
|
To run the `check` target:
|
||||||
|
|
||||||
|
$ make check
|
||||||
|
|
||||||
|
If you want to run the full suite of integration tests, see "Running the integration
|
||||||
|
tests" below.
|
||||||
|
|
||||||
|
## Running examples
|
||||||
|
|
||||||
|
To run the examples you first need to start the dev server:
|
||||||
|
|
||||||
|
$ make serve
|
||||||
|
|
||||||
|
Then, just point your browser <http://localhost:3000/build/examples> in your browser. For example <http://localhost:3000/build/examples/side-by-side.html>.
|
||||||
|
|
||||||
|
Run examples against the `ol.js` standalone build:
|
||||||
|
|
||||||
|
The examples can also be run against the `ol.js` standalone build, just like
|
||||||
|
the examples [hosted](http://openlayers.org/en/master/examples/) on GitHub.
|
||||||
|
Start by executing the `host-examples` build target:
|
||||||
|
|
||||||
|
$ make host-examples
|
||||||
|
|
||||||
|
After running `host-examples` you can now open the examples index page in the browser: <http://localhost:3000/build/hosted/master/examples/>. (This assumes that you still have the dev server running.)
|
||||||
|
|
||||||
|
Append `?mode=raw` to make the example work in full debug mode. In raw mode the OpenLayers and Closure Library scripts are loaded individually by the Closure Library's `base.js` script (which the example page loads and executes before any other script).
|
||||||
|
|
||||||
|
## Running tests
|
||||||
|
|
||||||
|
To run the tests in a browser start the dev server (`make serve`) and open <http://localhost:3000/test/index.html> in the browser.
|
||||||
|
|
||||||
|
To run the tests on the console (headless testing with PhantomJS) use the `test` target:
|
||||||
|
|
||||||
|
$ make test
|
||||||
|
|
||||||
|
See also the test-specific [README](../master/test/README.md).
|
||||||
|
|
||||||
|
## Running the integration tests
|
||||||
|
|
||||||
|
When you submit a pull request the [Travis continuous integration
|
||||||
|
server](https://travis-ci.org/) will run a full suite of tests, including
|
||||||
|
building all versions of the library and checking that all of the examples
|
||||||
|
work. You will receive an email with the results, and the status will be
|
||||||
|
displayed in the pull request.
|
||||||
|
|
||||||
|
To run the full suite of integration tests use the `ci` target:
|
||||||
|
|
||||||
|
$ make ci
|
||||||
|
|
||||||
|
Running the full suite of integration tests currently takes 5-10 minutes.
|
||||||
|
|
||||||
|
This makes sure that your commit won't break the build. It also runs JSDoc3 to
|
||||||
|
make sure that there are no invalid API doc directives.
|
||||||
|
|
||||||
|
## Adding examples
|
||||||
|
|
||||||
|
Adding functionality often implies adding one or several examples. This
|
||||||
|
section provides explanations related to adding examples.
|
||||||
|
|
||||||
|
The examples are located in the `examples` directory. Adding a new example
|
||||||
|
implies creating two or three files in this directory, an `.html` file, a `.js`
|
||||||
|
file, and, optionally, a `.css` file.
|
||||||
|
|
||||||
|
You can use `simple.js` and `simple.html` as templates for new examples.
|
||||||
|
|
||||||
|
### Use of the `goog` namespace in examples
|
||||||
|
|
||||||
|
Short story: the ol3 examples should not use the `goog` namespace, except
|
||||||
|
for `goog.require`.
|
||||||
|
|
||||||
|
Longer story: we want that the ol3 examples work in multiple modes, with the
|
||||||
|
standalone lib (which has implications of the symbols and properties we
|
||||||
|
export), and compiled together with the ol3 library.
|
||||||
|
|
||||||
|
Compiling the examples together with the library makes it mandatory to declare dependencies with `goog.require` statements.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
Copyright 2005-2015 OpenLayers Contributors. All rights reserved.
|
Copyright 2005-2016 OpenLayers Contributors. All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
are permitted provided that the following conditions are met:
|
are permitted provided that the following conditions are met:
|
||||||
|
|||||||
48
Makefile
48
Makefile
@@ -19,7 +19,8 @@ BUILD_HOSTED := build/hosted/$(BRANCH)
|
|||||||
BUILD_HOSTED_EXAMPLES := $(addprefix $(BUILD_HOSTED)/,$(EXAMPLES))
|
BUILD_HOSTED_EXAMPLES := $(addprefix $(BUILD_HOSTED)/,$(EXAMPLES))
|
||||||
BUILD_HOSTED_EXAMPLES_JS := $(addprefix $(BUILD_HOSTED)/,$(EXAMPLES_JS))
|
BUILD_HOSTED_EXAMPLES_JS := $(addprefix $(BUILD_HOSTED)/,$(EXAMPLES_JS))
|
||||||
|
|
||||||
CHECK_EXAMPLE_TIMESTAMPS = $(patsubst examples/%.html,build/timestamps/check-%-timestamp,$(EXAMPLES_HTML))
|
UNPHANTOMABLE_EXAMPLES = examples/shaded-relief.html examples/raster.html examples/region-growing.html examples/color-manipulation.html
|
||||||
|
CHECK_EXAMPLE_TIMESTAMPS = $(patsubst examples/%.html,build/timestamps/check-%-timestamp,$(filter-out $(UNPHANTOMABLE_EXAMPLES),$(EXAMPLES_HTML)))
|
||||||
|
|
||||||
TASKS_JS := $(shell find tasks -name '*.js')
|
TASKS_JS := $(shell find tasks -name '*.js')
|
||||||
|
|
||||||
@@ -92,8 +93,7 @@ compile-examples: build/compiled-examples/all.combined.js
|
|||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm -f build/timestamps/gjslint-timestamp
|
rm -f build/timestamps/eslint-timestamp
|
||||||
rm -f build/timestamps/jshint-timestamp
|
|
||||||
rm -f build/timestamps/check-*-timestamp
|
rm -f build/timestamps/check-*-timestamp
|
||||||
rm -f build/ol.css
|
rm -f build/ol.css
|
||||||
rm -f build/ol.js
|
rm -f build/ol.js
|
||||||
@@ -119,9 +119,7 @@ examples: $(BUILD_EXAMPLES)
|
|||||||
install: build/timestamps/node-modules-timestamp
|
install: build/timestamps/node-modules-timestamp
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: build/timestamps/gjslint-timestamp build/timestamps/jshint-timestamp \
|
lint: build/timestamps/eslint-timestamp
|
||||||
build/timestamps/check-requires-timestamp \
|
|
||||||
build/timestamps/check-whitespace-timestamp
|
|
||||||
|
|
||||||
.PHONY: npm-install
|
.PHONY: npm-install
|
||||||
npm-install: build/timestamps/node-modules-timestamp
|
npm-install: build/timestamps/node-modules-timestamp
|
||||||
@@ -170,7 +168,7 @@ host-libraries: build/timestamps/node-modules-timestamp
|
|||||||
@mkdir -p $(BUILD_HOSTED)/ol.ext
|
@mkdir -p $(BUILD_HOSTED)/ol.ext
|
||||||
@cp -r build/ol.ext/* $(BUILD_HOSTED)/ol.ext/
|
@cp -r build/ol.ext/* $(BUILD_HOSTED)/ol.ext/
|
||||||
|
|
||||||
$(BUILD_EXAMPLES): $(EXAMPLES)
|
$(BUILD_EXAMPLES): $(EXAMPLES) package.json
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@node tasks/build-examples.js
|
@node tasks/build-examples.js
|
||||||
|
|
||||||
@@ -182,21 +180,7 @@ build/timestamps/check-%-timestamp: $(BUILD_HOSTED)/examples/%.html \
|
|||||||
$(BUILD_HOSTED)/build/ol.js \
|
$(BUILD_HOSTED)/build/ol.js \
|
||||||
$(BUILD_HOSTED)/css/ol.css
|
$(BUILD_HOSTED)/css/ol.css
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
./node_modules/.bin/phantomjs --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $(addsuffix ?mode=advanced, $<)
|
./node_modules/.bin/phantomjs --local-to-remote-url-access=true --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $<
|
||||||
@touch $@
|
|
||||||
|
|
||||||
build/timestamps/check-requires-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
|
|
||||||
$(SRC_SHADER_JS) $(SPEC_JS) \
|
|
||||||
$(SPEC_RENDERING JS)
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
@python bin/check-requires.py $(CLOSURE_LIB) $^
|
|
||||||
@touch $@
|
|
||||||
|
|
||||||
build/timestamps/check-whitespace-timestamp: $(SRC_JS) $(EXAMPLES_JS) \
|
|
||||||
$(SPEC_JS) $(SPEC_RENDERING JS) \
|
|
||||||
$(SRC_JSDOC)
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
@python bin/check-whitespace.py $^
|
|
||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
build/compiled-examples/all.js: $(EXAMPLES_JS)
|
build/compiled-examples/all.js: $(EXAMPLES_JS)
|
||||||
@@ -227,14 +211,7 @@ build/timestamps/jsdoc-$(BRANCH)-timestamp: config/jsdoc/api/index.md \
|
|||||||
build/timestamps/node-modules-timestamp
|
build/timestamps/node-modules-timestamp
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@rm -rf $(BUILD_HOSTED)/apidoc
|
@rm -rf $(BUILD_HOSTED)/apidoc
|
||||||
./node_modules/.bin/jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json -d $(BUILD_HOSTED)/apidoc
|
./node_modules/.bin/jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json --package package.json -d $(BUILD_HOSTED)/apidoc
|
||||||
@touch $@
|
|
||||||
|
|
||||||
build/timestamps/gjslint-timestamp: $(SRC_JS) $(SPEC_JS) $(SPEC_RENDERING_JS) \
|
|
||||||
$(EXAMPLES_JS)
|
|
||||||
@mkdir -p $(@D)
|
|
||||||
@echo "Running gjslint..."
|
|
||||||
@gjslint --jslint_error=all --custom_jsdoc_tags=event,fires,function,classdesc,api,observable --strict $?
|
|
||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
$(BUILD_HOSTED_EXAMPLES_JS): $(BUILD_HOSTED)/examples/%.js: build/examples/%.js
|
$(BUILD_HOSTED_EXAMPLES_JS): $(BUILD_HOSTED)/examples/%.js: build/examples/%.js
|
||||||
@@ -270,13 +247,12 @@ $(BUILD_HOSTED)/build/ol-deps.js: host-libraries
|
|||||||
--root_with_prefix "$(BUILD_HOSTED)/closure-library/third_party ../../third_party" \
|
--root_with_prefix "$(BUILD_HOSTED)/closure-library/third_party ../../third_party" \
|
||||||
--output_file $@
|
--output_file $@
|
||||||
|
|
||||||
build/timestamps/jshint-timestamp: $(SRC_JS) $(SPEC_JS) $(SPEC_RENDERING_JS) \
|
build/timestamps/eslint-timestamp: $(SRC_JS) $(SPEC_JS) $(SPEC_RENDERING_JS) \
|
||||||
$(TASKS_JS) $(EXAMPLES_JS) \
|
$(TASKS_JS) $(EXAMPLES_JS) \
|
||||||
examples/resources/common.js \
|
|
||||||
build/timestamps/node-modules-timestamp
|
build/timestamps/node-modules-timestamp
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@echo "Running jshint..."
|
@echo "Running eslint..."
|
||||||
@./node_modules/.bin/jshint --verbose $?
|
@./node_modules/.bin/eslint $?
|
||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
build/timestamps/node-modules-timestamp: package.json
|
build/timestamps/node-modules-timestamp: package.json
|
||||||
@@ -322,5 +298,5 @@ build/test_rendering_requires.js: $(SPEC_RENDERING_JS)
|
|||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@node tasks/generate-requires.js $^ > $@
|
@node tasks/generate-requires.js $^ > $@
|
||||||
|
|
||||||
%shader.js: %.glsl src/ol/webgl/shader.mustache bin/pyglslunit.py
|
%shader.js: %.glsl src/ol/webgl/shader.mustache bin/pyglslunit.py build/timestamps/node-modules-timestamp
|
||||||
@python bin/pyglslunit.py --input $< --template src/ol/webgl/shader.mustache --output $@
|
@python bin/pyglslunit.py --input $< | ./node_modules/.bin/mustache - src/ol/webgl/shader.mustache > $@
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
[](http://travis-ci.org/#!/openlayers/ol3)
|
[](http://travis-ci.org/#!/openlayers/ol3)
|
||||||
[](https://coveralls.io/r/openlayers/ol3?branch=master)
|
[](https://coveralls.io/r/openlayers/ol3?branch=master)
|
||||||
|
[](http://osgeo.org/)
|
||||||
|
|
||||||
[OpenLayers 3](http://openlayers.org/) is a high-performance, feature-packed library for creating interactive maps on the web.
|
[OpenLayers 3](http://openlayers.org/) is a high-performance, feature-packed library for creating interactive maps on the web.
|
||||||
|
|
||||||
@@ -13,7 +14,7 @@
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
Check out the [hosted examples](http://openlayers.org/en/master/examples/), the [workshop](http://openlayers.org/ol3-workshop/) or [API docs](http://openlayers.org/en/master/apidoc/).
|
Check out the [hosted examples](http://openlayers.org/en/master/examples/), the [workshop](http://openlayers.org/workshop/) or [API docs](http://openlayers.org/en/master/apidoc/).
|
||||||
|
|
||||||
## Bugs
|
## Bugs
|
||||||
|
|
||||||
|
|||||||
@@ -1,193 +0,0 @@
|
|||||||
import os
|
|
||||||
import logging
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
logging.basicConfig(format='%(asctime)s %(name)s: %(message)s',
|
|
||||||
level=logging.INFO)
|
|
||||||
|
|
||||||
logger = logging.getLogger('check-requires')
|
|
||||||
|
|
||||||
|
|
||||||
class Node(object):
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.present = False
|
|
||||||
self.children = {}
|
|
||||||
|
|
||||||
def _build_re(self, key):
|
|
||||||
if key == '*':
|
|
||||||
assert len(self.children) == 0
|
|
||||||
# We want to match `.doIt` but not `.SomeClass` or `.more.stuff`
|
|
||||||
return '(?=\\.[a-z]\\w*\\b(?!\\.))'
|
|
||||||
elif len(self.children) == 1:
|
|
||||||
child_key, child = next(self.children.iteritems())
|
|
||||||
child_re = child._build_re(child_key)
|
|
||||||
if child_key != '*':
|
|
||||||
child_re = '\\.' + child_re
|
|
||||||
if self.present:
|
|
||||||
return key + '(' + child_re + ')?'
|
|
||||||
else:
|
|
||||||
return key + child_re
|
|
||||||
elif self.children:
|
|
||||||
children_re = '(?:' + '|'.join(
|
|
||||||
('\\.' if k != '*' else '') + self.children[k]._build_re(k)
|
|
||||||
for k in sorted(self.children.keys())) + ')'
|
|
||||||
if self.present:
|
|
||||||
return key + children_re + '?'
|
|
||||||
else:
|
|
||||||
return key + children_re
|
|
||||||
else:
|
|
||||||
assert self.present
|
|
||||||
return key
|
|
||||||
|
|
||||||
def build_re(self, key):
|
|
||||||
return re.compile('\\b' + self._build_re(key) + '\\b')
|
|
||||||
|
|
||||||
|
|
||||||
def ifind(*paths):
|
|
||||||
"""ifind is an iterative version of os.walk, yielding all walked paths and
|
|
||||||
normalizing paths to use forward slashes."""
|
|
||||||
for path in paths:
|
|
||||||
for dirpath, dirnames, names in os.walk(path):
|
|
||||||
for name in names:
|
|
||||||
if os.sep == '/':
|
|
||||||
yield os.path.join(dirpath, name)
|
|
||||||
else:
|
|
||||||
yield '/'.join(dirpath.split(os.sep) + [name])
|
|
||||||
|
|
||||||
|
|
||||||
def _strip_comments(lines):
|
|
||||||
# FIXME this is a horribe hack, we should use a proper JavaScript parser
|
|
||||||
# here
|
|
||||||
in_multiline_comment = False
|
|
||||||
lineno = 0
|
|
||||||
for line in lines:
|
|
||||||
lineno += 1
|
|
||||||
if in_multiline_comment:
|
|
||||||
index = line.find('*/')
|
|
||||||
if index != -1:
|
|
||||||
in_multiline_comment = False
|
|
||||||
line = line[index + 2:]
|
|
||||||
if not in_multiline_comment:
|
|
||||||
line = re.sub(r'//[^\n]*', '', line)
|
|
||||||
line = re.sub(r'/\*.*?\*/', '', line)
|
|
||||||
index = line.find('/*')
|
|
||||||
if index != -1:
|
|
||||||
yield lineno, line[:index]
|
|
||||||
in_multiline_comment = True
|
|
||||||
else:
|
|
||||||
yield lineno, line
|
|
||||||
|
|
||||||
|
|
||||||
def check_requires(closure_lib, *filenames):
|
|
||||||
unused_count = 0
|
|
||||||
all_provides = set()
|
|
||||||
|
|
||||||
for filename in ifind(closure_lib):
|
|
||||||
if filename.endswith('.js'):
|
|
||||||
if not re.match(r'.*/closure/goog/', filename):
|
|
||||||
continue
|
|
||||||
# Skip goog.i18n because it contains so many modules that it causes
|
|
||||||
# the generated regular expression to exceed Python's limits
|
|
||||||
if re.match(r'.*/closure/goog/i18n/', filename):
|
|
||||||
continue
|
|
||||||
for line in open(filename, 'rU'):
|
|
||||||
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
|
|
||||||
if m:
|
|
||||||
all_provides.add(m.group(1))
|
|
||||||
|
|
||||||
for filename in sorted(filenames):
|
|
||||||
require_linenos = {}
|
|
||||||
uses = set()
|
|
||||||
lines = open(filename, 'rU').readlines()
|
|
||||||
for lineno, line in _strip_comments(lines):
|
|
||||||
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
|
|
||||||
if m:
|
|
||||||
all_provides.add(m.group(1))
|
|
||||||
continue
|
|
||||||
m = re.match(r'goog.require\(\'(.*)\'\);', line)
|
|
||||||
if m:
|
|
||||||
require_linenos[m.group(1)] = lineno
|
|
||||||
continue
|
|
||||||
ignore_linenos = require_linenos.values()
|
|
||||||
for lineno, line in enumerate(lines):
|
|
||||||
if lineno in ignore_linenos:
|
|
||||||
continue
|
|
||||||
for require in require_linenos.iterkeys():
|
|
||||||
if require in line:
|
|
||||||
uses.add(require)
|
|
||||||
for require in sorted(set(require_linenos.keys()) - uses):
|
|
||||||
logger.info('%s:%d: unused goog.require: %r' % (
|
|
||||||
filename, require_linenos[require], require))
|
|
||||||
unused_count += 1
|
|
||||||
|
|
||||||
all_provides.discard('ol')
|
|
||||||
all_provides.discard('ol.MapProperty')
|
|
||||||
|
|
||||||
root = Node()
|
|
||||||
for provide in all_provides:
|
|
||||||
node = root
|
|
||||||
for component in provide.split('.'):
|
|
||||||
if component not in node.children:
|
|
||||||
node.children[component] = Node()
|
|
||||||
node = node.children[component]
|
|
||||||
if component[0].islower():
|
|
||||||
# We've arrived at a namespace provide like `ol.foo`.
|
|
||||||
# In this case, we want to match uses like `ol.foo.doIt()` but
|
|
||||||
# not match things like `new ol.foo.SomeClass()`.
|
|
||||||
# For this purpose, we use the special wildcard key for the child.
|
|
||||||
node.children['*'] = Node()
|
|
||||||
else:
|
|
||||||
node.present = True
|
|
||||||
provide_res = [child.build_re(key)
|
|
||||||
for key, child in root.children.iteritems()]
|
|
||||||
missing_count = 0
|
|
||||||
for filename in sorted(filenames):
|
|
||||||
provides = set()
|
|
||||||
requires = set()
|
|
||||||
uses = set()
|
|
||||||
uses_linenos = {}
|
|
||||||
for lineno, line in _strip_comments(open(filename, 'rU')):
|
|
||||||
m = re.match(r'goog.provide\(\'(.*)\'\);', line)
|
|
||||||
if m:
|
|
||||||
provides.add(m.group(1))
|
|
||||||
continue
|
|
||||||
m = re.match(r'goog.require\(\'(.*)\'\);', line)
|
|
||||||
if m:
|
|
||||||
requires.add(m.group(1))
|
|
||||||
continue
|
|
||||||
while True:
|
|
||||||
for provide_re in provide_res:
|
|
||||||
m = provide_re.search(line)
|
|
||||||
if m:
|
|
||||||
uses.add(m.group())
|
|
||||||
uses_linenos[m.group()] = lineno
|
|
||||||
line = line[:m.start()] + line[m.end():]
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
if filename == 'src/ol/renderer/layerrenderer.js':
|
|
||||||
uses.discard('ol.renderer.Map')
|
|
||||||
m = re.match(
|
|
||||||
r'src/ol/renderer/(\w+)/\1(\w*)layerrenderer\.js\Z', filename)
|
|
||||||
if m:
|
|
||||||
uses.discard('ol.renderer.Map')
|
|
||||||
uses.discard('ol.renderer.%s.Map' % (m.group(1),))
|
|
||||||
missing_requires = uses - requires - provides
|
|
||||||
if missing_requires:
|
|
||||||
for missing_require in sorted(missing_requires):
|
|
||||||
logger.info("%s:%d missing goog.require('%s')" %
|
|
||||||
(filename, uses_linenos[missing_require],
|
|
||||||
missing_require))
|
|
||||||
missing_count += 1
|
|
||||||
|
|
||||||
return (unused_count, missing_count)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unused_count, missing_count = check_requires(*sys.argv[1:])
|
|
||||||
if unused_count > 0 or missing_count > 0:
|
|
||||||
logger.error('%d unused goog.requires, %d missing goog.requires' %
|
|
||||||
(unused_count, missing_count))
|
|
||||||
sys.exit(1)
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
import logging
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
logging.basicConfig(format='%(asctime)s %(name)s: %(message)s',
|
|
||||||
level=logging.INFO)
|
|
||||||
|
|
||||||
logger = logging.getLogger('check-whitespace')
|
|
||||||
|
|
||||||
CR_RE = re.compile(r'\r')
|
|
||||||
LEADING_WHITESPACE_RE = re.compile(r'\s+')
|
|
||||||
TRAILING_WHITESPACE_RE = re.compile(r'\s+\n\Z')
|
|
||||||
NO_NEWLINE_RE = re.compile(r'[^\n]\Z')
|
|
||||||
ALL_WHITESPACE_RE = re.compile(r'\s+\Z')
|
|
||||||
|
|
||||||
|
|
||||||
def check_whitespace(*filenames):
|
|
||||||
errors = 0
|
|
||||||
for filename in sorted(filenames):
|
|
||||||
whitespace = False
|
|
||||||
for lineno, line in enumerate(open(filename, 'rU')):
|
|
||||||
if lineno == 0 and LEADING_WHITESPACE_RE.match(line):
|
|
||||||
logger.info('%s:%d: leading whitespace', filename, lineno + 1)
|
|
||||||
errors += 1
|
|
||||||
if CR_RE.search(line):
|
|
||||||
logger.info('%s:%d: carriage return character in line',
|
|
||||||
filename, lineno + 1)
|
|
||||||
errors += 1
|
|
||||||
if TRAILING_WHITESPACE_RE.search(line):
|
|
||||||
logger.info('%s:%d: trailing whitespace', filename, lineno + 1)
|
|
||||||
errors += 1
|
|
||||||
if NO_NEWLINE_RE.search(line):
|
|
||||||
logger.info('%s:%d: no newline at end of file', filename,
|
|
||||||
lineno + 1)
|
|
||||||
errors += 1
|
|
||||||
whitespace = ALL_WHITESPACE_RE.match(line)
|
|
||||||
if whitespace:
|
|
||||||
logger.info('%s: trailing whitespace at end of file', filename)
|
|
||||||
errors += 1
|
|
||||||
return errors
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
errors = check_whitespace(*sys.argv[1:])
|
|
||||||
if errors > 0:
|
|
||||||
logger.error('%d whitespace errors' % (errors,))
|
|
||||||
sys.exit(1)
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
import json
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import pystache
|
|
||||||
|
|
||||||
|
|
||||||
ESCAPE_SEQUENCE = {
|
ESCAPE_SEQUENCE = {
|
||||||
@@ -42,7 +42,6 @@ def main(argv):
|
|||||||
option_parser = OptionParser()
|
option_parser = OptionParser()
|
||||||
option_parser.add_option('--input')
|
option_parser.add_option('--input')
|
||||||
option_parser.add_option('--output')
|
option_parser.add_option('--output')
|
||||||
option_parser.add_option('--template')
|
|
||||||
options, args = option_parser.parse_args(argv[1:])
|
options, args = option_parser.parse_args(argv[1:])
|
||||||
|
|
||||||
context = {}
|
context = {}
|
||||||
@@ -114,7 +113,7 @@ def main(argv):
|
|||||||
output = open(options.output, 'wb')
|
output = open(options.output, 'wb')
|
||||||
else:
|
else:
|
||||||
output = sys.stdout
|
output = sys.stdout
|
||||||
output.write(pystache.render(open(options.template, 'rb').read(), context))
|
json.dump(context, output)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -1,5 +1,385 @@
|
|||||||
## Upgrade notes
|
## Upgrade notes
|
||||||
|
|
||||||
|
### v3.17.0
|
||||||
|
|
||||||
|
#### `ol.source.MapQuest` removal
|
||||||
|
|
||||||
|
Because of changes at MapQuest (see: https://lists.openstreetmap.org/pipermail/talk/2016-June/076106.html) we had to remove the MapQuest source for now (see https://github.com/openlayers/ol3/issues/5484 for details).
|
||||||
|
|
||||||
|
#### `ol.interaction.ModifyEvent` changes
|
||||||
|
|
||||||
|
The event object previously had a `mapBrowserPointerEvent` property, which has been renamed to `mapBrowserEvent`.
|
||||||
|
|
||||||
|
#### Removal of ol.raster namespace
|
||||||
|
|
||||||
|
Users compiling their code with the library and using types in the `ol.raster` namespace should note that this has now been removed. `ol.raster.Pixel` has been deleted, and the other types have been renamed as follows, and your code may need changing if you use these:
|
||||||
|
* `ol.raster.Operation` to `ol.RasterOperation`
|
||||||
|
* `ol.raster.OperationType` to `ol.RasterOperationType`
|
||||||
|
|
||||||
|
#### All typedefs now in ol namespace
|
||||||
|
|
||||||
|
Users compiling their code with the library should note that the following typedefs have been renamed; your code may need changing if you use these:
|
||||||
|
* ol.events.ConditionType to ol.EventsConditionType
|
||||||
|
* ol.events.EventTargetLike to ol.EventTargetLike
|
||||||
|
* ol.events.Key to ol.EventsKey
|
||||||
|
* ol.events.ListenerFunctionType to ol.EventsListenerFunctionType
|
||||||
|
* ol.interaction.DragBoxEndConditionType to ol.DragBoxEndConditionType
|
||||||
|
* ol.interaction.DrawGeometryFunctionType to ol.DrawGeometryFunctionType
|
||||||
|
* ol.interaction.SegmentDataType to ol.ModifySegmentDataType
|
||||||
|
* ol.interaction.SelectFilterFunction to ol.SelectFilterFunction
|
||||||
|
* ol.interaction.SnapResultType to ol.SnapResultType
|
||||||
|
* ol.interaction.SnapSegmentDataType to ol.SnapSegmentDataType
|
||||||
|
* ol.proj.ProjectionLike to ol.ProjectionLike
|
||||||
|
* ol.style.AtlasBlock to ol.AtlasBlock
|
||||||
|
* ol.style.AtlasInfo to ol.AtlasInfo
|
||||||
|
* ol.style.AtlasManagerInfo to ol.AtlasManagerInfo
|
||||||
|
* ol.style.CircleRenderOptions to ol.CircleRenderOptions
|
||||||
|
* ol.style.ImageOptions to ol.StyleImageOptions
|
||||||
|
* ol.style.GeometryFunction to ol.StyleGeometryFunction
|
||||||
|
* ol.style.RegularShapeRenderOptions to ol.RegularShapeRenderOptions
|
||||||
|
* ol.style.StyleFunction to ol.StyleFunction
|
||||||
|
|
||||||
|
### v3.16.0
|
||||||
|
|
||||||
|
#### Rendering change for tile sources
|
||||||
|
|
||||||
|
Previously, if you called `source.setUrl()` on a tile source, all currently rendered tiles would be cleared before new tiles were loaded and rendered. This clearing of the map is undesirable if you are trying to smoothly update the tiles used by a source. This behavior has now changed, and calling `source.setUrl()` (or `source.setUrls()`) will *not* clear currently rendered tiles before loading and rendering new tiles. Instead, previously rendered tiles remain rendered until new tiles have loaded and can replace them. If you want to achieve the old behavior (render a blank map before loading new tiles), you can call `source.refresh()` or you can replace the old source with a new one (using `layer.setSource()`).
|
||||||
|
|
||||||
|
#### Move of typedefs out of code and into separate file
|
||||||
|
|
||||||
|
This change should not affect the great majority of application developers, but it's possible there are edge cases when compiling application code together with the library which cause compiler errors or warnings. In this case, please raise a GitHub issue. `goog.require`s for typedefs should not be necessary.
|
||||||
|
Users compiling their code with the library should note that the following API `@typedef`s have been renamed; your code may need changing if you use these:
|
||||||
|
* `ol.format.WFS.FeatureCollectionMetadata` to `ol.WFSFeatureCollectionMetadata`
|
||||||
|
* `ol.format.WFS.TransactionResponse` to `ol.WFSTransactionResponse`
|
||||||
|
|
||||||
|
#### Removal of `opaque` option for `ol.source.VectorTile`
|
||||||
|
|
||||||
|
This option is no longer needed, so it was removed from the API.
|
||||||
|
|
||||||
|
#### XHR loading for `ol.source.TileUTFGrid`
|
||||||
|
|
||||||
|
The `ol.source.TileUTFGrid` now uses XMLHttpRequest to load UTFGrid tiles by default. This works out of the box with the v4 Mapbox API. To work with the v3 API, you must use the new `jsonp` option on the source. See the examples below for detail.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// To work with the v4 API
|
||||||
|
var v4source = new ol.source.TileUTFGrid({
|
||||||
|
url: 'https://api.tiles.mapbox.com/v4/example.json?access_token=' + YOUR_KEY_HERE
|
||||||
|
});
|
||||||
|
|
||||||
|
// To work with the v3 API
|
||||||
|
var v3source = new ol.source.TileUTFGrid({
|
||||||
|
jsonp: true, // <--- this is required for v3
|
||||||
|
url: 'http://api.tiles.mapbox.com/v3/example.json'
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### v3.15.0
|
||||||
|
|
||||||
|
#### Internet Explorer 9 support
|
||||||
|
|
||||||
|
As of this release, OpenLayers requires a `classList` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features#Element_prototype_classList.
|
||||||
|
|
||||||
|
#### Immediate rendering API
|
||||||
|
|
||||||
|
Listeners for `precompose`, `render`, and `postcompose` receive an event with a `vectorContext` property with methods for immediate vector rendering. The previous geometry drawing methods have been replaced with a single `vectorContext.drawGeometry(geometry)` method. If you were using any of the following experimental methods on the vector context, replace them with `drawGeometry`:
|
||||||
|
|
||||||
|
* Removed experimental geometry drawing methods: `drawPointGeometry`, `drawLineStringGeometry`, `drawPolygonGeometry`, `drawMultiPointGeometry`, `drawMultiLineStringGeometry`, `drawMultiPolygonGeometry`, and `drawCircleGeometry` (all have been replaced with `drawGeometry`).
|
||||||
|
|
||||||
|
In addition, the previous methods for setting style parts have been replaced with a single `vectorContext.setStyle(style)` method. If you were using any of the following experimental methods on the vector context, replace them with `setStyle`:
|
||||||
|
|
||||||
|
* Removed experimental style setting methods: `setFillStrokeStyle`, `setImageStyle`, `setTextStyle` (all have been replaced with `setStyle`).
|
||||||
|
|
||||||
|
Below is an example of how the vector context might have been used in the past:
|
||||||
|
|
||||||
|
```js
|
||||||
|
// OLD WAY, NO LONGER SUPPORTED
|
||||||
|
map.on('postcompose', function(event) {
|
||||||
|
event.vectorContext.setFillStrokeStyle(style.getFill(), style.getStroke());
|
||||||
|
event.vectorContext.drawPointGeometry(geometry);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Here is an example of how you could accomplish the same with the new methods:
|
||||||
|
```js
|
||||||
|
// NEW WAY, USE THIS INSTEAD OF THE CODE ABOVE
|
||||||
|
map.on('postcompose', function(event) {
|
||||||
|
event.vectorContext.setStyle(style);
|
||||||
|
event.vectorContext.drawGeometry(geometry);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
A final change to the immediate rendering API is that `vectorContext.drawFeature()` calls are now "immediate" as well. The drawing now occurs synchronously. This means that any `zIndex` in a style passed to `drawFeature()` will be ignored. To achieve `zIndex` ordering, order your calls to `drawFeature()` instead.
|
||||||
|
|
||||||
|
#### Removal of `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK`
|
||||||
|
|
||||||
|
The `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK` define has been removed. The size of the cache can now be defined on every tile based `ol.source`:
|
||||||
|
```js
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.OSM({
|
||||||
|
cacheSize: 128
|
||||||
|
})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
The default cache size is `2048`.
|
||||||
|
|
||||||
|
### v3.14.0
|
||||||
|
|
||||||
|
#### Internet Explorer 9 support
|
||||||
|
|
||||||
|
As of this release, OpenLayers requires a `requestAnimationFrame`/`cancelAnimationFrame` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features/#requestAnimationFrame.
|
||||||
|
|
||||||
|
#### Layer pre-/postcompose event changes
|
||||||
|
|
||||||
|
It is the responsibility of the application to undo any canvas transform changes at the end of a layer 'precompose' or 'postcompose' handler. Previously, it was ok to set a null transform. The API now guarantees a device pixel coordinate system on the canvas with its origin in the top left corner of the map. However, applications should not rely on the underlying canvas being the same size as the visible viewport.
|
||||||
|
|
||||||
|
Old code:
|
||||||
|
```js
|
||||||
|
layer.on('precompose', function(e) {
|
||||||
|
// rely on canvas dimensions to move coordinate origin to center
|
||||||
|
e.context.translate(e.context.canvas.width / 2, e.context.canvas.height / 2);
|
||||||
|
e.context.scale(3, 3);
|
||||||
|
// draw an x in the center of the viewport
|
||||||
|
e.context.moveTo(-20, -20);
|
||||||
|
e.context.lineTo(20, 20);
|
||||||
|
e.context.moveTo(-20, 20);
|
||||||
|
e.context.lineTo(20, -20);
|
||||||
|
// rely on the canvas having a null transform
|
||||||
|
e.context.setTransform(1, 0, 0, 1, 0, 0);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
New code:
|
||||||
|
```js
|
||||||
|
layer.on('precompose', function(e) {
|
||||||
|
// use map size and pixel ratio to move coordinate origin to center
|
||||||
|
var size = map.getSize();
|
||||||
|
var pixelRatio = e.frameState.pixelRatio;
|
||||||
|
e.context.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
|
||||||
|
e.context.scale(3, 3);
|
||||||
|
// draw an x in the center of the viewport
|
||||||
|
e.context.moveTo(-20, -20);
|
||||||
|
e.context.lineTo(20, 20);
|
||||||
|
e.context.moveTo(-20, 20);
|
||||||
|
e.context.lineTo(20, -20);
|
||||||
|
// undo all transforms
|
||||||
|
e.context.scale(1 / 3, 1 / 3);
|
||||||
|
e.context.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### v3.13.0
|
||||||
|
|
||||||
|
#### `proj4js` integration
|
||||||
|
|
||||||
|
Before this release, OpenLayers depended on the global proj4 namespace. When using a module loader like Browserify, you might not want to depend on the global `proj4` namespace. You can use the `ol.proj.setProj4` function to set the proj4 function object. For example in a browserify ES6 environment:
|
||||||
|
|
||||||
|
```js
|
||||||
|
import ol from 'openlayers';
|
||||||
|
import proj4 from 'proj4';
|
||||||
|
ol.proj.setProj4(proj4);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### `ol.source.TileJSON` changes
|
||||||
|
|
||||||
|
The `ol.source.TileJSON` now uses `XMLHttpRequest` to load the TileJSON instead of JSONP with callback.
|
||||||
|
When using server without proper CORS support, `jsonp: true` option can be passed to the constructor to get the same behavior as before:
|
||||||
|
```js
|
||||||
|
new ol.source.TileJSON({
|
||||||
|
url: 'http://serverwithoutcors.com/tilejson.json',
|
||||||
|
jsonp: true
|
||||||
|
})
|
||||||
|
```
|
||||||
|
Also for Mapbox v3, make sure you use urls ending with `.json` (which are able to handle both `XMLHttpRequest` and JSONP) instead of `.jsonp`.
|
||||||
|
|
||||||
|
### v3.12.0
|
||||||
|
|
||||||
|
#### `ol.Map#forEachFeatureAtPixel` changes
|
||||||
|
|
||||||
|
The optional `layerFilter` function is now also called for unmanaged layers. To get the same behaviour as before, wrap your layer filter code in an if block like this:
|
||||||
|
```js
|
||||||
|
function layerFilter(layer) {
|
||||||
|
if (map.getLayers().getArray().indexOf(layer) !== -1) {
|
||||||
|
// existing layer filter code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### v3.11.0
|
||||||
|
|
||||||
|
#### `ol.format.KML` changes
|
||||||
|
|
||||||
|
KML icons are scaled 50% so that the rendering better matches Google Earth rendering.
|
||||||
|
|
||||||
|
If a KML placemark has a name and is a point, an `ol.style.Text` is created with the name displayed to the right of the icon (if there is an icon).
|
||||||
|
This can be controlled with the showPointNames option which defaults to true.
|
||||||
|
|
||||||
|
To disable rendering of the point names for placemarks, use the option:
|
||||||
|
new ol.format.KML({ showPointNames: false });
|
||||||
|
|
||||||
|
|
||||||
|
#### `ol.interaction.DragBox` and `ol.interaction.DragZoom` changes
|
||||||
|
|
||||||
|
Styling is no longer done with `ol.Style`, but with pure CSS. The `style` constructor option is no longer required, and no longer available. Instead, there is a `className` option for the CSS selector. The default for `ol.interaction.DragBox` is `ol-dragbox`, and `ol.interaction.DragZoom` uses `ol-dragzoom`. If you previously had
|
||||||
|
```js
|
||||||
|
new ol.interaction.DragZoom({
|
||||||
|
style: new ol.style.Style({
|
||||||
|
stroke: new ol.style.Stroke({
|
||||||
|
color: 'red',
|
||||||
|
width: 3
|
||||||
|
}),
|
||||||
|
fill: new ol.style.Fill({
|
||||||
|
color: [255, 255, 255, 0.4]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
```
|
||||||
|
you'll now just need
|
||||||
|
```js
|
||||||
|
new ol.interaction.DragZoom();
|
||||||
|
```
|
||||||
|
but with additional css:
|
||||||
|
```css
|
||||||
|
.ol-dragzoom {
|
||||||
|
border-color: red;
|
||||||
|
border-width: 3px;
|
||||||
|
background-color: rgba(255,255,255,0.4);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Removal of `ol.source.TileVector`
|
||||||
|
|
||||||
|
With the introduction of true vector tile support, `ol.source.TileVector` becomes obsolete. Change your code to use `ol.layer.VectorTile` and `ol.source.VectorTile` instead of `ol.layer.Vector` and `ol.source.TileVector`.
|
||||||
|
|
||||||
|
#### `ol.Map#forEachFeatureAtPixel` changes for unmanaged layers
|
||||||
|
|
||||||
|
`ol.Map#forEachFeatureAtPixel` will still be called for unmanaged layers, but the 2nd argument to the callback function will be `null` instead of a reference to the unmanaged layer. This brings back the behavior of the abandoned `ol.FeatureOverlay` that was replaced by unmanaged layers.
|
||||||
|
|
||||||
|
If you are affected by this change, please change your unmanaged layer to a regular layer by using e.g. `ol.Map#addLayer` instead of `ol.layer.Layer#setMap`.
|
||||||
|
|
||||||
|
### v3.10.0
|
||||||
|
|
||||||
|
#### `ol.layer.Layer` changes
|
||||||
|
|
||||||
|
The experimental `setHue`, `setContrast`, `setBrightness`, `setSaturation`, and the corresponding getter methods have been removed. These properties only worked with the WebGL renderer. If are interested in applying color transforms, look for the `postcompose` event in the API docs. In addition, the `ol.source.Raster` source provides a way to create new raster data based on arbitrary transforms run on any number of input sources.
|
||||||
|
|
||||||
|
### v3.9.0
|
||||||
|
|
||||||
|
#### `ol.style.Circle` changes
|
||||||
|
|
||||||
|
The experimental `getAnchor`, `getOrigin`, and `getSize` methods have been removed. The anchor and origin of a circle symbolizer are not modifiable, so these properties should not need to be accessed. The radius and stroke width can be used to calculate the rendered size of a circle symbolizer if needed:
|
||||||
|
|
||||||
|
```js
|
||||||
|
// calculate rendered size of a circle symbolizer
|
||||||
|
var width = 2 * circle.getRadius();
|
||||||
|
if (circle.getStroke()) {
|
||||||
|
width += circle.getStroke().getWidth() + 1;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### v3.8.0
|
||||||
|
|
||||||
|
There should be nothing special required when upgrading from v3.7.0 to v3.8.0.
|
||||||
|
|
||||||
|
### v3.7.0
|
||||||
|
|
||||||
|
#### Removal of `ol.FeatureOverlay`
|
||||||
|
|
||||||
|
Instead of an `ol.FeatureOverlay`, we now use an `ol.layer.Vector` with an
|
||||||
|
`ol.source.Vector`. If you previously had:
|
||||||
|
```js
|
||||||
|
var featureOverlay = new ol.FeatureOverlay({
|
||||||
|
map: map,
|
||||||
|
style: overlayStyle
|
||||||
|
});
|
||||||
|
featureOverlay.addFeature(feature);
|
||||||
|
featureOverlay.removeFeature(feature);
|
||||||
|
var collection = featureOverlay.getFeatures();
|
||||||
|
```
|
||||||
|
you will have to change this to:
|
||||||
|
```js
|
||||||
|
var collection = new ol.Collection();
|
||||||
|
var featureOverlay = new ol.layer.Vector({
|
||||||
|
map: map,
|
||||||
|
source: new ol.source.Vector({
|
||||||
|
features: collection,
|
||||||
|
useSpatialIndex: false // optional, might improve performance
|
||||||
|
}),
|
||||||
|
style: overlayStyle,
|
||||||
|
updateWhileAnimating: true, // optional, for instant visual feedback
|
||||||
|
updateWhileInteracting: true // optional, for instant visual feedback
|
||||||
|
});
|
||||||
|
featureOverlay.getSource().addFeature(feature);
|
||||||
|
featureOverlay.getSource().removeFeature(feature);
|
||||||
|
```
|
||||||
|
|
||||||
|
With the removal of `ol.FeatureOverlay`, `zIndex` symbolizer properties of overlays are no longer stacked per map, but per layer/overlay. If you previously had multiple feature overlays where you controlled the rendering order of features by using `zIndex` symbolizer properties, you can now achieve the same rendering order only if all overlay features are on the same layer.
|
||||||
|
|
||||||
|
Note that `ol.FeatureOverlay#getFeatures()` returned an `{ol.Collection.<ol.Feature>}`, whereas `ol.source.Vector#getFeatures()` returns an `{Array.<ol.Feature>}`.
|
||||||
|
|
||||||
|
#### `ol.TileCoord` changes
|
||||||
|
|
||||||
|
Until now, the API exposed two different types of `ol.TileCoord` tile coordinates: internal ones that increase left to right and upward, and transformed ones that may increase downward, as defined by a transform function on the tile grid. With this change, the API now only exposes tile coordinates that increase left to right and upward.
|
||||||
|
|
||||||
|
Previously, tile grids created by OpenLayers either had their origin at the top-left or at the bottom-left corner of the extent. To make it easier for application developers to transform tile coordinates to the common XYZ tiling scheme, all tile grids that OpenLayers creates internally have their origin now at the top-left corner of the extent.
|
||||||
|
|
||||||
|
This change affects applications that configure a custom `tileUrlFunction` for an `ol.source.Tile`. Previously, the `tileUrlFunction` was called with rather unpredictable tile coordinates, depending on whether a tile coordinate transform took place before calling the `tileUrlFunction`. Now it is always called with OpenLayers tile coordinates. To transform these into the common XYZ tiling scheme, a custom `tileUrlFunction` has to change the `y` value (tile row) of the `ol.TileCoord`:
|
||||||
|
```js
|
||||||
|
function tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
var urlTemplate = '{z}/{x}/{y}';
|
||||||
|
return urlTemplate
|
||||||
|
.replace('{z}', tileCoord[0].toString())
|
||||||
|
.replace('{x}', tileCoord[1].toString())
|
||||||
|
.replace('{y}', (-tileCoord[2] - 1).toString());
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The `ol.tilegrid.TileGrid#createTileCoordTransform()` function which could be used to get the tile grid's tile coordinate transform function has been removed. This function was confusing and should no longer be needed now that application developers get tile coordinates in a known layout.
|
||||||
|
|
||||||
|
The code snippets below show how your application code needs to be changed:
|
||||||
|
|
||||||
|
Old application code (with `ol.tilegrid.TileGrid#createTileCoordTransform()`):
|
||||||
|
```js
|
||||||
|
var transform = source.getTileGrid().createTileCoordTransform();
|
||||||
|
var tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
tileCoord = transform(tileCoord, projection);
|
||||||
|
return 'http://mytiles.com/' +
|
||||||
|
tileCoord[0] + '/' + tileCoord[1] + '/' + tileCoord[2] + '.png';
|
||||||
|
};
|
||||||
|
```
|
||||||
|
Old application code (with custom `y` transform):
|
||||||
|
```js
|
||||||
|
var tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0];
|
||||||
|
var yFromBottom = tileCoord[2];
|
||||||
|
var resolution = tileGrid.getResolution(z);
|
||||||
|
var tileHeight = ol.size.toSize(tileSize)[1];
|
||||||
|
var matrixHeight =
|
||||||
|
Math.floor(ol.extent.getHeight(extent) / tileHeight / resolution);
|
||||||
|
return 'http://mytiles.com/' +
|
||||||
|
tileCoord[0] + '/' + tileCoord[1] + '/' +
|
||||||
|
(matrixHeight - yFromBottom - 1) + '.png';
|
||||||
|
|
||||||
|
};
|
||||||
|
```
|
||||||
|
New application code (simple -y - 1 transform):
|
||||||
|
```js
|
||||||
|
var tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
return 'http://mytiles.com/' +
|
||||||
|
tileCoord[0] + '/' + tileCoord[1] + '/' + (-tileCoord[2] - 1) + '.png';
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Removal of `ol.tilegrid.Zoomify`
|
||||||
|
|
||||||
|
The replacement of `ol.tilegrid.Zoomify` is a plain `ol.tilegrid.TileGrid`, configured with `extent`, `origin` and `resolutions`. If the `size` passed to the `ol.source.Zoomify` source is `[width, height]`, then the extent for the tile grid will be `[0, -height, width, 0]`, and the origin will be `[0, 0]`.
|
||||||
|
|
||||||
|
#### Replace `ol.View.fitExtent()` and `ol.View.fitGeometry()` with `ol.View.fit()`
|
||||||
|
* This combines two previously distinct functions into one more flexible call which takes either a geometry or an extent.
|
||||||
|
* Rename all calls to `fitExtent` and `fitGeometry` to `fit`.
|
||||||
|
|
||||||
|
#### Change to `ol.interaction.Modify`
|
||||||
|
|
||||||
|
When single clicking a line or boundary within the `pixelTolerance`, a vertex is now created.
|
||||||
|
|
||||||
### v3.6.0
|
### v3.6.0
|
||||||
|
|
||||||
#### `ol.interaction.Draw` changes
|
#### `ol.interaction.Draw` changes
|
||||||
|
|||||||
93
changelog/v3.10.0.md
Normal file
93
changelog/v3.10.0.md
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
# v3.10.0
|
||||||
|
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.10.0 release includes features and fixes from 66 pull requests since the v3.9.0 release. New features and improvements include:
|
||||||
|
|
||||||
|
* Full touch gesture support for the Microsoft Edge browser.
|
||||||
|
* Improved API docs - required constructor options are now marked as such.
|
||||||
|
* Text styles (vector labels) now work with defaults instead of failing when only a label text is set.
|
||||||
|
* Write support for GML3 features with multiple geometries
|
||||||
|
|
||||||
|
See the complete list below for details. And see the following notes to know how to upgrade from v3.9.0 to v3.10.0.
|
||||||
|
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### `ol.layer.Layer` changes
|
||||||
|
|
||||||
|
The experimental `setHue`, `setContrast`, `setBrightness`, `setSaturation`, and the corresponding getter methods have been removed. These properties only worked with the WebGL renderer. If you are interested in applying color transforms, look for the `postcompose` event in the API docs. In addition, the `ol.source.Raster` source provides a way to create new raster data based on arbitrary transforms run on any number of input sources.
|
||||||
|
|
||||||
|
#### Removal of legacy Internet Explorer support
|
||||||
|
|
||||||
|
If you are building an appliction that supports Internet Explorer 8 or older, you'll need to use ES5 shims to make OpenLayers work. As before, support for such old browsers is very basic, and we recommend to not support them.
|
||||||
|
|
||||||
|
|
||||||
|
## New features and fixes
|
||||||
|
|
||||||
|
* [#4237](https://github.com/openlayers/ol3/pull/4237) - #3328: GML3 - Writing features with multiple geometries ([@awaterme](https://github.com/awaterme))
|
||||||
|
* [#4218](https://github.com/openlayers/ol3/pull/4218) - Add 'getLayer()' method to 'ol.interaction.Select' ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4036](https://github.com/openlayers/ol3/pull/4036) - Fix modify interaction event order ([@alvinlindstam](https://github.com/alvinlindstam))
|
||||||
|
* [#4036](https://github.com/openlayers/ol3/pull/4036) - Fix modify interaction event order ([@alvinlindstam](https://github.com/alvinlindstam))
|
||||||
|
* [#4116](https://github.com/openlayers/ol3/pull/4116) - Make ol.control.OverviewMap's view configurable ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4234](https://github.com/openlayers/ol3/pull/4234) - Support OGC WKT proj4 def.units and def.to_meter ([@tbarsballe](https://github.com/tbarsballe))
|
||||||
|
* [#4224](https://github.com/openlayers/ol3/pull/4224) - Don't transform the angle into degrees to rotate the element ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4231](https://github.com/openlayers/ol3/pull/4231) - Revert "Merge pull request #4217 from ThomasG77/clipboardjs-replacement" ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4217](https://github.com/openlayers/ol3/pull/4217) - Replace ZeroClipboard with Clipboard.js to remove flash dependency ([@ThomasG77](https://github.com/ThomasG77))
|
||||||
|
* [#4223](https://github.com/openlayers/ol3/pull/4223) - Remove goog.fx.easing ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4222](https://github.com/openlayers/ol3/pull/4222) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4209](https://github.com/openlayers/ol3/pull/4209) - Remove goog.string.remove ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4207](https://github.com/openlayers/ol3/pull/4207) - Remove goog.string.startsWith ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4208](https://github.com/openlayers/ol3/pull/4208) - Remove goog.string.trim() ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4216](https://github.com/openlayers/ol3/pull/4216) - Fix canvas replay which broke with 31a68e2 ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4202](https://github.com/openlayers/ol3/pull/4202) - Remove use of goog.dom.appendChild ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4205](https://github.com/openlayers/ol3/pull/4205) - Minor cleanup ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4203](https://github.com/openlayers/ol3/pull/4203) - Cosmetic changes to example html / css ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4184](https://github.com/openlayers/ol3/pull/4184) - Adjust iframe's position of GetFeatureInfo examples ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4192](https://github.com/openlayers/ol3/pull/4192) - Remove use of goog.isNull in favor of simple truthy checks ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4187](https://github.com/openlayers/ol3/pull/4187) - Fix {-y} template calculation for custom (TMS) tile grids ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4176](https://github.com/openlayers/ol3/pull/4176) - Remove use of goog.isDefAndNotNull().
|
||||||
|
([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4200](https://github.com/openlayers/ol3/pull/4200) - Do not use goog.object.get ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4198](https://github.com/openlayers/ol3/pull/4198) - Improve ol.control.Rotate.prototype.resetNorth_ performance ([@denilsonsa](https://github.com/denilsonsa))
|
||||||
|
* [#4197](https://github.com/openlayers/ol3/pull/4197) - Remove blur action on MOUSEOUT on Zoom Out button ([@denilsonsa](https://github.com/denilsonsa))
|
||||||
|
* [#4195](https://github.com/openlayers/ol3/pull/4195) - #4171: Prefer current layout as default on MultiLineString.setLineStrings() ([@awaterme](https://github.com/awaterme))
|
||||||
|
* [#4172](https://github.com/openlayers/ol3/pull/4172) - #4171: Prefer current layout as default on Multipolygon.setPolygons() ([@awaterme](https://github.com/awaterme))
|
||||||
|
* [#4190](https://github.com/openlayers/ol3/pull/4190) - Remove use of goog.functions.constant ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4188](https://github.com/openlayers/ol3/pull/4188) - Remove use of goog.object.getKeys ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4189](https://github.com/openlayers/ol3/pull/4189) - Replace goog.nullFunction with ol.nullFunction ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4165](https://github.com/openlayers/ol3/pull/4165) - Use ECMAScript 5.1 Array functions instead of goog.array ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4181](https://github.com/openlayers/ol3/pull/4181) - Remove use of goog.array.contains ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4162](https://github.com/openlayers/ol3/pull/4162) - Remove ol.LEGACY_IE_SUPPORT ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4174](https://github.com/openlayers/ol3/pull/4174) - Remove hue, saturation, contrast, and brightness as layer properties. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4183](https://github.com/openlayers/ol3/pull/4183) - Remove @api on getHitDetectionFramebuffer ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4179](https://github.com/openlayers/ol3/pull/4179) - Use Date.now() instead of goog.now() ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4175](https://github.com/openlayers/ol3/pull/4175) - Remove use of goog.math.clamp(). ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4173](https://github.com/openlayers/ol3/pull/4173) - Only animate when resolution is about to be changed ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4129](https://github.com/openlayers/ol3/pull/4129) - Remove use of goog.isDef. ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4168](https://github.com/openlayers/ol3/pull/4168) - Tile preload example wording (fixes #4147) ([@wlerner](https://github.com/wlerner))
|
||||||
|
* [#4167](https://github.com/openlayers/ol3/pull/4167) - Remove externs in externs/closure-compiler.js ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4166](https://github.com/openlayers/ol3/pull/4166) - Use version 20150920 of Closure Compiler ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4159](https://github.com/openlayers/ol3/pull/4159) - Remove use of goog.object.containsKey ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4157](https://github.com/openlayers/ol3/pull/4157) - Fix typo in doc ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4138](https://github.com/openlayers/ol3/pull/4138) - Enhanced documentation for ol.style.Text ([@ekargee](https://github.com/ekargee))
|
||||||
|
* [#4151](https://github.com/openlayers/ol3/pull/4151) - Remove bogus assertion ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4110](https://github.com/openlayers/ol3/pull/4110) - Minor cleanups ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4156](https://github.com/openlayers/ol3/pull/4156) - Rename drag-features example to custom-interactions ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4150](https://github.com/openlayers/ol3/pull/4150) - Remove use of goog.object.remove ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4145](https://github.com/openlayers/ol3/pull/4145) - API method for simplifying geometries. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4153](https://github.com/openlayers/ol3/pull/4153) - Add a "features" option to ol.interaction.Select ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4144](https://github.com/openlayers/ol3/pull/4144) - Set context.fillStyle to a string ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4149](https://github.com/openlayers/ol3/pull/4149) - Remove use of goog.array.isEmpty ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4139](https://github.com/openlayers/ol3/pull/4139) - Add turf.js and JSTS example ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#4136](https://github.com/openlayers/ol3/pull/4136) - Fix the 'click-to-fork' link in contributer notes ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4132](https://github.com/openlayers/ol3/pull/4132) - Update quickstart tutorial ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#4111](https://github.com/openlayers/ol3/pull/4111) - Use a blackish default for filling texts ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4120](https://github.com/openlayers/ol3/pull/4120) - Remove invalid link to featureOverlay in API doc ([@kalbermattenm](https://github.com/kalbermattenm))
|
||||||
|
* [#4117](https://github.com/openlayers/ol3/pull/4117) - forEachFeatureAtPixel shouldn't fail if layer has no source ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#4106](https://github.com/openlayers/ol3/pull/4106) - Focus to search field on page load ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4079](https://github.com/openlayers/ol3/pull/4079) - Automatically mark required options in API-docs ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4108](https://github.com/openlayers/ol3/pull/4108) - Add missing CSSProperties.prototype.touchAction extern ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4107](https://github.com/openlayers/ol3/pull/4107) - Prevent page zoom on IE Edge ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3969](https://github.com/openlayers/ol3/pull/3969) - Add an option to use the mouse's location as an anchor when zooming ([@samuellapointe](https://github.com/samuellapointe))
|
||||||
7
changelog/v3.10.1.md
Normal file
7
changelog/v3.10.1.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# v3.10.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
This is a patch release that fixes a regression causing text styles with a fill but no stroke to not be rendered.
|
||||||
|
|
||||||
|
* [#4242](https://github.com/openlayers/ol3/pull/4242) - Fix a drawText regression introduced with 31a68e2 ([@marcjansen](https://github.com/marcjansen))
|
||||||
136
changelog/v3.11.0.md
Normal file
136
changelog/v3.11.0.md
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
# v3.11.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.11.0 release includes features and fixes from 73 pull requests since the v3.10.1 release. New features and improvements include:
|
||||||
|
|
||||||
|
* Support for raster reprojection - load raster sources in one projection and view them in another.
|
||||||
|
* Support for Mapbox Vector Tiles!
|
||||||
|
* Improved KML support, GeoJSON & TopoJSON fixes, and much more. See below for the full list.
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### `ol.format.KML` changes
|
||||||
|
|
||||||
|
KML icons are scaled 50% so that the rendering better matches Google Earth rendering.
|
||||||
|
|
||||||
|
If a KML placemark has a name and is a point, an `ol.style.Text` is created with the name displayed to the right of the icon (if there is an icon).
|
||||||
|
This can be controlled with the showPointNames option which defaults to true.
|
||||||
|
|
||||||
|
To disable rendering of the point names for placemarks, use the option:
|
||||||
|
new ol.format.KML({ showPointNames: false });
|
||||||
|
|
||||||
|
#### `ol.interaction.DragBox` and `ol.interaction.DragZoom` changes
|
||||||
|
|
||||||
|
Styling is no longer done with `ol.Style`, but with pure CSS. The `style` constructor option is no longer required, and no longer available. Instead, there is a `className` option for the CSS selector. The default for `ol.interaction.DragBox` is `ol-dragbox`, and `ol.interaction.DragZoom` uses `ol-dragzoom`. If you previously had
|
||||||
|
```js
|
||||||
|
new ol.interaction.DragZoom({
|
||||||
|
style: new ol.style.Style({
|
||||||
|
stroke: new ol.style.Stroke({
|
||||||
|
color: 'red',
|
||||||
|
width: 3
|
||||||
|
}),
|
||||||
|
fill: new ol.style.Fill({
|
||||||
|
color: [255, 255, 255, 0.4]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
```
|
||||||
|
you'll now just need
|
||||||
|
```js
|
||||||
|
new ol.interaction.DragZoom();
|
||||||
|
```
|
||||||
|
but with additional css:
|
||||||
|
```css
|
||||||
|
.ol-dragzoom {
|
||||||
|
border-color: red;
|
||||||
|
border-width: 3px;
|
||||||
|
background-color: rgba(255,255,255,0.4);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Removal of `ol.source.TileVector`
|
||||||
|
|
||||||
|
With the introduction of true vector tile support, `ol.source.TileVector` becomes obsolete. Change your code to use `ol.layer.VectorTile` and `ol.source.VectorTile` instead of `ol.layer.Vector` and `ol.source.TileVector`.
|
||||||
|
|
||||||
|
#### `ol.Map#forEachFeatureAtPixel` changes for unmanaged layers
|
||||||
|
|
||||||
|
`ol.Map#forEachFeatureAtPixel` will still be called for unmanaged layers, but the 2nd argument to the callback function will be `null` instead of a reference to the unmanaged layer. This brings back the behavior of the abandoned `ol.FeatureOverlay` that was replaced by unmanaged layers.
|
||||||
|
|
||||||
|
If you are affected by this change, please change your unmanaged layer to a regular layer by using e.g. `ol.Map#addLayer` instead of `ol.layer.Layer#setMap`.
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#4394](https://github.com/openlayers/ol3/pull/4394) - Allow ol.Object property update without notification. ([@DavidHequet](https://github.com/DavidHequet))
|
||||||
|
* [#4395](https://github.com/openlayers/ol3/pull/4395) - Flag ol.style.Text setOffsetX and Y as @api. ([@adube](https://github.com/adube))
|
||||||
|
* [#4393](https://github.com/openlayers/ol3/pull/4393) - Faster vector tiles ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4392](https://github.com/openlayers/ol3/pull/4392) - Update clean-css to version 3.4.7 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4391](https://github.com/openlayers/ol3/pull/4391) - Pass null as forEachFeatureAtPixel layer arg for unmanaged layers ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4390](https://github.com/openlayers/ol3/pull/4390) - Fix usage of mocha-phantomjs-core after update ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4387](https://github.com/openlayers/ol3/pull/4387) - Add default argument to getRendererFromQueryString ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4376](https://github.com/openlayers/ol3/pull/4376) - Make KML format ignore image styles that aren't icons ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4385](https://github.com/openlayers/ol3/pull/4385) - Don't transform the scale specified by the user ([@oterral](https://github.com/oterral))
|
||||||
|
* [#4388](https://github.com/openlayers/ol3/pull/4388) - Quick-fix running tests with PhantomJS ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4378](https://github.com/openlayers/ol3/pull/4378) - Add a writeStyles option to KML format ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4375](https://github.com/openlayers/ol3/pull/4375) - Fixed documentation typo (ol.source.ImageWMS) ([@simonseyock](https://github.com/simonseyock))
|
||||||
|
* [#4371](https://github.com/openlayers/ol3/pull/4371) - Fix typo in closure compilation tutorial ([@dtreiter](https://github.com/dtreiter))
|
||||||
|
* [#4370](https://github.com/openlayers/ol3/pull/4370) - Improve ol.interaction.Select#getLayer documentation. ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4365](https://github.com/openlayers/ol3/pull/4365) - Update fs-extra to version 0.26.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4366](https://github.com/openlayers/ol3/pull/4366) - Update resemblejs to version 2.0.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4368](https://github.com/openlayers/ol3/pull/4368) - Append KML placemark text style to existing styles ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4361](https://github.com/openlayers/ol3/pull/4361) - Make GPX format not fail on unsupported geometries ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4360](https://github.com/openlayers/ol3/pull/4360) - Update getExtent return value jsdoc tag ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4359](https://github.com/openlayers/ol3/pull/4359) - Update closure-util to version 1.9.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4357](https://github.com/openlayers/ol3/pull/4357) - Update all dependencies. ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4356](https://github.com/openlayers/ol3/pull/4356) - Update Metalsmith and layouts plugin. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4355](https://github.com/openlayers/ol3/pull/4355) - Update PhantomJS. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4353](https://github.com/openlayers/ol3/pull/4353) - Resolve path to jsdoc-fork. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3627](https://github.com/openlayers/ol3/pull/3627) - Make package.json compatible for npm frontend use. ([@ThomasG77](https://github.com/ThomasG77))
|
||||||
|
* [#4163](https://github.com/openlayers/ol3/pull/4163) - Fixes for building with Node 4.x. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4347](https://github.com/openlayers/ol3/pull/4347) - Use require.resolve() to find jsdoc. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4291](https://github.com/openlayers/ol3/pull/4291) - Add 'Move a feature along a line' example. ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4344](https://github.com/openlayers/ol3/pull/4344) - Allow different resolutions in x and y direction for ol.source.ImageStatic ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4339](https://github.com/openlayers/ol3/pull/4339) - Make sure drawImage width and height are not too big ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4334](https://github.com/openlayers/ol3/pull/4334) - Check view extent within image extent ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4332](https://github.com/openlayers/ol3/pull/4332) - Fix write out GeoJSON features with id equal to 0 ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4331](https://github.com/openlayers/ol3/pull/4331) - Allow TopoJSON features with id equal to 0 ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4330](https://github.com/openlayers/ol3/pull/4330) - ol.format.TopoJSON is read only, update the jsdoc ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4327](https://github.com/openlayers/ol3/pull/4327) - Allow GeoJSON features with id equal to 0 ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4219](https://github.com/openlayers/ol3/pull/4219) - Support tiled vector data and Mapbox vector tiles ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4322](https://github.com/openlayers/ol3/pull/4322) - Add wrapX override support for ol.source.Cluster ([@FRizZL](https://github.com/FRizZL))
|
||||||
|
* [#4316](https://github.com/openlayers/ol3/pull/4316) - Render name labels if the geometry is a point in KML format (@tamarmot) ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4313](https://github.com/openlayers/ol3/pull/4313) - Align logos nicely with attribution text ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4297](https://github.com/openlayers/ol3/pull/4297) - Create standalone versions of ol.ext packages ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4302](https://github.com/openlayers/ol3/pull/4302) - scale icons by 0.5 so they are not huge ([@tamarmot](https://github.com/tamarmot))
|
||||||
|
* [#4301](https://github.com/openlayers/ol3/pull/4301) - Remove jshint -W069 tags in source code ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4273](https://github.com/openlayers/ol3/pull/4273) - Expand docs on ol.source url prop. ([@Barryrowe](https://github.com/Barryrowe))
|
||||||
|
* [#4293](https://github.com/openlayers/ol3/pull/4293) - Refine the pull request process ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4289](https://github.com/openlayers/ol3/pull/4289) - Restrict maxZoom of the static-image example ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4275](https://github.com/openlayers/ol3/pull/4275) - Fix ol.events.condition.mouseOnly parameter type ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4248](https://github.com/openlayers/ol3/pull/4248) - Use Math.cosh of ES6/2015 if available ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4286](https://github.com/openlayers/ol3/pull/4286) - Add a color manipulation example. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4122](https://github.com/openlayers/ol3/pull/4122) - Raster reprojection ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4283](https://github.com/openlayers/ol3/pull/4283) - Flag ol.tilegrid.TileGrid getTileCoordExtent as @api ([@adube](https://github.com/adube))
|
||||||
|
* [#4280](https://github.com/openlayers/ol3/pull/4280) - Use overlay container instead of viewport for ol.render.Box ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4278](https://github.com/openlayers/ol3/pull/4278) - Use DOM instead of map canvas for ol.render.Box ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4277](https://github.com/openlayers/ol3/pull/4277) - Improve the box select example ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4276](https://github.com/openlayers/ol3/pull/4276) - Better ol.events.condition.platformModifierKeyOnly documentation ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4102](https://github.com/openlayers/ol3/pull/4102) - Export ol.Observable#dispatchEvent function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4261](https://github.com/openlayers/ol3/pull/4261) - ol.events.condition.mouseOnly may be wrong ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4269](https://github.com/openlayers/ol3/pull/4269) - Fix Zoom control duration option - allow `0` as value ([@adube](https://github.com/adube))
|
||||||
|
* [#4268](https://github.com/openlayers/ol3/pull/4268) - Add method for retrieving ol.Overlay by id ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4257](https://github.com/openlayers/ol3/pull/4257) - Remove unused ol.math-methods ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4270](https://github.com/openlayers/ol3/pull/4270) - Fix Keyboard zoom interation options ([@adube](https://github.com/adube))
|
||||||
|
* [#4272](https://github.com/openlayers/ol3/pull/4272) - Allow the DragZoom interaction created in defaults to use zoomDuration option. ([@adube](https://github.com/adube))
|
||||||
|
* [#4271](https://github.com/openlayers/ol3/pull/4271) - Fix DragZoom interaction duration, allow `0` value ([@adube](https://github.com/adube))
|
||||||
|
* [#4267](https://github.com/openlayers/ol3/pull/4267) - Example usability improvements ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4263](https://github.com/openlayers/ol3/pull/4263) - Add back CSSProperties.prototype.touchAction extern ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4259](https://github.com/openlayers/ol3/pull/4259) - Remove use of toDegrees/toRadians util functions ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4258](https://github.com/openlayers/ol3/pull/4258) - Remove usage of goog.dom.TagName enum ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4255](https://github.com/openlayers/ol3/pull/4255) - Fix zoom slider width for retina displays ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4249](https://github.com/openlayers/ol3/pull/4249) - Make whole example box clickable ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4045](https://github.com/openlayers/ol3/pull/4045) - Add parser for dimension property from WMTS Capabilities.xml ([@Jenselme](https://github.com/Jenselme))
|
||||||
|
* [#4161](https://github.com/openlayers/ol3/pull/4161) - Add `translatestart`, `translateend` and `translating` events to `ol.interaction.Translate` ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4186](https://github.com/openlayers/ol3/pull/4186) - Do not export ol.webgl.Context ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4239](https://github.com/openlayers/ol3/pull/4239) - Changing highlighted to highlight ([@austinkeeley](https://github.com/austinkeeley))
|
||||||
|
* [#3727](https://github.com/openlayers/ol3/pull/3727) - Added getOverviewMap getter method in overviewmapcontrol.js ([@bogdanvaduva](https://github.com/bogdanvaduva))
|
||||||
11
changelog/v3.11.1.md
Normal file
11
changelog/v3.11.1.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# v3.11.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.11.1 release is a patch release that addresses a few regressions in the v3.11.0 release. See the [v3.11.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.11.0) for details on upgrading from v3.10.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#4413](https://github.com/openlayers/ol3/pull/4413) - Revert "Merge pull request #4339 from bartvde/issue-4337" ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4412](https://github.com/openlayers/ol3/pull/4412) - Revert "Merge pull request #4344 from bartvde/issue-2844" ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4408](https://github.com/openlayers/ol3/pull/4408) - Use ratio when calculating ImageWMS width and height ([@ahocevar](https://github.com/ahocevar))
|
||||||
11
changelog/v3.11.2.md
Normal file
11
changelog/v3.11.2.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# v3.11.2
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.11.2 release is a patch release that addresses a few regressions in the v3.11.1 release. See the [v3.11.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.11.0) for details on upgrading from v3.10.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#4450](https://github.com/openlayers/ol3/pull/4450) - Fix select interaction regression caused by #4391 ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4448](https://github.com/openlayers/ol3/pull/4448) - Check ol.source.UrlTile#urls property for null value ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4439](https://github.com/openlayers/ol3/pull/4439) - Allow '' for crossOrigin (as Anonymous alias) ([@ahocevar](https://github.com/ahocevar))
|
||||||
96
changelog/v3.12.0.md
Normal file
96
changelog/v3.12.0.md
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
# v3.12.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.12.0 release includes features and fixes from 71 pull requests since the v3.11.2 release. New features and improvements include:
|
||||||
|
|
||||||
|
* Tile coordinate wrapping for raster reprojection.
|
||||||
|
* Support for multi-line labels.
|
||||||
|
* Allow rendering geometries to an arbitrary canvas (useful for vector legends).
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### `ol.Map#forEachFeatureAtPixel` changes
|
||||||
|
|
||||||
|
The optional `layerFilter` function is now also called for unmanaged layers. To get the same behaviour as before, wrap your layer filter code in an if block like this:
|
||||||
|
```js
|
||||||
|
function layerFilter(layer) {
|
||||||
|
if (map.getLayers().getArray().indexOf(layer) !== -1) {
|
||||||
|
// existing layer filter code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#4559](https://github.com/openlayers/ol3/pull/4559) - Fix up failing KML test in Firefox ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4561](https://github.com/openlayers/ol3/pull/4561) - Exclude feature loader MVT test from IE9 ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4552](https://github.com/openlayers/ol3/pull/4552) - Make sure compiled code calls ol.VectorTile#setProjection ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4551](https://github.com/openlayers/ol3/pull/4551) - Handle tile coordinate wrapping when reprojecting raster tiles ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4544](https://github.com/openlayers/ol3/pull/4544) - Update vector-tile to version 1.2.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4537](https://github.com/openlayers/ol3/pull/4537) - Allow specifying non default DPI on ol.source.TileArcGISRest ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4548](https://github.com/openlayers/ol3/pull/4548) - Improve vector tile related docs ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4549](https://github.com/openlayers/ol3/pull/4549) - Update vector label example ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#4512](https://github.com/openlayers/ol3/pull/4512) - Support for multi-line labels (improved) ([@flightaware](https://github.com/flightaware))
|
||||||
|
* [#4546](https://github.com/openlayers/ol3/pull/4546) - Update coveralls to version 2.11.6 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4539](https://github.com/openlayers/ol3/pull/4539) - Ignore index.html in example list ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4536](https://github.com/openlayers/ol3/pull/4536) - Register the change callback when the tile is enqueued ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4528](https://github.com/openlayers/ol3/pull/4528) - Remove redundant code from ol.featureloader.tile ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4535](https://github.com/openlayers/ol3/pull/4535) - Do not use an array for a single style ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4532](https://github.com/openlayers/ol3/pull/4532) - Mark olx.source.WMTSOptions#dimensions as not null ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4530](https://github.com/openlayers/ol3/pull/4530) - Remove use of goog.isNull ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4529](https://github.com/openlayers/ol3/pull/4529) - Update coding style rules ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4518](https://github.com/openlayers/ol3/pull/4518) - Add support for OSM vector tiles ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4524](https://github.com/openlayers/ol3/pull/4524) - Add example for rendering custom point symbols ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4523](https://github.com/openlayers/ol3/pull/4523) - Allow rendering geometries to an arbitrary canvas ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4525](https://github.com/openlayers/ol3/pull/4525) - Make render tests work on more devices ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4515](https://github.com/openlayers/ol3/pull/4515) - Accept HTMLCanvasElement for an icon's img ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4521](https://github.com/openlayers/ol3/pull/4521) - Fix imagestyle docs ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4508](https://github.com/openlayers/ol3/pull/4508) - Remove unused files ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4487](https://github.com/openlayers/ol3/pull/4487) - Remove fallback css color ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4502](https://github.com/openlayers/ol3/pull/4502) - Improve ol.source.WMTS.optionsFromCapabilities jsdoc layout ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4511](https://github.com/openlayers/ol3/pull/4511) - Minor code cleanup ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4510](https://github.com/openlayers/ol3/pull/4510) - Adding a check just in case the projection is not defined/supported ([@GeoCat](https://github.com/GeoCat))
|
||||||
|
* [#4505](https://github.com/openlayers/ol3/pull/4505) - Remove use of goog.object.getKeys ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4472](https://github.com/openlayers/ol3/pull/4472) - Do not ignore layer filter for unmanaged layers ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4476](https://github.com/openlayers/ol3/pull/4476) - Remove use of goog.functions.constant ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4484](https://github.com/openlayers/ol3/pull/4484) - Remove use of goog.dom.createDom ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4486](https://github.com/openlayers/ol3/pull/4486) - Remove note about DragZoom and vector support ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4483](https://github.com/openlayers/ol3/pull/4483) - Remove use of goog.object.containsKey ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4475](https://github.com/openlayers/ol3/pull/4475) - Fix up failing tests in Internet Explorer ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4485](https://github.com/openlayers/ol3/pull/4485) - Use appendChild instead of goog.dom.append ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4481](https://github.com/openlayers/ol3/pull/4481) - Remove blur workaround in ol.control.Attribution ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4479](https://github.com/openlayers/ol3/pull/4479) - Export ol.interaction.Interaction#getMap function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4478](https://github.com/openlayers/ol3/pull/4478) - Fix olx.control.FullScreenOptions#label apidoc ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4477](https://github.com/openlayers/ol3/pull/4477) - Replace goog.nullFunction with ol.nullFunction ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4474](https://github.com/openlayers/ol3/pull/4474) - Remove use of goog.dom.createElement and goog.dom.createTextNode ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4469](https://github.com/openlayers/ol3/pull/4469) - Upgrade to JSTS 0.17.0 in example ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#4465](https://github.com/openlayers/ol3/pull/4465) - Update handlebars to version 4.0.5 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4464](https://github.com/openlayers/ol3/pull/4464) - Merge in changes from the 3.11.2 release. ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4463](https://github.com/openlayers/ol3/pull/4463) - Remove use of goog.array.sort ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4450](https://github.com/openlayers/ol3/pull/4450) - Fix select interaction regression caused by #4391 ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4458](https://github.com/openlayers/ol3/pull/4458) - Remove extra space in type annotation ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4420](https://github.com/openlayers/ol3/pull/4420) - Remove Bootstrap and jQuery from example snippets. ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4442](https://github.com/openlayers/ol3/pull/4442) - Use jsdoc@3.4.0. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4449](https://github.com/openlayers/ol3/pull/4449) - Change the label of the full screen button to be more intuitive ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4448](https://github.com/openlayers/ol3/pull/4448) - Check ol.source.UrlTile#urls property for null value ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4440](https://github.com/openlayers/ol3/pull/4440) - Raster reprojection tutorial ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4439](https://github.com/openlayers/ol3/pull/4439) - Allow '' for crossOrigin (as Anonymous alias) ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4429](https://github.com/openlayers/ol3/pull/4429) - Dispatch a change event only if the value changes ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4435](https://github.com/openlayers/ol3/pull/4435) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4434](https://github.com/openlayers/ol3/pull/4434) - Remove unused local variables ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4433](https://github.com/openlayers/ol3/pull/4433) - Remove unused local variables ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4140](https://github.com/openlayers/ol3/pull/4140) - Add flight animation example ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#4428](https://github.com/openlayers/ol3/pull/4428) - Add imageSize regression test for ol.source.ImageWMS ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4426](https://github.com/openlayers/ol3/pull/4426) - Improve ol.source.StaticImage ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4425](https://github.com/openlayers/ol3/pull/4425) - Test number property with !== undefined ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4423](https://github.com/openlayers/ol3/pull/4423) - Update mocha to version 2.3.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4416](https://github.com/openlayers/ol3/pull/4416) - Update clean-css to version 3.4.8 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4415](https://github.com/openlayers/ol3/pull/4415) - Scale StaticImage image to imageExtent ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4414](https://github.com/openlayers/ol3/pull/4414) - Remove ol.ImageUrlFunction ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4389](https://github.com/openlayers/ol3/pull/4389) - Smooth transitions on parameter changes ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4410](https://github.com/openlayers/ol3/pull/4410) - Merge in changes from the 3.11.1 release. ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4401](https://github.com/openlayers/ol3/pull/4401) - Allow style function to return a style. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4404](https://github.com/openlayers/ol3/pull/4404) - Set correctly the opt_this parameter when writing a KML document ([@oterral](https://github.com/oterral))
|
||||||
|
* [#4397](https://github.com/openlayers/ol3/pull/4397) - Update glob to version 6.0.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4362](https://github.com/openlayers/ol3/pull/4362) - Rotate control now takes optional resetNorth function. ([@tamarmot](https://github.com/tamarmot))
|
||||||
11
changelog/v3.12.1.md
Normal file
11
changelog/v3.12.1.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# v3.12.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.12.1 release is a patch release that addresses a few regressions in the v3.12.0 release. See the [v3.12.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.12.0) for details on upgrading from v3.11.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#4578](https://github.com/openlayers/ol3/pull/4578) - Fix apidoc landing page markup ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4570](https://github.com/openlayers/ol3/pull/4570) - Rename defaultSort to numberSafeCompareFunction on ol.array ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4567](https://github.com/openlayers/ol3/pull/4567) - Always pass on a compare function to sort ([@bartvde](https://github.com/bartvde))
|
||||||
109
changelog/v3.13.0.md
Normal file
109
changelog/v3.13.0.md
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
# v3.13.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.13.0 release includes features and fixes from 68 pull requests since the v3.12.1 release. New features and improvements include:
|
||||||
|
|
||||||
|
* Improved tiles rendering for the canvas renderer
|
||||||
|
* Improved MapQuest rendering
|
||||||
|
* Add color option to ol.style.Icon
|
||||||
|
* Load TileJSON sources via XMLHttpRequest by default
|
||||||
|
* Add new ol.geom.LineString#getCoordinateAt function
|
||||||
|
* Simplify meters per unit handling
|
||||||
|
* Use ESLint as a replacement for gjslint.py and jshint
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### `proj4js` integration
|
||||||
|
|
||||||
|
Before this release, OpenLayers depended on the global proj4 namespace. When using a module loader like Browserify, you might not want to depend on the global `proj4` namespace. You can use the `ol.proj.setProj4` function to set the proj4 function object. For example in a browserify ES6 environment:
|
||||||
|
|
||||||
|
```js
|
||||||
|
import ol from 'openlayers';
|
||||||
|
import proj4 from 'proj4';
|
||||||
|
ol.proj.setProj4(proj4);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### `ol.source.TileJSON` changes
|
||||||
|
|
||||||
|
The `ol.source.TileJSON` now uses `XMLHttpRequest` to load the TileJSON instead of JSONP with callback.
|
||||||
|
When using server without proper CORS support, `jsonp: true` option can be passed to the constructor to get the same behavior as before:
|
||||||
|
```js
|
||||||
|
new ol.source.TileJSON({
|
||||||
|
url: 'http://serverwithoutcors.com/tilejson.json',
|
||||||
|
jsonp: true
|
||||||
|
})
|
||||||
|
```
|
||||||
|
Also for Mapbox v3, make sure you use urls ending with `.json` (which are able to handle both `XMLHttpRequest` and JSONP) instead of `.jsonp`.
|
||||||
|
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#4694](https://github.com/openlayers/ol3/pull/4694) - Fix eslint errors in wms-time example ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4527](https://github.com/openlayers/ol3/pull/4527) - Add support for smooth TileWMS dimensions ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4691](https://github.com/openlayers/ol3/pull/4691) - Updated Bing Maps key. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4673](https://github.com/openlayers/ol3/pull/4673) - Respect fixed tile url functions when setting url(s) ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4689](https://github.com/openlayers/ol3/pull/4689) - Revert "Do not render in handleDownEvent" ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4688](https://github.com/openlayers/ol3/pull/4688) - Give map a focus-outline in accessible-example ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4642](https://github.com/openlayers/ol3/pull/4642) - Move the icon style color to its own example ([@alexbrault](https://github.com/alexbrault))
|
||||||
|
* [#4685](https://github.com/openlayers/ol3/pull/4685) - Remove bin/check-whitespace.py ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4684](https://github.com/openlayers/ol3/pull/4684) - Update eslint-config-openlayers to version 3.0.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4677](https://github.com/openlayers/ol3/pull/4677) - Make pixel projection handling work in compiled mode ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4639](https://github.com/openlayers/ol3/pull/4639) - Remove use of goog.bind and use ES5 .bind. ([@nicholas-l](https://github.com/nicholas-l))
|
||||||
|
* [#4655](https://github.com/openlayers/ol3/pull/4655) - Update browserify to version 13.0.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4666](https://github.com/openlayers/ol3/pull/4666) - Add a 'boxdrag' event to ol.interaction.DragBox. Resolves #4563 . ([@WeaveTeam](https://github.com/WeaveTeam))
|
||||||
|
* [#4669](https://github.com/openlayers/ol3/pull/4669) - Remove reference to Closure Linter in CONTRIBUTING.md ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4665](https://github.com/openlayers/ol3/pull/4665) - Update istanbul to version 0.4.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4663](https://github.com/openlayers/ol3/pull/4663) - Update glob to version 6.0.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4667](https://github.com/openlayers/ol3/pull/4667) - Fix rendering of transparent MapQuest layer type ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4661](https://github.com/openlayers/ol3/pull/4661) - Fixes #4654 Developer Documentation Updated ([@gaf-ag](https://github.com/gaf-ag))
|
||||||
|
* [#4658](https://github.com/openlayers/ol3/pull/4658) - Update jquery to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4659](https://github.com/openlayers/ol3/pull/4659) - Make sure icons show up in Safari ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4652](https://github.com/openlayers/ol3/pull/4652) - Use map.getTargetElement instead of map.getTarget ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4649](https://github.com/openlayers/ol3/pull/4649) - Missing parameter description for ol.source.Tile#getOpaque ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4602](https://github.com/openlayers/ol3/pull/4602) - Use ESLint. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4628](https://github.com/openlayers/ol3/pull/4628) - Fix for reprojecting opaque tile sources ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4618](https://github.com/openlayers/ol3/pull/4618) - Update resemblejs to version 2.1.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4647](https://github.com/openlayers/ol3/pull/4647) - Proper rounding for possibly negative numbers ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4641](https://github.com/openlayers/ol3/pull/4641) - Remove extra options from icon example. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4629](https://github.com/openlayers/ol3/pull/4629) - Simplify scaleline calculation ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4457](https://github.com/openlayers/ol3/pull/4457) - Add color option to ol.style.Icon ([@alexbrault](https://github.com/alexbrault))
|
||||||
|
* [#4638](https://github.com/openlayers/ol3/pull/4638) - Do not rely on projection extent ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4635](https://github.com/openlayers/ol3/pull/4635) - Update async to version 1.5.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4581](https://github.com/openlayers/ol3/pull/4581) - Do not render in handleDownEvent ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4541](https://github.com/openlayers/ol3/pull/4541) - Add new ol.geom.LineString#getCoordinateAt function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4489](https://github.com/openlayers/ol3/pull/4489) - Update phantomjs to version 1.9.19 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4625](https://github.com/openlayers/ol3/pull/4625) - Use XHR by default to load TileJSON in ol.source.TileJSON ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4622](https://github.com/openlayers/ol3/pull/4622) - Update fs-extra to version 0.26.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4630](https://github.com/openlayers/ol3/pull/4630) - Simplify meters per unit handling ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4490](https://github.com/openlayers/ol3/pull/4490) - Update istanbul to version 0.4.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4574](https://github.com/openlayers/ol3/pull/4574) - Added boxEndCondition to DragBoxOptions to replace the hardcoded chec… ([@WeaveTeam](https://github.com/WeaveTeam))
|
||||||
|
* [#4553](https://github.com/openlayers/ol3/pull/4553) - Update mustache to version 2.2.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4626](https://github.com/openlayers/ol3/pull/4626) - Fixed documentation error ([@simonseyock](https://github.com/simonseyock))
|
||||||
|
* [#4606](https://github.com/openlayers/ol3/pull/4606) - Include originating MapBrowserEvent in ol.DragBoxEvent ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4614](https://github.com/openlayers/ol3/pull/4614) - Remove checksum interface. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4613](https://github.com/openlayers/ol3/pull/4613) - Include own layer in layerFilter and only select unselected features ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4612](https://github.com/openlayers/ol3/pull/4612) - Set oli.source.VectorEvent#feature to ol.Feature|undefined ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4620](https://github.com/openlayers/ol3/pull/4620) - Fix olx.format.PolylineOptions#factor type ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4621](https://github.com/openlayers/ol3/pull/4621) - Fix olx.format.GPXOptions#readExtensions type ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4619](https://github.com/openlayers/ol3/pull/4619) - Add option to load TileJSON via XHR ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4617](https://github.com/openlayers/ol3/pull/4617) - Add missing return type to GeoJSON format ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4615](https://github.com/openlayers/ol3/pull/4615) - Adjust copyright to include 2016 ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4616](https://github.com/openlayers/ol3/pull/4616) - Update closure-util to version 1.10.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4596](https://github.com/openlayers/ol3/pull/4596) - Use consistent tile coordinate keys ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4609](https://github.com/openlayers/ol3/pull/4609) - Add ol.proj.setProj4 function ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4603](https://github.com/openlayers/ol3/pull/4603) - Update async to version 1.5.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4604](https://github.com/openlayers/ol3/pull/4604) - Update clean-css to version 3.4.9 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4600](https://github.com/openlayers/ol3/pull/4600) - Update glob to version 6.0.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4595](https://github.com/openlayers/ol3/pull/4595) - Pass 'opaque' option on to superclass ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4598](https://github.com/openlayers/ol3/pull/4598) - Make ol.source.Tile#getTilePixelRatio work correctly for all sources ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4594](https://github.com/openlayers/ol3/pull/4594) - Fix for TileQueue gradually choking up when using raster reprojection ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4557](https://github.com/openlayers/ol3/pull/4557) - Conditionally render tiles to a separate tile canvas ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4580](https://github.com/openlayers/ol3/pull/4580) - Update fs-extra to version 0.26.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4579](https://github.com/openlayers/ol3/pull/4579) - Release v3.12.1 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4578](https://github.com/openlayers/ol3/pull/4578) - Fix apidoc landing page markup ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4575](https://github.com/openlayers/ol3/pull/4575) - Update rbush to version 1.4.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4571](https://github.com/openlayers/ol3/pull/4571) - Correct typedef of selectinteraction options obj ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4570](https://github.com/openlayers/ol3/pull/4570) - Rename defaultSort to numberSafeCompareFunction on ol.array ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4567](https://github.com/openlayers/ol3/pull/4567) - Always pass on a compare function to sort ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4001](https://github.com/openlayers/ol3/pull/4001) - Export PDF's using jsPDF ([@bartvde](https://github.com/bartvde))
|
||||||
10
changelog/v3.13.1.md
Normal file
10
changelog/v3.13.1.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# v3.13.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.13.1 release is a patch release that addresses a few regressions in the v3.13.0 release. See the [v3.13.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.13.0) for details on upgrading from v3.12.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#4736](https://github.com/openlayers/ol3/pull/4736) - Properly detect feature on unmanaged layer for toggle selection ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4777](https://github.com/openlayers/ol3/pull/4777) - Fix source.UrlTile URL expansion ([@gberaudo](https://github.com/gberaudo))
|
||||||
154
changelog/v3.14.0.md
Normal file
154
changelog/v3.14.0.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# v3.14.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.14.0 release includes features and fixes from 93 pull requests since the v3.13.1 release. New features and improvements include:
|
||||||
|
|
||||||
|
* New `source` option for the `ol.control.FullScreen`, to allow including other elements besides the map in a full screen view (#4679).
|
||||||
|
* New `target` property for the Drag&Drop interaction allows using a different drop target than the map viewport (#4876).
|
||||||
|
* `ol.style.RegularShape` has a new `rotateWithView` option, for controlling how regular shape symbols are rendered on rotated views (#4698).
|
||||||
|
* New `layers` option for `ol.format.WMSGetFeatureInfo` format, to selectively only read features from specific layers (#4700).
|
||||||
|
* New `precision` parameter for formatting coordinates with `ol.coordinate.toStringHDMS` (#4787).
|
||||||
|
* Smarter tile queue for improved tile loading user experience when more than one tile layer is used (#4794).
|
||||||
|
* Improved rendering performance for tile layers by rendering tiles directly to the map canvas (#4597).
|
||||||
|
* The `goog.events` event system was replaced with our own lightweight event system. This significally reduces the build size (#4711). Replacement of other `goog.*` components with ES5 features or custom code marks a huge step towards the complete removal of the Closure Library dependency.
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### Internet Explorer 9 support
|
||||||
|
|
||||||
|
As of this release, OpenLayers requires a `requestAnimationFrame`/`cancelAnimationFrame` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features/#requestAnimationFrame.
|
||||||
|
|
||||||
|
#### Layer pre-/postcompose event changes
|
||||||
|
|
||||||
|
It is the responsibility of the application to undo any canvas transform changes at the end of a layer 'precompose' or 'postcompose' handler. Previously, it was ok to set a null transform. The API now guarantees a device pixel coordinate system on the canvas with its origin in the top left corner of the map. However, applications should not rely on the underlying canvas being the same size as the visible viewport.
|
||||||
|
|
||||||
|
Old code:
|
||||||
|
```js
|
||||||
|
layer.on('precompose', function(e) {
|
||||||
|
// rely on canvas dimensions to move coordinate origin to center
|
||||||
|
e.context.translate(e.context.canvas.width / 2, e.context.canvas.height / 2);
|
||||||
|
e.context.scale(3, 3);
|
||||||
|
// draw an x in the center of the viewport
|
||||||
|
e.context.moveTo(-20, -20);
|
||||||
|
e.context.lineTo(20, 20);
|
||||||
|
e.context.moveTo(-20, 20);
|
||||||
|
e.context.lineTo(20, -20);
|
||||||
|
// rely on the canvas having a null transform
|
||||||
|
e.context.setTransform(1, 0, 0, 1, 0, 0);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
New code:
|
||||||
|
```js
|
||||||
|
layer.on('precompose', function(e) {
|
||||||
|
// use map size and pixel ratio to move coordinate origin to center
|
||||||
|
var size = map.getSize();
|
||||||
|
var pixelRatio = e.frameState.pixelRatio;
|
||||||
|
e.context.translate(size[0] / 2 * pixelRatio, size[1] / 2 * pixelRatio);
|
||||||
|
e.context.scale(3, 3);
|
||||||
|
// draw an x in the center of the viewport
|
||||||
|
e.context.moveTo(-20, -20);
|
||||||
|
e.context.lineTo(20, 20);
|
||||||
|
e.context.moveTo(-20, 20);
|
||||||
|
e.context.lineTo(20, -20);
|
||||||
|
// undo all transforms
|
||||||
|
e.context.scale(1 / 3, 1 / 3);
|
||||||
|
e.context.translate(-size[0] / 2 * pixelRatio, -size[1] / 2 * pixelRatio);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#4896](https://github.com/openlayers/ol3/pull/4896) - Ignore XML sequence when comparing GML ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4890](https://github.com/openlayers/ol3/pull/4890) - ol.format.KML cleanup ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4894](https://github.com/openlayers/ol3/pull/4894) - Only run raster operations after image sources have loaded. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4892](https://github.com/openlayers/ol3/pull/4892) - Stricter check for ImageData constructor ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4891](https://github.com/openlayers/ol3/pull/4891) - Fix tests so they all pass in IE9 ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4889](https://github.com/openlayers/ol3/pull/4889) - Use requestAnimation polyfill for examples and update release notes ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4887](https://github.com/openlayers/ol3/pull/4887) - Use less aggressive DOM function overrides ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4885](https://github.com/openlayers/ol3/pull/4885) - Mark overlayContainer and overlayContainerStopEvent as non-nullable ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4884](https://github.com/openlayers/ol3/pull/4884) - Remove use of goog.math.isFiniteNumber() ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4881](https://github.com/openlayers/ol3/pull/4881) - Update jquery to version 2.2.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4780](https://github.com/openlayers/ol3/pull/4780) - Adapt the code for the new closure-compiler version ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3453](https://github.com/openlayers/ol3/pull/3453) - Consider multi in add/remove/toggle select logic ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#4876](https://github.com/openlayers/ol3/pull/4876) - Add `target` property to Drag&Drop interaction ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#4854](https://github.com/openlayers/ol3/pull/4854) - Always report skipped feature hits for the original layer ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4877](https://github.com/openlayers/ol3/pull/4877) - Update eslint to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4870](https://github.com/openlayers/ol3/pull/4870) - Reuse dragListenerKeys_ local variable ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4721](https://github.com/openlayers/ol3/pull/4721) - Fix reprojection of raster sources with gutter ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4874](https://github.com/openlayers/ol3/pull/4874) - Assert we have a feature id ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4869](https://github.com/openlayers/ol3/pull/4869) - Improve precision of ol.reproj.render ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4866](https://github.com/openlayers/ol3/pull/4866) - Use requestAnimationFrame polyfill (for IE9) ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4863](https://github.com/openlayers/ol3/pull/4863) - Remove use of goog.dom.createElement ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4864](https://github.com/openlayers/ol3/pull/4864) - Use querySelectorAll instead of goog.dom.getElementsByClass ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4597](https://github.com/openlayers/ol3/pull/4597) - Render tiles directly to the map canvas ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4862](https://github.com/openlayers/ol3/pull/4862) - Add OSGeo badge ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4845](https://github.com/openlayers/ol3/pull/4845) - Fix geolocation error cast ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4851](https://github.com/openlayers/ol3/pull/4851) - Don't use goog.isBoolean() ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4852](https://github.com/openlayers/ol3/pull/4852) - Don't use goog.isString() ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4849](https://github.com/openlayers/ol3/pull/4849) - Fix docs of LogoOptions.prototype.src ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4794](https://github.com/openlayers/ol3/pull/4794) - Make tile loading count no longer depend on source count ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4843](https://github.com/openlayers/ol3/pull/4843) - Remove use of goog.dom.getParentElement ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4839](https://github.com/openlayers/ol3/pull/4839) - Add template type to ol.Collection ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4847](https://github.com/openlayers/ol3/pull/4847) - Update eslint to version 2.1.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4632](https://github.com/openlayers/ol3/pull/4632) - Overloading fill color (polygon or text) with CanvasPattern and CanvasGradient ([@bjnsn](https://github.com/bjnsn))
|
||||||
|
* [#4842](https://github.com/openlayers/ol3/pull/4842) - Remove use of goog.dom.createDom ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4808](https://github.com/openlayers/ol3/pull/4808) - Type cleanup ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4737](https://github.com/openlayers/ol3/pull/4737) - Use olx.format.ReadOptions in ol.interaction.DragAndDrop ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4830](https://github.com/openlayers/ol3/pull/4830) - Make sure window.proj4 is always restored in tests ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4838](https://github.com/openlayers/ol3/pull/4838) - Use regular expression instead of String#endsWith() check ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4837](https://github.com/openlayers/ol3/pull/4837) - Update metalsmith-layouts to version 1.5.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4836](https://github.com/openlayers/ol3/pull/4836) - Use lowercase for all user agent checks ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4833](https://github.com/openlayers/ol3/pull/4833) - Upgrade linter and config. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4831](https://github.com/openlayers/ol3/pull/4831) - Add navigation header to examples page ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4824](https://github.com/openlayers/ol3/pull/4824) - Don't use goog.string.newlines.* ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4825](https://github.com/openlayers/ol3/pull/4825) - Don't use goog.string.isEmpty ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4823](https://github.com/openlayers/ol3/pull/4823) - Fix type for layers option on ol.interaction.Select ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4815](https://github.com/openlayers/ol3/pull/4815) - wrapX false in synthetic examples ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4810](https://github.com/openlayers/ol3/pull/4810) - Add checks for undefined in controls ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4787](https://github.com/openlayers/ol3/pull/4787) - Add precision parameter for HDMS coordinate ([@pfanguin](https://github.com/pfanguin))
|
||||||
|
* [#4811](https://github.com/openlayers/ol3/pull/4811) - Make ol.style.Style a @struct ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4800](https://github.com/openlayers/ol3/pull/4800) - Update phantomjs-prebuilt to version 2.1.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4792](https://github.com/openlayers/ol3/pull/4792) - Use ol.events.listen instead of ol.Observable#on ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4796](https://github.com/openlayers/ol3/pull/4796) - Remove use of goog.isString() ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4795](https://github.com/openlayers/ol3/pull/4795) - Cleanup after goog.array, goog.object and goog.isDef removal ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4791](https://github.com/openlayers/ol3/pull/4791) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4778](https://github.com/openlayers/ol3/pull/4778) - Remove use of goog.object. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4789](https://github.com/openlayers/ol3/pull/4789) - Use ol.array instead of goog.array ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4788](https://github.com/openlayers/ol3/pull/4788) - Remove unnecessary newlines ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4731](https://github.com/openlayers/ol3/pull/4731) - Remove all remaining unnecessary casts ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4776](https://github.com/openlayers/ol3/pull/4776) - Correct assertion message in ol.array.binarySearch-test ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4711](https://github.com/openlayers/ol3/pull/4711) - Removal of goog.events.* ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4777](https://github.com/openlayers/ol3/pull/4777) - Fix source.UrlTile URL expansion ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4730](https://github.com/openlayers/ol3/pull/4730) - Document ol.Geolocation error event ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4772](https://github.com/openlayers/ol3/pull/4772) - Use node.setAttribute to set namespaceURI of a node ([@adube](https://github.com/adube))
|
||||||
|
* [#4774](https://github.com/openlayers/ol3/pull/4774) - Update graceful-fs to version 4.1.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4680](https://github.com/openlayers/ol3/pull/4680) - Remove goog array. ([@nicholas-l](https://github.com/nicholas-l))
|
||||||
|
* [#4771](https://github.com/openlayers/ol3/pull/4771) - Use innerHTML instead of innerText to populate the status element ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4769](https://github.com/openlayers/ol3/pull/4769) - Add opaque option to olx.source.OSMOptions ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4736](https://github.com/openlayers/ol3/pull/4736) - Properly detect feature on unmanaged layer for toggle selection ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4756](https://github.com/openlayers/ol3/pull/4756) - Remove VectorTile getSource re-definition of return value ([@adube](https://github.com/adube))
|
||||||
|
* [#4733](https://github.com/openlayers/ol3/pull/4733) - Avoid rendering too big and too small images for vector tiles ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4754](https://github.com/openlayers/ol3/pull/4754) - Upgrade to mocha@2.4.5. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4750](https://github.com/openlayers/ol3/pull/4750) - Update metalsmith-layouts to version 1.4.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4751](https://github.com/openlayers/ol3/pull/4751) - Update phantomjs to version 2.1.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4741](https://github.com/openlayers/ol3/pull/4741) - Report on installed versions in Travis. ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4742](https://github.com/openlayers/ol3/pull/4742) - Upgrade to eslint@2.0.0-beta.2. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4746](https://github.com/openlayers/ol3/pull/4746) - Downgrade to mocha@2.3.4. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4740](https://github.com/openlayers/ol3/pull/4740) - Update fs-extra to version 0.26.5 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4738](https://github.com/openlayers/ol3/pull/4738) - Add unit tests for ol.control.Rotate and ol.control.Zoom ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4718](https://github.com/openlayers/ol3/pull/4718) - Improve raster reprojection behavior when tiles fail to load ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#4734](https://github.com/openlayers/ol3/pull/4734) - Update sinon to version 1.17.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4726](https://github.com/openlayers/ol3/pull/4726) - Update mocha to version 2.4.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4725](https://github.com/openlayers/ol3/pull/4725) - Untangle vector tile feature reprojection ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4735](https://github.com/openlayers/ol3/pull/4735) - Add default value for defaultDataProjection ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4732](https://github.com/openlayers/ol3/pull/4732) - Fix '@see' link in src/ol/deviceorientation.js ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4720](https://github.com/openlayers/ol3/pull/4720) - Improve tileLoadFunction docs ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4717](https://github.com/openlayers/ol3/pull/4717) - Update phantomjs to version 2.1.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4679](https://github.com/openlayers/ol3/pull/4679) - Add a source option for the full screen control ([@gaf-ag](https://github.com/gaf-ag))
|
||||||
|
* [#4712](https://github.com/openlayers/ol3/pull/4712) - Add missing JSDoc tags ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4700](https://github.com/openlayers/ol3/pull/4700) - Add 'layers' option for WMSGetFeatureInfo format ([@adube](https://github.com/adube))
|
||||||
|
* [#4705](https://github.com/openlayers/ol3/pull/4705) - Remove remaining unnecessary ol.source.State casts ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4703](https://github.com/openlayers/ol3/pull/4703) - Source options fixes. ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4698](https://github.com/openlayers/ol3/pull/4698) - Add rotateWithView option to ol.style.RegularShape ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4697](https://github.com/openlayers/ol3/pull/4697) - Bind tileUrlFunction to the source ([@gberaudo](https://github.com/gberaudo))
|
||||||
10
changelog/v3.14.1.md
Normal file
10
changelog/v3.14.1.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# v3.14.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.14.1 release is a patch release that addresses a few regressions in the v3.14.0 release. See the [v3.14.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.14.0) for details on upgrading from v3.13.x.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#4939](https://github.com/openlayers/ol3/pull/4939) - Fix rendering of opaque layers with opacity != 1 ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4921](https://github.com/openlayers/ol3/pull/4921) - Unlisten before calling listener and bind to target by default ([@ahocevar](https://github.com/ahocevar))
|
||||||
13
changelog/v3.14.2.md
Normal file
13
changelog/v3.14.2.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# v3.14.2
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.14.2 release is a patch release that addresses a few regressions in the v3.14.1 release. See the [v3.14.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.14.0) for details on upgrading from v3.13.x.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#4963](https://github.com/openlayers/ol3/pull/4963) - Handle more XHR errors in the TileJSON source ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4960](https://github.com/openlayers/ol3/pull/4960) - Simplify clipping of lower resolution regions ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4958](https://github.com/openlayers/ol3/pull/4958) - Stop wheel events instead of DOMMouseScroll events ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4956](https://github.com/openlayers/ol3/pull/4956) - Fix Examples layout page ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4809](https://github.com/openlayers/ol3/pull/4809) - Fix multipolygon clone. ([@fperucic](https://github.com/fperucic))
|
||||||
204
changelog/v3.15.0.md
Normal file
204
changelog/v3.15.0.md
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
# v3.15.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.15.0 release includes features and fixes from 136 pull requests since the v3.14.2 release. New features and improvements include:
|
||||||
|
|
||||||
|
* Make ol.source.Cluster more flexible by adding a geometryFunction option (#4917).
|
||||||
|
* Add new CartoDB tile source (#4926).
|
||||||
|
* Improved rendering performance for vector layers by batching polygon fill and stroke instructions (#5149).
|
||||||
|
* Make the tile cache size configurable (#4805).
|
||||||
|
* Add new ol.geom.Geometry#rotate function (#4984).
|
||||||
|
* Accept simpler forms of specifying attribution(s) for sources (#5007).
|
||||||
|
* Support zooming out for ol.interaction.DragZoom (#5031).
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
### v3.15.0
|
||||||
|
|
||||||
|
#### Internet Explorer 9 support
|
||||||
|
|
||||||
|
As of this release, OpenLayers requires a `classList` polyfill for IE 9 support. See http://cdn.polyfill.io/v2/docs/features#Element_prototype_classList.
|
||||||
|
|
||||||
|
#### Immediate rendering API
|
||||||
|
|
||||||
|
Listeners for `precompose`, `render`, and `postcompose` receive an event with a `vectorContext` property with methods for immediate vector rendering. The previous geometry drawing methods have been replaced with a single `vectorContext.drawGeometry(geometry)` method. If you were using any of the following experimental methods on the vector context, replace them with `drawGeometry`:
|
||||||
|
|
||||||
|
* Removed experimental geometry drawing methods: `drawPointGeometry`, `drawLineStringGeometry`, `drawPolygonGeometry`, `drawMultiPointGeometry`, `drawMultiLineStringGeometry`, `drawMultiPolygonGeometry`, and `drawCircleGeometry` (all have been replaced with `drawGeometry`).
|
||||||
|
|
||||||
|
In addition, the previous methods for setting style parts have been replaced with a single `vectorContext.setStyle(style)` method. If you were using any of the following experimental methods on the vector context, replace them with `setStyle`:
|
||||||
|
|
||||||
|
* Removed experimental style setting methods: `setFillStrokeStyle`, `setImageStyle`, `setTextStyle` (all have been replaced with `setStyle`).
|
||||||
|
|
||||||
|
Below is an example of how the vector context might have been used in the past:
|
||||||
|
|
||||||
|
```js
|
||||||
|
// OLD WAY, NO LONGER SUPPORTED
|
||||||
|
map.on('postcompose', function(event) {
|
||||||
|
event.vectorContext.setFillStrokeStyle(style.getFill(), style.getStroke());
|
||||||
|
event.vectorContext.drawPointGeometry(geometry);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
Here is an example of how you could accomplish the same with the new methods:
|
||||||
|
```js
|
||||||
|
// NEW WAY, USE THIS INSTEAD OF THE CODE ABOVE
|
||||||
|
map.on('postcompose', function(event) {
|
||||||
|
event.vectorContext.setStyle(style);
|
||||||
|
event.vectorContext.drawGeometry(geometry);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
A final change to the immediate rendering API is that `vectorContext.drawFeature()` calls are now "immediate" as well. The drawing now occurs synchronously. This means that any `zIndex` in a style passed to `drawFeature()` will be ignored. To achieve `zIndex` ordering, order your calls to `drawFeature()` instead.
|
||||||
|
|
||||||
|
#### Removal of `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK`
|
||||||
|
|
||||||
|
The `ol.DEFAULT_TILE_CACHE_HIGH_WATER_MARK` define has been removed. The size of the cache can now be defined on every tile based `ol.source`:
|
||||||
|
```js
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.OSM({
|
||||||
|
cacheSize: 128
|
||||||
|
})
|
||||||
|
})
|
||||||
|
```
|
||||||
|
The default cache size is `2048`.
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#4775](https://github.com/openlayers/ol3/pull/4775) - Remove goog.math.modulo and goog.math.lerp ([@nicholas-l](https://github.com/nicholas-l))
|
||||||
|
* [#5152](https://github.com/openlayers/ol3/pull/5152) - Cartodb cleanup ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4804](https://github.com/openlayers/ol3/pull/4804) - Use Array.isArray instead of goog.isArray ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5149](https://github.com/openlayers/ol3/pull/5149) - Batch polygon fill and stroke instructions ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5159](https://github.com/openlayers/ol3/pull/5159) - Update eslint to version 2.6.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5160](https://github.com/openlayers/ol3/pull/5160) - Update clean-css to version 3.4.11 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5157](https://github.com/openlayers/ol3/pull/5157) - Improve docs for measure example ([@probins](https://github.com/probins))
|
||||||
|
* [#5155](https://github.com/openlayers/ol3/pull/5155) - Fix ol.source.Zoomify tests on firefox ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5086](https://github.com/openlayers/ol3/pull/5086) - Get rid of goog.functions ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#5105](https://github.com/openlayers/ol3/pull/5105) - Support minZoom in ol.source.Stamen ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4926](https://github.com/openlayers/ol3/pull/4926) - Add CartoDB tile source. ([@aisaacs](https://github.com/aisaacs))
|
||||||
|
* [#5151](https://github.com/openlayers/ol3/pull/5151) - Use fs-extra as fs, remove usage of graceful-fs ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5124](https://github.com/openlayers/ol3/pull/5124) - Removed goog.dom.classlist ([@nicholas-l](https://github.com/nicholas-l))
|
||||||
|
* [#5150](https://github.com/openlayers/ol3/pull/5150) - Use fs-extra instead of wrench ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5109](https://github.com/openlayers/ol3/pull/5109) - Add some tests for ol.source.TileUTFGrid ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5139](https://github.com/openlayers/ol3/pull/5139) - Update closure-util to version 1.13.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5141](https://github.com/openlayers/ol3/pull/5141) - Reuse dragListenerKeys_ variable in ol.control.ZoomSlider ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5118](https://github.com/openlayers/ol3/pull/5118) - Remove goog.dom.classlist usage ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5115](https://github.com/openlayers/ol3/pull/5115) - Clarify that lineDash has no effect in IE 10 and below ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5136](https://github.com/openlayers/ol3/pull/5136) - Update eslint to version 2.5.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5123](https://github.com/openlayers/ol3/pull/5123) - Update coveralls to version 2.11.9 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5131](https://github.com/openlayers/ol3/pull/5131) - Update phantomjs-prebuilt to version 2.1.7 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5122](https://github.com/openlayers/ol3/pull/5122) - Update browser support info in intro tutorial ([@probins](https://github.com/probins))
|
||||||
|
* [#5112](https://github.com/openlayers/ol3/pull/5112) - Add decimals option to format write ([@probins](https://github.com/probins))
|
||||||
|
* [#5120](https://github.com/openlayers/ol3/pull/5120) - Add tileJSON option to ol.source.TileUTFGrid ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5119](https://github.com/openlayers/ol3/pull/5119) - Add ol.source.Raster events on API docs page ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5116](https://github.com/openlayers/ol3/pull/5116) - Improve examples pages on mobile devices a bit ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5113](https://github.com/openlayers/ol3/pull/5113) - Memory leak in ol.control.FullScreen ([@AvatharDG](https://github.com/AvatharDG))
|
||||||
|
* [#5111](https://github.com/openlayers/ol3/pull/5111) - Remove CSS filter in examples ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5108](https://github.com/openlayers/ol3/pull/5108) - Remove unused ol.xml.getAttributeNodeNS function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5106](https://github.com/openlayers/ol3/pull/5106) - Get rid of goog.math.Vec2 ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5096](https://github.com/openlayers/ol3/pull/5096) - Add tests for ol.source.Zoomify ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5102](https://github.com/openlayers/ol3/pull/5102) - Fix typo in API docs ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5098](https://github.com/openlayers/ol3/pull/5098) - Reintroduce log messages for relevant WebGL assertions ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#5094](https://github.com/openlayers/ol3/pull/5094) - FAQ: answer question 4 ([@probins](https://github.com/probins))
|
||||||
|
* [#5092](https://github.com/openlayers/ol3/pull/5092) - add raster.jsdoc ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5081](https://github.com/openlayers/ol3/pull/5081) - Snap to vertices or edges ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5090](https://github.com/openlayers/ol3/pull/5090) - Update custom-builds.md ([@probins](https://github.com/probins))
|
||||||
|
* [#5089](https://github.com/openlayers/ol3/pull/5089) - Test for both transform coords should use roughlyEqual ([@probins](https://github.com/probins))
|
||||||
|
* [#5080](https://github.com/openlayers/ol3/pull/5080) - Fix geojson write GeometryCollection ([@probins](https://github.com/probins))
|
||||||
|
* [#5088](https://github.com/openlayers/ol3/pull/5088) - DEVELOPING.md: remove section on running Travis on fork ([@probins](https://github.com/probins))
|
||||||
|
* [#5087](https://github.com/openlayers/ol3/pull/5087) - assertion to check that there's a DOM node for target element ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5069](https://github.com/openlayers/ol3/pull/5069) - Update jquery to version 2.2.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5083](https://github.com/openlayers/ol3/pull/5083) - Remove unnecessary lineTo calls in immediate polygon rendering ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5082](https://github.com/openlayers/ol3/pull/5082) - Get rid of goog.log. ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#5079](https://github.com/openlayers/ol3/pull/5079) - Correcting a typo in the upgrade notes ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5076](https://github.com/openlayers/ol3/pull/5076) - Update phantomjs-prebuilt to version 2.1.6 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5077](https://github.com/openlayers/ol3/pull/5077) - Make immediate API uniformly synchronous. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5072](https://github.com/openlayers/ol3/pull/5072) - Add setStyle() and drawGeometry() to the immediate rendering API. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5074](https://github.com/openlayers/ol3/pull/5074) - Do not rotate map canvas after composition ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5071](https://github.com/openlayers/ol3/pull/5071) - correct way to determine freehand mode is enabled ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5066](https://github.com/openlayers/ol3/pull/5066) - Add more getters to ol.source.Vector ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#5064](https://github.com/openlayers/ol3/pull/5064) - Fix inconsistency in geom docs ([@probins](https://github.com/probins))
|
||||||
|
* [#5063](https://github.com/openlayers/ol3/pull/5063) - Remove inappropriate information from API docs ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5061](https://github.com/openlayers/ol3/pull/5061) - Remove redundant required option ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5058](https://github.com/openlayers/ol3/pull/5058) - Note in docs that DOM renderer can also render vectors ([@probins](https://github.com/probins))
|
||||||
|
* [#5056](https://github.com/openlayers/ol3/pull/5056) - Note in docs that WebGL can render points ([@probins](https://github.com/probins))
|
||||||
|
* [#5055](https://github.com/openlayers/ol3/pull/5055) - Fix cruft on kml scale output ([@probins](https://github.com/probins))
|
||||||
|
* [#5051](https://github.com/openlayers/ol3/pull/5051) - Handle aborted tiles in ol.TileQueue ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5049](https://github.com/openlayers/ol3/pull/5049) - Supported browsers all have getComputedStyle ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5048](https://github.com/openlayers/ol3/pull/5048) - Add tests for ol.dom methods ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5031](https://github.com/openlayers/ol3/pull/5031) - support zooming out for ol.interaction.DragZoom ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5036](https://github.com/openlayers/ol3/pull/5036) - Use imgSize when provided ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5020](https://github.com/openlayers/ol3/pull/5020) - Update gaze to version 1.0.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5039](https://github.com/openlayers/ol3/pull/5039) - Update fs-extra to version 0.26.6 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5033](https://github.com/openlayers/ol3/pull/5033) - Document GPX geometry output types ([@probins](https://github.com/probins))
|
||||||
|
* [#5024](https://github.com/openlayers/ol3/pull/5024) - Resize the map canvas less aggressively ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5000](https://github.com/openlayers/ol3/pull/5000) - Remove use of goog.math.Size and goog.style.setBorderBoxSize ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5027](https://github.com/openlayers/ol3/pull/5027) - Clarify default value of featureProjection on geometry write ([@probins](https://github.com/probins))
|
||||||
|
* [#5019](https://github.com/openlayers/ol3/pull/5019) - Update eslint to version 2.4.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5016](https://github.com/openlayers/ol3/pull/5016) - Add basic tests for ol.geom.flat.center ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5015](https://github.com/openlayers/ol3/pull/5015) - Update proj4 to version 2.3.14 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5013](https://github.com/openlayers/ol3/pull/5013) - Fix typo in test description ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5007](https://github.com/openlayers/ol3/pull/5007) - Accept simpler forms of specifying attribution(s) for sources. ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5011](https://github.com/openlayers/ol3/pull/5011) - Add missing setProjection function to ol.VectorTile API ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5010](https://github.com/openlayers/ol3/pull/5010) - Add and fix API docs for ol.events.Event stack ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5009](https://github.com/openlayers/ol3/pull/5009) - Update tutorials ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#5006](https://github.com/openlayers/ol3/pull/5006) - Use the maintained slimerjs package ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5003](https://github.com/openlayers/ol3/pull/5003) - Add 'function' jsdoc tag to ol.geom.Geometry#rotate ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5002](https://github.com/openlayers/ol3/pull/5002) - Update eslint-config-openlayers to version 4.1.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4999](https://github.com/openlayers/ol3/pull/4999) - Remove use of goog.dom.removeNode ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4990](https://github.com/openlayers/ol3/pull/4990) - Add new ol.source.TileJSON#getTileJSON function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4998](https://github.com/openlayers/ol3/pull/4998) - Remove unused ol.Map#isDef function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4995](https://github.com/openlayers/ol3/pull/4995) - Remove unused ol.color functions. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4991](https://github.com/openlayers/ol3/pull/4991) - Do not remove listeners while dispatching event ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4984](https://github.com/openlayers/ol3/pull/4984) - Add new ol.geom.Geometry#rotate function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4994](https://github.com/openlayers/ol3/pull/4994) - Add alpha default value to ol.Color array form ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4992](https://github.com/openlayers/ol3/pull/4992) - Allow configuration of the test reporter ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4988](https://github.com/openlayers/ol3/pull/4988) - Update phantomjs-prebuilt to version 2.1.5 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4983](https://github.com/openlayers/ol3/pull/4983) - Update Bing Maps Portal url ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4981](https://github.com/openlayers/ol3/pull/4981) - Remove the viewport on map dispose ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4980](https://github.com/openlayers/ol3/pull/4980) - Remove unused goog.require ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4977](https://github.com/openlayers/ol3/pull/4977) - Add basic tests for ol.geom.flat.length methods ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4973](https://github.com/openlayers/ol3/pull/4973) - Update eslint to version 2.3.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4971](https://github.com/openlayers/ol3/pull/4971) - Release v3.14.2 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4970](https://github.com/openlayers/ol3/pull/4970) - Tests for ol.Disposable. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4967](https://github.com/openlayers/ol3/pull/4967) - Add missing goog.inherits for ol.render.canvas.Immediate ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4955](https://github.com/openlayers/ol3/pull/4955) - Remove IE workarounds in src/ol/xml.js ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4960](https://github.com/openlayers/ol3/pull/4960) - Simplify clipping of lower resolution regions ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4950](https://github.com/openlayers/ol3/pull/4950) - Remove use of goog.Disposable(). ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4963](https://github.com/openlayers/ol3/pull/4963) - Handle more XHR errors in the TileJSON source ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4962](https://github.com/openlayers/ol3/pull/4962) - Skip tests where features are not available ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4956](https://github.com/openlayers/ol3/pull/4956) - Fix Examples layout page ([@jonataswalker](https://github.com/jonataswalker))
|
||||||
|
* [#4958](https://github.com/openlayers/ol3/pull/4958) - Stop wheel events instead of DOMMouseScroll events ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4947](https://github.com/openlayers/ol3/pull/4947) - IE support for ol.source.Raster. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4944](https://github.com/openlayers/ol3/pull/4944) - Update resemblejs to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4942](https://github.com/openlayers/ol3/pull/4942) - Remove unused files in examples/data/ ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4805](https://github.com/openlayers/ol3/pull/4805) - Add new cacheSize option to ol.source ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4940](https://github.com/openlayers/ol3/pull/4940) - Release v3.14.1 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4939](https://github.com/openlayers/ol3/pull/4939) - Fix rendering of opaque layers with opacity != 1 ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4938](https://github.com/openlayers/ol3/pull/4938) - Get rid of goog.dom.getFirstElementChild ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4937](https://github.com/openlayers/ol3/pull/4937) - Get rid of goog.json ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4936](https://github.com/openlayers/ol3/pull/4936) - Remove jquery from getfeatureinfo-layers example ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4930](https://github.com/openlayers/ol3/pull/4930) - Use ADVANCED instead of ADVANCED_OPTIMIZATIONS ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4917](https://github.com/openlayers/ol3/pull/4917) - Make ol.source.Cluster more flexible by adding a geometryFunction option ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4918](https://github.com/openlayers/ol3/pull/4918) - Don't change the canvas size to clear it ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4923](https://github.com/openlayers/ol3/pull/4923) - Update custom-builds.md ([@xlhomme](https://github.com/xlhomme))
|
||||||
|
* [#4929](https://github.com/openlayers/ol3/pull/4929) - Update clean-css to version 3.4.10 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4928](https://github.com/openlayers/ol3/pull/4928) - Upgrade to JSTS 1.0.2 in example ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#4927](https://github.com/openlayers/ol3/pull/4927) - Upgrade JSTS in example. ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#4809](https://github.com/openlayers/ol3/pull/4809) - Fix multipolygon clone. ([@fperucic](https://github.com/fperucic))
|
||||||
|
* [#4924](https://github.com/openlayers/ol3/pull/4924) - Update coveralls to version 2.11.8 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4921](https://github.com/openlayers/ol3/pull/4921) - Unlisten before calling listener and bind to target by default ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4868](https://github.com/openlayers/ol3/pull/4868) - Allow to refresh a source and reload its data. ([@sebasbaumh](https://github.com/sebasbaumh))
|
||||||
|
* [#4903](https://github.com/openlayers/ol3/pull/4903) - Remove use of goog.style.getRelativePosition ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4902](https://github.com/openlayers/ol3/pull/4902) - Remove use of goog.style.getClientPosition ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4916](https://github.com/openlayers/ol3/pull/4916) - Fix ol.format.GeoJSON#writeFeatureObject return type ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4909](https://github.com/openlayers/ol3/pull/4909) - Add ol.renderer.dom.VectorLayer#clearFrame ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4915](https://github.com/openlayers/ol3/pull/4915) - Use {} instead of Object ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4914](https://github.com/openlayers/ol3/pull/4914) - Export ol.proj.equivalent ([@sebasbaumh](https://github.com/sebasbaumh))
|
||||||
|
* [#4908](https://github.com/openlayers/ol3/pull/4908) - Remove use of goog.math.Rect ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4900](https://github.com/openlayers/ol3/pull/4900) - Make ol.format.XML a @struct ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4880](https://github.com/openlayers/ol3/pull/4880) - Update closure-util to version 1.11.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4905](https://github.com/openlayers/ol3/pull/4905) - Remove use of goog.style.setPosition ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4879](https://github.com/openlayers/ol3/pull/4879) - Update metalsmith-layouts to version 1.6.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4901](https://github.com/openlayers/ol3/pull/4901) - Release v3.14.0 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4899](https://github.com/openlayers/ol3/pull/4899) - Use ol.format.GMLBase#srsName instead of undeclared srsName_ ([@fredj](https://github.com/fredj))
|
||||||
9
changelog/v3.15.1.md
Normal file
9
changelog/v3.15.1.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# v3.15.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.15.1 release is a patch release that addresses a regression in the v3.15.0 release. See the [v3.15.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.15.0) for details on upgrading from v3.14.x.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#5190](https://github.com/openlayers/ol3/pull/5190) - Revert "Batch polygon fill and stroke instructions" ([@ahocevar](https://github.com/ahocevar))
|
||||||
148
changelog/v3.16.0.md
Normal file
148
changelog/v3.16.0.md
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
# v3.16.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.16.0 release includes features and fixes from 95 pull requests since the v3.15.1 release. New features and improvements include:
|
||||||
|
|
||||||
|
* Add `ol.source.ImageArcGISRest` for ArcGIS REST image layer support (#3880)
|
||||||
|
* New `finishCondition` option for `ol.interaction.Draw` to control which action should finish a geometry when drawing (#5261)
|
||||||
|
* New filter API for `ol.format.WFS#writeGetFeature` for WFS queries with OGC filters (#5252)
|
||||||
|
* New `renderMode` option for `ol.layer.VectorTile` to balance between rendering performance and rendering quality (#5177)
|
||||||
|
* More flexibility for configuring attribution logos by allowing HTML elements (#5274)
|
||||||
|
* UTFGrid updates, now supporting Mapbox API v4 (#5329)
|
||||||
|
* New `condition` option for `ol.interaction.Modify` for better reliability when combining with other interactions (#5320)
|
||||||
|
|
||||||
|
In addition to these new features, the code base has been simplified and refactored in the process of removing the dependency on Closure Library and Compiler.
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### Rendering change for tile sources
|
||||||
|
|
||||||
|
Previously, if you called `source.setUrl()` on a tile source, all currently rendered tiles would be cleared before new tiles were loaded and rendered. This clearing of the map is undesirable if you are trying to smoothly update the tiles used by a source. This behavior has now changed, and calling `source.setUrl()` (or `source.setUrls()`) will *not* clear currently rendered tiles before loading and rendering new tiles. Instead, previously rendered tiles remain rendered until new tiles have loaded and can replace them. If you want to achieve the old behavior (render a blank map before loading new tiles), you can call `source.refresh()` or you can replace the old source with a new one (using `layer.setSource()`).
|
||||||
|
|
||||||
|
#### Move of typedefs out of code and into separate file
|
||||||
|
|
||||||
|
This change should not affect the great majority of application developers, but it's possible there are edge cases when compiling application code together with the library which cause compiler errors or warnings. In this case, please raise a GitHub issue. `goog.require`s for typedefs should not be necessary.
|
||||||
|
Users compiling their code with the library should note that the following API `@typedef`s have been renamed; your code may need changing if you use these:
|
||||||
|
* `ol.format.WFS.FeatureCollectionMetadata` to `ol.WFSFeatureCollectionMetadata`
|
||||||
|
* `ol.format.WFS.TransactionResponse` to `ol.WFSTransactionResponse`
|
||||||
|
|
||||||
|
#### Removal of `opaque` option for `ol.source.VectorTile`
|
||||||
|
|
||||||
|
This option is no longer needed, so it was removed from the API.
|
||||||
|
|
||||||
|
#### XHR loading for `ol.source.TileUTFGrid`
|
||||||
|
|
||||||
|
The `ol.source.TileUTFGrid` now uses XMLHttpRequest to load UTFGrid tiles by default. This works out of the box with the v4 Mapbox API. To work with the v3 API, you must use the new `jsonp` option on the source. See the examples below for detail.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// To work with the v4 API
|
||||||
|
var v4source = new ol.source.TileUTFGrid({
|
||||||
|
url: 'https://api.tiles.mapbox.com/v4/example.json?access_token=' + YOUR_KEY_HERE
|
||||||
|
});
|
||||||
|
|
||||||
|
// To work with the v3 API
|
||||||
|
var v3source = new ol.source.TileUTFGrid({
|
||||||
|
jsonp: true, // <--- this is required for v3
|
||||||
|
url: 'http://api.tiles.mapbox.com/v3/example.json'
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#5377](https://github.com/openlayers/ol3/pull/5377) - Fix link to jspdf.min.js in export-pdf example ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5372](https://github.com/openlayers/ol3/pull/5372) - Update jquery to version 2.2.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5364](https://github.com/openlayers/ol3/pull/5364) - Make it so things don't flash so much when you change the tile source URL. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5368](https://github.com/openlayers/ol3/pull/5368) - Move WFS typedefs to typedefs.js ([@probins](https://github.com/probins))
|
||||||
|
* [#5369](https://github.com/openlayers/ol3/pull/5369) - format/igc: Remove duplicate regex exec() call ([@Turbo87](https://github.com/Turbo87))
|
||||||
|
* [#5363](https://github.com/openlayers/ol3/pull/5363) - Convert all typedefs to CamelCase ([@probins](https://github.com/probins))
|
||||||
|
* [#5362](https://github.com/openlayers/ol3/pull/5362) - Update vector-tile to version 1.2.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5352](https://github.com/openlayers/ol3/pull/5352) - Add getResolutions() to ol.View ([@marlowp](https://github.com/marlowp))
|
||||||
|
* [#5359](https://github.com/openlayers/ol3/pull/5359) - Move upgrade notes to correct place ([@probins](https://github.com/probins))
|
||||||
|
* [#5343](https://github.com/openlayers/ol3/pull/5343) - Rename non-api sub-namespace typedefs ([@probins](https://github.com/probins))
|
||||||
|
* [#5361](https://github.com/openlayers/ol3/pull/5361) - Fix url to maki icons ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5358](https://github.com/openlayers/ol3/pull/5358) - Handle multiple featureMember elements for different types (WFS format) ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5355](https://github.com/openlayers/ol3/pull/5355) - Fix navigation-controls example description ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5353](https://github.com/openlayers/ol3/pull/5353) - Add API definition to docs landing page ([@probins](https://github.com/probins))
|
||||||
|
* [#5356](https://github.com/openlayers/ol3/pull/5356) - Update rbush to version 1.4.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5354](https://github.com/openlayers/ol3/pull/5354) - Update eslint to version 2.10.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5347](https://github.com/openlayers/ol3/pull/5347) - Update eslint to version 2.10.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5344](https://github.com/openlayers/ol3/pull/5344) - Remove raster enum from test ([@probins](https://github.com/probins))
|
||||||
|
* [#5329](https://github.com/openlayers/ol3/pull/5329) - UTFGrid updates. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5335](https://github.com/openlayers/ol3/pull/5335) - Move typedefs to separate file ([@probins](https://github.com/probins))
|
||||||
|
* [#5332](https://github.com/openlayers/ol3/pull/5332) - Warn when viewing an outdated example, and offer a redirect to latest ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5342](https://github.com/openlayers/ol3/pull/5342) - Fix incorrect source links ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5339](https://github.com/openlayers/ol3/pull/5339) - Use a div instead of alert for version warning ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5320](https://github.com/openlayers/ol3/pull/5320) - Add a 'condition' option to ol.interaction.Modify ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5333](https://github.com/openlayers/ol3/pull/5333) - Improve code readability with better comments ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5330](https://github.com/openlayers/ol3/pull/5330) - Fix source links, display version and warn about outdated docs ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5324](https://github.com/openlayers/ol3/pull/5324) - Remove unneeded goog.provides/requires for typedefs ([@probins](https://github.com/probins))
|
||||||
|
* [#5328](https://github.com/openlayers/ol3/pull/5328) - Use Node 6 on Travis. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5313](https://github.com/openlayers/ol3/pull/5313) - Rastersource framestate extent ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5326](https://github.com/openlayers/ol3/pull/5326) - Fix wording in tile-load-event example ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5327](https://github.com/openlayers/ol3/pull/5327) - Update closure-util to version 1.13.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5289](https://github.com/openlayers/ol3/pull/5289) - Update fs-extra to version 0.30.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5319](https://github.com/openlayers/ol3/pull/5319) - Remove outdated fixme from framestate.js. ([@probins](https://github.com/probins))
|
||||||
|
* [#5274](https://github.com/openlayers/ol3/pull/5274) - Allow using elements in logo attribution options ([@samuellapointe](https://github.com/samuellapointe))
|
||||||
|
* [#5162](https://github.com/openlayers/ol3/pull/5162) - Improve docs/examples for loadingstrategy ([@probins](https://github.com/probins))
|
||||||
|
* [#5314](https://github.com/openlayers/ol3/pull/5314) - Update browserify to version 13.0.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5315](https://github.com/openlayers/ol3/pull/5315) - Remove unused ol.TileCoordTransformType ([@probins](https://github.com/probins))
|
||||||
|
* [#5310](https://github.com/openlayers/ol3/pull/5310) - Get raster sources working again. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5291](https://github.com/openlayers/ol3/pull/5291) - Allow once listeners to dispatch events of same type ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5309](https://github.com/openlayers/ol3/pull/5309) - Update metalsmith-layouts to version 1.6.5 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5052](https://github.com/openlayers/ol3/pull/5052) - Update fs-extra to version 0.26.7 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5306](https://github.com/openlayers/ol3/pull/5306) - Make olx.view.FitOptions.padding optional ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#5302](https://github.com/openlayers/ol3/pull/5302) - Remove use of goog.partial ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5304](https://github.com/openlayers/ol3/pull/5304) - Update sinon to version 1.17.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4644](https://github.com/openlayers/ol3/pull/4644) - Remove check-requires script ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5298](https://github.com/openlayers/ol3/pull/5298) - Update eslint to version 2.9.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5296](https://github.com/openlayers/ol3/pull/5296) - Document handling of KML MultiGeometries ([@probins](https://github.com/probins))
|
||||||
|
* [#5293](https://github.com/openlayers/ol3/pull/5293) - Block removePoint while dragging ([@giohappy](https://github.com/giohappy))
|
||||||
|
* [#5285](https://github.com/openlayers/ol3/pull/5285) - Add more tests for the scaleline control ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#5287](https://github.com/openlayers/ol3/pull/5287) - Add and fix vectortile tests ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5288](https://github.com/openlayers/ol3/pull/5288) - Expose removeVertex_ as removePoint ([@giohappy](https://github.com/giohappy))
|
||||||
|
* [#5286](https://github.com/openlayers/ol3/pull/5286) - Skip unnecessary render functions ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5177](https://github.com/openlayers/ol3/pull/5177) - Add render options for vector tile layers ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5278](https://github.com/openlayers/ol3/pull/5278) - Fix invalid generics type instantiation ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5044](https://github.com/openlayers/ol3/pull/5044) - Snap interaction now handle feature without geometry properly ([@fblackburn](https://github.com/fblackburn))
|
||||||
|
* [#5277](https://github.com/openlayers/ol3/pull/5277) - Type cleanup ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5275](https://github.com/openlayers/ol3/pull/5275) - Fix feature-layer association on replaced selections ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5252](https://github.com/openlayers/ol3/pull/5252) - Add filter option to ol.format.WFS#writeGetFeature ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5264](https://github.com/openlayers/ol3/pull/5264) - Fix for close draw polygon error ([@matjos](https://github.com/matjos))
|
||||||
|
* [#5267](https://github.com/openlayers/ol3/pull/5267) - Use ol.functions instead of goog.functions ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5266](https://github.com/openlayers/ol3/pull/5266) - Document ol.colorlike ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5261](https://github.com/openlayers/ol3/pull/5261) - add finishCondition to ol.interaction.Draw ([@giohappy](https://github.com/giohappy))
|
||||||
|
* [#5259](https://github.com/openlayers/ol3/pull/5259) - Include squash commit merges in changelog ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5257](https://github.com/openlayers/ol3/pull/5257) - Add readFeatures and readProjection as MVT experimental API ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#3880](https://github.com/openlayers/ol3/pull/3880) - Add ol.source.ImageArcGISRest ([Anna Lambrechtsen](https://github.com/search?q=Anna Lambrechtsen&type=Users))
|
||||||
|
* [#5239](https://github.com/openlayers/ol3/pull/5239) - Update eslint to version 2.8.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5230](https://github.com/openlayers/ol3/pull/5230) - Reuse frame state arrays ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5213](https://github.com/openlayers/ol3/pull/5213) - Remove unused ol.source.Source#setProjection function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5223](https://github.com/openlayers/ol3/pull/5223) - Create tmpSize_ before calling calculateTileRanges_ ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5225](https://github.com/openlayers/ol3/pull/5225) - Remove unused ol.extent.transform2D function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5212](https://github.com/openlayers/ol3/pull/5212) - KML: fix GeometryCollection write ([@probins](https://github.com/probins))
|
||||||
|
* [#5228](https://github.com/openlayers/ol3/pull/5228) - Add 'layers' option to Translate interaction ([@adube](https://github.com/adube))
|
||||||
|
* [#5221](https://github.com/openlayers/ol3/pull/5221) - Update jquery, bootstrap and proj4js in examples ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5227](https://github.com/openlayers/ol3/pull/5227) - Add a temporary ol.TileCoord in ol.renderer.canvas.TileLayer ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5222](https://github.com/openlayers/ol3/pull/5222) - Remove unused private variables in ol.renderer.canvas.Map ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5220](https://github.com/openlayers/ol3/pull/5220) - Externs cleanup ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5224](https://github.com/openlayers/ol3/pull/5224) - Fix jsdoc tags indentation ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5218](https://github.com/openlayers/ol3/pull/5218) - Add @api annotation to setConfig. ([@aisaacs](https://github.com/aisaacs))
|
||||||
|
* [#5215](https://github.com/openlayers/ol3/pull/5215) - Add an optional feature filter to getClosestFeatureToCoordinate ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5132](https://github.com/openlayers/ol3/pull/5132) - Remove goog.string ([@nicholas-l](https://github.com/nicholas-l))
|
||||||
|
* [#5206](https://github.com/openlayers/ol3/pull/5206) - Minor correction of StyleFunction docs ([@probins](https://github.com/probins))
|
||||||
|
* [#4932](https://github.com/openlayers/ol3/pull/4932) - Remove undefined parameters to ol.format.WMSGetFeatureInfo#readFeatures_ ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5207](https://github.com/openlayers/ol3/pull/5207) - Update clean-css to version 3.4.12 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5201](https://github.com/openlayers/ol3/pull/5201) - Small clarification for vector source loader docs ([@probins](https://github.com/probins))
|
||||||
|
* [#5200](https://github.com/openlayers/ol3/pull/5200) - Fix typo in rotate control for css classList ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#5178](https://github.com/openlayers/ol3/pull/5178) - Remove goog.global ([Nicholas Latham](https://github.com/search?q=Nicholas Latham&type=Users))
|
||||||
|
* [#5189](https://github.com/openlayers/ol3/pull/5189) - Add rendering tests to ensure correct circle and polygon rendering ([Andreas Hocevar](https://github.com/search?q=Andreas Hocevar&type=Users))
|
||||||
|
* [#5183](https://github.com/openlayers/ol3/pull/5183) - Update istanbul to version 0.4.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5187](https://github.com/openlayers/ol3/pull/5187) - Remove goog.functions.and from ol.interaction.Modify ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5176](https://github.com/openlayers/ol3/pull/5176) - Update jquery to version 2.2.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5173](https://github.com/openlayers/ol3/pull/5173) - Use ol.dom.createCanvasContext2D ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5171](https://github.com/openlayers/ol3/pull/5171) - Move olx.source.AttributionOption out of externs/olx.js ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5170](https://github.com/openlayers/ol3/pull/5170) - Update eslint to version 2.7.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5167](https://github.com/openlayers/ol3/pull/5167) - Remove FastClick from mobile-full-screen example ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5166](https://github.com/openlayers/ol3/pull/5166) - Remove jquery dependency from measure example ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5164](https://github.com/openlayers/ol3/pull/5164) - Cartodb cleanup ([@fredj](https://github.com/fredj))
|
||||||
107
changelog/v3.17.0.md
Normal file
107
changelog/v3.17.0.md
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
# v3.17.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.17.0 release includes features and fixes from 60 pull requests since the v3.16.0 release. Most of the changes are bug fixes and continuing removal of the dependency on Closure Library.
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### `ol.source.MapQuest` removal
|
||||||
|
|
||||||
|
Because of changes at MapQuest (see: https://lists.openstreetmap.org/pipermail/talk/2016-June/076106.html) we had to remove the MapQuest source for now (see https://github.com/openlayers/ol3/issues/5484 for details).
|
||||||
|
|
||||||
|
#### `ol.interaction.ModifyEvent` changes
|
||||||
|
|
||||||
|
The event object previously had a `mapBrowserPointerEvent` property, which has been renamed to `mapBrowserEvent`.
|
||||||
|
|
||||||
|
#### Removal of ol.raster namespace
|
||||||
|
|
||||||
|
Users compiling their code with the library and using types in the `ol.raster` namespace should note that this has now been removed. `ol.raster.Pixel` has been deleted, and the other types have been renamed as follows, and your code may need changing if you use these:
|
||||||
|
* `ol.raster.Operation` to `ol.RasterOperation`
|
||||||
|
* `ol.raster.OperationType` to `ol.RasterOperationType`
|
||||||
|
|
||||||
|
#### All typedefs now in ol namespace
|
||||||
|
|
||||||
|
Users compiling their code with the library should note that the following typedefs have been renamed; your code may need changing if you use these:
|
||||||
|
* ol.events.ConditionType to ol.EventsConditionType
|
||||||
|
* ol.events.EventTargetLike to ol.EventTargetLike
|
||||||
|
* ol.events.Key to ol.EventsKey
|
||||||
|
* ol.events.ListenerFunctionType to ol.EventsListenerFunctionType
|
||||||
|
* ol.interaction.DragBoxEndConditionType to ol.DragBoxEndConditionType
|
||||||
|
* ol.interaction.DrawGeometryFunctionType to ol.DrawGeometryFunctionType
|
||||||
|
* ol.interaction.SegmentDataType to ol.ModifySegmentDataType
|
||||||
|
* ol.interaction.SelectFilterFunction to ol.SelectFilterFunction
|
||||||
|
* ol.interaction.SnapResultType to ol.SnapResultType
|
||||||
|
* ol.interaction.SnapSegmentDataType to ol.SnapSegmentDataType
|
||||||
|
* ol.proj.ProjectionLike to ol.ProjectionLike
|
||||||
|
* ol.style.AtlasBlock to ol.AtlasBlock
|
||||||
|
* ol.style.AtlasInfo to ol.AtlasInfo
|
||||||
|
* ol.style.AtlasManagerInfo to ol.AtlasManagerInfo
|
||||||
|
* ol.style.CircleRenderOptions to ol.CircleRenderOptions
|
||||||
|
* ol.style.ImageOptions to ol.StyleImageOptions
|
||||||
|
* ol.style.GeometryFunction to ol.StyleGeometryFunction
|
||||||
|
* ol.style.RegularShapeRenderOptions to ol.RegularShapeRenderOptions
|
||||||
|
* ol.style.StyleFunction to ol.StyleFunction
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#5539](https://github.com/openlayers/ol3/pull/5539) - Remove outdated comments re goog.dom ([@probins](https://github.com/probins))
|
||||||
|
* [#5543](https://github.com/openlayers/ol3/pull/5543) - Update rbush to 2.0.1 ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5540](https://github.com/openlayers/ol3/pull/5540) - Remove MapQuest source ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#5538](https://github.com/openlayers/ol3/pull/5538) - Replace remaining goog.inherits ([@probins](https://github.com/probins))
|
||||||
|
* [#5536](https://github.com/openlayers/ol3/pull/5536) - Update to layer-extent example ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5482](https://github.com/openlayers/ol3/pull/5482) - Fix for regression in tile layer extent ([@ischneider](https://github.com/ischneider))
|
||||||
|
* [#5475](https://github.com/openlayers/ol3/pull/5475) - Remove goog.provide from enums only used internally or in olx.js ([@probins](https://github.com/probins))
|
||||||
|
* [#5424](https://github.com/openlayers/ol3/pull/5424) - Don't dispatch select event if no feature is selected or deselected ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5522](https://github.com/openlayers/ol3/pull/5522) - Add 'condition' option to ol.interaction.DragPanOptions in olx.js ([@SamuelBerger](https://github.com/SamuelBerger))
|
||||||
|
* [#5443](https://github.com/openlayers/ol3/pull/5443) - Remove olx.source.WMTSOptions#maxZoom option ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5497](https://github.com/openlayers/ol3/pull/5497) - Update istanbul to version 0.4.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5523](https://github.com/openlayers/ol3/pull/5523) - Update closure-util to version 1.15.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5508](https://github.com/openlayers/ol3/pull/5508) - Fix problems with ol.format.WFS in compiled mode ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5512](https://github.com/openlayers/ol3/pull/5512) - Use forEachTileCoord name instead of forEachTileCoordInExtentAndZ ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5513](https://github.com/openlayers/ol3/pull/5513) - Add getters for min and max resolution of the view ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#5471](https://github.com/openlayers/ol3/pull/5471) - Fix GPX write of xsi ns ([@probins](https://github.com/probins))
|
||||||
|
* [#5134](https://github.com/openlayers/ol3/pull/5134) - Remove goog.dom ([@nicholas-l](https://github.com/nicholas-l))
|
||||||
|
* [#5511](https://github.com/openlayers/ol3/pull/5511) - Do not optimize lines away entirely ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5509](https://github.com/openlayers/ol3/pull/5509) - Make it easier to work with tile ranges in custom source implementations ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5498](https://github.com/openlayers/ol3/pull/5498) - Update eslint to version 2.13.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5495](https://github.com/openlayers/ol3/pull/5495) - Get rid of goog.isFunction ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5499](https://github.com/openlayers/ol3/pull/5499) - Update glob to version 7.0.5 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5125](https://github.com/openlayers/ol3/pull/5125) - Remove goog style ([@nicholas-l](https://github.com/nicholas-l))
|
||||||
|
* [#5494](https://github.com/openlayers/ol3/pull/5494) - Remove goog.global ([@probins](https://github.com/probins))
|
||||||
|
* [#5492](https://github.com/openlayers/ol3/pull/5492) - Update eslint to version 2.13.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5490](https://github.com/openlayers/ol3/pull/5490) - Update glob to version 7.0.4 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5460](https://github.com/openlayers/ol3/pull/5460) - Update eslint to version 2.12.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5479](https://github.com/openlayers/ol3/pull/5479) - Update slimerjs to version 0.906.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5474](https://github.com/openlayers/ol3/pull/5474) - Update clean-css to version 3.4.18 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5450](https://github.com/openlayers/ol3/pull/5450) - Remove sub-namespaces from all remaining typedefs ([@probins](https://github.com/probins))
|
||||||
|
* [#5465](https://github.com/openlayers/ol3/pull/5465) - Fix custom icon positions and rotation ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5469](https://github.com/openlayers/ol3/pull/5469) - Fix typo ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#5453](https://github.com/openlayers/ol3/pull/5453) - Reference ol.MapBrowserEvent instead of ol.MapBrowserPointerEvent ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5208](https://github.com/openlayers/ol3/pull/5208) - Stop GPX writing rtept properties ([@probins](https://github.com/probins))
|
||||||
|
* [#5452](https://github.com/openlayers/ol3/pull/5452) - Update eslint-config-openlayers to version 5.0.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5432](https://github.com/openlayers/ol3/pull/5432) - Remove use of goog.uri ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#5449](https://github.com/openlayers/ol3/pull/5449) - Make example data/ paths absolute for source view and JSFiddle ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5399](https://github.com/openlayers/ol3/pull/5399) - Remove ol.raster namespace ([@probins](https://github.com/probins))
|
||||||
|
* [#5270](https://github.com/openlayers/ol3/pull/5270) - Load erroneous image in ol.Image#load and ol.ImageTile#load ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5194](https://github.com/openlayers/ol3/pull/5194) - Get rid of goog.inherits and goog.base ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5427](https://github.com/openlayers/ol3/pull/5427) - Document typedefs and enums used by API symbols ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5438](https://github.com/openlayers/ol3/pull/5438) - Don't make ol.format.ogc.filter.Filter inherit from ol.Object ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5433](https://github.com/openlayers/ol3/pull/5433) - Update clean-css to version 3.4.17 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5434](https://github.com/openlayers/ol3/pull/5434) - Fix externs in closure compiler tutorial ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5426](https://github.com/openlayers/ol3/pull/5426) - Fix icon example to anchor popup to feature location ([@frankrowe](https://github.com/frankrowe))
|
||||||
|
* [#5421](https://github.com/openlayers/ol3/pull/5421) - Correct typo in config/jsdoc/api/readme.md ([@probins](https://github.com/probins))
|
||||||
|
* [#5417](https://github.com/openlayers/ol3/pull/5417) - Update clean-css to version 3.4.16 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5413](https://github.com/openlayers/ol3/pull/5413) - Update clean-css to version 3.4.15 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5410](https://github.com/openlayers/ol3/pull/5410) - Update eslint to version 2.11.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5408](https://github.com/openlayers/ol3/pull/5408) - Update pbf to version 2.0.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5404](https://github.com/openlayers/ol3/pull/5404) - Update eslint to version 2.11.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5402](https://github.com/openlayers/ol3/pull/5402) - Pass in srsName option to writeTransaction ([@anzhihun](https://github.com/anzhihun))
|
||||||
|
* [#5393](https://github.com/openlayers/ol3/pull/5393) - Update mocha to version 2.5.3 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5394](https://github.com/openlayers/ol3/pull/5394) - Update resemblejs to version 2.2.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5390](https://github.com/openlayers/ol3/pull/5390) - Fix the requestEncoding automatic selection ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5392](https://github.com/openlayers/ol3/pull/5392) - Update closure-util to version 1.14.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5388](https://github.com/openlayers/ol3/pull/5388) - Update mocha to version 2.5.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5382](https://github.com/openlayers/ol3/pull/5382) - Handle UTC midnight wrap around, fixes #5371 ([@twpayne](https://github.com/twpayne))
|
||||||
|
* [#5381](https://github.com/openlayers/ol3/pull/5381) - Update mocha to version 2.5.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5383](https://github.com/openlayers/ol3/pull/5383) - Update clean-css to version 3.4.13 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
9
changelog/v3.17.1.md
Normal file
9
changelog/v3.17.1.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# v3.17.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.17.1 release is a patch release that addresses a regression in the v3.17.0 release. See the [v3.17.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.17.0) for details on upgrading from v3.16.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#5548](https://github.com/openlayers/ol3/pull/5548) - Fix CHANGETYPE in ol.control.FullScreen ([@GaborFarkas](https://github.com/GaborFarkas))
|
||||||
152
changelog/v3.7.0.md
Normal file
152
changelog/v3.7.0.md
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
# v3.7.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.7.0 release includes features and fixes from 43 pull requests since v3.6.0. To simplify the code base, there were some changes to "experimental" features. Please follow the upgrade notes to make your applications work with the latest release.
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### Removal of `ol.FeatureOverlay`
|
||||||
|
|
||||||
|
Instead of an `ol.FeatureOverlay`, we now use an `ol.layer.Vector` with an
|
||||||
|
`ol.source.Vector`. If you previously had:
|
||||||
|
```js
|
||||||
|
var featureOverlay = new ol.FeatureOverlay({
|
||||||
|
map: map,
|
||||||
|
style: overlayStyle
|
||||||
|
});
|
||||||
|
featureOverlay.addFeature(feature);
|
||||||
|
featureOverlay.removeFeature(feature);
|
||||||
|
var collection = featureOverlay.getFeatures();
|
||||||
|
```
|
||||||
|
you will have to change this to:
|
||||||
|
```js
|
||||||
|
var collection = new ol.Collection();
|
||||||
|
var featureOverlay = new ol.layer.Vector({
|
||||||
|
map: map,
|
||||||
|
source: new ol.source.Vector({
|
||||||
|
features: collection,
|
||||||
|
useSpatialIndex: false // optional, might improve performance
|
||||||
|
}),
|
||||||
|
style: overlayStyle,
|
||||||
|
updateWhileAnimating: true, // optional, for instant visual feedback
|
||||||
|
updateWhileInteracting: true // optional, for instant visual feedback
|
||||||
|
});
|
||||||
|
featureOverlay.getSource().addFeature(feature);
|
||||||
|
featureOverlay.getSource().removeFeature(feature);
|
||||||
|
```
|
||||||
|
|
||||||
|
With the removal of `ol.FeatureOverlay`, `zIndex` symbolizer properties of overlays are no longer stacked per map, but per layer/overlay. If you previously had multiple feature overlays where you controlled the rendering order of features by using `zIndex` symbolizer properties, you can now achieve the same rendering order only if all overlay features are on the same layer.
|
||||||
|
|
||||||
|
Note that `ol.FeatureOverlay#getFeatures()` returned an `{ol.Collection.<ol.Feature>}`, whereas `ol.source.Vector#getFeatures()` returns an `{Array.<ol.Feature>}`.
|
||||||
|
|
||||||
|
#### `ol.TileCoord` changes
|
||||||
|
|
||||||
|
Until now, the API exposed two different types of `ol.TileCoord` tile coordinates: internal ones that increase left to right and upward, and transformed ones that may increase downward, as defined by a transform function on the tile grid. With this change, the API now only exposes tile coordinates that increase left to right and upward.
|
||||||
|
|
||||||
|
Previously, tile grids created by OpenLayers either had their origin at the top-left or at the bottom-left corner of the extent. To make it easier for application developers to transform tile coordinates to the common XYZ tiling scheme, all tile grids that OpenLayers creates internally have their origin now at the top-left corner of the extent.
|
||||||
|
|
||||||
|
This change affects applications that configure a custom `tileUrlFunction` for an `ol.source.Tile`. Previously, the `tileUrlFunction` was called with rather unpredictable tile coordinates, depending on whether a tile coordinate transform took place before calling the `tileUrlFunction`. Now it is always called with OpenLayers tile coordinates. To transform these into the common XYZ tiling scheme, a custom `tileUrlFunction` has to change the `y` value (tile row) of the `ol.TileCoord`:
|
||||||
|
```js
|
||||||
|
function tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
var urlTemplate = '{z}/{x}/{y}';
|
||||||
|
return urlTemplate
|
||||||
|
.replace('{z}', tileCoord[0].toString())
|
||||||
|
.replace('{x}', tileCoord[1].toString())
|
||||||
|
.replace('{y}', (-tileCoord[2] - 1).toString());
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The `ol.tilegrid.TileGrid#createTileCoordTransform()` function which could be used to get the tile grid's tile coordinate transform function has been removed. This function was confusing and should no longer be needed now that application developers get tile coordinates in a known layout.
|
||||||
|
|
||||||
|
The code snippets below show how your application code needs to be changed:
|
||||||
|
|
||||||
|
Old application code (with `ol.tilegrid.TileGrid#createTileCoordTransform()`):
|
||||||
|
```js
|
||||||
|
var transform = source.getTileGrid().createTileCoordTransform();
|
||||||
|
var tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
tileCoord = transform(tileCoord, projection);
|
||||||
|
return 'http://mytiles.com/' +
|
||||||
|
tileCoord[0] + '/' + tileCoord[1] + '/' + tileCoord[2] + '.png';
|
||||||
|
};
|
||||||
|
```
|
||||||
|
Old application code (with custom `y` transform):
|
||||||
|
```js
|
||||||
|
var tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
var z = tileCoord[0];
|
||||||
|
var yFromBottom = tileCoord[2];
|
||||||
|
var resolution = tileGrid.getResolution(z);
|
||||||
|
var tileHeight = ol.size.toSize(tileSize)[1];
|
||||||
|
var matrixHeight =
|
||||||
|
Math.floor(ol.extent.getHeight(extent) / tileHeight / resolution);
|
||||||
|
return 'http://mytiles.com/' +
|
||||||
|
tileCoord[0] + '/' + tileCoord[1] + '/' +
|
||||||
|
(matrixHeight - yFromBottom - 1) + '.png';
|
||||||
|
|
||||||
|
};
|
||||||
|
```
|
||||||
|
New application code (simple -y - 1 transform):
|
||||||
|
```js
|
||||||
|
var tileUrlFunction = function(tileCoord, pixelRatio, projection) {
|
||||||
|
return 'http://mytiles.com/' +
|
||||||
|
tileCoord[0] + '/' + tileCoord[1] + '/' + (-tileCoord[2] - 1) + '.png';
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Removal of `ol.tilegrid.Zoomify`
|
||||||
|
|
||||||
|
The replacement of `ol.tilegrid.Zoomify` is a plain `ol.tilegrid.TileGrid`, configured with `extent`, `origin` and `resolutions`. If the `size` passed to the `ol.source.Zoomify` source is `[width, height]`, then the extent for the tile grid will be `[0, -height, width, 0]`, and the origin will be `[0, 0]`.
|
||||||
|
|
||||||
|
#### Replace `ol.View.fitExtent()` and `ol.View.fitGeometry()` with `ol.View.fit()`
|
||||||
|
* This combines two previously distinct functions into one more flexible call which takes either a geometry or an extent.
|
||||||
|
* Rename all calls to `fitExtent` and `fitGeometry` to `fit`.
|
||||||
|
|
||||||
|
#### Change to `ol.interaction.Modify`
|
||||||
|
|
||||||
|
When single clicking a line or boundary within the `pixelTolerance`, a vertex is now created.
|
||||||
|
|
||||||
|
## New features and fixes
|
||||||
|
|
||||||
|
* [#3867](https://github.com/openlayers/ol3/pull/3867) - Do not require projection extent for x-wrapping tile sources ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3635](https://github.com/openlayers/ol3/pull/3635) - Create vertex on boundary single click ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#3806](https://github.com/openlayers/ol3/pull/3806) - Do not clip canvas for vector layers when wrapping the world ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3461](https://github.com/openlayers/ol3/pull/3461) - High level Modify interaction events ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#3865](https://github.com/openlayers/ol3/pull/3865) - ol.View#fit() ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#3864](https://github.com/openlayers/ol3/pull/3864) - Check projection.canWrapX() before wrapping tiles ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#3863](https://github.com/openlayers/ol3/pull/3863) - Handle CDATA in attribute parsing for GML format ([@nhambletCCRI](https://github.com/nhambletCCRI))
|
||||||
|
* [#3860](https://github.com/openlayers/ol3/pull/3860) - Update example layout. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3861](https://github.com/openlayers/ol3/pull/3861) - Don't force 'dom' renderer ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#3855](https://github.com/openlayers/ol3/pull/3855) - Adding an example with WMTS tiles from IGN Geoportail ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#3856](https://github.com/openlayers/ol3/pull/3856) - ol.source.TileVector(): bind success function of tileLoadFunction to source ([@plepe](https://github.com/plepe))
|
||||||
|
* [#3848](https://github.com/openlayers/ol3/pull/3848) - Check for exports before define. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3845](https://github.com/openlayers/ol3/pull/3845) - Prevent null array to be passed to an ol.Collection ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3849](https://github.com/openlayers/ol3/pull/3849) - Pad min. and sec. with leading zeros in DMS notation ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#3842](https://github.com/openlayers/ol3/pull/3842) - Adding a feature-animation example ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#3833](https://github.com/openlayers/ol3/pull/3833) - Enable use of custom XHR loader for TileVector sources ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#3834](https://github.com/openlayers/ol3/pull/3834) - ArcGIS tiled example broken in Chrome ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#3829](https://github.com/openlayers/ol3/pull/3829) - incorrect assert message ([@kzr-pzr](https://github.com/kzr-pzr))
|
||||||
|
* [#3828](https://github.com/openlayers/ol3/pull/3828) - Fix typo in upgrade notes ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3826](https://github.com/openlayers/ol3/pull/3826) - Allow custom tileGrid in ol.source.XYZ ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#3815](https://github.com/openlayers/ol3/pull/3815) - Simplify tilegrid API and internals ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3820](https://github.com/openlayers/ol3/pull/3820) - Make unmanaged vector layers behave more like ol.FeatureOverlay ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3822](https://github.com/openlayers/ol3/pull/3822) - Correct docs for updateWhileInteracting ([@probins](https://github.com/probins))
|
||||||
|
* [#3818](https://github.com/openlayers/ol3/pull/3818) - Make geometry.transform api stable again. ([@probins](https://github.com/probins))
|
||||||
|
* [#3801](https://github.com/openlayers/ol3/pull/3801) - Respect the tile grid's extent in ol.source.TileVector ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3810](https://github.com/openlayers/ol3/pull/3810) - Improve TileGrid documentation and examples ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3808](https://github.com/openlayers/ol3/pull/3808) - Correct typo in OverlayOptions ([@probins](https://github.com/probins))
|
||||||
|
* [#3766](https://github.com/openlayers/ol3/pull/3766) - Add a clickTolerance option to the Draw interaction ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#3804](https://github.com/openlayers/ol3/pull/3804) - Remove sentence that was only meant for WMTS tile grids ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3800](https://github.com/openlayers/ol3/pull/3800) - Remove further references to FeatureOverlay ([@probins](https://github.com/probins))
|
||||||
|
* [#3780](https://github.com/openlayers/ol3/pull/3780) - Only expose transformed tile coordinates to the API ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3793](https://github.com/openlayers/ol3/pull/3793) - Use 'managed' instead of 'unmanaged' in LayerState ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3792](https://github.com/openlayers/ol3/pull/3792) - Link to correct layer base class ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#3791](https://github.com/openlayers/ol3/pull/3791) - Remove docs referring to removed feature overlay ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#3790](https://github.com/openlayers/ol3/pull/3790) - Remove unnecessary quotes around object keys ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3787](https://github.com/openlayers/ol3/pull/3787) - Add 'unmanaged' to ol.layer.LayerState ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3784](https://github.com/openlayers/ol3/pull/3784) - Always write the GeoJSONFeature geometry property ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3783](https://github.com/openlayers/ol3/pull/3783) - Fix broken wmts-hidpi example ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3782](https://github.com/openlayers/ol3/pull/3782) - Fix assert documentation typo ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#3758](https://github.com/openlayers/ol3/pull/3758) - Removal of ol.FeatureOverlay ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3775](https://github.com/openlayers/ol3/pull/3775) - Add ol-touch but keep ol-viewport className. ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#3713](https://github.com/openlayers/ol3/pull/3713) - Add missing propertyNames member for olx.format.WFSWriteGetFeatureOptions ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#3763](https://github.com/openlayers/ol3/pull/3763) - Standardise draw/modify descriptions ([@probins](https://github.com/probins))
|
||||||
41
changelog/v3.8.0.md
Normal file
41
changelog/v3.8.0.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# v3.8.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.8.0 release includes features and fixes from 33 pull requests since v3.7.0. While summer vacations have slowed the pace of development a bit this month, there are some nice improvements in this release. See the complete list below for details.
|
||||||
|
|
||||||
|
## New features and fixes
|
||||||
|
|
||||||
|
* [#3957](https://github.com/openlayers/ol3/pull/3957) - Properly handle vertex deletion with multiple features. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3954](https://github.com/openlayers/ol3/pull/3954) - Remove ol.control.Control.bindMouseOutFocusOutBlur function. ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3214](https://github.com/openlayers/ol3/pull/3214) - Pixel manipulation with raster sources. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3946](https://github.com/openlayers/ol3/pull/3946) - Fix vertex deletion for Modify interaction on mobile devices. ([@Turbo87](https://github.com/Turbo87))
|
||||||
|
* [#3910](https://github.com/openlayers/ol3/pull/3910) - Do not provide an AMD environment to ol.ext modules. ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3934](https://github.com/openlayers/ol3/pull/3934) - Fix `drawstart` and `drawend` events when drawing a point ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3774](https://github.com/openlayers/ol3/pull/3774) - Measure tooltips touchdevice ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#3949](https://github.com/openlayers/ol3/pull/3949) - Remove count argument from `called` function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3950](https://github.com/openlayers/ol3/pull/3950) - Remove reference to vbarray.js ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#3947](https://github.com/openlayers/ol3/pull/3947) - Clarify documentation of Image source ratio option. ([@alvinlindstam](https://github.com/alvinlindstam))
|
||||||
|
* [#3920](https://github.com/openlayers/ol3/pull/3920) - Remove use_types_for_optimization from custom build tutorial. ([@probins](https://github.com/probins))
|
||||||
|
* [#3922](https://github.com/openlayers/ol3/pull/3922) - Document {?-?} pattern in expandUrl ([@probins](https://github.com/probins))
|
||||||
|
* [#3921](https://github.com/openlayers/ol3/pull/3921) - Cache node_modules on Travis. ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#3942](https://github.com/openlayers/ol3/pull/3942) - Fix WMTS TileMatrixSet lookup by SRS identifier ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3945](https://github.com/openlayers/ol3/pull/3945) - Simplify icon example and show popup at clicked position ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3930](https://github.com/openlayers/ol3/pull/3930) - Use goog.functions.identity instead of goog.identityFunction ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3929](https://github.com/openlayers/ol3/pull/3929) - Expand description for XYZ source ([@probins](https://github.com/probins))
|
||||||
|
* [#3933](https://github.com/openlayers/ol3/pull/3933) - Snap center to pixel to avoid floating point issues ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3932](https://github.com/openlayers/ol3/pull/3932) - SnapOptions: Fix typo in pixelTolerance JSDoc ([@Turbo87](https://github.com/Turbo87))
|
||||||
|
* [#3931](https://github.com/openlayers/ol3/pull/3931) - Remove unused htmlparser2 package ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3912](https://github.com/openlayers/ol3/pull/3912) - Fix the event type fired by goog.fx.Dragger ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3871](https://github.com/openlayers/ol3/pull/3871) - Document change events properly ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3906](https://github.com/openlayers/ol3/pull/3906) - Clear features properly when there is no spatial index ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3896](https://github.com/openlayers/ol3/pull/3896) - Fire WebGL precompose event in same sequence as other renderers ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3359](https://github.com/openlayers/ol3/pull/3359) - Enable deep clone of MultiPolygon. ([@Kenny806](https://github.com/Kenny806))
|
||||||
|
* [#3895](https://github.com/openlayers/ol3/pull/3895) - Rework the tile queue for multiple queues. ([@aisaacs](https://github.com/aisaacs))
|
||||||
|
* [#3894](https://github.com/openlayers/ol3/pull/3894) - Install Python dependencies without sudo. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3824](https://github.com/openlayers/ol3/pull/3824) - Improve docs for interaction.Select. ([@probins](https://github.com/probins))
|
||||||
|
* [#3884](https://github.com/openlayers/ol3/pull/3884) - Provide a debug loader for the library. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3883](https://github.com/openlayers/ol3/pull/3883) - Ignore layer filter for unmanaged layers ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3859](https://github.com/openlayers/ol3/pull/3859) - Add in crossOrigin option ([@llambanna](https://github.com/llambanna))
|
||||||
|
* [#3873](https://github.com/openlayers/ol3/pull/3873) - Correct minor typo in modifyinteraction ([@probins](https://github.com/probins))
|
||||||
|
* [#3872](https://github.com/openlayers/ol3/pull/3872) - Correct event notations in ol.Feature ([@probins](https://github.com/probins))
|
||||||
7
changelog/v3.8.1.md
Normal file
7
changelog/v3.8.1.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# v3.8.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
This is a patch release that updates the URL for builds shown in the examples. Details below.
|
||||||
|
|
||||||
|
* [#3970](https://github.com/openlayers/ol3/pull/3970) - Pull builds from openlayers.org. ([@tschaub](https://github.com/tschaub))
|
||||||
7
changelog/v3.8.2.md
Normal file
7
changelog/v3.8.2.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# v3.8.2
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
This is a patch release that corrects the URL for builds shown in the examples. Details below.
|
||||||
|
|
||||||
|
* [#3979](https://github.com/openlayers/ol3/pull/3979) - Fix URLs for openlayers.org resources. ([@tschaub](https://github.com/tschaub))
|
||||||
91
changelog/v3.9.0.md
Normal file
91
changelog/v3.9.0.md
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# v3.9.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.9.0 release includes features and fixes from 62 pull requests since the v3.8.2 release. New features include:
|
||||||
|
|
||||||
|
* [#3986](https://github.com/openlayers/ol3/pull/3986) - Modify 'url' option of ol.source.Vector to accept a function ([@alvinlindstam](https://github.com/alvinlindstam))
|
||||||
|
* [#4069](https://github.com/openlayers/ol3/pull/4069) - Add Z-index to layers ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4044](https://github.com/openlayers/ol3/pull/4044) - Add ol.interaction.Draw#continueDrawing ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4008](https://github.com/openlayers/ol3/pull/4008) - Add a Translate interaction ([@elemoine](https://github.com/elemoine))
|
||||||
|
|
||||||
|
See the complete list below for details. And see the following notes to know how to upgrade from v3.8.x to v3.9.0.
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### `ol.style.Circle` changes
|
||||||
|
|
||||||
|
The experimental `getAnchor`, `getOrigin`, and `getSize` methods have been removed. The anchor and origin of a circle symbolizer are not modifiable, so these properties should not need to be accessed. The radius and stroke width can be used to calculate the rendered size of a circle symbolizer if needed:
|
||||||
|
|
||||||
|
```js
|
||||||
|
// calculate rendered size of a circle symbolizer
|
||||||
|
var width = 2 * circle.getRadius();
|
||||||
|
if (circle.getStroke()) {
|
||||||
|
width += circle.getStroke().getWidth() + 1;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## New features and fixes
|
||||||
|
|
||||||
|
* [#4055](https://github.com/openlayers/ol3/pull/4055) - Improve graticule perf ([@fgravin](https://github.com/fgravin))
|
||||||
|
* [#4088](https://github.com/openlayers/ol3/pull/4088) - Update jshint to v2.8.0 ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4089](https://github.com/openlayers/ol3/pull/4089) - SelectEventType in ol.interaction namespace ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#4095](https://github.com/openlayers/ol3/pull/4095) - Zoom to the extent of the drag box. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4084](https://github.com/openlayers/ol3/pull/4084) - Fewer circle exports. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4094](https://github.com/openlayers/ol3/pull/4094) - Allow source.setAttributions() to be exported. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4096](https://github.com/openlayers/ol3/pull/4096) - Reinstate inheritdoc to fix #4082 ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#4091](https://github.com/openlayers/ol3/pull/4091) - Remove unused ol.renderer.webgl.Map.DEFAULT_COLOR_VALUES_ ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4092](https://github.com/openlayers/ol3/pull/4092) - Minor coding style fixes ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4083](https://github.com/openlayers/ol3/pull/4083) - Add API descriptions. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4078](https://github.com/openlayers/ol3/pull/4078) - Enable all the compiler checks ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4085](https://github.com/openlayers/ol3/pull/4085) - Parse nested document tag ([@oterral](https://github.com/oterral))
|
||||||
|
* [#4060](https://github.com/openlayers/ol3/pull/4060) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4064](https://github.com/openlayers/ol3/pull/4064) - Use a private variable to cache the default style array ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4081](https://github.com/openlayers/ol3/pull/4081) - Update link to workshop. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4062](https://github.com/openlayers/ol3/pull/4062) - Remove ol.xml.makeParsersNS and use ol.xml.makeStructureNS instead ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3986](https://github.com/openlayers/ol3/pull/3986) - Modify 'url' option of ol.source.Vector to accept a function ([@alvinlindstam](https://github.com/alvinlindstam))
|
||||||
|
* [#4077](https://github.com/openlayers/ol3/pull/4077) - Add missing const jsdoc annotation ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4080](https://github.com/openlayers/ol3/pull/4080) - Remove unused goog.require in examples ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4041](https://github.com/openlayers/ol3/pull/4041) - Fix custom build issue ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4059](https://github.com/openlayers/ol3/pull/4059) - Clarify drag interaction example to inform about ol.interaction.Translate ([@alvinlindstam](https://github.com/alvinlindstam))
|
||||||
|
* [#4069](https://github.com/openlayers/ol3/pull/4069) - Add Z-index to layers ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4076](https://github.com/openlayers/ol3/pull/4076) - Add assertion for required option 'code' on ol.proj.Projection ([@weskamm](https://github.com/weskamm))
|
||||||
|
* [#4075](https://github.com/openlayers/ol3/pull/4075) - setOpacity of Image undefined ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#4044](https://github.com/openlayers/ol3/pull/4044) - Add ol.interaction.Draw#continueDrawing ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4073](https://github.com/openlayers/ol3/pull/4073) - Better type definition ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4072](https://github.com/openlayers/ol3/pull/4072) - Update to closure-util 1.7.0 ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4070](https://github.com/openlayers/ol3/pull/4070) - Make the debug server work regardless of the current working directory. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4067](https://github.com/openlayers/ol3/pull/4067) - Fix bootstrap class name in examples ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4050](https://github.com/openlayers/ol3/pull/4050) - Use view.getRotation and view.getResolution instead of view.getState ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4051](https://github.com/openlayers/ol3/pull/4051) - Move wrench node package to devDependencies ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4047](https://github.com/openlayers/ol3/pull/4047) - Remove pystache dependency ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4027](https://github.com/openlayers/ol3/pull/4027) - closure-compiler v20150729 compatibility ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4040](https://github.com/openlayers/ol3/pull/4040) - Better docs for ol.ENABLE_[WEBGL|CANVAS|DOM] ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4032](https://github.com/openlayers/ol3/pull/4032) - Improve ol.Overlay extensibility ([@gberaudo](https://github.com/gberaudo))
|
||||||
|
* [#4037](https://github.com/openlayers/ol3/pull/4037) - Don't install python packages in before_install ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4028](https://github.com/openlayers/ol3/pull/4028) - Update to closure-util 1.6 ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4014](https://github.com/openlayers/ol3/pull/4014) - Remove deprecated checkStructDictInheritance ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3987](https://github.com/openlayers/ol3/pull/3987) - Remove unnecessary cast ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4035](https://github.com/openlayers/ol3/pull/4035) - Remove unused sphere and ellipsoid methods. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#4031](https://github.com/openlayers/ol3/pull/4031) - Fixing size of popup ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#4023](https://github.com/openlayers/ol3/pull/4023) - Render map when layer.setMap(map) called ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4026](https://github.com/openlayers/ol3/pull/4026) - Fix Font Awesome CSS class in examples ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4024](https://github.com/openlayers/ol3/pull/4024) - Correct documentation for ol.FeatureStyleFunction ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4011](https://github.com/openlayers/ol3/pull/4011) - Make Modify interaction listen to feature changes ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#3917](https://github.com/openlayers/ol3/pull/3917) - Resolved issue with cluster source reloading ([@cmiles74](https://github.com/cmiles74))
|
||||||
|
* [#4015](https://github.com/openlayers/ol3/pull/4015) - Add a getUrls Method to ol.source.XYZ ([@weskamm](https://github.com/weskamm))
|
||||||
|
* [#4019](https://github.com/openlayers/ol3/pull/4019) - Simplify .editorconfig file ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4002](https://github.com/openlayers/ol3/pull/4002) - Update closure-library to latest commit ([@fredj](https://github.com/fredj))
|
||||||
|
* [#4018](https://github.com/openlayers/ol3/pull/4018) - Fix rotate buttons in animation example ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4013](https://github.com/openlayers/ol3/pull/4013) - Use a more recent version of marked ([@marcjansen](https://github.com/marcjansen))
|
||||||
|
* [#4017](https://github.com/openlayers/ol3/pull/4017) - Do not overwrite projections in the registry simply by using `new ol.proj.Projection()` ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4008](https://github.com/openlayers/ol3/pull/4008) - Add a Translate interaction ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#3230](https://github.com/openlayers/ol3/pull/3230) - Add stroke to default editing style for geometry collections ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#4007](https://github.com/openlayers/ol3/pull/4007) - Do not use Function.prototype.bind in examples ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#4006](https://github.com/openlayers/ol3/pull/4006) - Fix typo (vegetaion -> vegetation) ([@elemoine](https://github.com/elemoine))
|
||||||
|
* [#3993](https://github.com/openlayers/ol3/pull/3993) - Replace base symbols with overridden ones when generating info.json ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#3992](https://github.com/openlayers/ol3/pull/3992) - Fix typo in Makefile ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3989](https://github.com/openlayers/ol3/pull/3989) - Handle JSONP errors in ol.source.TileJSON ([@fredj](https://github.com/fredj))
|
||||||
|
* [#3983](https://github.com/openlayers/ol3/pull/3983) - Remove doc footer with timestamp. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3984](https://github.com/openlayers/ol3/pull/3984) - Style source control links in examples. ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#3982](https://github.com/openlayers/ol3/pull/3982) - Rebuild examples if package.json changes. ([@tschaub](https://github.com/tschaub))
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"library_url": "https://github.com/google/closure-library/archive/0011afd534469ba111786fe68300a634e08a4d80.zip"
|
|
||||||
}
|
|
||||||
@@ -12,59 +12,27 @@
|
|||||||
],
|
],
|
||||||
"externs": [
|
"externs": [
|
||||||
"externs/bingmaps.js",
|
"externs/bingmaps.js",
|
||||||
|
"externs/cartodb.js",
|
||||||
"externs/bootstrap.js",
|
"externs/bootstrap.js",
|
||||||
"externs/closure-compiler.js",
|
"externs/closure-compiler.js",
|
||||||
|
"externs/esrijson.js",
|
||||||
"externs/example.js",
|
"externs/example.js",
|
||||||
"externs/fastclick.js",
|
|
||||||
"externs/geojson.js",
|
"externs/geojson.js",
|
||||||
"externs/jquery-1.9.js",
|
"externs/jquery-1.9.js",
|
||||||
"externs/proj4js.js",
|
"externs/proj4js.js",
|
||||||
"externs/tilejson.js",
|
"externs/tilejson.js",
|
||||||
"externs/topojson.js",
|
"externs/topojson.js"
|
||||||
"externs/vbarray.js"
|
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
|
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"jscomp_error": [
|
"jscomp_error": [
|
||||||
"accessControls",
|
"*"
|
||||||
"ambiguousFunctionDecl",
|
|
||||||
"checkEventfulObjectDisposal",
|
|
||||||
"checkRegExp",
|
|
||||||
"checkStructDictInheritance",
|
|
||||||
"checkTypes",
|
|
||||||
"checkVars",
|
|
||||||
"const",
|
|
||||||
"constantProperty",
|
|
||||||
"deprecated",
|
|
||||||
"duplicateMessage",
|
|
||||||
"es3",
|
|
||||||
"es5Strict",
|
|
||||||
"externsValidation",
|
|
||||||
"fileoverviewTags",
|
|
||||||
"globalThis",
|
|
||||||
"internetExplorerChecks",
|
|
||||||
"invalidCasts",
|
|
||||||
"misplacedTypeAnnotation",
|
|
||||||
"missingGetCssName",
|
|
||||||
"missingProperties",
|
|
||||||
"missingProvide",
|
|
||||||
"missingRequire",
|
|
||||||
"missingReturn",
|
|
||||||
"newCheckTypes",
|
|
||||||
"nonStandardJsDocs",
|
|
||||||
"suspiciousCode",
|
|
||||||
"strictModuleDepCheck",
|
|
||||||
"typeInvalidation",
|
|
||||||
"undefinedNames",
|
|
||||||
"undefinedVars",
|
|
||||||
"uselessCode",
|
|
||||||
"visibility"
|
|
||||||
],
|
],
|
||||||
"jscomp_off": [
|
"jscomp_off": [
|
||||||
|
"lintChecks",
|
||||||
|
"analyzerChecks",
|
||||||
|
"missingProvide",
|
||||||
"unknownDefines"
|
"unknownDefines"
|
||||||
],
|
],
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
|
|||||||
@@ -13,10 +13,10 @@
|
|||||||
"externs": [
|
"externs": [
|
||||||
"externs/bingmaps.js",
|
"externs/bingmaps.js",
|
||||||
"externs/bootstrap.js",
|
"externs/bootstrap.js",
|
||||||
|
"externs/cartodb.js",
|
||||||
"externs/closure-compiler.js",
|
"externs/closure-compiler.js",
|
||||||
"externs/esrijson.js",
|
"externs/esrijson.js",
|
||||||
"externs/example.js",
|
"externs/example.js",
|
||||||
"externs/fastclick.js",
|
|
||||||
"externs/geojson.js",
|
"externs/geojson.js",
|
||||||
"externs/jquery-1.9.js",
|
"externs/jquery-1.9.js",
|
||||||
"externs/proj4js.js",
|
"externs/proj4js.js",
|
||||||
@@ -24,46 +24,14 @@
|
|||||||
"externs/topojson.js"
|
"externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
|
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"jscomp_error": [
|
"jscomp_error": [
|
||||||
"accessControls",
|
"*"
|
||||||
"ambiguousFunctionDecl",
|
],
|
||||||
"checkEventfulObjectDisposal",
|
"jscomp_off": [
|
||||||
"checkRegExp",
|
"lintChecks",
|
||||||
"checkStructDictInheritance",
|
"analyzerChecks"
|
||||||
"checkTypes",
|
|
||||||
"checkVars",
|
|
||||||
"const",
|
|
||||||
"constantProperty",
|
|
||||||
"deprecated",
|
|
||||||
"duplicateMessage",
|
|
||||||
"es3",
|
|
||||||
"es5Strict",
|
|
||||||
"externsValidation",
|
|
||||||
"fileoverviewTags",
|
|
||||||
"globalThis",
|
|
||||||
"internetExplorerChecks",
|
|
||||||
"invalidCasts",
|
|
||||||
"misplacedTypeAnnotation",
|
|
||||||
"missingGetCssName",
|
|
||||||
"missingProperties",
|
|
||||||
"missingProvide",
|
|
||||||
"missingRequire",
|
|
||||||
"missingReturn",
|
|
||||||
"newCheckTypes",
|
|
||||||
"nonStandardJsDocs",
|
|
||||||
"suspiciousCode",
|
|
||||||
"strictModuleDepCheck",
|
|
||||||
"typeInvalidation",
|
|
||||||
"undefinedNames",
|
|
||||||
"undefinedVars",
|
|
||||||
"unknownDefines",
|
|
||||||
"uselessCode",
|
|
||||||
"visibility"
|
|
||||||
],
|
],
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
"api", "observable"
|
"api", "observable"
|
||||||
|
|||||||
@@ -1,87 +1,119 @@
|
|||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en-US">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="UTF-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
||||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||||
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" type="text/css">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" type="text/css">
|
||||||
|
<link rel="stylesheet" href="./resources/prism/prism.css" type="text/css">
|
||||||
<link rel="stylesheet" href="../css/ol.css" type="text/css">
|
<link rel="stylesheet" href="../css/ol.css" type="text/css">
|
||||||
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
|
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
|
||||||
{{{ extraHead }}}
|
{{{ extraHead.local }}}
|
||||||
{{{ css.tag }}}
|
{{{ css.tag }}}
|
||||||
<link rel="stylesheet" href="./resources/prism/prism.css" type="text/css">
|
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,requestAnimationFrame,Element.prototype.classList"></script>
|
||||||
<script src="./resources/zeroclipboard/ZeroClipboard.min.js"></script>
|
<script src="./resources/zeroclipboard/ZeroClipboard.min.js"></script>
|
||||||
<title>{{ title }}</title>
|
<title>{{ title }}</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="navbar navbar-inverse navbar-fixed-top">
|
<header class="navbar" role="navigation">
|
||||||
<div class="navbar-inner">
|
<div class="container">
|
||||||
<div class="container" id="navbar-inner-container">
|
<div class="display-table pull-left" id="navbar-logo-container">
|
||||||
<a class="brand" href="./"><img src="./resources/logo-70x70.png"> OpenLayers 3 Examples</a>
|
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png"> OpenLayers Examples</a>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- menu items that get hidden below 768px width -->
|
||||||
|
<nav class='collapse navbar-collapse navbar-responsive-collapse'>
|
||||||
|
<ul class="nav navbar-nav pull-right">
|
||||||
|
<li><a href="../doc">Docs</a></li>
|
||||||
|
<li><a class="active" href="index.html">Examples</a></li>
|
||||||
|
<li><a href="../apidoc">API</a></li>
|
||||||
|
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</header>
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|
||||||
{{{ contents }}}
|
<div id="latest-check" class="alert alert-warning alert-dismissible" role="alert" style="display:none">
|
||||||
|
<button id="latest-dismiss" type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||||
|
This example uses OpenLayers v<span>{{ olVersion }}</span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12">
|
<div class="span12">
|
||||||
<h4 id="title">{{ title }}</h4>
|
<h4 id="title">{{ title }}</h4>
|
||||||
|
{{{ contents }}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
<p id="shortdesc">{{ shortdesc }}</p>
|
<p id="shortdesc">{{ shortdesc }}</p>
|
||||||
<div id="docs">{{ md docs }}</div>
|
<div id="docs">{{ md docs }}</div>
|
||||||
<div id="tags">{{ tags }}</div>
|
|
||||||
<div id="api-links">Related API documentation: {{{ js.apiHtml }}}</div>
|
<div id="api-links">Related API documentation: {{{ js.apiHtml }}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<hr>
|
<div id="source-controls">
|
||||||
<form method="POST" target="_blank" action="http://jsfiddle.net/api/post/jquery/1.11.0/">
|
<a id="copy-button"><i class="fa fa-clipboard"></i> Copy</a>
|
||||||
<input type="button" class="btn btn-info" id="copy-button" value="Copy example code">
|
<a id="jsfiddle-button"><i class="fa fa-jsfiddle"></i> Edit</a>
|
||||||
<input type="submit" class="btn btn-primary" id="jsfiddle-button" value="Create JSFiddle">
|
</div>
|
||||||
|
<form method="POST" id="jsfiddle-form" target="_blank" action="http://jsfiddle.net/api/post/library/pure/">
|
||||||
<textarea class="hidden" name="js">{{ js.source }}</textarea>
|
<textarea class="hidden" name="js">{{ js.source }}</textarea>
|
||||||
<textarea class="hidden" name="css">{{ css.source }}</textarea>
|
<textarea class="hidden" name="css">{{ css.source }}</textarea>
|
||||||
<textarea class="hidden" name="html">{{ contents }}</textarea>
|
<textarea class="hidden" name="html">{{ contents }}</textarea>
|
||||||
<input type="hidden" name="wrap" value="l">
|
<input type="hidden" name="wrap" value="l">
|
||||||
<input type="hidden" name="resources" value="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css,https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js,https://cdnjs.cloudflare.com/ajax/libs/ol3/{{ olVersion }}/ol.css,https://cdnjs.cloudflare.com/ajax/libs/ol3/{{ olVersion }}/ol.js">
|
<input type="hidden" name="resources" value="http://openlayers.org/en/v{{ olVersion }}/css/ol.css,http://openlayers.org/en/v{{ olVersion }}/build/ol.js{{ extraResources }}">
|
||||||
<pre><code id="example-source" class="language-markup"><!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>{{ title }}</title>
|
|
||||||
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
|
|
||||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ol3/{{ olVersion }}/ol.css" type="text/css">
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ol3/{{ olVersion }}/ol.js"></script>
|
|
||||||
{{ extraHead }}
|
|
||||||
{{#if css.source}}
|
|
||||||
<style>
|
|
||||||
{{ css.source }}
|
|
||||||
</style>
|
|
||||||
{{/if}}
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="container-fluid">
|
|
||||||
|
|
||||||
{{ contents }}
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
{{ js.source }}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html></code></pre>
|
|
||||||
</form>
|
</form>
|
||||||
|
<pre><code id="example-source" class="language-markup"><!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{{ title }}</title>
|
||||||
|
<link rel="stylesheet" href="http://openlayers.org/en/v{{ olVersion }}/css/ol.css" type="text/css">
|
||||||
|
<script src="http://openlayers.org/en/v{{ olVersion }}/build/ol.js"></script>{{#if extraHead.remote}}
|
||||||
|
{{ indent extraHead.remote spaces=4 }}{{/if}}{{#if css.source}}
|
||||||
|
<style>
|
||||||
|
{{ indent css.source spaces=6 }} </style>{{/if}}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{{ indent contents spaces=4 }} <script>
|
||||||
|
{{ indent js.source spaces=6 }} </script>
|
||||||
|
</body>
|
||||||
|
</html></code></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
|
|
||||||
<script src="http://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
|
|
||||||
<script src="./resources/common.js"></script>
|
<script src="./resources/common.js"></script>
|
||||||
<script src="./resources/prism/prism.min.js"></script>
|
<script src="./resources/prism/prism.min.js"></script>
|
||||||
{{{ js.tag }}}
|
{{{ js.tag }}}
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
<script>
|
||||||
|
var packageUrl = 'https://raw.githubusercontent.com/openlayers/openlayers.github.io/build/package.json';
|
||||||
|
fetch(packageUrl).then(function(response) {
|
||||||
|
return response.json();
|
||||||
|
}).then(function(json) {
|
||||||
|
var latestVersion = json.version;
|
||||||
|
document.getElementById('latest-version').innerHTML = latestVersion;
|
||||||
|
var url = window.location.href;
|
||||||
|
var branchSearch = url.match(/\/([^\/]*)\/examples\//);
|
||||||
|
var cookieText = 'dismissed=-' + latestVersion + '-';
|
||||||
|
var dismissed = document.cookie.indexOf(cookieText) != -1;
|
||||||
|
if (!dismissed && /^v[0-9\.]*$/.test(branchSearch[1]) && '{{ olVersion }}' != latestVersion) {
|
||||||
|
var link = url.replace(branchSearch[0], '/latest/examples/');
|
||||||
|
fetch(link, {method: 'head'}).then(function(response) {
|
||||||
|
var a = document.getElementById('latest-link');
|
||||||
|
a.href = response.status == 200 ? link : '../../latest/examples/';
|
||||||
|
});
|
||||||
|
var latestCheck = document.getElementById('latest-check');
|
||||||
|
latestCheck.style.display = '';
|
||||||
|
document.getElementById('latest-dismiss').onclick = function() {
|
||||||
|
latestCheck.style.display = 'none';
|
||||||
|
document.cookie = cookieText;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -16,6 +16,4 @@ To enable this, examples have the following, not needed in application code:
|
|||||||
|
|
||||||
* html files load `resources/common.js` and some scripts use `common.getRendererFromQueryString()` to set the map renderer; application code would not need these
|
* html files load `resources/common.js` and some scripts use `common.getRendererFromQueryString()` to set the map renderer; application code would not need these
|
||||||
|
|
||||||
* in addition, examples use Twitter Bootstrap and jQuery; this is of course not a requirement - you may use whichever presentation/helper libraries you wish
|
|
||||||
|
|
||||||
At the bottom of each example generated in the `build/examples` folder, a modified version of its source code is shown. That modified version can be run standalone and is usually used as starting point for users to extend examples into their own application.
|
At the bottom of each example generated in the `build/examples` folder, a modified version of its source code is shown. That modified version can be run standalone and is usually used as starting point for users to extend examples into their own application.
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
"plugins": [
|
"plugins": [
|
||||||
"node_modules/jsdoc/plugins/markdown",
|
"node_modules/jsdoc/plugins/markdown",
|
||||||
"config/jsdoc/api/plugins/inheritdoc",
|
"config/jsdoc/api/plugins/inheritdoc",
|
||||||
"config/jsdoc/api/plugins/interface",
|
|
||||||
"config/jsdoc/api/plugins/typedefs",
|
"config/jsdoc/api/plugins/typedefs",
|
||||||
"config/jsdoc/api/plugins/events",
|
"config/jsdoc/api/plugins/events",
|
||||||
"config/jsdoc/api/plugins/observable",
|
"config/jsdoc/api/plugins/observable",
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
<td><p>Layers are lightweight containers that get their data from [sources](ol.source.html).</p>
|
<td><p>Layers are lightweight containers that get their data from [sources](ol.source.html).</p>
|
||||||
[ol.layer.Tile](ol.layer.Tile.html)<br>
|
[ol.layer.Tile](ol.layer.Tile.html)<br>
|
||||||
[ol.layer.Image](ol.layer.Image.html)<br>
|
[ol.layer.Image](ol.layer.Image.html)<br>
|
||||||
[ol.layer.Vector](ol.layer.Vector.html)</td>
|
[ol.layer.Vector](ol.layer.Vector.html)<br>
|
||||||
|
[ol.layer.VectorTile](ol.layer.VectorTile.html)</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<th>Controls</th><th>Interactions</th><th>Sources and formats</th>
|
<th>Controls</th><th>Interactions</th><th>Sources and formats</th>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
@@ -27,6 +28,7 @@ Interactions for [vector features](ol.Feature.html)
|
|||||||
<td>[Tile sources](ol.source.Tile.html) for [ol.layer.Tile](ol.layer.Tile.html)
|
<td>[Tile sources](ol.source.Tile.html) for [ol.layer.Tile](ol.layer.Tile.html)
|
||||||
<br>[Image sources](ol.source.Image.html) for [ol.layer.Image](ol.layer.Image.html)
|
<br>[Image sources](ol.source.Image.html) for [ol.layer.Image](ol.layer.Image.html)
|
||||||
<br>[Vector sources](ol.source.Vector.html) for [ol.layer.Vector](ol.layer.Vector.html)
|
<br>[Vector sources](ol.source.Vector.html) for [ol.layer.Vector](ol.layer.Vector.html)
|
||||||
|
<br>[Vector tile sources](ol.source.VectorTile.html) for [ol.layer.VectorTile](ol.layer.VectorTile.html)
|
||||||
<br>[Formats](ol.format.Feature.html) for reading/writing vector data
|
<br>[Formats](ol.format.Feature.html) for reading/writing vector data
|
||||||
<br>[ol.format.WMSCapabilities](ol.format.WMSCapabilities.html)</td></tr>
|
<br>[ol.format.WMSCapabilities](ol.format.WMSCapabilities.html)</td></tr>
|
||||||
<tr><th>Projections</th><th>Observable objects</th><th>Other components</th></tr>
|
<tr><th>Projections</th><th>Observable objects</th><th>Other components</th></tr>
|
||||||
@@ -35,6 +37,28 @@ Interactions for [vector features](ol.Feature.html)
|
|||||||
<td><p>Changes to all [ol.Objects](ol.Object.html) can observed by calling the [object.on('propertychange')](ol.Object.html#on) method. Listeners receive an [ol.ObjectEvent](ol.ObjectEvent.html) with information on the changed property and old value.</p>
|
<td><p>Changes to all [ol.Objects](ol.Object.html) can observed by calling the [object.on('propertychange')](ol.Object.html#on) method. Listeners receive an [ol.ObjectEvent](ol.ObjectEvent.html) with information on the changed property and old value.</p>
|
||||||
<td>[ol.DeviceOrientation](ol.DeviceOrientation.html)<br>
|
<td>[ol.DeviceOrientation](ol.DeviceOrientation.html)<br>
|
||||||
[ol.Geolocation](ol.Geolocation.html)<br>
|
[ol.Geolocation](ol.Geolocation.html)<br>
|
||||||
[ol.Overlay](ol.Overlay.html)<br>
|
[ol.Overlay](ol.Overlay.html)<br></td>
|
||||||
[ol.FeatureOverlay](ol.FeatureOverlay.html)<br></td>
|
|
||||||
</tr></table>
|
</tr></table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### API change policy
|
||||||
|
|
||||||
|
The OpenLayers 3.x API consists of
|
||||||
|
* names of classes, class methods and properties
|
||||||
|
* names of static functions and constants
|
||||||
|
* order and types of function arguments
|
||||||
|
* types of function return values
|
||||||
|
|
||||||
|
API elements marked as `experimental` provide stable and functioning code, but may change.
|
||||||
|
Any changes will be documented in upgrade notes so application code can be changed appropriately
|
||||||
|
before using the new version of the library. All other API elements will remain compatible throughout the 3.x releases so that no changes to existing application code are necessary when upgrading to a later version.
|
||||||
|
|
||||||
|
*Note*: The API change policy does not cover CSS class names that are used to theme the
|
||||||
|
OpenLayers UI.
|
||||||
|
|
||||||
|
*Note for Closure Compiler users compiling their application code together with OpenLayers*:
|
||||||
|
The names of types other than those in the list above (e.g. `ol.Pixel`) are subject to change. It
|
||||||
|
is therefore recommended to either use the resolved type as listed in the API docs (e.g.
|
||||||
|
`Array.<number>` instead of `ol.Pixel`), or pay attention to the upgrade notes, which will list
|
||||||
|
the changes for those types.
|
||||||
|
|||||||
@@ -11,12 +11,13 @@ exports.defineTags = function(dictionary) {
|
|||||||
canHaveType: false,
|
canHaveType: false,
|
||||||
canHaveName: false,
|
canHaveName: false,
|
||||||
onTagged: function(doclet, tag) {
|
onTagged: function(doclet, tag) {
|
||||||
|
includeTypes(doclet);
|
||||||
var level = tag.text || "experimental";
|
var level = tag.text || "experimental";
|
||||||
if (levels.indexOf(level) >= 0) {
|
if (levels.indexOf(level) >= 0) {
|
||||||
doclet.stability = level;
|
doclet.stability = level;
|
||||||
} else {
|
} else {
|
||||||
var errorText = util.format('Invalid stability level (%s) in %s line %s', tag.text, doclet.meta.filename, doclet.meta.lineno);
|
var errorText = util.format('Invalid stability level (%s) in %s line %s', tag.text, doclet.meta.filename, doclet.meta.lineno);
|
||||||
require('jsdoc/util/error').handle( new Error(errorText) );
|
require('jsdoc/lib/jsdoc/util/error').handle( new Error(errorText) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -25,11 +26,15 @@ exports.defineTags = function(dictionary) {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Based on @stability annotations, and assuming that items with no @stability
|
* Based on @api annotations, and assuming that items with no @api annotation
|
||||||
* annotation should not be documented, this plugin removes undocumented symbols
|
* should not be documented, this plugin removes undocumented symbols
|
||||||
* from the documentation.
|
* from the documentation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var api = [];
|
||||||
|
var classes = {};
|
||||||
|
var types = {};
|
||||||
|
|
||||||
function hasApiMembers(doclet) {
|
function hasApiMembers(doclet) {
|
||||||
return doclet.longname.split('#')[0] == this.longname;
|
return doclet.longname.split('#')[0] == this.longname;
|
||||||
}
|
}
|
||||||
@@ -71,8 +76,30 @@ function includeAugments(doclet) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var api = [];
|
function extractTypes(item) {
|
||||||
var classes = {};
|
item.type.names.forEach(function(type) {
|
||||||
|
var match = type.match(/^(.*<)?([^>]*)>?$/);
|
||||||
|
if (match) {
|
||||||
|
types[match[2]] = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function includeTypes(doclet) {
|
||||||
|
if (doclet.params && doclet.kind != 'class') {
|
||||||
|
doclet.params.forEach(extractTypes);
|
||||||
|
}
|
||||||
|
if (doclet.returns) {
|
||||||
|
doclet.returns.forEach(extractTypes);
|
||||||
|
}
|
||||||
|
if (doclet.isEnum) {
|
||||||
|
types[doclet.meta.code.name] = true;
|
||||||
|
}
|
||||||
|
if (doclet.type && doclet.meta.code.type == 'MemberExpression') {
|
||||||
|
// types in olx.js
|
||||||
|
extractTypes(doclet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
exports.handlers = {
|
exports.handlers = {
|
||||||
|
|
||||||
@@ -80,6 +107,9 @@ exports.handlers = {
|
|||||||
var doclet = e.doclet;
|
var doclet = e.doclet;
|
||||||
// Keep track of api items - needed in parseComplete to determine classes
|
// Keep track of api items - needed in parseComplete to determine classes
|
||||||
// with api members.
|
// with api members.
|
||||||
|
if (doclet.meta.filename == 'olx.js' && doclet.kind == 'typedef') {
|
||||||
|
doclet.undocumented = false;
|
||||||
|
}
|
||||||
if (doclet.stability) {
|
if (doclet.stability) {
|
||||||
api.push(doclet);
|
api.push(doclet);
|
||||||
}
|
}
|
||||||
@@ -120,7 +150,7 @@ exports.handlers = {
|
|||||||
// constructor from the docs.
|
// constructor from the docs.
|
||||||
doclet._hideConstructor = true;
|
doclet._hideConstructor = true;
|
||||||
includeAugments(doclet);
|
includeAugments(doclet);
|
||||||
} else if (!doclet._hideConstructor) {
|
} else if (doclet.undocumented !== false && !doclet._hideConstructor && !(doclet.kind == 'typedef' && doclet.longname in types)) {
|
||||||
// Remove all other undocumented symbols
|
// Remove all other undocumented symbols
|
||||||
doclet.undocumented = true;
|
doclet.undocumented = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,4 +106,4 @@ exports.handlers = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
exports.defineTags = function(dictionary) {
|
|
||||||
|
|
||||||
var classTag = dictionary.lookUp('class');
|
|
||||||
dictionary.defineTag('interface', {
|
|
||||||
mustHaveValue: false,
|
|
||||||
onTagged: function(doclet, tag) {
|
|
||||||
classTag.onTagged.apply(this, arguments);
|
|
||||||
doclet.interface = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var augmentsTag = dictionary.lookUp('augments');
|
|
||||||
dictionary.defineTag('implements', {
|
|
||||||
mustHaveValue: true,
|
|
||||||
onTagged: function(doclet, tag) {
|
|
||||||
tag.value = tag.value.match(/^\{?([^\}]*)\}?$/)[1];
|
|
||||||
augmentsTag.onTagged.apply(this, arguments);
|
|
||||||
if (!doclet.implements) {
|
|
||||||
doclet.implements = [];
|
|
||||||
}
|
|
||||||
doclet.implements.push(tag.value);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
};
|
|
||||||
@@ -5,6 +5,10 @@
|
|||||||
|
|
||||||
var lastOlxTypedef = null;
|
var lastOlxTypedef = null;
|
||||||
var olxTypes = {};
|
var olxTypes = {};
|
||||||
|
// names of the olx typenames
|
||||||
|
var olxTypeNames = [];
|
||||||
|
// types that are undefined or typedefs containing undefined
|
||||||
|
var undefinedLikes = null;
|
||||||
|
|
||||||
function addSubparams(params) {
|
function addSubparams(params) {
|
||||||
for (var j = 0, jj = params.length; j < jj; ++j) {
|
for (var j = 0, jj = params.length; j < jj; ++j) {
|
||||||
@@ -23,17 +27,71 @@ function addSubparams(params) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the description of the param, if it is found to be a required
|
||||||
|
* option of an olxTypeName.
|
||||||
|
*/
|
||||||
|
function markRequiredIfNeeded(doclet){
|
||||||
|
var memberof = doclet.memberof;
|
||||||
|
// only check doclets that belong to an olxTypeName
|
||||||
|
if (!memberof || olxTypeNames.indexOf(memberof) == -1) {
|
||||||
|
return doclet;
|
||||||
|
}
|
||||||
|
|
||||||
|
var types = doclet.type.names;
|
||||||
|
var isRequiredParam = true;
|
||||||
|
|
||||||
|
// iterate over all types that are like-undefined (see above for explanation)
|
||||||
|
for (var idx = undefinedLikes.length - 1; idx >= 0; idx--) {
|
||||||
|
var undefinedLike = undefinedLikes[idx];
|
||||||
|
// … if the current types contains a type that is undefined-like,
|
||||||
|
// it is not required.
|
||||||
|
if (types.indexOf(undefinedLike) != -1) {
|
||||||
|
isRequiredParam = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isRequiredParam) {
|
||||||
|
var reqSnippet = '<span class="required-option">Required.</span></p>';
|
||||||
|
var endsWithP = /<\/p>$/i;
|
||||||
|
var description = doclet.description;
|
||||||
|
if (description && endsWithP.test(description)) {
|
||||||
|
description = description.replace(endsWithP, ' ' + reqSnippet);
|
||||||
|
} else if (doclet.description === undefined) {
|
||||||
|
description = '<p>' + reqSnippet;
|
||||||
|
}
|
||||||
|
doclet.description = description;
|
||||||
|
}
|
||||||
|
return doclet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterates over all doclets and finds the names of types that contain
|
||||||
|
* undefined. Stores the names in the global variable undefinedLikes, so
|
||||||
|
* that e.g. markRequiredIfNeeded can use these.
|
||||||
|
*/
|
||||||
|
function findTypesLikeUndefined(doclets) {
|
||||||
|
undefinedLikes = ['undefined']; // include type 'undefined' explicitly
|
||||||
|
for (var i = doclets.length - 1; i >= 0; --i) {
|
||||||
|
var doclet = doclets[i];
|
||||||
|
if(doclet.kind === 'typedef') {
|
||||||
|
var types = doclet.type.names;
|
||||||
|
if (types.indexOf('undefined') !== -1) {
|
||||||
|
// the typedef contains 'undefined', so it self is undefinedLike.
|
||||||
|
undefinedLikes.push(doclet.longname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
exports.handlers = {
|
exports.handlers = {
|
||||||
|
|
||||||
newDoclet: function(e) {
|
newDoclet: function(e) {
|
||||||
var doclet = e.doclet;
|
var doclet = e.doclet;
|
||||||
if (doclet.meta.filename == 'olx.js') {
|
if (doclet.meta.filename == 'olx.js') {
|
||||||
// do nothing if not marked @api
|
|
||||||
if (!doclet.stability) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (doclet.kind == 'typedef') {
|
if (doclet.kind == 'typedef') {
|
||||||
lastOlxTypedef = doclet;
|
lastOlxTypedef = doclet;
|
||||||
|
olxTypeNames.push(doclet.longname);
|
||||||
olxTypes[doclet.longname] = [];
|
olxTypes[doclet.longname] = [];
|
||||||
doclet.properties = [];
|
doclet.properties = [];
|
||||||
} else if (lastOlxTypedef && doclet.memberof == lastOlxTypedef.longname) {
|
} else if (lastOlxTypedef && doclet.memberof == lastOlxTypedef.longname) {
|
||||||
@@ -51,12 +109,14 @@ exports.handlers = {
|
|||||||
|
|
||||||
parseComplete: function(e) {
|
parseComplete: function(e) {
|
||||||
var doclets = e.doclets;
|
var doclets = e.doclets;
|
||||||
|
findTypesLikeUndefined(doclets);
|
||||||
for (var i = doclets.length - 1; i >= 0; --i) {
|
for (var i = doclets.length - 1; i >= 0; --i) {
|
||||||
var doclet = doclets[i];
|
var doclet = doclets[i];
|
||||||
var params = doclet.params;
|
var params = doclet.params;
|
||||||
if (params) {
|
if (params) {
|
||||||
addSubparams(params);
|
addSubparams(params);
|
||||||
}
|
}
|
||||||
|
markRequiredIfNeeded(doclet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ The second line tells the Closure compiler the type of the argument.
|
|||||||
|
|
||||||
The third line (`@api`) marks the method as part of the api and thus exportable. The stability can be added as value, e.g. `@api stable`. Without such an api annotation, the method will not be documented in the generated API documentation. Symbols without an api annotation will also not be exportable (unless they are explicitly exported with a `goog.exportProperty` call).
|
The third line (`@api`) marks the method as part of the api and thus exportable. The stability can be added as value, e.g. `@api stable`. Without such an api annotation, the method will not be documented in the generated API documentation. Symbols without an api annotation will also not be exportable (unless they are explicitly exported with a `goog.exportProperty` call).
|
||||||
|
|
||||||
The `@api` annotation can be used in conjunciton with the `@inheritDoc` annotation to export a symbol that is documented on a parent class (where the method may be abstract). In general, `@api` annotations should never be used on abstract methods (only on their implementations).
|
The `@api` annotation can be used in conjunction with the `@inheritDoc` annotation to export a symbol that is documented on a parent class (where the method may be abstract). In general, `@api` annotations should never be used on abstract methods (only on their implementations).
|
||||||
|
|
||||||
### Events
|
### Events
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
/*global env: true */
|
/*global env: true */
|
||||||
var template = require('jsdoc/template'),
|
var template = require('jsdoc/lib/jsdoc/template'),
|
||||||
fs = require('jsdoc/fs'),
|
fs = require('jsdoc/lib/jsdoc/fs'),
|
||||||
path = require('jsdoc/path'),
|
path = require('jsdoc/lib/jsdoc/path'),
|
||||||
taffy = require('taffydb').taffy,
|
taffy = require('taffydb').taffy,
|
||||||
handle = require('jsdoc/util/error').handle,
|
handle = require('jsdoc/lib/jsdoc/util/error').handle,
|
||||||
helper = require('jsdoc/util/templateHelper'),
|
helper = require('jsdoc/lib/jsdoc/util/templateHelper'),
|
||||||
_ = require('underscore'),
|
_ = require('underscore'),
|
||||||
htmlsafe = helper.htmlsafe,
|
htmlsafe = helper.htmlsafe,
|
||||||
linkto = helper.linkto,
|
linkto = helper.linkto,
|
||||||
@@ -29,9 +29,9 @@ function getAncestorLinks(doclet) {
|
|||||||
|
|
||||||
function hashToLink(doclet, hash) {
|
function hashToLink(doclet, hash) {
|
||||||
if ( !/^(#.+)/.test(hash) ) { return hash; }
|
if ( !/^(#.+)/.test(hash) ) { return hash; }
|
||||||
|
|
||||||
var url = helper.createLink(doclet);
|
var url = helper.createLink(doclet);
|
||||||
|
|
||||||
url = url.replace(/(#.+|$)/, hash);
|
url = url.replace(/(#.+|$)/, hash);
|
||||||
return '<a href="' + url + '">' + hash + '</a>';
|
return '<a href="' + url + '">' + hash + '</a>';
|
||||||
}
|
}
|
||||||
@@ -59,15 +59,15 @@ function needsSignature(doclet) {
|
|||||||
|
|
||||||
function addSignatureParams(f) {
|
function addSignatureParams(f) {
|
||||||
var params = helper.getSignatureParams(f, 'optional');
|
var params = helper.getSignatureParams(f, 'optional');
|
||||||
|
|
||||||
f.signature = (f.signature || '') + '('+params.join(', ')+')';
|
f.signature = (f.signature || '') + '('+params.join(', ')+')';
|
||||||
}
|
}
|
||||||
|
|
||||||
function addSignatureReturns(f) {
|
function addSignatureReturns(f) {
|
||||||
var returnTypes = helper.getSignatureReturns(f);
|
var returnTypes = helper.getSignatureReturns(f);
|
||||||
|
|
||||||
f.signature = '<span class="signature">'+(f.signature || '') + '</span>';
|
f.signature = '<span class="signature">'+(f.signature || '') + '</span>';
|
||||||
|
|
||||||
if (returnTypes.length) {
|
if (returnTypes.length) {
|
||||||
f.signature += '<span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">'+(returnTypes.length ? '{'+returnTypes.join('|')+'}' : '')+'</span>';
|
f.signature += '<span class="glyphicon glyphicon-circle-arrow-right"></span><span class="type-signature returnType">'+(returnTypes.length ? '{'+returnTypes.join('|')+'}' : '')+'</span>';
|
||||||
}
|
}
|
||||||
@@ -75,7 +75,7 @@ function addSignatureReturns(f) {
|
|||||||
|
|
||||||
function addSignatureTypes(f) {
|
function addSignatureTypes(f) {
|
||||||
var types = helper.getSignatureTypes(f);
|
var types = helper.getSignatureTypes(f);
|
||||||
|
|
||||||
f.signature = (f.signature || '') + '<span class="type-signature">'+(types.length? ' :'+types.join('|') : '')+' </span>';
|
f.signature = (f.signature || '') + '<span class="type-signature">'+(types.length? ' :'+types.join('|') : '')+' </span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,23 +106,24 @@ function getPathFromDoclet(doclet) {
|
|||||||
|
|
||||||
return filepath;
|
return filepath;
|
||||||
}
|
}
|
||||||
|
|
||||||
function generate(title, docs, filename, resolveLinks) {
|
function generate(title, docs, filename, resolveLinks) {
|
||||||
resolveLinks = resolveLinks === false ? false : true;
|
resolveLinks = resolveLinks === false ? false : true;
|
||||||
|
|
||||||
var docData = {
|
var docData = {
|
||||||
filename: filename,
|
filename: filename,
|
||||||
title: title,
|
title: title,
|
||||||
docs: docs
|
docs: docs,
|
||||||
|
packageInfo: ( find({kind: 'package'}) || [] ) [0]
|
||||||
};
|
};
|
||||||
|
|
||||||
var outpath = path.join(outdir, filename),
|
var outpath = path.join(outdir, filename),
|
||||||
html = view.render('container.tmpl', docData);
|
html = view.render('container.tmpl', docData);
|
||||||
|
|
||||||
if (resolveLinks) {
|
if (resolveLinks) {
|
||||||
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
||||||
}
|
}
|
||||||
|
|
||||||
fs.writeFileSync(outpath, html, 'utf8');
|
fs.writeFileSync(outpath, html, 'utf8');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +154,7 @@ function generateSourceFiles(sourceFiles) {
|
|||||||
* exports only that class or function), then attach the classes or functions to the `module`
|
* exports only that class or function), then attach the classes or functions to the `module`
|
||||||
* property of the appropriate module doclets. The name of each class or function is also updated
|
* property of the appropriate module doclets. The name of each class or function is also updated
|
||||||
* for display purposes. This function mutates the original arrays.
|
* for display purposes. This function mutates the original arrays.
|
||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {Array.<module:jsdoc/doclet.Doclet>} doclets - The array of classes and functions to
|
* @param {Array.<module:jsdoc/doclet.Doclet>} doclets - The array of classes and functions to
|
||||||
* check.
|
* check.
|
||||||
@@ -268,7 +269,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
|
|
||||||
var templatePath = opts.template;
|
var templatePath = opts.template;
|
||||||
view = new template.Template(templatePath + '/tmpl');
|
view = new template.Template(templatePath + '/tmpl');
|
||||||
|
|
||||||
// claim some special filenames in advance, so the All-Powerful Overseer of Filename Uniqueness
|
// claim some special filenames in advance, so the All-Powerful Overseer of Filename Uniqueness
|
||||||
// doesn't try to hand them out later
|
// doesn't try to hand them out later
|
||||||
var indexUrl = helper.getUniqueFilename('index');
|
var indexUrl = helper.getUniqueFilename('index');
|
||||||
@@ -291,16 +292,16 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
var sourceFilePaths = [];
|
var sourceFilePaths = [];
|
||||||
data().each(function(doclet) {
|
data().each(function(doclet) {
|
||||||
doclet.attribs = '';
|
doclet.attribs = '';
|
||||||
|
|
||||||
if (doclet.examples) {
|
if (doclet.examples) {
|
||||||
doclet.examples = doclet.examples.map(function(example) {
|
doclet.examples = doclet.examples.map(function(example) {
|
||||||
var caption, code;
|
var caption, code;
|
||||||
|
|
||||||
if (example.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) {
|
if (example.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) {
|
||||||
caption = RegExp.$1;
|
caption = RegExp.$1;
|
||||||
code = RegExp.$3;
|
code = RegExp.$3;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
caption: caption || '',
|
caption: caption || '',
|
||||||
code: code || example
|
code: code || example
|
||||||
@@ -326,12 +327,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
sourceFilePaths.push(resolvedSourcePath);
|
sourceFilePaths.push(resolvedSourcePath);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// update outdir if necessary, then create outdir
|
|
||||||
var packageInfo = ( find({kind: 'package'}) || [] ) [0];
|
|
||||||
if (packageInfo && packageInfo.name) {
|
|
||||||
outdir = path.join(outdir, packageInfo.name, packageInfo.version);
|
|
||||||
}
|
|
||||||
fs.mkPath(outdir);
|
fs.mkPath(outdir);
|
||||||
|
|
||||||
// copy the template's static files to outdir
|
// copy the template's static files to outdir
|
||||||
@@ -350,8 +346,8 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
var staticFileScanner;
|
var staticFileScanner;
|
||||||
if (conf['default'].staticFiles) {
|
if (conf['default'].staticFiles) {
|
||||||
staticFilePaths = conf['default'].staticFiles.paths || [];
|
staticFilePaths = conf['default'].staticFiles.paths || [];
|
||||||
staticFileFilter = new (require('jsdoc/src/filter')).Filter(conf['default'].staticFiles);
|
staticFileFilter = new (require('jsdoc/lib/jsdoc/src/filter')).Filter(conf['default'].staticFiles);
|
||||||
staticFileScanner = new (require('jsdoc/src/scanner')).Scanner();
|
staticFileScanner = new (require('jsdoc/lib/jsdoc/src/scanner')).Scanner();
|
||||||
|
|
||||||
staticFilePaths.forEach(function(filePath) {
|
staticFilePaths.forEach(function(filePath) {
|
||||||
var extraStaticFiles = staticFileScanner.scan([filePath], 10, staticFileFilter);
|
var extraStaticFiles = staticFileScanner.scan([filePath], 10, staticFileFilter);
|
||||||
@@ -365,7 +361,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sourceFilePaths.length) {
|
if (sourceFilePaths.length) {
|
||||||
sourceFiles = shortenPaths( sourceFiles, path.commonPrefix(sourceFilePaths) );
|
sourceFiles = shortenPaths( sourceFiles, path.commonPrefix(sourceFilePaths) );
|
||||||
}
|
}
|
||||||
@@ -383,7 +379,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
data().each(function(doclet) {
|
data().each(function(doclet) {
|
||||||
var url = helper.longnameToUrl[doclet.longname];
|
var url = helper.longnameToUrl[doclet.longname];
|
||||||
|
|
||||||
@@ -393,13 +389,13 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
else {
|
else {
|
||||||
doclet.id = doclet.name;
|
doclet.id = doclet.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( needsSignature(doclet) ) {
|
if ( needsSignature(doclet) ) {
|
||||||
addSignatureParams(doclet);
|
addSignatureParams(doclet);
|
||||||
addSignatureReturns(doclet);
|
addSignatureReturns(doclet);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// do this after the urls have all been generated
|
// do this after the urls have all been generated
|
||||||
data().each(function(doclet) {
|
data().each(function(doclet) {
|
||||||
doclet.ancestors = getAncestorLinks(doclet);
|
doclet.ancestors = getAncestorLinks(doclet);
|
||||||
@@ -407,13 +403,13 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
if (doclet.kind === 'member') {
|
if (doclet.kind === 'member') {
|
||||||
addSignatureTypes(doclet);
|
addSignatureTypes(doclet);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (doclet.kind === 'constant') {
|
if (doclet.kind === 'constant') {
|
||||||
addSignatureTypes(doclet);
|
addSignatureTypes(doclet);
|
||||||
doclet.kind = 'member';
|
doclet.kind = 'member';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var members = helper.getMembers(data);
|
var members = helper.getMembers(data);
|
||||||
members.tutorials = tutorials.children;
|
members.tutorials = tutorials.children;
|
||||||
|
|
||||||
@@ -437,15 +433,12 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (members.globals.length) { generate('Global', [{kind: 'globalobj'}], globalUrl); }
|
if (members.globals.length) { generate('Global', [{kind: 'globalobj'}], globalUrl); }
|
||||||
|
|
||||||
// index page displays information from package.json and lists files
|
// index page displays information from package.json and lists files
|
||||||
var files = find({kind: 'file'}),
|
var files = find({kind: 'file'});
|
||||||
packages = find({kind: 'package'});
|
|
||||||
|
|
||||||
generate('Index',
|
generate('Index',
|
||||||
packages.concat(
|
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}].concat(files),
|
||||||
[{kind: 'mainpage', readme: opts.readme, longname: (opts.mainpagetitle) ? opts.mainpagetitle : 'Main Page'}]
|
|
||||||
).concat(files),
|
|
||||||
indexUrl);
|
indexUrl);
|
||||||
|
|
||||||
// set up the lists that we'll use to generate pages
|
// set up the lists that we'll use to generate pages
|
||||||
@@ -454,14 +447,14 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
var namespaces = taffy(members.namespaces);
|
var namespaces = taffy(members.namespaces);
|
||||||
var mixins = taffy(members.mixins);
|
var mixins = taffy(members.mixins);
|
||||||
var externals = taffy(members.externals);
|
var externals = taffy(members.externals);
|
||||||
|
|
||||||
for (var longname in helper.longnameToUrl) {
|
for (var longname in helper.longnameToUrl) {
|
||||||
if ( hasOwnProp.call(helper.longnameToUrl, longname) ) {
|
if ( hasOwnProp.call(helper.longnameToUrl, longname) ) {
|
||||||
var myClasses = helper.find(classes, {longname: longname});
|
var myClasses = helper.find(classes, {longname: longname});
|
||||||
if (myClasses.length) {
|
if (myClasses.length) {
|
||||||
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
|
generate('Class: ' + myClasses[0].name, myClasses, helper.longnameToUrl[longname]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var myModules = helper.find(modules, {longname: longname});
|
var myModules = helper.find(modules, {longname: longname});
|
||||||
if (myModules.length) {
|
if (myModules.length) {
|
||||||
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
|
generate('Module: ' + myModules[0].name, myModules, helper.longnameToUrl[longname]);
|
||||||
@@ -471,7 +464,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
if (myNamespaces.length) {
|
if (myNamespaces.length) {
|
||||||
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
|
generate('Namespace: ' + myNamespaces[0].name, myNamespaces, helper.longnameToUrl[longname]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var myMixins = helper.find(mixins, {longname: longname});
|
var myMixins = helper.find(mixins, {longname: longname});
|
||||||
if (myMixins.length) {
|
if (myMixins.length) {
|
||||||
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
|
generate('Mixin: ' + myMixins[0].name, myMixins, helper.longnameToUrl[longname]);
|
||||||
@@ -492,16 +485,16 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
content: tutorial.parse(),
|
content: tutorial.parse(),
|
||||||
children: tutorial.children
|
children: tutorial.children
|
||||||
};
|
};
|
||||||
|
|
||||||
var tutorialPath = path.join(outdir, filename),
|
var tutorialPath = path.join(outdir, filename),
|
||||||
html = view.render('tutorial.tmpl', tutorialData);
|
html = view.render('tutorial.tmpl', tutorialData);
|
||||||
|
|
||||||
// yes, you can use {@link} in tutorials too!
|
// yes, you can use {@link} in tutorials too!
|
||||||
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
html = helper.resolveLinks(html); // turn {@link foo} into <a href="foodoc.html">foo</a>
|
||||||
|
|
||||||
fs.writeFileSync(tutorialPath, html, 'utf8');
|
fs.writeFileSync(tutorialPath, html, 'utf8');
|
||||||
}
|
}
|
||||||
|
|
||||||
// tutorials can have only one parent so there is no risk for loops
|
// tutorials can have only one parent so there is no risk for loops
|
||||||
function saveChildren(node) {
|
function saveChildren(node) {
|
||||||
node.children.forEach(function(child) {
|
node.children.forEach(function(child) {
|
||||||
|
|||||||
@@ -53,20 +53,44 @@ $(function () {
|
|||||||
$(window).on('resize', _onResize);
|
$(window).on('resize', _onResize);
|
||||||
_onResize();
|
_onResize();
|
||||||
|
|
||||||
|
var currentVersion = document.getElementById('package-version').innerHTML;
|
||||||
|
|
||||||
|
// warn about outdated version
|
||||||
|
var packageUrl = 'https://raw.githubusercontent.com/openlayers/openlayers.github.io/build/package.json';
|
||||||
|
fetch(packageUrl).then(function(response) {
|
||||||
|
return response.json();
|
||||||
|
}).then(function(json) {
|
||||||
|
var latestVersion = json.version;
|
||||||
|
document.getElementById('latest-version').innerHTML = latestVersion;
|
||||||
|
var url = window.location.href;
|
||||||
|
var branchSearch = url.match(/\/([^\/]*)\/apidoc\//);
|
||||||
|
var cookieText = 'dismissed=-' + latestVersion + '-';
|
||||||
|
var dismissed = document.cookie.indexOf(cookieText) != -1;
|
||||||
|
if (!dismissed && /^v[0-9\.]*$/.test(branchSearch[1]) && currentVersion != latestVersion) {
|
||||||
|
var link = url.replace(branchSearch[0], '/latest/apidoc/');
|
||||||
|
fetch(link, {method: 'head'}).then(function(response) {
|
||||||
|
var a = document.getElementById('latest-link');
|
||||||
|
a.href = response.status == 200 ? link : '../../latest/apidoc/';
|
||||||
|
});
|
||||||
|
var latestCheck = document.getElementById('latest-check');
|
||||||
|
latestCheck.style.display = '';
|
||||||
|
document.getElementById('latest-dismiss').onclick = function() {
|
||||||
|
latestCheck.style.display = 'none';
|
||||||
|
document.cookie = cookieText;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// create source code links to github
|
// create source code links to github
|
||||||
var srcLinks = $('div.tag-source');
|
var srcLinks = $('div.tag-source');
|
||||||
var masterSearch = window.location.href.match(/\/([^\/]*\/)apidoc\//);
|
srcLinks.each(function(i, el) {
|
||||||
if (masterSearch && masterSearch.length) {
|
var textParts = el.innerHTML.trim().split(', ');
|
||||||
var branch = masterSearch[1];
|
var link = 'https://github.com/openlayers/ol3/blob/v' + currentVersion + '/' +
|
||||||
srcLinks.each(function(i, el) {
|
textParts[0];
|
||||||
var textParts = el.innerHTML.trim().split(', ');
|
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
|
||||||
var link = 'https://github.com/openlayers/ol3/blob/' + branch +
|
'<a href="' + link + textParts[1].replace('line ', '#l') + '">' +
|
||||||
textParts[0];
|
textParts[1] + '</a>';
|
||||||
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
|
});
|
||||||
'<a href="' + link + textParts[1].replace('line ', '#l') + '">' +
|
|
||||||
textParts[1] + '</a>';
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// show/hide unstable items
|
// show/hide unstable items
|
||||||
var links = $('a[href^="ol."]');
|
var links = $('a[href^="ol."]');
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -416,3 +416,7 @@ footer {
|
|||||||
left: 250px;
|
left: 250px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
#latest-check {
|
||||||
|
margin-top: -10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
|
<?js
|
||||||
|
var version = obj.packageInfo.version;
|
||||||
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>OpenLayers 3 API Reference - <?js= title ?></title>
|
<title>OpenLayers v<?js= version ?> API - <?js= title ?></title>
|
||||||
|
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch"></script>
|
||||||
<script src="scripts/prettify/prettify.js"> </script>
|
<script src="scripts/prettify/prettify.js"> </script>
|
||||||
<script src="scripts/prettify/lang-css.js"> </script>
|
<script src="scripts/prettify/lang-css.js"> </script>
|
||||||
<script src="scripts/jquery.min.js"> </script>
|
<script src="scripts/jquery.min.js"> </script>
|
||||||
@@ -36,11 +40,11 @@
|
|||||||
<?js= this.partial('navigation.tmpl', this) ?>
|
<?js= this.partial('navigation.tmpl', this) ?>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<h1 class="page-title" data-filename="<?js= filename ?>"><?js= title ?></h1>
|
<h1 class="page-title" data-filename="<?js= filename ?>"><?js= title ?></h1>
|
||||||
|
<div id="latest-check" class="alert alert-warning alert-dismissible" role="alert" style="display:none">
|
||||||
|
<button id="latest-dismiss" type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||||
|
This documentation is for OpenLayers v<span id="package-version"><?js= version ?></span>. The <a id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
|
||||||
|
</div>
|
||||||
<?js= content ?>
|
<?js= content ?>
|
||||||
|
|
||||||
<footer>
|
|
||||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc <?js= env.version.number ?></a> on <?js= (new Date()) ?>
|
|
||||||
</footer>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script>prettyPrint();</script>
|
<script>prettyPrint();</script>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ var self = this;
|
|||||||
<?js } ?>
|
<?js } ?>
|
||||||
</dt>
|
</dt>
|
||||||
<dd class="<?js= (data.stability && data.stability !== 'stable') ? 'unstable' : '' ?>">
|
<dd class="<?js= (data.stability && data.stability !== 'stable') ? 'unstable' : '' ?>">
|
||||||
|
|
||||||
<?js if (data.description) { ?>
|
<?js if (data.description) { ?>
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<?js= data.description ?>
|
<?js= data.description ?>
|
||||||
@@ -39,20 +39,20 @@ var self = this;
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
<?js if (data['this']) { ?>
|
<?js if (data['this']) { ?>
|
||||||
<h5>This:</h5>
|
<h5>This:</h5>
|
||||||
<ul><li><?js= this.linkto(data['this'], data['this']) ?></li></ul>
|
<ul><li><?js= this.linkto(data['this'], data['this']) ?></li></ul>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
<?js if (data.stability || kind !== 'class') { ?>
|
<?js if (data.stability || kind !== 'class') { ?>
|
||||||
<?js if (data.params && params.length) { ?>
|
<?js if (data.params && params.length) { ?>
|
||||||
<?js= this.partial('params.tmpl', params) ?>
|
<?js= this.partial('params.tmpl', params) ?>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
<?js= this.partial('details.tmpl', data) ?>
|
<?js= this.partial('details.tmpl', data) ?>
|
||||||
|
|
||||||
<?js if (data.fires && fires.length) { ?>
|
<?js if (data.fires && fires.length) { ?>
|
||||||
<h5>Fires:</h5>
|
<h5>Fires:</h5>
|
||||||
<ul><?js fires.forEach(function(f) {
|
<ul><?js fires.forEach(function(f) {
|
||||||
@@ -68,7 +68,7 @@ var self = this;
|
|||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<li class="<?js= (eventDoclet || data).stability !== 'stable' ? 'unstable' : '' ?>">
|
<li class="<?js= (eventDoclet || data).stability !== 'stable' ? 'unstable' : '' ?>">
|
||||||
<code><?js= self.linkto(f, type) ?></code>
|
<code><?js= eventClassName ? self.linkto(f, type) : type ?></code>
|
||||||
<?js if (eventClassName) {
|
<?js if (eventClassName) {
|
||||||
var eventClass = self.find({longname: eventClassName})[0];
|
var eventClass = self.find({longname: eventClassName})[0];
|
||||||
if (eventClass) { ?>
|
if (eventClass) { ?>
|
||||||
@@ -96,7 +96,7 @@ var self = this;
|
|||||||
<li><?js= self.linkto(f) ?></li>
|
<li><?js= self.linkto(f) ?></li>
|
||||||
<?js }); ?></ul>
|
<?js }); ?></ul>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
<?js if (data.exceptions && exceptions.length) { ?>
|
<?js if (data.exceptions && exceptions.length) { ?>
|
||||||
<h5>Throws:</h5>
|
<h5>Throws:</h5>
|
||||||
<?js if (exceptions.length > 1) { ?><ul><?js
|
<?js if (exceptions.length > 1) { ?><ul><?js
|
||||||
@@ -108,12 +108,12 @@ var self = this;
|
|||||||
<?js= self.partial('exceptions.tmpl', r) ?>
|
<?js= self.partial('exceptions.tmpl', r) ?>
|
||||||
<?js });
|
<?js });
|
||||||
} } ?>
|
} } ?>
|
||||||
|
|
||||||
<?js if (data.returns && returns.length) { ?>
|
<?js if (data.returns && returns.length) { ?>
|
||||||
<?js if (returns.length > 1) { ?><h5>Returns:</h5><?js } ?>
|
<?js if (returns.length > 1) { ?><h5>Returns:</h5><?js } ?>
|
||||||
<?js= self.partial('returns.tmpl', data.returns) ?>
|
<?js= self.partial('returns.tmpl', data.returns) ?>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
<?js if (data.examples && examples.length) { ?>
|
<?js if (data.examples && examples.length) { ?>
|
||||||
<h5>Example<?js= examples.length > 1? 's':'' ?></h5>
|
<h5>Example<?js= examples.length > 1? 's':'' ?></h5>
|
||||||
<?js= this.partial('examples.tmpl', examples) ?>
|
<?js= this.partial('examples.tmpl', examples) ?>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ var self = this;
|
|||||||
<?js
|
<?js
|
||||||
item.typedefs.forEach(function (v) {
|
item.typedefs.forEach(function (v) {
|
||||||
?>
|
?>
|
||||||
<li data-name="<?js= v.longname ?>" class="<?js= v.stability !== 'stable' ? 'unstable' : ''?>">
|
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability !== 'stable') ? 'unstable' : ''?>">
|
||||||
<?js= self.linkto(v.longname, v.name) ?>
|
<?js= self.linkto(v.longname, v.name) ?>
|
||||||
</li>
|
</li>
|
||||||
<?js
|
<?js
|
||||||
@@ -56,7 +56,7 @@ var self = this;
|
|||||||
|
|
||||||
item.methods.forEach(function (v) {
|
item.methods.forEach(function (v) {
|
||||||
?>
|
?>
|
||||||
<li data-name="<?js= v.longname ?>" class="<?js= v.stability !== 'stable' ? 'unstable' : ''?>">
|
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability !== 'stable') ? 'unstable' : ''?>">
|
||||||
<?js= self.linkto(v.longname, v.name) ?>
|
<?js= self.linkto(v.longname, v.name) ?>
|
||||||
</li>
|
</li>
|
||||||
<?js
|
<?js
|
||||||
@@ -73,7 +73,7 @@ var self = this;
|
|||||||
item.fires.forEach(function (v) {
|
item.fires.forEach(function (v) {
|
||||||
v = self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]};
|
v = self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]};
|
||||||
?>
|
?>
|
||||||
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability != 'stable' ? 'unstable' : '') ?>">
|
<li data-name="<?js= v.longname ?>" class="<?js= (v.stability && v.stability != 'stable') ? 'unstable' : '' ?>">
|
||||||
<?js= self.linkto(v.longname, v.name) ?>
|
<?js= self.linkto(v.longname, v.name) ?>
|
||||||
</li>
|
</li>
|
||||||
<?js
|
<?js
|
||||||
@@ -84,4 +84,4 @@ var self = this;
|
|||||||
</li>
|
</li>
|
||||||
<?js }); ?>
|
<?js }); ?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
var setter = prop.readonly ? 'no' : 'yes';
|
var setter = prop.readonly ? 'no' : 'yes';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<tr class="<?js= prop.stability !== 'stable' ? 'unstable' : '' ?>">
|
<tr class="<?js= (prop.stability && prop.stability !== 'stable') ? 'unstable' : '' ?>">
|
||||||
<td class="name"><code><?js= prop.name ?></code></td>
|
<td class="name"><code><?js= prop.name ?></code></td>
|
||||||
<td class="type">
|
<td class="type">
|
||||||
<?js if (prop.type && prop.type.names) {?>
|
<?js if (prop.type && prop.type.names) {?>
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
var data = obj;
|
var data = obj;
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (data.stability != 'stable') { ?>
|
if (data.stability && data.stability != 'stable') { ?>
|
||||||
<span class="stability <?js= data.stability ?>"><?js= data.stability ?></span>
|
<span class="stability <?js= data.stability ?>"><?js= data.stability ?></span>
|
||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
<header>
|
<header>
|
||||||
<?js if (children.length > 0) { ?>
|
<?js if (children.length > 0) { ?>
|
||||||
<ul><?js
|
<ul><?js
|
||||||
@@ -10,10 +10,10 @@
|
|||||||
<?js } ?>
|
<?js } ?>
|
||||||
|
|
||||||
<h2><?js= header ?></h2>
|
<h2><?js= header ?></h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
<?js= content ?>
|
<?js= content ?>
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ var path = require('path');
|
|||||||
* Publish hook for the JSDoc template. Writes to JSON stdout.
|
* Publish hook for the JSDoc template. Writes to JSON stdout.
|
||||||
* @param {function} data The root of the Taffy DB containing doclet records.
|
* @param {function} data The root of the Taffy DB containing doclet records.
|
||||||
* @param {Object} opts Options.
|
* @param {Object} opts Options.
|
||||||
|
* @return {Promise} A promise that resolves when writing is complete.
|
||||||
*/
|
*/
|
||||||
exports.publish = function(data, opts) {
|
exports.publish = function(data, opts) {
|
||||||
|
|
||||||
@@ -49,7 +50,7 @@ exports.publish = function(data, opts) {
|
|||||||
var externs = [];
|
var externs = [];
|
||||||
var base = [];
|
var base = [];
|
||||||
var augments = {};
|
var augments = {};
|
||||||
var names = {};
|
var symbolsByName = {};
|
||||||
docs.filter(function(doc) {
|
docs.filter(function(doc) {
|
||||||
var include = true;
|
var include = true;
|
||||||
var constructor = doc.memberof;
|
var constructor = doc.memberof;
|
||||||
@@ -144,8 +145,13 @@ exports.publish = function(data, opts) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var target = isExterns ? externs : (doc.api ? symbols : base);
|
var target = isExterns ? externs : (doc.api ? symbols : base);
|
||||||
|
var existingSymbol = symbolsByName[symbol.name];
|
||||||
|
if (existingSymbol) {
|
||||||
|
var idx = target.indexOf(existingSymbol);
|
||||||
|
target.splice(idx, 1);
|
||||||
|
}
|
||||||
target.push(symbol);
|
target.push(symbol);
|
||||||
names[symbol.name] = true;
|
symbolsByName[symbol.name] = symbol;
|
||||||
|
|
||||||
if (doc.api && symbol.extends) {
|
if (doc.api && symbol.extends) {
|
||||||
while (symbol.extends in classes && !classes[symbol.extends].api &&
|
while (symbol.extends in classes && !classes[symbol.extends].api &&
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
"compile": {
|
"compile": {
|
||||||
"externs": [
|
"externs": [
|
||||||
"externs/bingmaps.js",
|
"externs/bingmaps.js",
|
||||||
|
"externs/cartodb.js",
|
||||||
"externs/closure-compiler.js",
|
"externs/closure-compiler.js",
|
||||||
"externs/esrijson.js",
|
"externs/esrijson.js",
|
||||||
"externs/geojson.js",
|
"externs/geojson.js",
|
||||||
@@ -14,46 +15,14 @@
|
|||||||
"externs/topojson.js"
|
"externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
|
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"jscomp_error": [
|
"jscomp_error": [
|
||||||
"accessControls",
|
"*"
|
||||||
"ambiguousFunctionDecl",
|
],
|
||||||
"checkEventfulObjectDisposal",
|
"jscomp_off": [
|
||||||
"checkRegExp",
|
"lintChecks",
|
||||||
"checkStructDictInheritance",
|
"analyzerChecks"
|
||||||
"checkTypes",
|
|
||||||
"checkVars",
|
|
||||||
"const",
|
|
||||||
"constantProperty",
|
|
||||||
"deprecated",
|
|
||||||
"duplicateMessage",
|
|
||||||
"es3",
|
|
||||||
"es5Strict",
|
|
||||||
"externsValidation",
|
|
||||||
"fileoverviewTags",
|
|
||||||
"globalThis",
|
|
||||||
"internetExplorerChecks",
|
|
||||||
"invalidCasts",
|
|
||||||
"misplacedTypeAnnotation",
|
|
||||||
"missingGetCssName",
|
|
||||||
"missingProperties",
|
|
||||||
"missingProvide",
|
|
||||||
"missingRequire",
|
|
||||||
"missingReturn",
|
|
||||||
"newCheckTypes",
|
|
||||||
"nonStandardJsDocs",
|
|
||||||
"suspiciousCode",
|
|
||||||
"strictModuleDepCheck",
|
|
||||||
"typeInvalidation",
|
|
||||||
"undefinedNames",
|
|
||||||
"undefinedVars",
|
|
||||||
"unknownDefines",
|
|
||||||
"uselessCode",
|
|
||||||
"visibility"
|
|
||||||
],
|
],
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
"api", "observable"
|
"api", "observable"
|
||||||
|
|||||||
29
css/ol.css
29
css/ol.css
@@ -1,3 +1,8 @@
|
|||||||
|
.ol-box {
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 2px solid blue;
|
||||||
|
}
|
||||||
|
|
||||||
.ol-mouse-position {
|
.ol-mouse-position {
|
||||||
top: 8px;
|
top: 8px;
|
||||||
@@ -6,7 +11,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.ol-scale-line {
|
.ol-scale-line {
|
||||||
background: #95b9e6;
|
|
||||||
background: rgba(0,60,136,0.3);
|
background: rgba(0,60,136,0.3);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
bottom: 8px;
|
bottom: 8px;
|
||||||
@@ -15,9 +19,9 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
.ol-scale-line-inner {
|
.ol-scale-line-inner {
|
||||||
border: 1px solid #eeeeee;
|
border: 1px solid #eee;
|
||||||
border-top: none;
|
border-top: none;
|
||||||
color: #eeeeee;
|
color: #eee;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 1px;
|
margin: 1px;
|
||||||
@@ -42,7 +46,6 @@
|
|||||||
|
|
||||||
.ol-control {
|
.ol-control {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: #eee;
|
|
||||||
background-color: rgba(255,255,255,0.4);
|
background-color: rgba(255,255,255,0.4);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
@@ -90,7 +93,6 @@
|
|||||||
height: 1.375em;
|
height: 1.375em;
|
||||||
width: 1.375em;
|
width: 1.375em;
|
||||||
line-height: .4em;
|
line-height: .4em;
|
||||||
background-color: #7b98bc;
|
|
||||||
background-color: rgba(0,60,136,0.5);
|
background-color: rgba(0,60,136,0.5);
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
@@ -117,7 +119,6 @@
|
|||||||
.ol-control button:hover,
|
.ol-control button:hover,
|
||||||
.ol-control button:focus {
|
.ol-control button:focus {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
background-color: #4c6079;
|
|
||||||
background-color: rgba(0,60,136,0.7);
|
background-color: rgba(0,60,136,0.7);
|
||||||
}
|
}
|
||||||
.ol-zoom .ol-zoom-in {
|
.ol-zoom .ol-zoom-in {
|
||||||
@@ -154,6 +155,7 @@
|
|||||||
.ol-attribution img {
|
.ol-attribution img {
|
||||||
max-height: 2em;
|
max-height: 2em;
|
||||||
max-width: inherit;
|
max-width: inherit;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
.ol-attribution ul, .ol-attribution button {
|
.ol-attribution ul, .ol-attribution button {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@@ -192,26 +194,15 @@
|
|||||||
.ol-zoomslider {
|
.ol-zoomslider {
|
||||||
top: 4.5em;
|
top: 4.5em;
|
||||||
left: .5em;
|
left: .5em;
|
||||||
width: 24px;
|
|
||||||
height: 200px;
|
height: 200px;
|
||||||
}
|
}
|
||||||
.ol-zoomslider-thumb {
|
.ol-zoomslider button {
|
||||||
position: absolute;
|
position: relative;
|
||||||
background: #7b98bc;
|
|
||||||
background: rgba(0,60,136,0.5);
|
|
||||||
border-radius: 2px;
|
|
||||||
cursor: pointer;
|
|
||||||
height: 10px;
|
height: 10px;
|
||||||
width: 22px;
|
|
||||||
margin: 3px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ol-touch .ol-zoomslider {
|
.ol-touch .ol-zoomslider {
|
||||||
top: 5.5em;
|
top: 5.5em;
|
||||||
width: 2.052em;
|
|
||||||
}
|
|
||||||
.ol-touch .ol-zoomslider-thumb {
|
|
||||||
width: 1.8em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ol-overviewmap {
|
.ol-overviewmap {
|
||||||
|
|||||||
241
dist/ol-debug.css
vendored
Normal file
241
dist/ol-debug.css
vendored
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
.ol-box {
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 2px solid blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-mouse-position {
|
||||||
|
top: 8px;
|
||||||
|
right: 8px;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-scale-line {
|
||||||
|
background: rgba(0,60,136,0.3);
|
||||||
|
border-radius: 4px;
|
||||||
|
bottom: 8px;
|
||||||
|
left: 8px;
|
||||||
|
padding: 2px;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.ol-scale-line-inner {
|
||||||
|
border: 1px solid #eee;
|
||||||
|
border-top: none;
|
||||||
|
color: #eee;
|
||||||
|
font-size: 10px;
|
||||||
|
text-align: center;
|
||||||
|
margin: 1px;
|
||||||
|
will-change: contents, width;
|
||||||
|
}
|
||||||
|
.ol-overlay-container {
|
||||||
|
will-change: left,right,top,bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-unsupported {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ol-viewport .ol-unselectable {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-control {
|
||||||
|
position: absolute;
|
||||||
|
background-color: rgba(255,255,255,0.4);
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
.ol-control:hover {
|
||||||
|
background-color: rgba(255,255,255,0.6);
|
||||||
|
}
|
||||||
|
.ol-zoom {
|
||||||
|
top: .5em;
|
||||||
|
left: .5em;
|
||||||
|
}
|
||||||
|
.ol-rotate {
|
||||||
|
top: .5em;
|
||||||
|
right: .5em;
|
||||||
|
transition: opacity .25s linear, visibility 0s linear;
|
||||||
|
}
|
||||||
|
.ol-rotate.ol-hidden {
|
||||||
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
transition: opacity .25s linear, visibility 0s linear .25s;
|
||||||
|
}
|
||||||
|
.ol-zoom-extent {
|
||||||
|
top: 4.643em;
|
||||||
|
left: .5em;
|
||||||
|
}
|
||||||
|
.ol-full-screen {
|
||||||
|
right: .5em;
|
||||||
|
top: .5em;
|
||||||
|
}
|
||||||
|
@media print {
|
||||||
|
.ol-control {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-control button {
|
||||||
|
display: block;
|
||||||
|
margin: 1px;
|
||||||
|
padding: 0;
|
||||||
|
color: white;
|
||||||
|
font-size: 1.14em;
|
||||||
|
font-weight: bold;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
height: 1.375em;
|
||||||
|
width: 1.375em;
|
||||||
|
line-height: .4em;
|
||||||
|
background-color: rgba(0,60,136,0.5);
|
||||||
|
border: none;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
.ol-control button::-moz-focus-inner {
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.ol-zoom-extent button {
|
||||||
|
line-height: 1.4em;
|
||||||
|
}
|
||||||
|
.ol-compass {
|
||||||
|
display: block;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 1.2em;
|
||||||
|
will-change: transform;
|
||||||
|
}
|
||||||
|
.ol-touch .ol-control button {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
.ol-touch .ol-zoom-extent {
|
||||||
|
top: 5.5em;
|
||||||
|
}
|
||||||
|
.ol-control button:hover,
|
||||||
|
.ol-control button:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: rgba(0,60,136,0.7);
|
||||||
|
}
|
||||||
|
.ol-zoom .ol-zoom-in {
|
||||||
|
border-radius: 2px 2px 0 0;
|
||||||
|
}
|
||||||
|
.ol-zoom .ol-zoom-out {
|
||||||
|
border-radius: 0 0 2px 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.ol-attribution {
|
||||||
|
text-align: right;
|
||||||
|
bottom: .5em;
|
||||||
|
right: .5em;
|
||||||
|
max-width: calc(100% - 1.3em);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-attribution ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 .5em;
|
||||||
|
font-size: .7rem;
|
||||||
|
line-height: 1.375em;
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0 0 2px #fff;
|
||||||
|
}
|
||||||
|
.ol-attribution li {
|
||||||
|
display: inline;
|
||||||
|
list-style: none;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
.ol-attribution li:not(:last-child):after {
|
||||||
|
content: " ";
|
||||||
|
}
|
||||||
|
.ol-attribution img {
|
||||||
|
max-height: 2em;
|
||||||
|
max-width: inherit;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.ol-attribution ul, .ol-attribution button {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.ol-attribution.ol-collapsed ul {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ol-attribution.ol-logo-only ul {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.ol-attribution:not(.ol-collapsed) {
|
||||||
|
background: rgba(255,255,255,0.8);
|
||||||
|
}
|
||||||
|
.ol-attribution.ol-uncollapsible {
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
border-radius: 4px 0 0;
|
||||||
|
height: 1.1em;
|
||||||
|
line-height: 1em;
|
||||||
|
}
|
||||||
|
.ol-attribution.ol-logo-only {
|
||||||
|
background: transparent;
|
||||||
|
bottom: .4em;
|
||||||
|
height: 1.1em;
|
||||||
|
line-height: 1em;
|
||||||
|
}
|
||||||
|
.ol-attribution.ol-uncollapsible img {
|
||||||
|
margin-top: -.2em;
|
||||||
|
max-height: 1.6em;
|
||||||
|
}
|
||||||
|
.ol-attribution.ol-logo-only button,
|
||||||
|
.ol-attribution.ol-uncollapsible button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-zoomslider {
|
||||||
|
top: 4.5em;
|
||||||
|
left: .5em;
|
||||||
|
height: 200px;
|
||||||
|
}
|
||||||
|
.ol-zoomslider button {
|
||||||
|
position: relative;
|
||||||
|
height: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-touch .ol-zoomslider {
|
||||||
|
top: 5.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ol-overviewmap {
|
||||||
|
left: 0.5em;
|
||||||
|
bottom: 0.5em;
|
||||||
|
}
|
||||||
|
.ol-overviewmap.ol-uncollapsible {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
border-radius: 0 4px 0 0;
|
||||||
|
}
|
||||||
|
.ol-overviewmap .ol-overviewmap-map,
|
||||||
|
.ol-overviewmap button {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.ol-overviewmap .ol-overviewmap-map {
|
||||||
|
border: 1px solid #7b98bc;
|
||||||
|
height: 150px;
|
||||||
|
margin: 2px;
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
.ol-overviewmap:not(.ol-collapsed) button{
|
||||||
|
bottom: 1px;
|
||||||
|
left: 2px;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.ol-overviewmap.ol-collapsed .ol-overviewmap-map,
|
||||||
|
.ol-overviewmap.ol-uncollapsible button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ol-overviewmap:not(.ol-collapsed) {
|
||||||
|
background: rgba(255,255,255,0.8);
|
||||||
|
}
|
||||||
|
.ol-overviewmap-box {
|
||||||
|
border: 2px dotted rgba(0,60,136,0.7);
|
||||||
|
}
|
||||||
109180
dist/ol-debug.js
vendored
Normal file
109180
dist/ol-debug.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
dist/ol.css
vendored
Normal file
1
dist/ol.css
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.ol-control,.ol-scale-line{position:absolute;padding:2px}.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width}.ol-overlay-container{will-change:left,right,top,bottom}.ol-unsupported{display:none}.ol-viewport .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-control{background-color:rgba(255,255,255,.4);border-radius:4px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}@media print{.ol-control{display:none}}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;font-size:.7rem;line-height:1.375em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none;line-height:inherit}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution.ol-logo-only ul{display:block}.ol-attribution:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0;height:1.1em;line-height:1em}.ol-attribution.ol-logo-only{background:0 0;bottom:.4em;height:1.1em;line-height:1em}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-logo-only button,.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}
|
||||||
990
dist/ol.js
vendored
Normal file
990
dist/ol.js
vendored
Normal file
@@ -0,0 +1,990 @@
|
|||||||
|
// OpenLayers 3. See http://openlayers.org/
|
||||||
|
// License: https://raw.githubusercontent.com/openlayers/ol3/master/LICENSE.md
|
||||||
|
// Version: v3.16.0-192-g5d8b99a
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof exports === "object") {
|
||||||
|
module.exports = factory();
|
||||||
|
} else if (typeof define === "function" && define.amd) {
|
||||||
|
define([], factory);
|
||||||
|
} else {
|
||||||
|
root.ol = factory();
|
||||||
|
}
|
||||||
|
}(this, function () {
|
||||||
|
var OPENLAYERS = {};
|
||||||
|
var k,aa=this;function ca(a){a.$b=function(){return a.Tg?a.Tg:a.Tg=new a}}
|
||||||
|
function da(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
|
||||||
|
else if("function"==b&&"undefined"==typeof a.call)return"object";return b}function ea(a){return"string"==typeof a}function fa(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function t(a){return a[ga]||(a[ga]=++ha)}var ga="closure_uid_"+(1E9*Math.random()>>>0),ha=0;function ia(a,b,c){return a.call.apply(a.bind,arguments)}
|
||||||
|
function ja(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function ka(a,b,c){ka=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ia:ja;return ka.apply(null,arguments)}
|
||||||
|
function u(a,b){var c=a.split("."),d=OPENLAYERS||aa;c[0]in d||!d.execScript||d.execScript("var "+c[0]);for(var e;c.length&&(e=c.shift());)c.length||void 0===b?d[e]?d=d[e]:d=d[e]={}:d[e]=b};var la,na;function x(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function oa(){}var pa=Function("return this")();var qa=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function ra(a,b){return a<b?-1:a>b?1:0};function sa(a,b,c){return Math.min(Math.max(a,b),c)}var ta=function(){var a;"cosh"in Math?a=Math.cosh:a=function(a){a=Math.exp(a);return(a+1/a)/2};return a}();function ua(a,b,c,d,e,f){var g=e-c,h=f-d;if(0!==g||0!==h){var l=((a-c)*g+(b-d)*h)/(g*g+h*h);1<l?(c=e,d=f):0<l&&(c+=g*l,d+=h*l)}return va(a,b,c,d)}function va(a,b,c,d){a=c-a;b=d-b;return a*a+b*b}function wa(a){return a*Math.PI/180}function xa(a,b){var c=a%b;return 0>c*b?c+b:c}function ya(a,b,c){return a+c*(b-a)};function za(a){return function(b){if(b)return[sa(b[0],a[0],a[2]),sa(b[1],a[1],a[3])]}}function Aa(a){return a};function Ba(a,b,c){this.center=a;this.resolution=b;this.rotation=c};var Ca="function"===typeof Object.assign?Object.assign:function(a,b){if(!a||!a)throw new TypeError("Cannot convert undefined or null to object");for(var c=Object(a),d=1,e=arguments.length;d<e;++d){var f=arguments[d];if(void 0!==f&&null!==f)for(var g in f)f.hasOwnProperty(g)&&(c[g]=f[g])}return c};function Da(a){for(var b in a)delete a[b]}function Ea(a){var b=[],c;for(c in a)b.push(a[c]);return b}function Ga(a){for(var b in a)return!1;return!b};var Ha="olm_"+(1E4*Math.random()|0);function Ia(a){function b(b){var d=a.listener,e=a.ng||a.target;a.pg&&Ka(a);return d.call(e,b)}return a.og=b}function La(a,b,c,d){for(var e,f=0,g=a.length;f<g;++f)if(e=a[f],e.listener===b&&e.ng===c)return d&&(e.deleteIndex=f),e}function Ma(a,b){var c=a[Ha];return c?c[b]:void 0}function Na(a){var b=a[Ha];b||(b=a[Ha]={});return b}
|
||||||
|
function Oa(a,b){var c=Ma(a,b);if(c){for(var d=0,e=c.length;d<e;++d)a.removeEventListener(b,c[d].og),Da(c[d]);c.length=0;if(c=a[Ha])delete c[b],0===Object.keys(c).length&&delete a[Ha]}}function B(a,b,c,d,e){var f=Na(a),g=f[b];g||(g=f[b]=[]);(f=La(g,c,d,!1))?e||(f.pg=!1):(f={ng:d,pg:!!e,listener:c,target:a,type:b},a.addEventListener(b,Ia(f)),g.push(f));return f}function Pa(a,b,c,d){return B(a,b,c,d,!0)}function Qa(a,b,c,d){(a=Ma(a,b))&&(c=La(a,c,d,!0))&&Ka(c)}
|
||||||
|
function Ka(a){if(a&&a.target){a.target.removeEventListener(a.type,a.og);var b=Ma(a.target,a.type);if(b){var c="deleteIndex"in a?a.deleteIndex:b.indexOf(a);-1!==c&&b.splice(c,1);0===b.length&&Oa(a.target,a.type)}Da(a)}}function Ra(a){var b=Na(a),c;for(c in b)Oa(a,c)};function Sa(){}Sa.prototype.Hb=!1;function Ta(a){a.Hb||(a.Hb=!0,a.ka())}Sa.prototype.ka=oa;function Ua(a){this.type=a;this.target=null}Ua.prototype.preventDefault=Ua.prototype.stopPropagation=function(){this.to=!0};function Va(a){a.stopPropagation()}function Wa(a){a.preventDefault()};function Xa(){this.Ra={};this.Aa={};this.ya={}}x(Xa,Sa);Xa.prototype.addEventListener=function(a,b){var c=this.ya[a];c||(c=this.ya[a]=[]);-1===c.indexOf(b)&&c.push(b)};
|
||||||
|
Xa.prototype.b=function(a){var b="string"===typeof a?new Ua(a):a;a=b.type;b.target=this;var c=this.ya[a],d;if(c){a in this.Aa||(this.Aa[a]=0,this.Ra[a]=0);++this.Aa[a];for(var e=0,f=c.length;e<f;++e)if(!1===c[e].call(this,b)||b.to){d=!1;break}--this.Aa[a];if(0===this.Aa[a]){b=this.Ra[a];for(delete this.Ra[a];b--;)this.removeEventListener(a,oa);delete this.Aa[a]}return d}};Xa.prototype.ka=function(){Ra(this)};function Ya(a,b){return b?b in a.ya:0<Object.keys(a.ya).length}
|
||||||
|
Xa.prototype.removeEventListener=function(a,b){var c=this.ya[a];if(c){var d=c.indexOf(b);a in this.Ra?(c[d]=oa,++this.Ra[a]):(c.splice(d,1),0===c.length&&delete this.ya[a])}};function Za(){Xa.call(this);this.g=0}x(Za,Xa);function $a(a){if(Array.isArray(a))for(var b=0,c=a.length;b<c;++b)Ka(a[b]);else Ka(a)}k=Za.prototype;k.u=function(){++this.g;this.b("change")};k.K=function(){return this.g};k.I=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=B(this,a[f],b,c);return e}return B(this,a,b,c)};k.L=function(a,b,c){if(Array.isArray(a)){for(var d=a.length,e=Array(d),f=0;f<d;++f)e[f]=Pa(this,a[f],b,c);return e}return Pa(this,a,b,c)};
|
||||||
|
k.J=function(a,b,c){if(Array.isArray(a))for(var d=0,e=a.length;d<e;++d)Qa(this,a[d],b,c);else Qa(this,a,b,c)};k.M=$a;function ab(a,b,c){Ua.call(this,a);this.key=b;this.oldValue=c}x(ab,Ua);function bb(a){Za.call(this);t(this);this.U={};void 0!==a&&this.G(a)}x(bb,Za);var cb={};function db(a){return cb.hasOwnProperty(a)?cb[a]:cb[a]="change:"+a}k=bb.prototype;k.get=function(a){var b;this.U.hasOwnProperty(a)&&(b=this.U[a]);return b};k.N=function(){return Object.keys(this.U)};k.O=function(){return Ca({},this.U)};function eb(a,b,c){var d;d=db(b);a.b(new ab(d,b,c));a.b(new ab("propertychange",b,c))}
|
||||||
|
k.set=function(a,b,c){c?this.U[a]=b:(c=this.U[a],this.U[a]=b,c!==b&&eb(this,a,c))};k.G=function(a,b){for(var c in a)this.set(c,a[c],b)};k.R=function(a,b){if(a in this.U){var c=this.U[a];delete this.U[a];b||eb(this,a,c)}};function fb(a,b){return a>b?1:a<b?-1:0}function gb(a,b){return 0<=a.indexOf(b)}function hb(a,b,c){var d=a.length;if(a[0]<=b)return 0;if(!(b<=a[d-1]))if(0<c)for(c=1;c<d;++c){if(a[c]<b)return c-1}else if(0>c)for(c=1;c<d;++c){if(a[c]<=b)return c}else for(c=1;c<d;++c){if(a[c]==b)return c;if(a[c]<b)return a[c-1]-b<b-a[c]?c-1:c}return d-1}function ib(a){return a.reduce(function(a,c){return Array.isArray(c)?a.concat(ib(c)):a.concat(c)},[])}
|
||||||
|
function jb(a,b){var c;c=da(b);var d="array"==c||"object"==c&&"number"==typeof b.length?b:[b],e=d.length;for(c=0;c<e;c++)a[a.length]=d[c]}function kb(a,b){var c=a.indexOf(b),d=-1<c;d&&a.splice(c,1);return d}function lb(a,b){for(var c=a.length>>>0,d,e=0;e<c;e++)if(d=a[e],b(d,e,a))return d;return null}function mb(a,b){var c=a.length;if(c!==b.length)return!1;for(var d=0;d<c;d++)if(a[d]!==b[d])return!1;return!0}
|
||||||
|
function nb(a){var b=ob,c=a.length,d=Array(a.length),e;for(e=0;e<c;e++)d[e]={index:e,value:a[e]};d.sort(function(a,c){return b(a.value,c.value)||a.index-c.index});for(e=0;e<a.length;e++)a[e]=d[e].value}function pb(a,b){var c;return a.every(function(d,e){c=e;return!b(d,e,a)})?-1:c};function qb(a){return function(b,c,d){if(void 0!==b)return b=hb(a,b,d),b=sa(b+c,0,a.length-1),a[b]}}function rb(a,b,c){return function(d,e,f){if(void 0!==d)return d=Math.max(Math.floor(Math.log(b/d)/Math.log(a)+(0<f?0:0>f?1:.5))+e,0),void 0!==c&&(d=Math.min(d,c)),b/Math.pow(a,d)}};function sb(a){if(void 0!==a)return 0}function tb(a,b){if(void 0!==a)return a+b}function ub(a){var b=2*Math.PI/a;return function(a,d){if(void 0!==a)return a=Math.floor((a+d)/b+.5)*b}}function vb(){var a=wa(5);return function(b,c){if(void 0!==b)return Math.abs(b+c)<=a?0:b+c}};function wb(a,b){var c=void 0!==b?a.toFixed(b):""+a,d=c.indexOf("."),d=-1===d?c.length:d;return 2<d?c:Array(3-d).join("0")+c}function xb(a){a=(""+a).split(".");for(var b=["1","3"],c=0;c<Math.max(a.length,b.length);c++){var d=parseInt(a[c]||"0",10),e=parseInt(b[c]||"0",10);if(d>e)return 1;if(e>d)return-1}return 0};function yb(a,b){a[0]+=b[0];a[1]+=b[1];return a}function zb(a,b){var c=a[0],d=a[1],e=b[0],f=b[1],g=e[0],e=e[1],h=f[0],f=f[1],l=h-g,m=f-e,c=0===l&&0===m?0:(l*(c-g)+m*(d-e))/(l*l+m*m||0);0>=c||(1<=c?(g=h,e=f):(g+=c*l,e+=c*m));return[g,e]}function Ab(a,b,c){a=xa(a+180,360)-180;var d=Math.abs(3600*a);return Math.floor(d/3600)+"\u00b0 "+wb(Math.floor(d/60%60))+"\u2032 "+wb(d%60,c||0)+"\u2033 "+b.charAt(0>a?1:0)}
|
||||||
|
function Bb(a,b,c){return a?b.replace("{x}",a[0].toFixed(c)).replace("{y}",a[1].toFixed(c)):""}function Cb(a,b){for(var c=!0,d=a.length-1;0<=d;--d)if(a[d]!=b[d]){c=!1;break}return c}function Db(a,b){var c=Math.cos(b),d=Math.sin(b),e=a[1]*c+a[0]*d;a[0]=a[0]*c-a[1]*d;a[1]=e;return a}function Eb(a,b){var c=a[0]-b[0],d=a[1]-b[1];return c*c+d*d}function Fb(a,b){return Eb(a,zb(a,b))}function Gb(a,b){return Bb(a,"{x}, {y}",b)};function Ib(a){for(var b=Jb(),c=0,d=a.length;c<d;++c)Lb(b,a[c]);return b}function Mb(a,b,c){return c?(c[0]=a[0]-b,c[1]=a[1]-b,c[2]=a[2]+b,c[3]=a[3]+b,c):[a[0]-b,a[1]-b,a[2]+b,a[3]+b]}function Ob(a,b){return b?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b):a.slice()}function Pb(a,b,c){b=b<a[0]?a[0]-b:a[2]<b?b-a[2]:0;a=c<a[1]?a[1]-c:a[3]<c?c-a[3]:0;return b*b+a*a}function Qb(a,b){return Rb(a,b[0],b[1])}function Sb(a,b){return a[0]<=b[0]&&b[2]<=a[2]&&a[1]<=b[1]&&b[3]<=a[3]}
|
||||||
|
function Rb(a,b,c){return a[0]<=b&&b<=a[2]&&a[1]<=c&&c<=a[3]}function Tb(a,b){var c=a[1],d=a[2],e=a[3],f=b[0],g=b[1],h=0;f<a[0]?h|=16:f>d&&(h|=4);g<c?h|=8:g>e&&(h|=2);0===h&&(h=1);return h}function Jb(){return[Infinity,Infinity,-Infinity,-Infinity]}function Vb(a,b,c,d,e){return e?(e[0]=a,e[1]=b,e[2]=c,e[3]=d,e):[a,b,c,d]}function Wb(a,b){var c=a[0],d=a[1];return Vb(c,d,c,d,b)}function Yb(a,b,c,d,e){e=Vb(Infinity,Infinity,-Infinity,-Infinity,e);return Zb(e,a,b,c,d)}
|
||||||
|
function $b(a,b){return a[0]==b[0]&&a[2]==b[2]&&a[1]==b[1]&&a[3]==b[3]}function ac(a,b){b[0]<a[0]&&(a[0]=b[0]);b[2]>a[2]&&(a[2]=b[2]);b[1]<a[1]&&(a[1]=b[1]);b[3]>a[3]&&(a[3]=b[3]);return a}function Lb(a,b){b[0]<a[0]&&(a[0]=b[0]);b[0]>a[2]&&(a[2]=b[0]);b[1]<a[1]&&(a[1]=b[1]);b[1]>a[3]&&(a[3]=b[1])}function Zb(a,b,c,d,e){for(;c<d;c+=e){var f=a,g=b[c],h=b[c+1];f[0]=Math.min(f[0],g);f[1]=Math.min(f[1],h);f[2]=Math.max(f[2],g);f[3]=Math.max(f[3],h)}return a}
|
||||||
|
function bc(a,b,c){var d;return(d=b.call(c,cc(a)))||(d=b.call(c,dc(a)))||(d=b.call(c,ec(a)))?d:(d=b.call(c,fc(a)))?d:!1}function hc(a){var b=0;ic(a)||(b=jc(a)*kc(a));return b}function cc(a){return[a[0],a[1]]}function dc(a){return[a[2],a[1]]}function lc(a){return[(a[0]+a[2])/2,(a[1]+a[3])/2]}
|
||||||
|
function mc(a,b,c,d,e){var f=b*d[0]/2;d=b*d[1]/2;b=Math.cos(c);var g=Math.sin(c);c=f*b;f*=g;b*=d;var h=d*g,l=a[0],m=a[1];a=l-c+h;d=l-c-h;g=l+c-h;c=l+c+h;var h=m-f-b,l=m-f+b,n=m+f+b,f=m+f-b;return Vb(Math.min(a,d,g,c),Math.min(h,l,n,f),Math.max(a,d,g,c),Math.max(h,l,n,f),e)}function kc(a){return a[3]-a[1]}function nc(a,b,c){c=c?c:Jb();oc(a,b)&&(c[0]=a[0]>b[0]?a[0]:b[0],c[1]=a[1]>b[1]?a[1]:b[1],c[2]=a[2]<b[2]?a[2]:b[2],c[3]=a[3]<b[3]?a[3]:b[3]);return c}function fc(a){return[a[0],a[3]]}
|
||||||
|
function ec(a){return[a[2],a[3]]}function jc(a){return a[2]-a[0]}function oc(a,b){return a[0]<=b[2]&&a[2]>=b[0]&&a[1]<=b[3]&&a[3]>=b[1]}function ic(a){return a[2]<a[0]||a[3]<a[1]}function pc(a,b){var c=(a[2]-a[0])/2*(b-1),d=(a[3]-a[1])/2*(b-1);a[0]-=c;a[2]+=c;a[1]-=d;a[3]+=d}
|
||||||
|
function qc(a,b,c){a=[a[0],a[1],a[0],a[3],a[2],a[1],a[2],a[3]];b(a,a,2);var d=[a[0],a[2],a[4],a[6]],e=[a[1],a[3],a[5],a[7]];b=Math.min.apply(null,d);a=Math.min.apply(null,e);d=Math.max.apply(null,d);e=Math.max.apply(null,e);return Vb(b,a,d,e,c)};function rc(){return!0}function sc(){return!1};/*
|
||||||
|
|
||||||
|
Latitude/longitude spherical geodesy formulae taken from
|
||||||
|
http://www.movable-type.co.uk/scripts/latlong.html
|
||||||
|
Licensed under CC-BY-3.0.
|
||||||
|
*/
|
||||||
|
function tc(a){this.radius=a}tc.prototype.a=function(a){for(var b=0,c=a.length,d=a[c-1][0],e=a[c-1][1],f=0;f<c;f++)var g=a[f][0],h=a[f][1],b=b+wa(g-d)*(2+Math.sin(wa(e))+Math.sin(wa(h))),d=g,e=h;return b*this.radius*this.radius/2};tc.prototype.b=function(a,b){var c=wa(a[1]),d=wa(b[1]),e=(d-c)/2,f=wa(b[0]-a[0])/2,c=Math.sin(e)*Math.sin(e)+Math.sin(f)*Math.sin(f)*Math.cos(c)*Math.cos(d);return 2*this.radius*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))};
|
||||||
|
tc.prototype.offset=function(a,b,c){var d=wa(a[1]);b/=this.radius;var e=Math.asin(Math.sin(d)*Math.cos(b)+Math.cos(d)*Math.sin(b)*Math.cos(c));return[180*(wa(a[0])+Math.atan2(Math.sin(c)*Math.sin(b)*Math.cos(d),Math.cos(b)-Math.sin(d)*Math.sin(e)))/Math.PI,180*e/Math.PI]};var uc=new tc(6370997);var vc={};vc.degrees=2*Math.PI*uc.radius/360;vc.ft=.3048;vc.m=1;vc["us-ft"]=1200/3937;
|
||||||
|
function wc(a){this.eb=a.code;this.c=a.units;this.f=void 0!==a.extent?a.extent:null;this.i=void 0!==a.worldExtent?a.worldExtent:null;this.b=void 0!==a.axisOrientation?a.axisOrientation:"enu";this.g=void 0!==a.global?a.global:!1;this.a=!(!this.g||!this.f);this.o=void 0!==a.getPointResolution?a.getPointResolution:this.sk;this.l=null;this.j=a.metersPerUnit;var b=xc,c=a.code,d=yc||pa.proj4;if("function"==typeof d&&void 0===b[c]){var e=d.defs(c);if(void 0!==e){void 0!==e.axis&&void 0===a.axisOrientation&&
|
||||||
|
(this.b=e.axis);void 0===a.metersPerUnit&&(this.j=e.to_meter);void 0===a.units&&(this.c=e.units);for(var f in b)b=d.defs(f),void 0!==b&&(a=zc(f),b===e?Ac([a,this]):(b=d(f,c),Bc(a,this,b.forward,b.inverse)))}}}k=wc.prototype;k.Sj=function(){return this.eb};k.H=function(){return this.f};k.xb=function(){return this.c};k.ac=function(){return this.j||vc[this.c]};k.Ek=function(){return this.i};k.pl=function(){return this.g};k.ep=function(a){this.g=a;this.a=!(!a||!this.f)};
|
||||||
|
k.Mm=function(a){this.f=a;this.a=!(!this.g||!a)};k.mp=function(a){this.i=a};k.cp=function(a){this.o=a};k.sk=function(a,b){if("degrees"==this.xb())return a;var c=Cc(this,zc("EPSG:4326")),d=[b[0]-a/2,b[1],b[0]+a/2,b[1],b[0],b[1]-a/2,b[0],b[1]+a/2],d=c(d,d,2),c=uc.b(d.slice(0,2),d.slice(2,4)),d=uc.b(d.slice(4,6),d.slice(6,8)),d=(c+d)/2,c=this.ac();void 0!==c&&(d/=c);return d};k.getPointResolution=function(a,b){return this.o(a,b)};var xc={},Dc={},yc=null;
|
||||||
|
function Ac(a){Ec(a);a.forEach(function(b){a.forEach(function(a){b!==a&&Fc(b,a,Gc)})})}function Hc(){var a=Ic,b=Jc,c=Kc;Lc.forEach(function(d){a.forEach(function(a){Fc(d,a,b);Fc(a,d,c)})})}function Mc(a){xc[a.eb]=a;Fc(a,a,Gc)}function Ec(a){var b=[];a.forEach(function(a){b.push(Mc(a))})}function Nc(a){return a?"string"===typeof a?zc(a):a:zc("EPSG:3857")}function Fc(a,b,c){a=a.eb;b=b.eb;a in Dc||(Dc[a]={});Dc[a][b]=c}function Bc(a,b,c,d){a=zc(a);b=zc(b);Fc(a,b,Oc(c));Fc(b,a,Oc(d))}
|
||||||
|
function Oc(a){return function(b,c,d){var e=b.length;d=void 0!==d?d:2;c=void 0!==c?c:Array(e);var f,g;for(g=0;g<e;g+=d)for(f=a([b[g],b[g+1]]),c[g]=f[0],c[g+1]=f[1],f=d-1;2<=f;--f)c[g+f]=b[g+f];return c}}function zc(a){var b;if(a instanceof wc)b=a;else if("string"===typeof a){b=xc[a];var c=yc||pa.proj4;void 0===b&&"function"==typeof c&&void 0!==c.defs(a)&&(b=new wc({code:a}),Mc(b))}else b=null;return b}function Pc(a,b){if(a===b)return!0;var c=a.xb()===b.xb();return a.eb===b.eb?c:Cc(a,b)===Gc&&c}
|
||||||
|
function Qc(a,b){var c=zc(a),d=zc(b);return Cc(c,d)}function Cc(a,b){var c=a.eb,d=b.eb,e;c in Dc&&d in Dc[c]&&(e=Dc[c][d]);void 0===e&&(e=Rc);return e}function Rc(a,b){if(void 0!==b&&a!==b){for(var c=0,d=a.length;c<d;++c)b[c]=a[c];a=b}return a}function Gc(a,b){var c;if(void 0!==b){c=0;for(var d=a.length;c<d;++c)b[c]=a[c];c=b}else c=a.slice();return c}function Sc(a,b,c){return Qc(b,c)(a,void 0,a.length)}function Tc(a,b,c){b=Qc(b,c);return qc(a,b)};function Uc(){bb.call(this);this.v=Jb();this.A=-1;this.l={};this.s=this.o=0}x(Uc,bb);k=Uc.prototype;k.wb=function(a,b){var c=b?b:[NaN,NaN];this.tb(a[0],a[1],c,Infinity);return c};k.sg=function(a){return this.Bc(a[0],a[1])};k.Bc=sc;k.H=function(a){this.A!=this.g&&(this.v=this.Od(this.v),this.A=this.g);var b=this.v;a?(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3]):a=b;return a};k.Cb=function(a){return this.od(a*a)};k.kb=function(a,b){this.rc(Qc(a,b));return this};function Vc(a,b,c,d,e,f){for(var g=f?f:[],h=0;b<c;b+=d){var l=a[b],m=a[b+1];g[h++]=e[0]*l+e[2]*m+e[4];g[h++]=e[1]*l+e[3]*m+e[5]}f&&g.length!=h&&(g.length=h);return g};function Wc(){Uc.call(this);this.f="XY";this.a=2;this.B=null}x(Wc,Uc);function Xc(a){if("XY"==a)return 2;if("XYZ"==a||"XYM"==a)return 3;if("XYZM"==a)return 4}k=Wc.prototype;k.Bc=sc;k.Od=function(a){return Yb(this.B,0,this.B.length,this.a,a)};k.Ib=function(){return this.B.slice(0,this.a)};k.la=function(){return this.B};k.Jb=function(){return this.B.slice(this.B.length-this.a)};k.Kb=function(){return this.f};
|
||||||
|
k.od=function(a){this.s!=this.g&&(Da(this.l),this.o=0,this.s=this.g);if(0>a||0!==this.o&&a<=this.o)return this;var b=a.toString();if(this.l.hasOwnProperty(b))return this.l[b];var c=this.Nc(a);if(c.la().length<this.B.length)return this.l[b]=c;this.o=a;return this};k.Nc=function(){return this};k.va=function(){return this.a};function Yc(a,b,c){a.a=Xc(b);a.f=b;a.B=c}
|
||||||
|
function Zc(a,b,c,d){if(b)c=Xc(b);else{for(b=0;b<d;++b){if(0===c.length){a.f="XY";a.a=2;return}c=c[0]}c=c.length;b=2==c?"XY":3==c?"XYZ":4==c?"XYZM":void 0}a.f=b;a.a=c}k.rc=function(a){this.B&&(a(this.B,this.B,this.a),this.u())};k.rotate=function(a,b){var c=this.la();if(c){for(var d=c.length,e=this.va(),f=c?c:[],g=Math.cos(a),h=Math.sin(a),l=b[0],m=b[1],n=0,p=0;p<d;p+=e){var q=c[p]-l,r=c[p+1]-m;f[n++]=l+q*g-r*h;f[n++]=m+q*h+r*g;for(q=p+2;q<p+e;++q)f[n++]=c[q]}c&&f.length!=n&&(f.length=n);this.u()}};
|
||||||
|
k.Sc=function(a,b){var c=this.la();if(c){var d=c.length,e=this.va(),f=c?c:[],g=0,h,l;for(h=0;h<d;h+=e)for(f[g++]=c[h]+a,f[g++]=c[h+1]+b,l=h+2;l<h+e;++l)f[g++]=c[l];c&&f.length!=g&&(f.length=g);this.u()}};function $c(a,b,c,d){for(var e=0,f=a[c-d],g=a[c-d+1];b<c;b+=d)var h=a[b],l=a[b+1],e=e+(g*h-f*l),f=h,g=l;return e/2}function ad(a,b,c,d){var e=0,f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],e=e+$c(a,b,h,d);b=h}return e};function bd(a,b,c,d,e,f,g){var h=a[b],l=a[b+1],m=a[c]-h,n=a[c+1]-l;if(0!==m||0!==n)if(f=((e-h)*m+(f-l)*n)/(m*m+n*n),1<f)b=c;else if(0<f){for(e=0;e<d;++e)g[e]=ya(a[b+e],a[c+e],f);g.length=d;return}for(e=0;e<d;++e)g[e]=a[b+e];g.length=d}function cd(a,b,c,d,e){var f=a[b],g=a[b+1];for(b+=d;b<c;b+=d){var h=a[b],l=a[b+1],f=va(f,g,h,l);f>e&&(e=f);f=h;g=l}return e}function dd(a,b,c,d,e){var f,g;f=0;for(g=c.length;f<g;++f){var h=c[f];e=cd(a,b,h,d,e);b=h}return e}
|
||||||
|
function ed(a,b,c,d,e,f,g,h,l,m,n){if(b==c)return m;var p;if(0===e){p=va(g,h,a[b],a[b+1]);if(p<m){for(n=0;n<d;++n)l[n]=a[b+n];l.length=d;return p}return m}for(var q=n?n:[NaN,NaN],r=b+d;r<c;)if(bd(a,r-d,r,d,g,h,q),p=va(g,h,q[0],q[1]),p<m){m=p;for(n=0;n<d;++n)l[n]=q[n];l.length=d;r+=d}else r+=d*Math.max((Math.sqrt(p)-Math.sqrt(m))/e|0,1);if(f&&(bd(a,c-d,b,d,g,h,q),p=va(g,h,q[0],q[1]),p<m)){m=p;for(n=0;n<d;++n)l[n]=q[n];l.length=d}return m}
|
||||||
|
function fd(a,b,c,d,e,f,g,h,l,m,n){n=n?n:[NaN,NaN];var p,q;p=0;for(q=c.length;p<q;++p){var r=c[p];m=ed(a,b,r,d,e,f,g,h,l,m,n);b=r}return m};function gd(a,b){var c=0,d,e;d=0;for(e=b.length;d<e;++d)a[c++]=b[d];return c}function hd(a,b,c,d){var e,f;e=0;for(f=c.length;e<f;++e){var g=c[e],h;for(h=0;h<d;++h)a[b++]=g[h]}return b}function id(a,b,c,d,e){e=e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g)b=hd(a,b,c[g],d),e[f++]=b;e.length=f;return e};function jd(a,b,c,d,e){e=void 0!==e?e:[];for(var f=0;b<c;b+=d)e[f++]=a.slice(b,b+d);e.length=f;return e}function kd(a,b,c,d,e){e=void 0!==e?e:[];var f=0,g,h;g=0;for(h=c.length;g<h;++g){var l=c[g];e[f++]=jd(a,b,l,d,e[f]);b=l}e.length=f;return e};function ld(a,b,c,d,e,f,g){var h=(c-b)/d;if(3>h){for(;b<c;b+=d)f[g++]=a[b],f[g++]=a[b+1];return g}var l=Array(h);l[0]=1;l[h-1]=1;c=[b,c-d];for(var m=0,n;0<c.length;){var p=c.pop(),q=c.pop(),r=0,v=a[q],y=a[q+1],w=a[p],G=a[p+1];for(n=q+d;n<p;n+=d){var z=ua(a[n],a[n+1],v,y,w,G);z>r&&(m=n,r=z)}r>e&&(l[(m-b)/d]=1,q+d<m&&c.push(q,m),m+d<p&&c.push(m,p))}for(n=0;n<h;++n)l[n]&&(f[g++]=a[b+n*d],f[g++]=a[b+n*d+1]);return g}
|
||||||
|
function md(a,b,c,d,e,f,g,h){var l,m;l=0;for(m=c.length;l<m;++l){var n=c[l];a:{var p=a,q=n,r=d,v=e,y=f;if(b!=q){var w=v*Math.round(p[b]/v),G=v*Math.round(p[b+1]/v);b+=r;y[g++]=w;y[g++]=G;var z,D;do if(z=v*Math.round(p[b]/v),D=v*Math.round(p[b+1]/v),b+=r,b==q){y[g++]=z;y[g++]=D;break a}while(z==w&&D==G);for(;b<q;){var H,ba;H=v*Math.round(p[b]/v);ba=v*Math.round(p[b+1]/v);b+=r;if(H!=z||ba!=D){var A=z-w,Fa=D-G,Ja=H-w,M=ba-G;A*M==Fa*Ja&&(0>A&&Ja<A||A==Ja||0<A&&Ja>A)&&(0>Fa&&M<Fa||Fa==M||0<Fa&&M>Fa)||
|
||||||
|
(y[g++]=z,y[g++]=D,w=z,G=D);z=H;D=ba}}y[g++]=z;y[g++]=D}}h.push(g);b=n}return g};function nd(a,b){Wc.call(this);this.i=this.j=-1;this.ra(a,b)}x(nd,Wc);k=nd.prototype;k.clone=function(){var a=new nd(null);od(a,this.f,this.B.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.i!=this.g&&(this.j=Math.sqrt(cd(this.B,0,this.B.length,this.a,0)),this.i=this.g);return ed(this.B,0,this.B.length,this.a,this.j,!0,a,b,c,d)};k.nm=function(){return $c(this.B,0,this.B.length,this.a)};k.Z=function(){return jd(this.B,0,this.B.length,this.a)};
|
||||||
|
k.Nc=function(a){var b=[];b.length=ld(this.B,0,this.B.length,this.a,a,b,0);a=new nd(null);od(a,"XY",b);return a};k.Y=function(){return"LinearRing"};k.ra=function(a,b){a?(Zc(this,b,a,1),this.B||(this.B=[]),this.B.length=hd(this.B,0,a,this.a),this.u()):od(this,"XY",null)};function od(a,b,c){Yc(a,b,c);a.u()};function C(a,b){Wc.call(this);this.ra(a,b)}x(C,Wc);k=C.prototype;k.clone=function(){var a=new C(null);a.ba(this.f,this.B.slice());return a};k.tb=function(a,b,c,d){var e=this.B;a=va(a,b,e[0],e[1]);if(a<d){d=this.a;for(b=0;b<d;++b)c[b]=e[b];c.length=d;return a}return d};k.Z=function(){return this.B?this.B.slice():[]};k.Od=function(a){return Wb(this.B,a)};k.Y=function(){return"Point"};k.Ka=function(a){return Rb(a,this.B[0],this.B[1])};
|
||||||
|
k.ra=function(a,b){a?(Zc(this,b,a,0),this.B||(this.B=[]),this.B.length=gd(this.B,a),this.u()):this.ba("XY",null)};k.ba=function(a,b){Yc(this,a,b);this.u()};function pd(a,b,c,d,e){return!bc(e,function(e){return!qd(a,b,c,d,e[0],e[1])})}function qd(a,b,c,d,e,f){for(var g=!1,h=a[c-d],l=a[c-d+1];b<c;b+=d){var m=a[b],n=a[b+1];l>f!=n>f&&e<(m-h)*(f-l)/(n-l)+h&&(g=!g);h=m;l=n}return g}function rd(a,b,c,d,e,f){if(0===c.length||!qd(a,b,c[0],d,e,f))return!1;var g;b=1;for(g=c.length;b<g;++b)if(qd(a,c[b-1],c[b],d,e,f))return!1;return!0};function sd(a,b,c,d,e,f,g){var h,l,m,n,p,q=e[f+1],r=[],v=c[0];m=a[v-d];p=a[v-d+1];for(h=b;h<v;h+=d){n=a[h];l=a[h+1];if(q<=p&&l<=q||p<=q&&q<=l)m=(q-p)/(l-p)*(n-m)+m,r.push(m);m=n;p=l}v=NaN;p=-Infinity;r.sort(fb);m=r[0];h=1;for(l=r.length;h<l;++h){n=r[h];var y=Math.abs(n-m);y>p&&(m=(m+n)/2,rd(a,b,c,d,m,q)&&(v=m,p=y));m=n}isNaN(v)&&(v=e[f]);return g?(g.push(v,q),g):[v,q]};function td(a,b,c,d,e,f){for(var g=[a[b],a[b+1]],h=[],l;b+d<c;b+=d){h[0]=a[b+d];h[1]=a[b+d+1];if(l=e.call(f,g,h))return l;g[0]=h[0];g[1]=h[1]}return!1};function ud(a,b,c,d,e){var f=Zb(Jb(),a,b,c,d);return oc(e,f)?Sb(e,f)||f[0]>=e[0]&&f[2]<=e[2]||f[1]>=e[1]&&f[3]<=e[3]?!0:td(a,b,c,d,function(a,b){var c=!1,d=Tb(e,a),f=Tb(e,b);if(1===d||1===f)c=!0;else{var p=e[0],q=e[1],r=e[2],v=e[3],y=b[0],w=b[1],G=(w-a[1])/(y-a[0]);f&2&&!(d&2)&&(c=y-(w-v)/G,c=c>=p&&c<=r);c||!(f&4)||d&4||(c=w-(y-r)*G,c=c>=q&&c<=v);c||!(f&8)||d&8||(c=y-(w-q)/G,c=c>=p&&c<=r);c||!(f&16)||d&16||(c=w-(y-p)*G,c=c>=q&&c<=v)}return c}):!1}
|
||||||
|
function vd(a,b,c,d,e){var f=c[0];if(!(ud(a,b,f,d,e)||qd(a,b,f,d,e[0],e[1])||qd(a,b,f,d,e[0],e[3])||qd(a,b,f,d,e[2],e[1])||qd(a,b,f,d,e[2],e[3])))return!1;if(1===c.length)return!0;b=1;for(f=c.length;b<f;++b)if(pd(a,c[b-1],c[b],d,e))return!1;return!0};function wd(a,b,c,d){for(var e=0,f=a[c-d],g=a[c-d+1];b<c;b+=d)var h=a[b],l=a[b+1],e=e+(h-f)*(l+g),f=h,g=l;return 0<e}function xd(a,b,c,d){var e=0;d=void 0!==d?d:!1;var f,g;f=0;for(g=b.length;f<g;++f){var h=b[f],e=wd(a,e,h,c);if(0===f){if(d&&e||!d&&!e)return!1}else if(d&&!e||!d&&e)return!1;e=h}return!0}
|
||||||
|
function yd(a,b,c,d,e){e=void 0!==e?e:!1;var f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],l=wd(a,b,h,d);if(0===f?e&&l||!e&&!l:e&&!l||!e&&l)for(var l=a,m=h,n=d;b<m-n;){var p;for(p=0;p<n;++p){var q=l[b+p];l[b+p]=l[m-n+p];l[m-n+p]=q}b+=n;m-=n}b=h}return b}function zd(a,b,c,d){var e=0,f,g;f=0;for(g=b.length;f<g;++f)e=yd(a,e,b[f],c,d);return e};function E(a,b){Wc.call(this);this.i=[];this.D=-1;this.C=null;this.T=this.S=this.P=-1;this.j=null;this.ra(a,b)}x(E,Wc);k=E.prototype;k.yj=function(a){this.B?jb(this.B,a.la()):this.B=a.la().slice();this.i.push(this.B.length);this.u()};k.clone=function(){var a=new E(null);a.ba(this.f,this.B.slice(),this.i.slice());return a};
|
||||||
|
k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.S!=this.g&&(this.P=Math.sqrt(dd(this.B,0,this.i,this.a,0)),this.S=this.g);return fd(this.B,0,this.i,this.a,this.P,!0,a,b,c,d)};k.Bc=function(a,b){return rd(this.Nb(),0,this.i,this.a,a,b)};k.qm=function(){return ad(this.Nb(),0,this.i,this.a)};k.Z=function(a){var b;void 0!==a?(b=this.Nb().slice(),yd(b,0,this.i,this.a,a)):b=this.B;return kd(b,0,this.i,this.a)};k.Eb=function(){return this.i};
|
||||||
|
function Ad(a){if(a.D!=a.g){var b=lc(a.H());a.C=sd(a.Nb(),0,a.i,a.a,b,0);a.D=a.g}return a.C}k.bk=function(){return new C(Ad(this))};k.gk=function(){return this.i.length};k.Hg=function(a){if(0>a||this.i.length<=a)return null;var b=new nd(null);od(b,this.f,this.B.slice(0===a?0:this.i[a-1],this.i[a]));return b};k.Vd=function(){var a=this.f,b=this.B,c=this.i,d=[],e=0,f,g;f=0;for(g=c.length;f<g;++f){var h=c[f],l=new nd(null);od(l,a,b.slice(e,h));d.push(l);e=h}return d};
|
||||||
|
k.Nb=function(){if(this.T!=this.g){var a=this.B;xd(a,this.i,this.a)?this.j=a:(this.j=a.slice(),this.j.length=yd(this.j,0,this.i,this.a));this.T=this.g}return this.j};k.Nc=function(a){var b=[],c=[];b.length=md(this.B,0,this.i,this.a,Math.sqrt(a),b,0,c);a=new E(null);a.ba("XY",b,c);return a};k.Y=function(){return"Polygon"};k.Ka=function(a){return vd(this.Nb(),0,this.i,this.a,a)};
|
||||||
|
k.ra=function(a,b){if(a){Zc(this,b,a,2);this.B||(this.B=[]);var c=id(this.B,0,a,this.a,this.i);this.B.length=0===c.length?0:c[c.length-1];this.u()}else this.ba("XY",null,this.i)};k.ba=function(a,b,c){Yc(this,a,b);this.i=c;this.u()};function Bd(a,b,c,d){var e=d?d:32;d=[];var f;for(f=0;f<e;++f)jb(d,a.offset(b,c,2*Math.PI*f/e));d.push(d[0],d[1]);a=new E(null);a.ba("XY",d,[d.length]);return a}
|
||||||
|
function Cd(a){var b=a[0],c=a[1],d=a[2];a=a[3];b=[b,c,b,a,d,a,d,c,b,c];c=new E(null);c.ba("XY",b,[b.length]);return c}function Dd(a,b,c){var d=b?b:32,e=a.va();b=a.f;for(var f=new E(null,b),d=e*(d+1),e=Array(d),g=0;g<d;g++)e[g]=0;f.ba(b,e,[e.length]);Ed(f,a.rd(),a.wf(),c);return f}function Ed(a,b,c,d){var e=a.la(),f=a.f,g=a.va(),h=a.Eb(),l=e.length/g-1;d=d?d:0;for(var m,n,p=0;p<=l;++p)n=p*g,m=d+2*xa(p,l)*Math.PI/l,e[n]=b[0]+c*Math.cos(m),e[n+1]=b[1]+c*Math.sin(m);a.ba(f,e,h)};function Fd(a){bb.call(this);a=a||{};this.f=[0,0];var b={};b.center=void 0!==a.center?a.center:null;this.l=Nc(a.projection);var c,d,e,f=void 0!==a.minZoom?a.minZoom:0;c=void 0!==a.maxZoom?a.maxZoom:28;var g=void 0!==a.zoomFactor?a.zoomFactor:2;if(void 0!==a.resolutions)c=a.resolutions,d=c[0],e=c[c.length-1],c=qb(c);else{d=Nc(a.projection);e=d.H();var h=(e?Math.max(jc(e),kc(e)):360*vc.degrees/d.ac())/256/Math.pow(2,0),l=h/Math.pow(2,28);d=a.maxResolution;void 0!==d?f=0:d=h/Math.pow(g,f);e=a.minResolution;
|
||||||
|
void 0===e&&(e=void 0!==a.maxZoom?void 0!==a.maxResolution?d/Math.pow(g,c):h/Math.pow(g,c):l);c=f+Math.floor(Math.log(d/e)/Math.log(g));e=d/Math.pow(g,c-f);c=rb(g,d,c-f)}this.a=d;this.c=e;this.j=a.resolutions;this.i=f;f=void 0!==a.extent?za(a.extent):Aa;(void 0!==a.enableRotation?a.enableRotation:1)?(d=a.constrainRotation,d=void 0===d||!0===d?vb():!1===d?tb:"number"===typeof d?ub(d):tb):d=sb;this.o=new Ba(f,c,d);void 0!==a.resolution?b.resolution=a.resolution:void 0!==a.zoom&&(b.resolution=this.constrainResolution(this.a,
|
||||||
|
a.zoom-this.i));b.rotation=void 0!==a.rotation?a.rotation:0;this.G(b)}x(Fd,bb);k=Fd.prototype;k.Pd=function(a){return this.o.center(a)};k.constrainResolution=function(a,b,c){return this.o.resolution(a,b||0,c||0)};k.constrainRotation=function(a,b){return this.o.rotation(a,b||0)};k.ab=function(){return this.get("center")};function Gd(a,b){return void 0!==b?(b[0]=a.f[0],b[1]=a.f[1],b):a.f.slice()}k.Kc=function(a){var b=this.ab(),c=this.$(),d=this.La();return mc(b,c,d,a)};k.Vl=function(){return this.a};
|
||||||
|
k.Wl=function(){return this.c};k.Xl=function(){return this.l};k.$=function(){return this.get("resolution")};k.Yl=function(){return this.j};function Hd(a,b){return Math.max(jc(a)/b[0],kc(a)/b[1])}function Id(a){var b=a.a,c=Math.log(b/a.c)/Math.log(2);return function(a){return b/Math.pow(2,a*c)}}k.La=function(){return this.get("rotation")};function Jd(a){var b=a.a,c=Math.log(b/a.c)/Math.log(2);return function(a){return Math.log(b/a)/Math.log(2)/c}}
|
||||||
|
k.V=function(){var a=this.ab(),b=this.l,c=this.$(),d=this.La();return{center:[Math.round(a[0]/c)*c,Math.round(a[1]/c)*c],projection:void 0!==b?b:null,resolution:c,rotation:d}};k.Fk=function(){var a,b=this.$();if(void 0!==b){var c,d=0;do{c=this.constrainResolution(this.a,d);if(c==b){a=d;break}++d}while(c>this.c)}return void 0!==a?this.i+a:a};
|
||||||
|
k.cf=function(a,b,c){a instanceof Wc||(a=Cd(a));var d=c||{};c=void 0!==d.padding?d.padding:[0,0,0,0];var e=void 0!==d.constrainResolution?d.constrainResolution:!0,f=void 0!==d.nearest?d.nearest:!1,g;void 0!==d.minResolution?g=d.minResolution:void 0!==d.maxZoom?g=this.constrainResolution(this.a,d.maxZoom-this.i,0):g=0;var h=a.la(),l=this.La(),d=Math.cos(-l),l=Math.sin(-l),m=Infinity,n=Infinity,p=-Infinity,q=-Infinity;a=a.va();for(var r=0,v=h.length;r<v;r+=a)var y=h[r]*d-h[r+1]*l,w=h[r]*l+h[r+1]*d,
|
||||||
|
m=Math.min(m,y),n=Math.min(n,w),p=Math.max(p,y),q=Math.max(q,w);b=Hd([m,n,p,q],[b[0]-c[1]-c[3],b[1]-c[0]-c[2]]);b=isNaN(b)?g:Math.max(b,g);e&&(g=this.constrainResolution(b,0,0),!f&&g<b&&(g=this.constrainResolution(g,-1,0)),b=g);this.Vb(b);l=-l;f=(m+p)/2+(c[1]-c[3])/2*b;c=(n+q)/2+(c[0]-c[2])/2*b;this.nb([f*d-c*l,c*d+f*l])};
|
||||||
|
k.Ej=function(a,b,c){var d=this.La(),e=Math.cos(-d),d=Math.sin(-d),f=a[0]*e-a[1]*d;a=a[1]*e+a[0]*d;var g=this.$(),f=f+(b[0]/2-c[0])*g;a+=(c[1]-b[1]/2)*g;d=-d;this.nb([f*e-a*d,a*e+f*d])};function Kd(a){return!!a.ab()&&void 0!==a.$()}k.rotate=function(a,b){if(void 0!==b){var c,d=this.ab();void 0!==d&&(c=[d[0]-b[0],d[1]-b[1]],Db(c,a-this.La()),yb(c,b));this.nb(c)}this.ie(a)};k.nb=function(a){this.set("center",a)};function Ld(a,b){a.f[1]+=b}k.Vb=function(a){this.set("resolution",a)};
|
||||||
|
k.ie=function(a){this.set("rotation",a)};k.np=function(a){a=this.constrainResolution(this.a,a-this.i,0);this.Vb(a)};function Md(a){return Math.pow(a,3)}function Nd(a){return 1-Md(1-a)}function Qd(a){return 3*a*a-2*a*a*a}function Rd(a){return a}function Sd(a){return.5>a?Qd(2*a):1-Qd(2*(a-.5))};function Td(a){var b=a.source,c=a.start?a.start:Date.now(),d=b[0],e=b[1],f=void 0!==a.duration?a.duration:1E3,g=a.easing?a.easing:Qd;return function(a,b){if(b.time<c)return b.animate=!0,b.viewHints[0]+=1,!0;if(b.time<c+f){var m=1-g((b.time-c)/f),n=d-b.viewState.center[0],p=e-b.viewState.center[1];b.animate=!0;b.viewState.center[0]+=m*n;b.viewState.center[1]+=m*p;b.viewHints[0]+=1;return!0}return!1}}
|
||||||
|
function Ud(a){var b=a.rotation?a.rotation:0,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Qd,f=a.anchor?a.anchor:null;return function(a,h){if(h.time<c)return h.animate=!0,h.viewHints[0]+=1,!0;if(h.time<c+d){var l=1-e((h.time-c)/d),l=(b-h.viewState.rotation)*l;h.animate=!0;h.viewState.rotation+=l;if(f){var m=h.viewState.center;m[0]-=f[0];m[1]-=f[1];Db(m,l);yb(m,f)}h.viewHints[0]+=1;return!0}return!1}}
|
||||||
|
function Vd(a){var b=a.resolution,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Qd;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[0]+=1,!0;if(g.time<c+d){var h=1-e((g.time-c)/d),l=b-g.viewState.resolution;g.animate=!0;g.viewState.resolution+=h*l;g.viewHints[0]+=1;return!0}return!1}};function Wd(a,b,c,d){this.ca=a;this.ea=b;this.fa=c;this.ga=d}Wd.prototype.contains=function(a){return Xd(this,a[1],a[2])};function Xd(a,b,c){return a.ca<=b&&b<=a.ea&&a.fa<=c&&c<=a.ga}function Yd(a,b){return a.ca==b.ca&&a.fa==b.fa&&a.ea==b.ea&&a.ga==b.ga}function Zd(a,b){return a.ca<=b.ea&&a.ea>=b.ca&&a.fa<=b.ga&&a.ga>=b.fa};function $d(a){this.a=a.html;this.b=a.tileRanges?a.tileRanges:null}$d.prototype.g=function(){return this.a};function ae(a,b){Ua.call(this,a);this.element=b}x(ae,Ua);function be(a){bb.call(this);this.a=a?a:[];ce(this)}x(be,bb);k=be.prototype;k.clear=function(){for(;0<this.dc();)this.pop()};k.qf=function(a){var b,c;b=0;for(c=a.length;b<c;++b)this.push(a[b]);return this};k.forEach=function(a,b){this.a.forEach(a,b)};k.Gl=function(){return this.a};k.item=function(a){return this.a[a]};k.dc=function(){return this.get("length")};k.ee=function(a,b){this.a.splice(a,0,b);ce(this);this.b(new ae("add",b))};
|
||||||
|
k.pop=function(){return this.Rf(this.dc()-1)};k.push=function(a){var b=this.a.length;this.ee(b,a);return b};k.remove=function(a){var b=this.a,c,d;c=0;for(d=b.length;c<d;++c)if(b[c]===a)return this.Rf(c)};k.Rf=function(a){var b=this.a[a];this.a.splice(a,1);ce(this);this.b(new ae("remove",b));return b};k.Zo=function(a,b){var c=this.dc();if(a<c)c=this.a[a],this.a[a]=b,this.b(new ae("remove",c)),this.b(new ae("add",b));else{for(;c<a;++c)this.ee(c,void 0);this.ee(a,b)}};
|
||||||
|
function ce(a){a.set("length",a.a.length)};function de(a){return Array.prototype.concat.apply(Array.prototype,arguments)}function ee(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]}function fe(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var ge=/^#(?:[0-9a-f]{3}){1,2}$/i,he=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i,ie=/^(?:rgba)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|1|0\.\d{0,10})\)$/i;function je(a){return Array.isArray(a)?a:ke(a)}function le(a){if("string"!==typeof a){var b=a[0];b!=(b|0)&&(b=b+.5|0);var c=a[1];c!=(c|0)&&(c=c+.5|0);var d=a[2];d!=(d|0)&&(d=d+.5|0);a="rgba("+b+","+c+","+d+","+(void 0===a[3]?1:a[3])+")"}return a}
|
||||||
|
var ke=function(){var a={},b=0;return function(c){var d;if(a.hasOwnProperty(c))d=a[c];else{if(1024<=b){d=0;for(var e in a)0===(d++&3)&&(delete a[e],--b)}var f,g;ge.exec(c)?(g=3==c.length-1?1:2,d=parseInt(c.substr(1+0*g,g),16),e=parseInt(c.substr(1+1*g,g),16),f=parseInt(c.substr(1+2*g,g),16),1==g&&(d=(d<<4)+d,e=(e<<4)+e,f=(f<<4)+f),d=[d,e,f,1]):(g=ie.exec(c))?(d=Number(g[1]),e=Number(g[2]),f=Number(g[3]),g=Number(g[4]),d=[d,e,f,g],d=me(d,d)):(g=he.exec(c))?(d=Number(g[1]),e=Number(g[2]),f=Number(g[3]),
|
||||||
|
d=[d,e,f,1],d=me(d,d)):d=void 0;a[c]=d;++b}return d}}();function me(a,b){var c=b||[];c[0]=sa(a[0]+.5|0,0,255);c[1]=sa(a[1]+.5|0,0,255);c[2]=sa(a[2]+.5|0,0,255);c[3]=sa(a[3],0,1);return c};function ne(a){return"string"===typeof a||a instanceof CanvasPattern||a instanceof CanvasGradient?a:le(a)};var oe;a:{var pe=aa.navigator;if(pe){var qe=pe.userAgent;if(qe){oe=qe;break a}}oe=""}function re(a){return-1!=oe.indexOf(a)};var se=re("Opera"),te=re("Trident")||re("MSIE"),ue=re("Edge"),ve=re("Gecko")&&!(-1!=oe.toLowerCase().indexOf("webkit")&&!re("Edge"))&&!(re("Trident")||re("MSIE"))&&!re("Edge"),we=-1!=oe.toLowerCase().indexOf("webkit")&&!re("Edge"),xe;
|
||||||
|
a:{var ye="",ze=function(){var a=oe;if(ve)return/rv\:([^\);]+)(\)|;)/.exec(a);if(ue)return/Edge\/([\d\.]+)/.exec(a);if(te)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(we)return/WebKit\/(\S+)/.exec(a);if(se)return/(?:Version)[ \/]?(\S+)/.exec(a)}();ze&&(ye=ze?ze[1]:"");if(te){var Ae,Be=aa.document;Ae=Be?Be.documentMode:void 0;if(null!=Ae&&Ae>parseFloat(ye)){xe=String(Ae);break a}}xe=ye}var Ce={};function De(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Ee(a,b){a[0]=b[0];a[1]=b[1];a[4]=b[2];a[5]=b[3];a[12]=b[4];a[13]=b[5];return a};var Fe=De();function Ge(a,b){var c=document.createElement("CANVAS");a&&(c.width=a);b&&(c.height=b);return c.getContext("2d")}
|
||||||
|
var He=function(){var a;return function(){if(void 0===a){var b=document.createElement("P"),c,d={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]="translate(1px,1px)",c=pa.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&"none"!==c}return a}}(),Ie=function(){var a;return function(){if(void 0===a){var b=document.createElement("P"),
|
||||||
|
c,d={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.appendChild(b);for(var e in d)e in b.style&&(b.style[e]="translate3d(1px,1px,1px)",c=pa.getComputedStyle(b).getPropertyValue(d[e]));document.body.removeChild(b);a=c&&"none"!==c}return a}}();
|
||||||
|
function Je(a,b){var c=a.style;c.WebkitTransform=b;c.MozTransform=b;c.b=b;c.msTransform=b;c.transform=b;if((c=te)&&!(c=Ce["9.0"])){for(var c=0,d=qa(String(xe)).split("."),e=qa("9.0").split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",l=e[g]||"",m=RegExp("(\\d*)(\\D*)","g"),n=RegExp("(\\d*)(\\D*)","g");do{var p=m.exec(h)||["","",""],q=n.exec(l)||["","",""];if(0==p[0].length&&0==q[0].length)break;c=ra(0==p[1].length?0:parseInt(p[1],10),0==q[1].length?0:parseInt(q[1],10))||ra(0==
|
||||||
|
p[2].length,0==q[2].length)||ra(p[2],q[2])}while(0==c)}c=Ce["9.0"]=0<=c}c&&(a.style.transformOrigin="0 0")}function Ke(a,b){var c;if(Ie()){var d=Ee(Fe,b),e=Array(16);for(c=0;16>c;++c)e[c]=d[c].toFixed(6);Je(a,"matrix3d("+e.join(",")+")")}else if(He()){d=Array(6);for(c=0;6>c;++c)d[c]=b[c].toFixed(6);Je(a,"matrix("+d.join(",")+")")}else a.style.left=Math.round(b[4])+"px",a.style.top=Math.round(b[5])+"px"}function Le(a,b){var c=b.parentNode;c&&c.replaceChild(a,b)}
|
||||||
|
function Me(a){a&&a.parentNode&&a.parentNode.removeChild(a)}function Ne(a){for(;a.lastChild;)a.removeChild(a.lastChild)};function Oe(a,b,c){Ua.call(this,a);this.map=b;this.frameState=void 0!==c?c:null}x(Oe,Ua);function Pe(a){bb.call(this);this.element=a.element?a.element:null;this.a=this.P=null;this.s=[];this.render=a.render?a.render:oa;a.target&&this.c(a.target)}x(Pe,bb);Pe.prototype.ka=function(){Me(this.element);bb.prototype.ka.call(this)};Pe.prototype.i=function(){return this.a};
|
||||||
|
Pe.prototype.setMap=function(a){this.a&&Me(this.element);for(var b=0,c=this.s.length;b<c;++b)Ka(this.s[b]);this.s.length=0;if(this.a=a)(this.P?this.P:a.v).appendChild(this.element),this.render!==oa&&this.s.push(B(a,"postrender",this.render,this)),a.render()};Pe.prototype.c=function(a){this.P="string"===typeof a?document.getElementById(a):a};function Qe(){this.g=0;this.f={};this.a=this.b=null}k=Qe.prototype;k.clear=function(){this.g=0;this.f={};this.a=this.b=null};function Re(a,b){return a.f.hasOwnProperty(b)}k.forEach=function(a,b){for(var c=this.b;c;)a.call(b,c.pc,c.Mb,this),c=c.zb};k.get=function(a){a=this.f[a];if(a===this.a)return a.pc;a===this.b?(this.b=this.b.zb,this.b.kc=null):(a.zb.kc=a.kc,a.kc.zb=a.zb);a.zb=null;a.kc=this.a;this.a=this.a.zb=a;return a.pc};k.wc=function(){return this.g};
|
||||||
|
k.N=function(){var a=Array(this.g),b=0,c;for(c=this.a;c;c=c.kc)a[b++]=c.Mb;return a};k.zc=function(){var a=Array(this.g),b=0,c;for(c=this.a;c;c=c.kc)a[b++]=c.pc;return a};k.pop=function(){var a=this.b;delete this.f[a.Mb];a.zb&&(a.zb.kc=null);this.b=a.zb;this.b||(this.a=null);--this.g;return a.pc};k.replace=function(a,b){this.get(a);this.f[a].pc=b};k.set=function(a,b){var c={Mb:a,zb:null,kc:this.a,pc:b};this.a?this.a.zb=c:this.b=c;this.a=c;this.f[a]=c;++this.g};function Se(a,b,c,d){return void 0!==d?(d[0]=a,d[1]=b,d[2]=c,d):[a,b,c]}function Te(a){var b=a[0],c=Array(b),d=1<<b-1,e,f;for(e=0;e<b;++e)f=48,a[1]&d&&(f+=1),a[2]&d&&(f+=2),c[e]=String.fromCharCode(f),d>>=1;return c.join("")};function Ue(a){Qe.call(this);this.c=void 0!==a?a:2048}x(Ue,Qe);function Ve(a){return a.wc()>a.c}Ue.prototype.Lc=function(a){for(var b,c;Ve(this)&&!(b=this.b.pc,c=b.ma[0].toString(),c in a&&a[c].contains(b.ma));)Ta(this.pop())};function We(a,b){Xa.call(this);this.ma=a;this.state=b;this.a=null;this.key=""}x(We,Xa);function Xe(a){a.b("change")}We.prototype.jb=function(){return t(this).toString()};We.prototype.i=function(){return this.ma};We.prototype.V=function(){return this.state};function Ye(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]+2*b;c[1]=a[1]+2*b;return c}function Ze(a,b,c){void 0===c&&(c=[0,0]);c[0]=a[0]*b+.5|0;c[1]=a[1]*b+.5|0;return c}function $e(a,b){if(Array.isArray(a))return a;void 0===b?b=[a,a]:(b[0]=a,b[1]=a);return b};function af(a){bb.call(this);this.f=zc(a.projection);this.l=bf(a.attributions);this.S=a.logo;this.Ba=void 0!==a.state?a.state:"ready";this.C=void 0!==a.wrapX?a.wrapX:!1}x(af,bb);function bf(a){if("string"===typeof a)return[new $d({html:a})];if(a instanceof $d)return[a];if(Array.isArray(a)){for(var b=a.length,c=Array(b),d=0;d<b;d++){var e=a[d];c[d]="string"===typeof e?new $d({html:e}):e}return c}return null}k=af.prototype;k.sa=oa;k.wa=function(){return this.l};k.ua=function(){return this.S};k.xa=function(){return this.f};
|
||||||
|
k.V=function(){return this.Ba};k.ta=function(){this.u()};k.qa=function(a){this.l=bf(a);this.u()};function cf(a,b){a.Ba=b;a.u()};function df(a){this.minZoom=void 0!==a.minZoom?a.minZoom:0;this.b=a.resolutions;this.maxZoom=this.b.length-1;this.g=void 0!==a.origin?a.origin:null;this.c=null;void 0!==a.origins&&(this.c=a.origins);var b=a.extent;void 0===b||this.g||this.c||(this.g=fc(b));this.i=null;void 0!==a.tileSizes&&(this.i=a.tileSizes);this.o=void 0!==a.tileSize?a.tileSize:this.i?null:256;this.s=void 0!==b?b:null;this.a=null;this.f=[0,0];void 0!==a.sizes?this.a=a.sizes.map(function(a){return new Wd(Math.min(0,a[0]),Math.max(a[0]-
|
||||||
|
1,-1),Math.min(0,a[1]),Math.max(a[1]-1,-1))},this):b&&ef(this,b)}var ff=[0,0,0];k=df.prototype;k.yg=function(a,b,c){a=gf(this,a,b);for(var d=a.ca,e=a.ea;d<=e;++d)for(var f=a.fa,g=a.ga;f<=g;++f)c([b,d,f])};function hf(a,b,c,d,e){e=a.Ea(b,e);for(b=b[0]-1;b>=a.minZoom;){if(c.call(null,b,gf(a,e,b,d)))return!0;--b}return!1}k.H=function(){return this.s};k.Ig=function(){return this.maxZoom};k.Jg=function(){return this.minZoom};k.Ia=function(a){return this.g?this.g:this.c[a]};k.$=function(a){return this.b[a]};
|
||||||
|
k.Kh=function(){return this.b};function jf(a,b,c,d){return b[0]<a.maxZoom?(d=a.Ea(b,d),gf(a,d,b[0]+1,c)):null}function kf(a,b,c,d){lf(a,b[0],b[1],c,!1,ff);var e=ff[1],f=ff[2];lf(a,b[2],b[3],c,!0,ff);a=ff[1];b=ff[2];void 0!==d?(d.ca=e,d.ea=a,d.fa=f,d.ga=b):d=new Wd(e,a,f,b);return d}function gf(a,b,c,d){c=a.$(c);return kf(a,b,c,d)}function mf(a,b){var c=a.Ia(b[0]),d=a.$(b[0]),e=$e(a.Ja(b[0]),a.f);return[c[0]+(b[1]+.5)*e[0]*d,c[1]+(b[2]+.5)*e[1]*d]}
|
||||||
|
k.Ea=function(a,b){var c=this.Ia(a[0]),d=this.$(a[0]),e=$e(this.Ja(a[0]),this.f),f=c[0]+a[1]*e[0]*d,c=c[1]+a[2]*e[1]*d;return Vb(f,c,f+e[0]*d,c+e[1]*d,b)};k.Zd=function(a,b,c){return lf(this,a[0],a[1],b,!1,c)};function lf(a,b,c,d,e,f){var g=a.Lb(d),h=d/a.$(g),l=a.Ia(g);a=$e(a.Ja(g),a.f);b=h*Math.floor((b-l[0])/d+(e?.5:0))/a[0];c=h*Math.floor((c-l[1])/d+(e?0:.5))/a[1];e?(b=Math.ceil(b)-1,c=Math.ceil(c)-1):(b=Math.floor(b),c=Math.floor(c));return Se(g,b,c,f)}
|
||||||
|
k.qd=function(a,b,c){b=this.$(b);return lf(this,a[0],a[1],b,!1,c)};k.Ja=function(a){return this.o?this.o:this.i[a]};k.Lb=function(a,b){var c=hb(this.b,a,b||0);return sa(c,this.minZoom,this.maxZoom)};function ef(a,b){for(var c=a.b.length,d=Array(c),e=a.minZoom;e<c;++e)d[e]=gf(a,b,e);a.a=d}function nf(a){var b=a.l;if(!b){var b=of(a),c=pf(b,void 0,void 0),b=new df({extent:b,origin:fc(b),resolutions:c,tileSize:void 0});a.l=b}return b}
|
||||||
|
function qf(a){var b={};Ca(b,void 0!==a?a:{});void 0===b.extent&&(b.extent=zc("EPSG:3857").H());b.resolutions=pf(b.extent,b.maxZoom,b.tileSize);delete b.maxZoom;return new df(b)}function pf(a,b,c){b=void 0!==b?b:42;var d=kc(a);a=jc(a);c=$e(void 0!==c?c:256);c=Math.max(a/c[0],d/c[1]);b+=1;d=Array(b);for(a=0;a<b;++a)d[a]=c/Math.pow(2,a);return d}function of(a){a=zc(a);var b=a.H();b||(a=180*vc.degrees/a.ac(),b=Vb(-a,-a,a,a));return b};function rf(a){af.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,state:a.state,wrapX:a.wrapX});this.ia=void 0!==a.opaque?a.opaque:!1;this.oa=void 0!==a.tilePixelRatio?a.tilePixelRatio:1;this.tileGrid=void 0!==a.tileGrid?a.tileGrid:null;this.a=new Ue(a.cacheSize);this.o=[0,0];this.Mb=""}x(rf,af);k=rf.prototype;k.Ah=function(){return Ve(this.a)};k.Lc=function(a,b){var c=this.pd(a);c&&c.Lc(b)};
|
||||||
|
function tf(a,b,c,d,e){b=a.pd(b);if(!b)return!1;for(var f=!0,g,h,l=d.ca;l<=d.ea;++l)for(var m=d.fa;m<=d.ga;++m)g=a.Fb(c,l,m),h=!1,Re(b,g)&&(g=b.get(g),(h=2===g.V())&&(h=!1!==e(g))),h||(f=!1);return f}k.Ud=function(){return 0};function uf(a,b){a.Mb!==b&&(a.Mb=b,a.u())}k.Fb=function(a,b,c){return a+"/"+b+"/"+c};k.jf=function(){return this.ia};k.Na=function(){return this.tileGrid};k.fb=function(a){return this.tileGrid?this.tileGrid:nf(a)};k.pd=function(a){var b=this.f;return b&&!Pc(b,a)?null:this.a};
|
||||||
|
k.cc=function(){return this.oa};k.$d=function(a,b,c){c=this.fb(c);b=this.cc(b);a=$e(c.Ja(a),this.o);return 1==b?a:Ze(a,b,this.o)};function vf(a,b,c){var d=void 0!==c?c:a.f;c=a.fb(d);if(a.C&&d.g){var e=b;b=e[0];a=mf(c,e);d=of(d);Qb(d,a)?b=e:(e=jc(d),a[0]+=e*Math.ceil((d[0]-a[0])/e),b=c.qd(a,b))}e=b[0];d=b[1];a=b[2];if(c.minZoom>e||e>c.maxZoom)c=!1;else{var f=c.H();c=(c=f?gf(c,f,e):c.a?c.a[e]:null)?Xd(c,d,a):!0}return c?b:null}k.ta=function(){this.a.clear();this.u()};k.Yf=oa;
|
||||||
|
function wf(a,b){Ua.call(this,a);this.tile=b}x(wf,Ua);function xf(a){a=a?a:{};this.S=document.createElement("UL");this.v=document.createElement("LI");this.S.appendChild(this.v);this.v.style.display="none";this.f=void 0!==a.collapsed?a.collapsed:!0;this.o=void 0!==a.collapsible?a.collapsible:!0;this.o||(this.f=!1);var b=void 0!==a.className?a.className:"ol-attribution",c=void 0!==a.tipLabel?a.tipLabel:"Attributions",d=void 0!==a.collapseLabel?a.collapseLabel:"\u00bb";"string"===typeof d?(this.A=document.createElement("span"),this.A.textContent=d):this.A=
|
||||||
|
d;d=void 0!==a.label?a.label:"i";"string"===typeof d?(this.D=document.createElement("span"),this.D.textContent=d):this.D=d;var e=this.o&&!this.f?this.A:this.D,d=document.createElement("button");d.setAttribute("type","button");d.title=c;d.appendChild(e);B(d,"click",this.am,this);c=document.createElement("div");c.className=b+" ol-unselectable ol-control"+(this.f&&this.o?" ol-collapsed":"")+(this.o?"":" ol-uncollapsible");c.appendChild(this.S);c.appendChild(d);Pe.call(this,{element:c,render:a.render?
|
||||||
|
a.render:yf,target:a.target});this.C=!0;this.j={};this.l={};this.T={}}x(xf,Pe);
|
||||||
|
function yf(a){if(a=a.frameState){var b,c,d,e,f,g,h,l,m,n,p,q=a.layerStatesArray,r=Ca({},a.attributions),v={},y=a.viewState.projection;c=0;for(b=q.length;c<b;c++)if(g=q[c].layer.ha())if(n=t(g).toString(),m=g.l)for(d=0,e=m.length;d<e;d++)if(h=m[d],l=t(h).toString(),!(l in r)){if(f=a.usedTiles[n]){var w=g.fb(y);a:{p=h;var G=y;if(p.b){var z,D,H,ba=void 0;for(ba in f)if(ba in p.b){H=f[ba];var A;z=0;for(D=p.b[ba].length;z<D;++z){A=p.b[ba][z];if(Zd(A,H)){p=!0;break a}var Fa=gf(w,of(G),parseInt(ba,10)),
|
||||||
|
Ja=Fa.ea-Fa.ca+1;if(H.ca<Fa.ca||H.ea>Fa.ea)if(Zd(A,new Wd(xa(H.ca,Ja),xa(H.ea,Ja),H.fa,H.ga))||H.ea-H.ca+1>Ja&&Zd(A,Fa)){p=!0;break a}}}p=!1}else p=!0}}else p=!1;p?(l in v&&delete v[l],r[l]=h):v[l]=h}b=[r,v];c=b[0];b=b[1];for(var M in this.j)M in c?(this.l[M]||(this.j[M].style.display="",this.l[M]=!0),delete c[M]):M in b?(this.l[M]&&(this.j[M].style.display="none",delete this.l[M]),delete b[M]):(Me(this.j[M]),delete this.j[M],delete this.l[M]);for(M in c)d=document.createElement("LI"),d.innerHTML=
|
||||||
|
c[M].a,this.S.appendChild(d),this.j[M]=d,this.l[M]=!0;for(M in b)d=document.createElement("LI"),d.innerHTML=b[M].a,d.style.display="none",this.S.appendChild(d),this.j[M]=d;M=!Ga(this.l)||!Ga(a.logos);this.C!=M&&(this.element.style.display=M?"":"none",this.C=M);M&&Ga(this.l)?this.element.classList.add("ol-logo-only"):this.element.classList.remove("ol-logo-only");var ma;a=a.logos;M=this.T;for(ma in M)ma in a||(Me(M[ma]),delete M[ma]);for(var Ub in a)b=a[Ub],b instanceof HTMLElement&&(this.v.appendChild(b),
|
||||||
|
M[Ub]=b),Ub in M||(ma=new Image,ma.src=Ub,""===b?c=ma:(c=document.createElement("a"),c.href=b,c.appendChild(ma)),this.v.appendChild(c),M[Ub]=c);this.v.style.display=Ga(a)?"none":""}else this.C&&(this.element.style.display="none",this.C=!1)}k=xf.prototype;k.am=function(a){a.preventDefault();zf(this)};function zf(a){a.element.classList.toggle("ol-collapsed");a.f?Le(a.A,a.D):Le(a.D,a.A);a.f=!a.f}k.$l=function(){return this.o};
|
||||||
|
k.cm=function(a){this.o!==a&&(this.o=a,this.element.classList.toggle("ol-uncollapsible"),!a&&this.f&&zf(this))};k.bm=function(a){this.o&&this.f!==a&&zf(this)};k.Zl=function(){return this.f};function Af(a){a=a?a:{};var b=void 0!==a.className?a.className:"ol-rotate",c=void 0!==a.label?a.label:"\u21e7";this.f=null;"string"===typeof c?(this.f=document.createElement("span"),this.f.className="ol-compass",this.f.textContent=c):(this.f=c,this.f.classList.add("ol-compass"));var d=a.tipLabel?a.tipLabel:"Reset rotation",c=document.createElement("button");c.className=b+"-reset";c.setAttribute("type","button");c.title=d;c.appendChild(this.f);B(c,"click",Af.prototype.A,this);d=document.createElement("div");
|
||||||
|
d.className=b+" ol-unselectable ol-control";d.appendChild(c);b=a.render?a.render:Bf;this.o=a.resetNorth?a.resetNorth:void 0;Pe.call(this,{element:d,render:b,target:a.target});this.j=void 0!==a.duration?a.duration:250;this.l=void 0!==a.autoHide?a.autoHide:!0;this.v=void 0;this.l&&this.element.classList.add("ol-hidden")}x(Af,Pe);
|
||||||
|
Af.prototype.A=function(a){a.preventDefault();if(void 0!==this.o)this.o();else{a=this.a;var b=a.aa();if(b){var c=b.La();void 0!==c&&(0<this.j&&(c%=2*Math.PI,c<-Math.PI&&(c+=2*Math.PI),c>Math.PI&&(c-=2*Math.PI),a.Wa(Ud({rotation:c,duration:this.j,easing:Nd}))),b.ie(0))}}};
|
||||||
|
function Bf(a){if(a=a.frameState){a=a.viewState.rotation;if(a!=this.v){var b="rotate("+a+"rad)";if(this.l){var c=this.element.classList.contains("ol-hidden");c||0!==a?c&&0!==a&&this.element.classList.remove("ol-hidden"):this.element.classList.add("ol-hidden")}this.f.style.msTransform=b;this.f.style.webkitTransform=b;this.f.style.transform=b}this.v=a}};function Cf(a){a=a?a:{};var b=void 0!==a.className?a.className:"ol-zoom",c=void 0!==a.delta?a.delta:1,d=void 0!==a.zoomInLabel?a.zoomInLabel:"+",e=void 0!==a.zoomOutLabel?a.zoomOutLabel:"\u2212",f=void 0!==a.zoomInTipLabel?a.zoomInTipLabel:"Zoom in",g=void 0!==a.zoomOutTipLabel?a.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=b+"-in";h.setAttribute("type","button");h.title=f;h.appendChild("string"===typeof d?document.createTextNode(d):d);B(h,"click",Cf.prototype.l.bind(this,
|
||||||
|
c));d=document.createElement("button");d.className=b+"-out";d.setAttribute("type","button");d.title=g;d.appendChild("string"===typeof e?document.createTextNode(e):e);B(d,"click",Cf.prototype.l.bind(this,-c));c=document.createElement("div");c.className=b+" ol-unselectable ol-control";c.appendChild(h);c.appendChild(d);Pe.call(this,{element:c,target:a.target});this.f=void 0!==a.duration?a.duration:250}x(Cf,Pe);
|
||||||
|
Cf.prototype.l=function(a,b){b.preventDefault();var c=this.a,d=c.aa();if(d){var e=d.$();e&&(0<this.f&&c.Wa(Vd({resolution:e,duration:this.f,easing:Nd})),c=d.constrainResolution(e,a),d.Vb(c))}};function Df(a){a=a?a:{};var b=new be;(void 0!==a.zoom?a.zoom:1)&&b.push(new Cf(a.zoomOptions));(void 0!==a.rotate?a.rotate:1)&&b.push(new Af(a.rotateOptions));(void 0!==a.attribution?a.attribution:1)&&b.push(new xf(a.attributionOptions));return b};function Ef(a){a=a?a:{};this.f=void 0!==a.className?a.className:"ol-full-screen";var b=void 0!==a.label?a.label:"\u2922";this.o="string"===typeof b?document.createTextNode(b):b;b=void 0!==a.labelActive?a.labelActive:"\u00d7";this.j="string"===typeof b?document.createTextNode(b):b;var c=a.tipLabel?a.tipLabel:"Toggle full-screen",b=document.createElement("button");b.className=this.f+"-"+Ff();b.setAttribute("type","button");b.title=c;b.appendChild(this.o);B(b,"click",this.D,this);c=document.createElement("div");
|
||||||
|
c.className=this.f+" ol-unselectable ol-control "+(Gf()?"":"ol-unsupported");c.appendChild(b);Pe.call(this,{element:c,target:a.target});this.A=void 0!==a.keys?a.keys:!1;this.l=a.source}x(Ef,Pe);
|
||||||
|
Ef.prototype.D=function(a){a.preventDefault();Gf()&&(a=this.a)&&(Ff()?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():(a=this.l?"string"===typeof this.l?document.getElementById(this.l):this.l:a.yc(),this.A?a.mozRequestFullScreenWithKeys?a.mozRequestFullScreenWithKeys():a.webkitRequestFullscreen?a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):
|
||||||
|
Hf(a):Hf(a)))};Ef.prototype.v=function(){var a=this.element.firstElementChild,b=this.a;Ff()?(a.className=this.f+"-true",Le(this.j,this.o)):(a.className=this.f+"-false",Le(this.o,this.j));b&&b.Xc()};Ef.prototype.setMap=function(a){Pe.prototype.setMap.call(this,a);a&&this.s.push(B(pa.document,If(),this.v,this))};
|
||||||
|
function Gf(){var a=document.body;return!!(a.webkitRequestFullscreen||a.mozRequestFullScreen&&document.mozFullScreenEnabled||a.msRequestFullscreen&&document.msFullscreenEnabled||a.requestFullscreen&&document.fullscreenEnabled)}function Ff(){return!!(document.webkitIsFullScreen||document.mozFullScreen||document.msFullscreenElement||document.fullscreenElement)}
|
||||||
|
function Hf(a){a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen()}var If=function(){var a;return function(){if(!a){var b=document.body;b.webkitRequestFullscreen?a="webkitfullscreenchange":b.mozRequestFullScreen?a="mozfullscreenchange":b.msRequestFullscreen?a="MSFullscreenChange":b.requestFullscreen&&(a="fullscreenchange")}return a}}();function Jf(a){a=a?a:{};var b=document.createElement("DIV");b.className=void 0!==a.className?a.className:"ol-mouse-position";Pe.call(this,{element:b,render:a.render?a.render:Kf,target:a.target});B(this,db("projection"),this.dm,this);a.coordinateFormat&&this.ei(a.coordinateFormat);a.projection&&this.ih(zc(a.projection));this.v=void 0!==a.undefinedHTML?a.undefinedHTML:"";this.j=b.innerHTML;this.o=this.l=this.f=null}x(Jf,Pe);
|
||||||
|
function Kf(a){a=a.frameState;a?this.f!=a.viewState.projection&&(this.f=a.viewState.projection,this.l=null):this.f=null;Lf(this,this.o)}k=Jf.prototype;k.dm=function(){this.l=null};k.Cg=function(){return this.get("coordinateFormat")};k.hh=function(){return this.get("projection")};k.Xk=function(a){this.o=this.a.Td(a);Lf(this,this.o)};k.Yk=function(){Lf(this,null);this.o=null};
|
||||||
|
k.setMap=function(a){Pe.prototype.setMap.call(this,a);a&&(a=a.a,this.s.push(B(a,"mousemove",this.Xk,this),B(a,"mouseout",this.Yk,this)))};k.ei=function(a){this.set("coordinateFormat",a)};k.ih=function(a){this.set("projection",a)};function Lf(a,b){var c=a.v;if(b&&a.f){if(!a.l){var d=a.hh();a.l=d?Cc(a.f,d):Rc}if(d=a.a.Ma(b))a.l(d,d),c=(c=a.Cg())?c(d):d.toString()}a.j&&c==a.j||(a.element.innerHTML=c,a.j=c)};function Mf(a,b){var c=a;b&&(c=ka(a,b));"function"!=da(aa.setImmediate)||aa.Window&&aa.Window.prototype&&!re("Edge")&&aa.Window.prototype.setImmediate==aa.setImmediate?(Nf||(Nf=Of()),Nf(c)):aa.setImmediate(c)}var Nf;
|
||||||
|
function Of(){var a=aa.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!re("Presto")&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write("");a.close();var c="callImmediate"+Math.random(),d="file:"==b.location.protocol?"*":b.location.protocol+"//"+b.location.host,a=ka(function(a){if(("*"==d||a.origin==d)&&a.data==
|
||||||
|
c)this.port1.onmessage()},this);b.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&!re("Trident")&&!re("MSIE")){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var a=c.rg;c.rg=null;a()}};return function(a){d.next={rg:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(a){var b=document.createElement("SCRIPT");
|
||||||
|
b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){aa.setTimeout(a,0)}};function Pf(a,b,c){Ua.call(this,a);this.b=b;a=c?c:{};this.buttons=Qf(a);this.pressure=Rf(a,this.buttons);this.bubbles="bubbles"in a?a.bubbles:!1;this.cancelable="cancelable"in a?a.cancelable:!1;this.view="view"in a?a.view:null;this.detail="detail"in a?a.detail:null;this.screenX="screenX"in a?a.screenX:0;this.screenY="screenY"in a?a.screenY:0;this.clientX="clientX"in a?a.clientX:0;this.clientY="clientY"in a?a.clientY:0;this.button="button"in a?a.button:0;this.relatedTarget="relatedTarget"in a?a.relatedTarget:
|
||||||
|
null;this.pointerId="pointerId"in a?a.pointerId:0;this.width="width"in a?a.width:0;this.height="height"in a?a.height:0;this.pointerType="pointerType"in a?a.pointerType:"";this.isPrimary="isPrimary"in a?a.isPrimary:!1;b.preventDefault&&(this.preventDefault=function(){b.preventDefault()})}x(Pf,Ua);function Qf(a){if(a.buttons||Sf)a=a.buttons;else switch(a.which){case 1:a=1;break;case 2:a=4;break;case 3:a=2;break;default:a=0}return a}
|
||||||
|
function Rf(a,b){var c=0;a.pressure?c=a.pressure:c=b?.5:0;return c}var Sf=!1;try{Sf=1===(new MouseEvent("click",{buttons:1})).buttons}catch(a){};var Tf=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function Uf(a,b){var c,d,e=Tf.length;for(d=0;d<e;++d)try{if(c=a.getContext(Tf[d],b))return c}catch(f){}return null};var Vf,Wf="undefined"!==typeof navigator?navigator.userAgent.toLowerCase():"",Xf=-1!==Wf.indexOf("firefox"),Yf=-1!==Wf.indexOf("safari")&&-1===Wf.indexOf("chrom"),Zf=-1!==Wf.indexOf("macintosh"),$f=pa.devicePixelRatio||1,ag=!1,bg=function(){if(!("HTMLCanvasElement"in pa))return!1;try{var a=Ge();return a?(a.setLineDash&&(ag=!0),!0):!1}catch(b){return!1}}(),cg="DeviceOrientationEvent"in pa,dg="geolocation"in pa.navigator,eg="ontouchstart"in pa,fg="PointerEvent"in pa,gg=!!pa.navigator.msPointerEnabled,
|
||||||
|
hg=!1,ig,jg=[];if("WebGLRenderingContext"in pa)try{var kg=Uf(document.createElement("CANVAS"),{failIfMajorPerformanceCaveat:!0});kg&&(hg=!0,ig=kg.getParameter(kg.MAX_TEXTURE_SIZE),jg=kg.getSupportedExtensions())}catch(a){}Vf=hg;na=jg;la=ig;function lg(a,b){this.b=a;this.c=b};function mg(a){lg.call(this,a,{mousedown:this.rl,mousemove:this.sl,mouseup:this.vl,mouseover:this.ul,mouseout:this.tl});this.a=a.g;this.g=[]}x(mg,lg);function ng(a,b){for(var c=a.g,d=b.clientX,e=b.clientY,f=0,g=c.length,h;f<g&&(h=c[f]);f++){var l=Math.abs(e-h[1]);if(25>=Math.abs(d-h[0])&&25>=l)return!0}return!1}function og(a){var b=pg(a,a),c=b.preventDefault;b.preventDefault=function(){a.preventDefault();c()};b.pointerId=1;b.isPrimary=!0;b.pointerType="mouse";return b}k=mg.prototype;
|
||||||
|
k.rl=function(a){if(!ng(this,a)){if((1).toString()in this.a){var b=og(a);qg(this.b,rg,b,a);delete this.a[(1).toString()]}b=og(a);this.a[(1).toString()]=a;qg(this.b,sg,b,a)}};k.sl=function(a){if(!ng(this,a)){var b=og(a);qg(this.b,tg,b,a)}};k.vl=function(a){if(!ng(this,a)){var b=this.a[(1).toString()];b&&b.button===a.button&&(b=og(a),qg(this.b,ug,b,a),delete this.a[(1).toString()])}};k.ul=function(a){if(!ng(this,a)){var b=og(a);vg(this.b,b,a)}};
|
||||||
|
k.tl=function(a){if(!ng(this,a)){var b=og(a);wg(this.b,b,a)}};function xg(a){lg.call(this,a,{MSPointerDown:this.Al,MSPointerMove:this.Bl,MSPointerUp:this.El,MSPointerOut:this.Cl,MSPointerOver:this.Dl,MSPointerCancel:this.zl,MSGotPointerCapture:this.xl,MSLostPointerCapture:this.yl});this.a=a.g;this.g=["","unavailable","touch","pen","mouse"]}x(xg,lg);function yg(a,b){var c=b;"number"===typeof b.pointerType&&(c=pg(b,b),c.pointerType=a.g[b.pointerType]);return c}k=xg.prototype;k.Al=function(a){this.a[a.pointerId.toString()]=a;var b=yg(this,a);qg(this.b,sg,b,a)};
|
||||||
|
k.Bl=function(a){var b=yg(this,a);qg(this.b,tg,b,a)};k.El=function(a){var b=yg(this,a);qg(this.b,ug,b,a);delete this.a[a.pointerId.toString()]};k.Cl=function(a){var b=yg(this,a);wg(this.b,b,a)};k.Dl=function(a){var b=yg(this,a);vg(this.b,b,a)};k.zl=function(a){var b=yg(this,a);qg(this.b,rg,b,a);delete this.a[a.pointerId.toString()]};k.yl=function(a){this.b.b(new Pf("lostpointercapture",a,a))};k.xl=function(a){this.b.b(new Pf("gotpointercapture",a,a))};function zg(a){lg.call(this,a,{pointerdown:this.lo,pointermove:this.mo,pointerup:this.po,pointerout:this.no,pointerover:this.oo,pointercancel:this.ko,gotpointercapture:this.Gk,lostpointercapture:this.ql})}x(zg,lg);k=zg.prototype;k.lo=function(a){Ag(this.b,a)};k.mo=function(a){Ag(this.b,a)};k.po=function(a){Ag(this.b,a)};k.no=function(a){Ag(this.b,a)};k.oo=function(a){Ag(this.b,a)};k.ko=function(a){Ag(this.b,a)};k.ql=function(a){Ag(this.b,a)};k.Gk=function(a){Ag(this.b,a)};function Bg(a,b){lg.call(this,a,{touchstart:this.sp,touchmove:this.rp,touchend:this.qp,touchcancel:this.pp});this.a=a.g;this.l=b;this.g=void 0;this.i=0;this.f=void 0}x(Bg,lg);k=Bg.prototype;k.ci=function(){this.i=0;this.f=void 0};
|
||||||
|
function Cg(a,b,c){b=pg(b,c);b.pointerId=c.identifier+2;b.bubbles=!0;b.cancelable=!0;b.detail=a.i;b.button=0;b.buttons=1;b.width=c.webkitRadiusX||c.radiusX||0;b.height=c.webkitRadiusY||c.radiusY||0;b.pressure=c.webkitForce||c.force||.5;b.isPrimary=a.g===c.identifier;b.pointerType="touch";b.clientX=c.clientX;b.clientY=c.clientY;b.screenX=c.screenX;b.screenY=c.screenY;return b}
|
||||||
|
function Dg(a,b,c){function d(){b.preventDefault()}var e=Array.prototype.slice.call(b.changedTouches),f=e.length,g,h;for(g=0;g<f;++g)h=Cg(a,b,e[g]),h.preventDefault=d,c.call(a,b,h)}
|
||||||
|
k.sp=function(a){var b=a.touches,c=Object.keys(this.a),d=c.length;if(d>=b.length){var e=[],f,g,h;for(f=0;f<d;++f){g=c[f];h=this.a[g];var l;if(!(l=1==g))a:{l=b.length;for(var m,n=0;n<l;n++)if(m=b[n],m.identifier===g-2){l=!0;break a}l=!1}l||e.push(h.out)}for(f=0;f<e.length;++f)this.Ue(a,e[f])}b=a.changedTouches[0];c=Object.keys(this.a).length;if(0===c||1===c&&(1).toString()in this.a)this.g=b.identifier,void 0!==this.f&&pa.clearTimeout(this.f);Eg(this,a);this.i++;Dg(this,a,this.fo)};
|
||||||
|
k.fo=function(a,b){this.a[b.pointerId]={target:b.target,out:b,Lh:b.target};var c=this.b;b.bubbles=!0;qg(c,Fg,b,a);c=this.b;b.bubbles=!1;qg(c,Gg,b,a);qg(this.b,sg,b,a)};k.rp=function(a){a.preventDefault();Dg(this,a,this.wl)};k.wl=function(a,b){var c=this.a[b.pointerId];if(c){var d=c.out,e=c.Lh;qg(this.b,tg,b,a);d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,d.target=e,b.target?(wg(this.b,d,a),vg(this.b,b,a)):(b.target=e,b.relatedTarget=null,this.Ue(a,b)));c.out=b;c.Lh=b.target}};
|
||||||
|
k.qp=function(a){Eg(this,a);Dg(this,a,this.tp)};k.tp=function(a,b){qg(this.b,ug,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;qg(c,Hg,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.g=void 0,this.f=pa.setTimeout(this.ci.bind(this),200))};k.pp=function(a){Dg(this,a,this.Ue)};k.Ue=function(a,b){qg(this.b,rg,b,a);this.b.out(b,a);var c=this.b;b.bubbles=!1;qg(c,Hg,b,a);delete this.a[b.pointerId];b.isPrimary&&(this.g=void 0,this.f=pa.setTimeout(this.ci.bind(this),200))};
|
||||||
|
function Eg(a,b){var c=a.l.g,d=b.changedTouches[0];if(a.g===d.identifier){var e=[d.clientX,d.clientY];c.push(e);pa.setTimeout(function(){kb(c,e)},2500)}};function Ig(a){Xa.call(this);this.i=a;this.g={};this.c={};this.a=[];fg?Jg(this,new zg(this)):gg?Jg(this,new xg(this)):(a=new mg(this),Jg(this,a),eg&&Jg(this,new Bg(this,a)));a=this.a.length;for(var b,c=0;c<a;c++)b=this.a[c],Kg(this,Object.keys(b.c))}x(Ig,Xa);function Jg(a,b){var c=Object.keys(b.c);c&&(c.forEach(function(a){var c=b.c[a];c&&(this.c[a]=c.bind(b))},a),a.a.push(b))}Ig.prototype.f=function(a){var b=this.c[a.type];b&&b(a)};
|
||||||
|
function Kg(a,b){b.forEach(function(a){B(this.i,a,this.f,this)},a)}function Lg(a,b){b.forEach(function(a){Qa(this.i,a,this.f,this)},a)}function pg(a,b){for(var c={},d,e=0,f=Mg.length;e<f;e++)d=Mg[e][0],c[d]=a[d]||b[d]||Mg[e][1];return c}Ig.prototype.out=function(a,b){a.bubbles=!0;qg(this,Ng,a,b)};function wg(a,b,c){a.out(b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,qg(a,Hg,b,c))}
|
||||||
|
function vg(a,b,c){b.bubbles=!0;qg(a,Fg,b,c);var d=b.target,e=b.relatedTarget;d&&e&&d.contains(e)||(b.bubbles=!1,qg(a,Gg,b,c))}function qg(a,b,c,d){a.b(new Pf(b,d,c))}function Ag(a,b){a.b(new Pf(b.type,b,b))}Ig.prototype.ka=function(){for(var a=this.a.length,b,c=0;c<a;c++)b=this.a[c],Lg(this,Object.keys(b.c));Xa.prototype.ka.call(this)};
|
||||||
|
var tg="pointermove",sg="pointerdown",ug="pointerup",Fg="pointerover",Ng="pointerout",Gg="pointerenter",Hg="pointerleave",rg="pointercancel",Mg=[["bubbles",!1],["cancelable",!1],["view",null],["detail",null],["screenX",0],["screenY",0],["clientX",0],["clientY",0],["ctrlKey",!1],["altKey",!1],["shiftKey",!1],["metaKey",!1],["button",0],["relatedTarget",null],["buttons",0],["pointerId",0],["width",0],["height",0],["pressure",0],["tiltX",0],["tiltY",0],["pointerType",""],["hwTimestamp",0],["isPrimary",
|
||||||
|
!1],["type",""],["target",null],["currentTarget",null],["which",0]];function Og(a,b,c,d,e){Oe.call(this,a,b,e);this.originalEvent=c;this.pixel=b.Td(c);this.coordinate=b.Ma(this.pixel);this.dragging=void 0!==d?d:!1}x(Og,Oe);Og.prototype.preventDefault=function(){Oe.prototype.preventDefault.call(this);this.originalEvent.preventDefault()};Og.prototype.stopPropagation=function(){Oe.prototype.stopPropagation.call(this);this.originalEvent.stopPropagation()};function Pg(a,b,c,d,e){Og.call(this,a,b,c.b,d,e);this.b=c}x(Pg,Og);
|
||||||
|
function Qg(a){Xa.call(this);this.f=a;this.l=0;this.o=!1;this.c=[];this.g=null;a=this.f.a;this.U=0;this.v={};this.i=new Ig(a);this.a=null;this.j=B(this.i,sg,this.$k,this);this.s=B(this.i,tg,this.No,this)}x(Qg,Xa);function Rg(a,b){var c;c=new Pg(Sg,a.f,b);a.b(c);0!==a.l?(pa.clearTimeout(a.l),a.l=0,c=new Pg(Tg,a.f,b),a.b(c)):a.l=pa.setTimeout(function(){this.l=0;var a=new Pg(Ug,this.f,b);this.b(a)}.bind(a),250)}
|
||||||
|
function Vg(a,b){b.type==Wg||b.type==Xg?delete a.v[b.pointerId]:b.type==Yg&&(a.v[b.pointerId]=!0);a.U=Object.keys(a.v).length}k=Qg.prototype;k.Qg=function(a){Vg(this,a);var b=new Pg(Wg,this.f,a);this.b(b);!this.o&&0===a.button&&Rg(this,this.g);0===this.U&&(this.c.forEach(Ka),this.c.length=0,this.o=!1,this.g=null,Ta(this.a),this.a=null)};
|
||||||
|
k.$k=function(a){Vg(this,a);var b=new Pg(Yg,this.f,a);this.b(b);this.g=a;0===this.c.length&&(this.a=new Ig(document),this.c.push(B(this.a,Zg,this.Sl,this),B(this.a,Wg,this.Qg,this),B(this.i,Xg,this.Qg,this)))};k.Sl=function(a){if(a.clientX!=this.g.clientX||a.clientY!=this.g.clientY){this.o=!0;var b=new Pg($g,this.f,a,this.o);this.b(b)}a.preventDefault()};k.No=function(a){this.b(new Pg(a.type,this.f,a,!(!this.g||a.clientX==this.g.clientX&&a.clientY==this.g.clientY)))};
|
||||||
|
k.ka=function(){this.s&&(Ka(this.s),this.s=null);this.j&&(Ka(this.j),this.j=null);this.c.forEach(Ka);this.c.length=0;this.a&&(Ta(this.a),this.a=null);this.i&&(Ta(this.i),this.i=null);Xa.prototype.ka.call(this)};var Ug="singleclick",Sg="click",Tg="dblclick",$g="pointerdrag",Zg="pointermove",Yg="pointerdown",Wg="pointerup",Xg="pointercancel",ah={Mp:Ug,Bp:Sg,Cp:Tg,Fp:$g,Ip:Zg,Ep:Yg,Lp:Wg,Kp:"pointerover",Jp:"pointerout",Gp:"pointerenter",Hp:"pointerleave",Dp:Xg};var bh=Array(6);function ch(){return[1,0,0,1,0,0]}function dh(a){return eh(a,1,0,0,1,0,0)}function fh(a,b){var c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5],l=b[0],m=b[1],n=b[2],p=b[3],q=b[4],r=b[5];a[0]=c*l+e*m;a[1]=d*l+f*m;a[2]=c*n+e*p;a[3]=d*n+f*p;a[4]=c*q+e*r+g;a[5]=d*q+f*r+h;return a}function eh(a,b,c,d,e,f,g){a[0]=b;a[1]=c;a[2]=d;a[3]=e;a[4]=f;a[5]=g;return a}function gh(a,b){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];a[4]=b[4];a[5]=b[5];return a}
|
||||||
|
function hh(a,b){var c=b[0],d=b[1];b[0]=a[0]*c+a[2]*d+a[4];b[1]=a[1]*c+a[3]*d+a[5];return b}function ih(a,b){var c=Math.cos(b),d=Math.sin(b);fh(a,eh(bh,c,d,-d,c,0,0))}function jh(a,b,c){return fh(a,eh(bh,b,0,0,c,0,0))}function kh(a,b,c){fh(a,eh(bh,1,0,0,1,b,c))}function lh(a,b,c,d,e,f,g,h){var l=Math.sin(f);f=Math.cos(f);a[0]=d*f;a[1]=e*l;a[2]=-d*l;a[3]=e*f;a[4]=g*d*f-h*d*l+b;a[5]=g*e*l+h*e*f+c;return a}
|
||||||
|
function mh(a){var b=a[0]*a[3]-a[1]*a[2],c=a[0],d=a[1],e=a[2],f=a[3],g=a[4],h=a[5];a[0]=f/b;a[1]=-d/b;a[2]=-e/b;a[3]=c/b;a[4]=(e*h-f*g)/b;a[5]=-(c*h-d*g)/b;return a};function nh(a){bb.call(this);var b=Ca({},a);b.opacity=void 0!==a.opacity?a.opacity:1;b.visible=void 0!==a.visible?a.visible:!0;b.zIndex=void 0!==a.zIndex?a.zIndex:0;b.maxResolution=void 0!==a.maxResolution?a.maxResolution:Infinity;b.minResolution=void 0!==a.minResolution?a.minResolution:0;this.G(b)}x(nh,bb);
|
||||||
|
function oh(a){var b=a.Qb(),c=a.kf(),d=a.yb(),e=a.H(),f=a.Rb(),g=a.Ob(),h=a.Pb();return{layer:a,opacity:sa(b,0,1),S:c,visible:d,Qc:!0,extent:e,zIndex:f,maxResolution:g,minResolution:Math.max(h,0)}}k=nh.prototype;k.H=function(){return this.get("extent")};k.Ob=function(){return this.get("maxResolution")};k.Pb=function(){return this.get("minResolution")};k.Qb=function(){return this.get("opacity")};k.yb=function(){return this.get("visible")};k.Rb=function(){return this.get("zIndex")};
|
||||||
|
k.fc=function(a){this.set("extent",a)};k.nc=function(a){this.set("maxResolution",a)};k.oc=function(a){this.set("minResolution",a)};k.gc=function(a){this.set("opacity",a)};k.hc=function(a){this.set("visible",a)};k.ic=function(a){this.set("zIndex",a)};function ph(){};function qh(a,b,c,d,e){Ua.call(this,a);this.vectorContext=b;this.frameState=c;this.context=d;this.glContext=e}x(qh,Ua);function rh(a){var b=Ca({},a);delete b.source;nh.call(this,b);this.v=this.j=this.o=null;a.map&&this.setMap(a.map);B(this,db("source"),this.fl,this);this.Fc(a.source?a.source:null)}x(rh,nh);function sh(a,b){return a.visible&&b>=a.minResolution&&b<a.maxResolution}k=rh.prototype;k.hf=function(a){a=a?a:[];a.push(oh(this));return a};k.ha=function(){return this.get("source")||null};k.kf=function(){var a=this.ha();return a?a.V():"undefined"};k.Lm=function(){this.u()};
|
||||||
|
k.fl=function(){this.v&&(Ka(this.v),this.v=null);var a=this.ha();a&&(this.v=B(a,"change",this.Lm,this));this.u()};k.setMap=function(a){this.o&&(Ka(this.o),this.o=null);a||this.u();this.j&&(Ka(this.j),this.j=null);a&&(this.o=B(a,"precompose",function(a){var c=oh(this);c.Qc=!1;c.zIndex=Infinity;a.frameState.layerStatesArray.push(c);a.frameState.layerStates[t(this)]=c},this),this.j=B(this,"change",a.render,a),this.u())};k.Fc=function(a){this.set("source",a)};function th(a,b,c,d,e){Xa.call(this);this.l=e;this.extent=a;this.f=c;this.resolution=b;this.state=d}x(th,Xa);function uh(a){a.b("change")}th.prototype.H=function(){return this.extent};th.prototype.$=function(){return this.resolution};th.prototype.V=function(){return this.state};function vh(a){Za.call(this);this.a=a}x(vh,Za);k=vh.prototype;k.sa=oa;k.Cc=function(a,b,c,d){a=hh(b.pixelToCoordinateTransform,a.slice());if(this.sa(a,b,rc,this))return c.call(d,this.a)};k.le=sc;k.Qd=function(a,b,c){return function(d,e){return tf(a,b,d,e,function(a){c[d]||(c[d]={});c[d][a.ma.toString()]=a})}};k.Om=function(a){2===a.target.V()&&wh(this)};function xh(a,b){var c=b.V();2!=c&&3!=c&&B(b,"change",a.Om,a);0==c&&(b.load(),c=b.V());return 2==c}
|
||||||
|
function wh(a){var b=a.a;b.yb()&&"ready"==b.kf()&&a.u()}function yh(a,b){b.Ah()&&a.postRenderFunctions.push(function(a,b,e){b=t(a).toString();a.Lc(e.viewState.projection,e.usedTiles[b])}.bind(null,b))}function zh(a,b){if(b){var c,d,e;d=0;for(e=b.length;d<e;++d)c=b[d],a[t(c).toString()]=c}}function Ah(a,b){var c=b.S;void 0!==c&&("string"===typeof c?a.logos[c]="":fa(c)&&(a.logos[c.src]=c.href))}
|
||||||
|
function Bh(a,b,c,d){b=t(b).toString();c=c.toString();b in a?c in a[b]?(a=a[b][c],d.ca<a.ca&&(a.ca=d.ca),d.ea>a.ea&&(a.ea=d.ea),d.fa<a.fa&&(a.fa=d.fa),d.ga>a.ga&&(a.ga=d.ga)):a[b][c]=d:(a[b]={},a[b][c]=d)}function Ch(a,b,c){return[b*(Math.round(a[0]/b)+c[0]%2/2),b*(Math.round(a[1]/b)+c[1]%2/2)]}
|
||||||
|
function Dh(a,b,c,d,e,f,g,h,l,m){var n=t(b).toString();n in a.wantedTiles||(a.wantedTiles[n]={});var p=a.wantedTiles[n];a=a.tileQueue;var q=c.minZoom,r,v,y,w,G,z;for(z=g;z>=q;--z)for(v=gf(c,f,z,v),y=c.$(z),w=v.ca;w<=v.ea;++w)for(G=v.fa;G<=v.ga;++G)g-z<=h?(r=b.bc(z,w,G,d,e),0==r.V()&&(p[r.ma.toString()]=!0,r.jb()in a.g||a.f([r,n,mf(c,r.ma),y])),void 0!==l&&l.call(m,r)):b.Yf(z,w,G,e)};function Eh(a){this.v=a.opacity;this.U=a.rotateWithView;this.j=a.rotation;this.i=a.scale;this.D=a.snapToPixel}k=Eh.prototype;k.qe=function(){return this.v};k.Xd=function(){return this.U};k.re=function(){return this.j};k.se=function(){return this.i};k.Yd=function(){return this.D};k.te=function(a){this.v=a};k.ue=function(a){this.j=a};k.ve=function(a){this.i=a};function Fh(a){a=a||{};this.c=void 0!==a.anchor?a.anchor:[.5,.5];this.f=null;this.a=void 0!==a.anchorOrigin?a.anchorOrigin:"top-left";this.o=void 0!==a.anchorXUnits?a.anchorXUnits:"fraction";this.s=void 0!==a.anchorYUnits?a.anchorYUnits:"fraction";var b=void 0!==a.crossOrigin?a.crossOrigin:null,c=void 0!==a.img?a.img:null,d=void 0!==a.imgSize?a.imgSize:null,e=a.src;void 0!==e&&0!==e.length||!c||(e=c.src||t(c).toString());var f=void 0!==a.src?0:2,g=void 0!==a.color?je(a.color):null,h=Gh.$b(),l=h.get(e,
|
||||||
|
b,g);l||(l=new Hh(c,e,d,b,f,g),h.set(e,b,g,l));this.b=l;this.C=void 0!==a.offset?a.offset:[0,0];this.g=void 0!==a.offsetOrigin?a.offsetOrigin:"top-left";this.l=null;this.A=void 0!==a.size?a.size:null;Eh.call(this,{opacity:void 0!==a.opacity?a.opacity:1,rotation:void 0!==a.rotation?a.rotation:0,scale:void 0!==a.scale?a.scale:1,snapToPixel:void 0!==a.snapToPixel?a.snapToPixel:!0,rotateWithView:void 0!==a.rotateWithView?a.rotateWithView:!1})}x(Fh,Eh);k=Fh.prototype;
|
||||||
|
k.Zb=function(){if(this.f)return this.f;var a=this.c,b=this.Gb();if("fraction"==this.o||"fraction"==this.s){if(!b)return null;a=this.c.slice();"fraction"==this.o&&(a[0]*=b[0]);"fraction"==this.s&&(a[1]*=b[1])}if("top-left"!=this.a){if(!b)return null;a===this.c&&(a=this.c.slice());if("top-right"==this.a||"bottom-right"==this.a)a[0]=-a[0]+b[0];if("bottom-left"==this.a||"bottom-right"==this.a)a[1]=-a[1]+b[1]}return this.f=a};k.jc=function(){var a=this.b;return a.c?a.c:a.a};k.ld=function(){return this.b.g};
|
||||||
|
k.td=function(){return this.b.f};k.pe=function(){var a=this.b;if(!a.o)if(a.s){var b=a.g[0],c=a.g[1],d=Ge(b,c);d.fillRect(0,0,b,c);a.o=d.canvas}else a.o=a.a;return a.o};k.Ia=function(){if(this.l)return this.l;var a=this.C;if("top-left"!=this.g){var b=this.Gb(),c=this.b.g;if(!b||!c)return null;a=a.slice();if("top-right"==this.g||"bottom-right"==this.g)a[0]=c[0]-b[0]-a[0];if("bottom-left"==this.g||"bottom-right"==this.g)a[1]=c[1]-b[1]-a[1]}return this.l=a};k.En=function(){return this.b.j};
|
||||||
|
k.Gb=function(){return this.A?this.A:this.b.g};k.pf=function(a,b){return B(this.b,"change",a,b)};k.load=function(){this.b.load()};k.Xf=function(a,b){Qa(this.b,"change",a,b)};function Hh(a,b,c,d,e,f){Xa.call(this);this.o=null;this.a=a?a:new Image;null!==d&&(this.a.crossOrigin=d);this.c=f?document.createElement("CANVAS"):null;this.l=f;this.i=null;this.f=e;this.g=c;this.j=b;this.s=!1;2==this.f&&Ih(this)}x(Hh,Xa);
|
||||||
|
function Ih(a){var b=Ge(1,1);try{b.drawImage(a.a,0,0),b.getImageData(0,0,1,1)}catch(c){a.s=!0}}Hh.prototype.v=function(){this.f=3;this.i.forEach(Ka);this.i=null;this.b("change")};
|
||||||
|
Hh.prototype.U=function(){this.f=2;this.g&&(this.a.width=this.g[0],this.a.height=this.g[1]);this.g=[this.a.width,this.a.height];this.i.forEach(Ka);this.i=null;Ih(this);if(!this.s&&null!==this.l){this.c.width=this.a.width;this.c.height=this.a.height;var a=this.c.getContext("2d");a.drawImage(this.a,0,0);for(var b=a.getImageData(0,0,this.a.width,this.a.height),c=b.data,d=this.l[0]/255,e=this.l[1]/255,f=this.l[2]/255,g=0,h=c.length;g<h;g+=4)c[g]*=d,c[g+1]*=e,c[g+2]*=f;a.putImageData(b,0,0)}this.b("change")};
|
||||||
|
Hh.prototype.load=function(){if(0==this.f){this.f=1;this.i=[Pa(this.a,"error",this.v,this),Pa(this.a,"load",this.U,this)];try{this.a.src=this.j}catch(a){this.v()}}};function Gh(){this.b={};this.a=0}ca(Gh);Gh.prototype.clear=function(){this.b={};this.a=0};Gh.prototype.get=function(a,b,c){a=b+":"+a+":"+(c?le(c):"null");return a in this.b?this.b[a]:null};Gh.prototype.set=function(a,b,c,d){this.b[b+":"+a+":"+(c?le(c):"null")]=d;++this.a};function Jh(a,b){this.i=b;this.g={};this.s={}}x(Jh,Sa);function Kh(a){var b=a.viewState,c=a.coordinateToPixelTransform,d=a.pixelToCoordinateTransform;lh(c,a.size[0]/2,a.size[1]/2,1/b.resolution,-1/b.resolution,-b.rotation,-b.center[0],-b.center[1]);mh(gh(d,c))}k=Jh.prototype;k.ka=function(){for(var a in this.g)Ta(this.g[a])};function Lh(){var a=Gh.$b();if(32<a.a){var b=0,c,d;for(c in a.b)d=a.b[c],0!==(b++&3)||Ya(d)||(delete a.b[c],--a.a)}}
|
||||||
|
k.sa=function(a,b,c,d,e,f){function g(a,e){var f=t(a).toString(),g=b.layerStates[t(e)].Qc;if(!(f in b.skippedFeatureUids)||g)return c.call(d,a,g?e:null)}var h,l=b.viewState,m=l.resolution,n=l.projection,l=a;if(n.a){var n=n.H(),p=jc(n),q=a[0];if(q<n[0]||q>n[2])l=[q+p*Math.ceil((n[0]-q)/p),a[1]]}n=b.layerStatesArray;for(p=n.length-1;0<=p;--p){var r=n[p],q=r.layer;if(sh(r,m)&&e.call(f,q)&&(r=Mh(this,q),q.ha()&&(h=r.sa(q.ha().C?l:a,b,g,d)),h))return h}};
|
||||||
|
k.rh=function(a,b,c,d,e,f){var g,h=b.viewState.resolution,l=b.layerStatesArray,m;for(m=l.length-1;0<=m;--m){g=l[m];var n=g.layer;if(sh(g,h)&&e.call(f,n)&&(g=Mh(this,n).Cc(a,b,c,d)))return g}};k.sh=function(a,b,c,d){return void 0!==this.sa(a,b,rc,this,c,d)};function Mh(a,b){var c=t(b).toString();if(c in a.g)return a.g[c];var d=a.Xe(b);a.g[c]=d;a.s[c]=B(d,"change",a.Rk,a);return d}k.Rk=function(){this.i.render()};k.Ce=oa;
|
||||||
|
k.To=function(a,b){for(var c in this.g)if(!(b&&c in b.layerStates)){var d=c,e=this.g[d];delete this.g[d];Ka(this.s[d]);delete this.s[d];Ta(e)}};function Nh(a,b){for(var c in a.g)if(!(c in b.layerStates)){b.postRenderFunctions.push(a.To.bind(a));break}}function ob(a,b){return a.zIndex-b.zIndex};function Oh(a,b){this.j=a;this.l=b;this.b=[];this.a=[];this.g={}}Oh.prototype.clear=function(){this.b.length=0;this.a.length=0;Da(this.g)};function Ph(a){var b=a.b,c=a.a,d=b[0];1==b.length?(b.length=0,c.length=0):(b[0]=b.pop(),c[0]=c.pop(),Qh(a,0));b=a.l(d);delete a.g[b];return d}Oh.prototype.f=function(a){var b=this.j(a);return Infinity!=b?(this.b.push(a),this.a.push(b),this.g[this.l(a)]=!0,Rh(this,0,this.b.length-1),!0):!1};Oh.prototype.wc=function(){return this.b.length};
|
||||||
|
Oh.prototype.Ya=function(){return 0===this.b.length};function Qh(a,b){for(var c=a.b,d=a.a,e=c.length,f=c[b],g=d[b],h=b;b<e>>1;){var l=2*b+1,m=2*b+2,l=m<e&&d[m]<d[l]?m:l;c[b]=c[l];d[b]=d[l];b=l}c[b]=f;d[b]=g;Rh(a,h,b)}function Rh(a,b,c){var d=a.b;a=a.a;for(var e=d[c],f=a[c];c>b;){var g=c-1>>1;if(a[g]>f)d[c]=d[g],a[c]=a[g],c=g;else break}d[c]=e;a[c]=f}
|
||||||
|
function Sh(a){var b=a.j,c=a.b,d=a.a,e=0,f=c.length,g,h,l;for(h=0;h<f;++h)g=c[h],l=b(g),Infinity==l?delete a.g[a.l(g)]:(d[e]=l,c[e++]=g);c.length=e;d.length=e;for(b=(a.b.length>>1)-1;0<=b;b--)Qh(a,b)};function Th(a,b){Oh.call(this,function(b){return a.apply(null,b)},function(a){return a[0].jb()});this.s=b;this.i=0;this.c={}}x(Th,Oh);Th.prototype.f=function(a){var b=Oh.prototype.f.call(this,a);b&&B(a[0],"change",this.o,this);return b};Th.prototype.o=function(a){a=a.target;var b=a.V();if(2===b||3===b||4===b||5===b)Qa(a,"change",this.o,this),a=a.jb(),a in this.c&&(delete this.c[a],--this.i),this.s()};
|
||||||
|
function Uh(a,b,c){for(var d=0,e,f;a.i<b&&d<c&&0<a.wc();)e=Ph(a)[0],f=e.jb(),0!==e.V()||f in a.c||(a.c[f]=!0,++a.i,++d,e.load())};function Vh(a,b,c){this.f=a;this.g=b;this.i=c;this.b=[];this.a=this.c=0}function Wh(a,b){var c=a.f,d=a.a,e=a.g-d,f=Math.log(a.g/a.a)/a.f;return Td({source:b,duration:f,easing:function(a){return d*(Math.exp(c*a*f)-1)/e}})};function Xh(a){bb.call(this);this.v=null;this.i(!0);this.handleEvent=a.handleEvent}x(Xh,bb);Xh.prototype.f=function(){return this.get("active")};Xh.prototype.l=function(){return this.v};Xh.prototype.i=function(a){this.set("active",a)};Xh.prototype.setMap=function(a){this.v=a};function Yh(a,b,c,d,e){if(void 0!==c){var f=b.La(),g=b.ab();void 0!==f&&g&&e&&0<e&&(a.Wa(Ud({rotation:f,duration:e,easing:Nd})),d&&a.Wa(Td({source:g,duration:e,easing:Nd})));b.rotate(c,d)}}
|
||||||
|
function Zh(a,b,c,d,e){var f=b.$();c=b.constrainResolution(f,c,0);$h(a,b,c,d,e)}function $h(a,b,c,d,e){if(c){var f=b.$(),g=b.ab();void 0!==f&&g&&c!==f&&e&&0<e&&(a.Wa(Vd({resolution:f,duration:e,easing:Nd})),d&&a.Wa(Td({source:g,duration:e,easing:Nd})));if(d){var h;a=b.ab();e=b.$();void 0!==a&&void 0!==e&&(h=[d[0]-c*(d[0]-a[0])/e,d[1]-c*(d[1]-a[1])/e]);b.nb(h)}b.Vb(c)}};function ai(a){a=a?a:{};this.a=a.delta?a.delta:1;Xh.call(this,{handleEvent:bi});this.c=void 0!==a.duration?a.duration:250}x(ai,Xh);function bi(a){var b=!1,c=a.originalEvent;if(a.type==Tg){var b=a.map,d=a.coordinate,c=c.shiftKey?-this.a:this.a,e=b.aa();Zh(b,e,c,d,this.c);a.preventDefault();b=!0}return!b};function ci(a){a=a.originalEvent;return a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}function di(a){a=a.originalEvent;return 0==a.button&&!(we&&Zf&&a.ctrlKey)}function ei(a){return"pointermove"==a.type}function fi(a){return a.type==Ug}function gi(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&!a.shiftKey}function hi(a){a=a.originalEvent;return!a.altKey&&!(a.metaKey||a.ctrlKey)&&a.shiftKey}
|
||||||
|
function ii(a){a=a.originalEvent.target.tagName;return"INPUT"!==a&&"SELECT"!==a&&"TEXTAREA"!==a}function ji(a){return"mouse"==a.b.pointerType}function ki(a){a=a.b;return a.isPrimary&&0===a.button};function li(a){a=a?a:{};Xh.call(this,{handleEvent:a.handleEvent?a.handleEvent:mi});this.Oe=a.handleDownEvent?a.handleDownEvent:sc;this.Pe=a.handleDragEvent?a.handleDragEvent:oa;this.Mi=a.handleMoveEvent?a.handleMoveEvent:oa;this.tj=a.handleUpEvent?a.handleUpEvent:sc;this.D=!1;this.ia={};this.o=[]}x(li,Xh);function ni(a){for(var b=a.length,c=0,d=0,e=0;e<b;e++)c+=a[e].clientX,d+=a[e].clientY;return[c/b,d/b]}
|
||||||
|
function mi(a){if(!(a instanceof Pg))return!0;var b=!1,c=a.type;if(c===Yg||c===$g||c===Wg)c=a.b,a.type==Wg?delete this.ia[c.pointerId]:a.type==Yg?this.ia[c.pointerId]=c:c.pointerId in this.ia&&(this.ia[c.pointerId]=c),this.o=Ea(this.ia);this.D&&(a.type==$g?this.Pe(a):a.type==Wg&&(this.D=this.tj(a)));a.type==Yg?(this.D=a=this.Oe(a),b=this.Gc(a)):a.type==Zg&&this.Mi(a);return!b}li.prototype.Gc=function(a){return a};function oi(a){li.call(this,{handleDownEvent:pi,handleDragEvent:qi,handleUpEvent:ri});a=a?a:{};this.a=a.kinetic;this.c=this.j=null;this.A=a.condition?a.condition:gi;this.s=!1}x(oi,li);function qi(a){var b=ni(this.o);this.a&&this.a.b.push(b[0],b[1],Date.now());if(this.c){var c=this.c[0]-b[0],d=b[1]-this.c[1];a=a.map;var e=a.aa(),f=e.V(),d=c=[c,d],g=f.resolution;d[0]*=g;d[1]*=g;Db(c,f.rotation);yb(c,f.center);c=e.Pd(c);a.render();e.nb(c)}this.c=b}
|
||||||
|
function ri(a){a=a.map;var b=a.aa();if(0===this.o.length){var c;if(c=!this.s&&this.a)if(c=this.a,6>c.b.length)c=!1;else{var d=Date.now()-c.i,e=c.b.length-3;if(c.b[e+2]<d)c=!1;else{for(var f=e-3;0<f&&c.b[f+2]>d;)f-=3;var d=c.b[e+2]-c.b[f+2],g=c.b[e]-c.b[f],e=c.b[e+1]-c.b[f+1];c.c=Math.atan2(e,g);c.a=Math.sqrt(g*g+e*e)/d;c=c.a>c.g}}c&&(c=this.a,c=(c.g-c.a)/c.f,e=this.a.c,f=b.ab(),this.j=Wh(this.a,f),a.Wa(this.j),f=a.Ga(f),c=a.Ma([f[0]-c*Math.cos(e),f[1]-c*Math.sin(e)]),c=b.Pd(c),b.nb(c));Ld(b,-1);a.render();
|
||||||
|
return!1}this.c=null;return!0}function pi(a){if(0<this.o.length&&this.A(a)){var b=a.map,c=b.aa();this.c=null;this.D||Ld(c,1);b.render();this.j&&kb(b.S,this.j)&&(c.nb(a.frameState.viewState.center),this.j=null);this.a&&(a=this.a,a.b.length=0,a.c=0,a.a=0);this.s=1<this.o.length;return!0}return!1}oi.prototype.Gc=sc;function si(a){a=a?a:{};li.call(this,{handleDownEvent:ti,handleDragEvent:ui,handleUpEvent:vi});this.c=a.condition?a.condition:ci;this.a=void 0;this.j=void 0!==a.duration?a.duration:250}x(si,li);function ui(a){if(ji(a)){var b=a.map,c=b.Za();a=a.pixel;c=Math.atan2(c[1]/2-a[1],a[0]-c[0]/2);if(void 0!==this.a){a=c-this.a;var d=b.aa(),e=d.La();b.render();Yh(b,d,e-a)}this.a=c}}
|
||||||
|
function vi(a){if(!ji(a))return!0;a=a.map;var b=a.aa();Ld(b,-1);var c=b.La(),d=this.j,c=b.constrainRotation(c,0);Yh(a,b,c,void 0,d);return!1}function ti(a){return ji(a)&&di(a)&&this.c(a)?(a=a.map,Ld(a.aa(),1),a.render(),this.a=void 0,!0):!1}si.prototype.Gc=sc;function wi(a){this.f=null;this.a=document.createElement("div");this.a.style.position="absolute";this.a.className="ol-box "+a;this.g=this.c=this.b=null}x(wi,Sa);wi.prototype.ka=function(){this.setMap(null)};function xi(a){var b=a.c,c=a.g;a=a.a.style;a.left=Math.min(b[0],c[0])+"px";a.top=Math.min(b[1],c[1])+"px";a.width=Math.abs(c[0]-b[0])+"px";a.height=Math.abs(c[1]-b[1])+"px"}
|
||||||
|
wi.prototype.setMap=function(a){if(this.b){this.b.A.removeChild(this.a);var b=this.a.style;b.left=b.top=b.width=b.height="inherit"}(this.b=a)&&this.b.A.appendChild(this.a)};function yi(a){var b=a.c,c=a.g,b=[b,[b[0],c[1]],c,[c[0],b[1]]].map(a.b.Ma,a.b);b[4]=b[0].slice();a.f?a.f.ra([b]):a.f=new E([b])}wi.prototype.X=function(){return this.f};function zi(a,b,c){Ua.call(this,a);this.coordinate=b;this.mapBrowserEvent=c}x(zi,Ua);function Ai(a){li.call(this,{handleDownEvent:Bi,handleDragEvent:Ci,handleUpEvent:Di});a=a?a:{};this.a=new wi(a.className||"ol-dragbox");this.c=null;this.C=a.condition?a.condition:rc;this.A=a.boxEndCondition?a.boxEndCondition:Ei}x(Ai,li);function Ei(a,b,c){a=c[0]-b[0];b=c[1]-b[1];return 64<=a*a+b*b}
|
||||||
|
function Ci(a){if(ji(a)){var b=this.a,c=a.pixel;b.c=this.c;b.g=c;yi(b);xi(b);this.b(new zi("boxdrag",a.coordinate,a))}}Ai.prototype.X=function(){return this.a.X()};Ai.prototype.s=oa;function Di(a){if(!ji(a))return!0;this.a.setMap(null);this.A(a,this.c,a.pixel)&&(this.s(a),this.b(new zi("boxend",a.coordinate,a)));return!1}
|
||||||
|
function Bi(a){if(ji(a)&&di(a)&&this.C(a)){this.c=a.pixel;this.a.setMap(a.map);var b=this.a,c=this.c;b.c=this.c;b.g=c;yi(b);xi(b);this.b(new zi("boxstart",a.coordinate,a));return!0}return!1};function Fi(a){a=a?a:{};var b=a.condition?a.condition:hi;this.j=void 0!==a.duration?a.duration:200;this.S=void 0!==a.out?a.out:!1;Ai.call(this,{condition:b,className:a.className||"ol-dragzoom"})}x(Fi,Ai);
|
||||||
|
Fi.prototype.s=function(){var a=this.v,b=a.aa(),c=a.Za(),d=this.X().H();if(this.S){var e=b.Kc(c),d=[a.Ga(cc(d)),a.Ga(ec(d))],f=Vb(Infinity,Infinity,-Infinity,-Infinity,void 0),g,h;g=0;for(h=d.length;g<h;++g)Lb(f,d[g]);pc(e,1/Hd(f,c));d=e}c=b.constrainResolution(Hd(d,c));e=b.$();f=b.ab();a.Wa(Vd({resolution:e,duration:this.j,easing:Nd}));a.Wa(Td({source:f,duration:this.j,easing:Nd}));b.nb(lc(d));b.Vb(c)};function Gi(a){Xh.call(this,{handleEvent:Hi});a=a||{};this.a=function(a){return gi(a)&&ii(a)};this.c=void 0!==a.condition?a.condition:this.a;this.o=void 0!==a.duration?a.duration:100;this.j=void 0!==a.pixelDelta?a.pixelDelta:128}x(Gi,Xh);
|
||||||
|
function Hi(a){var b=!1;if("keydown"==a.type){var c=a.originalEvent.keyCode;if(this.c(a)&&(40==c||37==c||39==c||38==c)){var d=a.map,b=d.aa(),e=b.$()*this.j,f=0,g=0;40==c?g=-e:37==c?f=-e:39==c?f=e:g=e;c=[f,g];Db(c,b.La());e=this.o;if(f=b.ab())e&&0<e&&d.Wa(Td({source:f,duration:e,easing:Rd})),d=b.Pd([f[0]+c[0],f[1]+c[1]]),b.nb(d);a.preventDefault();b=!0}}return!b};function Ii(a){Xh.call(this,{handleEvent:Ji});a=a?a:{};this.c=a.condition?a.condition:ii;this.a=a.delta?a.delta:1;this.o=void 0!==a.duration?a.duration:100}x(Ii,Xh);function Ji(a){var b=!1;if("keydown"==a.type||"keypress"==a.type){var c=a.originalEvent.charCode;if(this.c(a)&&(43==c||45==c)){b=a.map;c=43==c?this.a:-this.a;b.render();var d=b.aa();Zh(b,d,c,void 0,this.o);a.preventDefault();b=!0}}return!b};function Ki(a){Xh.call(this,{handleEvent:Li});a=a||{};this.c=0;this.D=void 0!==a.duration?a.duration:250;this.s=void 0!==a.useAnchor?a.useAnchor:!0;this.a=null;this.j=this.o=void 0}x(Ki,Xh);
|
||||||
|
function Li(a){var b=!1;if("wheel"==a.type||"mousewheel"==a.type){var b=a.map,c=a.originalEvent;this.s&&(this.a=a.coordinate);var d;"wheel"==a.type?(d=c.deltaY,Xf&&c.deltaMode===pa.WheelEvent.DOM_DELTA_PIXEL&&(d/=$f),c.deltaMode===pa.WheelEvent.DOM_DELTA_LINE&&(d*=40)):"mousewheel"==a.type&&(d=-c.wheelDeltaY,Yf&&(d/=3));this.c+=d;void 0===this.o&&(this.o=Date.now());d=Math.max(80-(Date.now()-this.o),0);pa.clearTimeout(this.j);this.j=pa.setTimeout(this.A.bind(this,b),d);a.preventDefault();b=!0}return!b}
|
||||||
|
Ki.prototype.A=function(a){var b=sa(this.c,-1,1),c=a.aa();a.render();Zh(a,c,-b,this.a,this.D);this.c=0;this.a=null;this.j=this.o=void 0};Ki.prototype.C=function(a){this.s=a;a||(this.a=null)};function Mi(a){li.call(this,{handleDownEvent:Ni,handleDragEvent:Oi,handleUpEvent:Pi});a=a||{};this.c=null;this.j=void 0;this.a=!1;this.s=0;this.C=void 0!==a.threshold?a.threshold:.3;this.A=void 0!==a.duration?a.duration:250}x(Mi,li);
|
||||||
|
function Oi(a){var b=0,c=this.o[0],d=this.o[1],c=Math.atan2(d.clientY-c.clientY,d.clientX-c.clientX);void 0!==this.j&&(b=c-this.j,this.s+=b,!this.a&&Math.abs(this.s)>this.C&&(this.a=!0));this.j=c;a=a.map;c=a.a.getBoundingClientRect();d=ni(this.o);d[0]-=c.left;d[1]-=c.top;this.c=a.Ma(d);this.a&&(c=a.aa(),d=c.La(),a.render(),Yh(a,c,d+b,this.c))}
|
||||||
|
function Pi(a){if(2>this.o.length){a=a.map;var b=a.aa();Ld(b,-1);if(this.a){var c=b.La(),d=this.c,e=this.A,c=b.constrainRotation(c,0);Yh(a,b,c,d,e)}return!1}return!0}function Ni(a){return 2<=this.o.length?(a=a.map,this.c=null,this.j=void 0,this.a=!1,this.s=0,this.D||Ld(a.aa(),1),a.render(),!0):!1}Mi.prototype.Gc=sc;function Qi(a){li.call(this,{handleDownEvent:Ri,handleDragEvent:Si,handleUpEvent:Ti});a=a?a:{};this.c=null;this.s=void 0!==a.duration?a.duration:400;this.a=void 0;this.j=1}x(Qi,li);function Si(a){var b=1,c=this.o[0],d=this.o[1],e=c.clientX-d.clientX,c=c.clientY-d.clientY,e=Math.sqrt(e*e+c*c);void 0!==this.a&&(b=this.a/e);this.a=e;1!=b&&(this.j=b);a=a.map;var e=a.aa(),c=e.$(),d=a.a.getBoundingClientRect(),f=ni(this.o);f[0]-=d.left;f[1]-=d.top;this.c=a.Ma(f);a.render();$h(a,e,c*b,this.c)}
|
||||||
|
function Ti(a){if(2>this.o.length){a=a.map;var b=a.aa();Ld(b,-1);var c=b.$(),d=this.c,e=this.s,c=b.constrainResolution(c,0,this.j-1);$h(a,b,c,d,e);return!1}return!0}function Ri(a){return 2<=this.o.length?(a=a.map,this.c=null,this.a=void 0,this.j=1,this.D||Ld(a.aa(),1),a.render(),!0):!1}Qi.prototype.Gc=sc;function Ui(a){a=a?a:{};var b=new be,c=new Vh(-.005,.05,100);(void 0!==a.altShiftDragRotate?a.altShiftDragRotate:1)&&b.push(new si);(void 0!==a.doubleClickZoom?a.doubleClickZoom:1)&&b.push(new ai({delta:a.zoomDelta,duration:a.zoomDuration}));(void 0!==a.dragPan?a.dragPan:1)&&b.push(new oi({kinetic:c}));(void 0!==a.pinchRotate?a.pinchRotate:1)&&b.push(new Mi);(void 0!==a.pinchZoom?a.pinchZoom:1)&&b.push(new Qi({duration:a.zoomDuration}));if(void 0!==a.keyboard?a.keyboard:1)b.push(new Gi),b.push(new Ii({delta:a.zoomDelta,
|
||||||
|
duration:a.zoomDuration}));(void 0!==a.mouseWheelZoom?a.mouseWheelZoom:1)&&b.push(new Ki({duration:a.zoomDuration}));(void 0!==a.shiftDragZoom?a.shiftDragZoom:1)&&b.push(new Fi({duration:a.zoomDuration}));return b};function Vi(a){var b=a||{};a=Ca({},b);delete a.layers;b=b.layers;nh.call(this,a);this.f=[];this.a={};B(this,db("layers"),this.Tk,this);b?Array.isArray(b)&&(b=new be(b.slice())):b=new be;this.oh(b)}x(Vi,nh);k=Vi.prototype;k.ce=function(){this.yb()&&this.u()};
|
||||||
|
k.Tk=function(){this.f.forEach(Ka);this.f.length=0;var a=this.Tc();this.f.push(B(a,"add",this.Sk,this),B(a,"remove",this.Uk,this));for(var b in this.a)this.a[b].forEach(Ka);Da(this.a);var a=a.a,c,d;b=0;for(c=a.length;b<c;b++)d=a[b],this.a[t(d).toString()]=[B(d,"propertychange",this.ce,this),B(d,"change",this.ce,this)];this.u()};k.Sk=function(a){a=a.element;var b=t(a).toString();this.a[b]=[B(a,"propertychange",this.ce,this),B(a,"change",this.ce,this)];this.u()};
|
||||||
|
k.Uk=function(a){a=t(a.element).toString();this.a[a].forEach(Ka);delete this.a[a];this.u()};k.Tc=function(){return this.get("layers")};k.oh=function(a){this.set("layers",a)};
|
||||||
|
k.hf=function(a){var b=void 0!==a?a:[],c=b.length;this.Tc().forEach(function(a){a.hf(b)});a=oh(this);var d,e;for(d=b.length;c<d;c++)e=b[c],e.opacity*=a.opacity,e.visible=e.visible&&a.visible,e.maxResolution=Math.min(e.maxResolution,a.maxResolution),e.minResolution=Math.max(e.minResolution,a.minResolution),void 0!==a.extent&&(e.extent=void 0!==e.extent?nc(e.extent,a.extent):a.extent);return b};k.kf=function(){return"ready"};function Wi(a){wc.call(this,{code:a,units:"m",extent:Xi,global:!0,worldExtent:Yi})}x(Wi,wc);Wi.prototype.getPointResolution=function(a,b){return a/ta(b[1]/6378137)};var Zi=6378137*Math.PI,Xi=[-Zi,-Zi,Zi,Zi],Yi=[-180,-85,180,85],Ic="EPSG:3857 EPSG:102100 EPSG:102113 EPSG:900913 urn:ogc:def:crs:EPSG:6.18:3:3857 urn:ogc:def:crs:EPSG::3857 http://www.opengis.net/gml/srs/epsg.xml#3857".split(" ").map(function(a){return new Wi(a)});
|
||||||
|
function Jc(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=6378137*Math.PI*a[e]/180,b[e+1]=6378137*Math.log(Math.tan(Math.PI*(a[e+1]+90)/360));return b}function Kc(a,b,c){var d=a.length;c=1<c?c:2;void 0===b&&(2<c?b=a.slice():b=Array(d));for(var e=0;e<d;e+=c)b[e]=180*a[e]/(6378137*Math.PI),b[e+1]=360*Math.atan(Math.exp(a[e+1]/6378137))/Math.PI-90;return b};var $i=new tc(6378137);function aj(a,b){wc.call(this,{code:a,units:"degrees",extent:bj,axisOrientation:b,global:!0,metersPerUnit:cj,worldExtent:bj})}x(aj,wc);aj.prototype.getPointResolution=function(a){return a};
|
||||||
|
var bj=[-180,-90,180,90],cj=Math.PI*$i.radius/180,Lc=[new aj("CRS:84"),new aj("EPSG:4326","neu"),new aj("urn:ogc:def:crs:EPSG::4326","neu"),new aj("urn:ogc:def:crs:EPSG:6.6:4326","neu"),new aj("urn:ogc:def:crs:OGC:1.3:CRS84"),new aj("urn:ogc:def:crs:OGC:2:84"),new aj("http://www.opengis.net/gml/srs/epsg.xml#4326","neu"),new aj("urn:x-ogc:def:crs:EPSG:4326","neu")];function dj(){Ac(Ic);Ac(Lc);Hc()};function ej(a){rh.call(this,a?a:{})}x(ej,rh);function F(a){a=a?a:{};var b=Ca({},a);delete b.preload;delete b.useInterimTilesOnError;rh.call(this,b);this.l(void 0!==a.preload?a.preload:0);this.A(void 0!==a.useInterimTilesOnError?a.useInterimTilesOnError:!0)}x(F,rh);F.prototype.f=function(){return this.get("preload")};F.prototype.l=function(a){this.set("preload",a)};F.prototype.c=function(){return this.get("useInterimTilesOnError")};F.prototype.A=function(a){this.set("useInterimTilesOnError",a)};var fj=[0,0,0,1],gj=[],hj=[0,0,0,1];function ij(a,b,c,d){0!==b&&(a.translate(c,d),a.rotate(b),a.translate(-c,-d))};function jj(a){a=a||{};this.b=void 0!==a.color?a.color:null;this.a=void 0}jj.prototype.g=function(){return this.b};jj.prototype.f=function(a){this.b=a;this.a=void 0};function kj(a){void 0===a.a&&(a.a=a.b instanceof CanvasPattern||a.b instanceof CanvasGradient?t(a.b).toString():"f"+(a.b?le(a.b):"-"));return a.a};function lj(){this.a=-1};function mj(){this.a=64;this.b=Array(4);this.c=Array(this.a);this.b[0]=1732584193;this.b[1]=4023233417;this.b[2]=2562383102;this.b[3]=271733878;this.f=this.g=0}(function(){function a(){}a.prototype=lj.prototype;mj.a=lj.prototype;mj.prototype=new a;mj.prototype.constructor=mj;mj.b=function(a,c,d){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return lj.prototype[c].apply(a,e)}})();
|
||||||
|
function nj(a,b,c){c||(c=0);var d=Array(16);if(ea(b))for(var e=0;16>e;++e)d[e]=b.charCodeAt(c++)|b.charCodeAt(c++)<<8|b.charCodeAt(c++)<<16|b.charCodeAt(c++)<<24;else for(e=0;16>e;++e)d[e]=b[c++]|b[c++]<<8|b[c++]<<16|b[c++]<<24;b=a.b[0];c=a.b[1];var e=a.b[2],f=a.b[3],g;g=b+(f^c&(e^f))+d[0]+3614090360&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[1]+3905402710&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[2]+606105819&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+
|
||||||
|
d[3]+3250441966&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[4]+4118548399&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[5]+1200080426&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[6]+2821735955&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[7]+4249261313&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[8]+1770035416&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[9]+2336552879&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&
|
||||||
|
(b^c))+d[10]+4294925233&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[11]+2304563134&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(f^c&(e^f))+d[12]+1804603682&4294967295;b=c+(g<<7&4294967295|g>>>25);g=f+(e^b&(c^e))+d[13]+4254626195&4294967295;f=b+(g<<12&4294967295|g>>>20);g=e+(c^f&(b^c))+d[14]+2792965006&4294967295;e=f+(g<<17&4294967295|g>>>15);g=c+(b^e&(f^b))+d[15]+1236535329&4294967295;c=e+(g<<22&4294967295|g>>>10);g=b+(e^f&(c^e))+d[1]+4129170786&4294967295;b=c+(g<<5&4294967295|g>>>
|
||||||
|
27);g=f+(c^e&(b^c))+d[6]+3225465664&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[11]+643717713&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[0]+3921069994&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[5]+3593408605&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[10]+38016083&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[15]+3634488961&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[4]+3889429448&4294967295;c=e+(g<<20&4294967295|
|
||||||
|
g>>>12);g=b+(e^f&(c^e))+d[9]+568446438&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[14]+3275163606&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[3]+4107603335&4294967295;e=f+(g<<14&4294967295|g>>>18);g=c+(f^b&(e^f))+d[8]+1163531501&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(e^f&(c^e))+d[13]+2850285829&4294967295;b=c+(g<<5&4294967295|g>>>27);g=f+(c^e&(b^c))+d[2]+4243563512&4294967295;f=b+(g<<9&4294967295|g>>>23);g=e+(b^c&(f^b))+d[7]+1735328473&4294967295;e=f+(g<<14&4294967295|
|
||||||
|
g>>>18);g=c+(f^b&(e^f))+d[12]+2368359562&4294967295;c=e+(g<<20&4294967295|g>>>12);g=b+(c^e^f)+d[5]+4294588738&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[8]+2272392833&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[11]+1839030562&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[14]+4259657740&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[1]+2763975236&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[4]+1272893353&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^
|
||||||
|
b^c)+d[7]+4139469664&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[10]+3200236656&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[13]+681279174&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[0]+3936430074&4294967295;f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[3]+3572445317&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[6]+76029189&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(c^e^f)+d[9]+3654602809&4294967295;b=c+(g<<4&4294967295|g>>>28);g=f+(b^c^e)+d[12]+3873151461&4294967295;
|
||||||
|
f=b+(g<<11&4294967295|g>>>21);g=e+(f^b^c)+d[15]+530742520&4294967295;e=f+(g<<16&4294967295|g>>>16);g=c+(e^f^b)+d[2]+3299628645&4294967295;c=e+(g<<23&4294967295|g>>>9);g=b+(e^(c|~f))+d[0]+4096336452&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[7]+1126891415&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[14]+2878612391&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[5]+4237533241&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[12]+1700485571&4294967295;b=c+
|
||||||
|
(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[3]+2399980690&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[10]+4293915773&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[1]+2240044497&4294967295;c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[8]+1873313359&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[15]+4264355552&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[6]+2734768916&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[13]+1309151649&4294967295;
|
||||||
|
c=e+(g<<21&4294967295|g>>>11);g=b+(e^(c|~f))+d[4]+4149444226&4294967295;b=c+(g<<6&4294967295|g>>>26);g=f+(c^(b|~e))+d[11]+3174756917&4294967295;f=b+(g<<10&4294967295|g>>>22);g=e+(b^(f|~c))+d[2]+718787259&4294967295;e=f+(g<<15&4294967295|g>>>17);g=c+(f^(e|~b))+d[9]+3951481745&4294967295;a.b[0]=a.b[0]+b&4294967295;a.b[1]=a.b[1]+(e+(g<<21&4294967295|g>>>11))&4294967295;a.b[2]=a.b[2]+e&4294967295;a.b[3]=a.b[3]+f&4294967295}
|
||||||
|
function oj(a,b){var c;void 0===c&&(c=b.length);for(var d=c-a.a,e=a.c,f=a.g,g=0;g<c;){if(0==f)for(;g<=d;)nj(a,b,g),g+=a.a;if(ea(b))for(;g<c;){if(e[f++]=b.charCodeAt(g++),f==a.a){nj(a,e);f=0;break}}else for(;g<c;)if(e[f++]=b[g++],f==a.a){nj(a,e);f=0;break}}a.g=f;a.f+=c};function pj(a){a=a||{};this.b=void 0!==a.color?a.color:null;this.f=a.lineCap;this.g=void 0!==a.lineDash?a.lineDash:null;this.c=a.lineJoin;this.i=a.miterLimit;this.a=a.width;this.l=void 0}k=pj.prototype;k.Kn=function(){return this.b};k.dk=function(){return this.f};k.Ln=function(){return this.g};k.ek=function(){return this.c};k.jk=function(){return this.i};k.Mn=function(){return this.a};k.Nn=function(a){this.b=a;this.l=void 0};k.fp=function(a){this.f=a;this.l=void 0};
|
||||||
|
k.On=function(a){this.g=a;this.l=void 0};k.gp=function(a){this.c=a;this.l=void 0};k.hp=function(a){this.i=a;this.l=void 0};k.lp=function(a){this.a=a;this.l=void 0};
|
||||||
|
function qj(a){if(void 0===a.l){var b="s"+(a.b?le(a.b):"-")+","+(void 0!==a.f?a.f.toString():"-")+","+(a.g?a.g.toString():"-")+","+(void 0!==a.c?a.c:"-")+","+(void 0!==a.i?a.i.toString():"-")+","+(void 0!==a.a?a.a.toString():"-"),c=new mj;oj(c,b);b=Array((56>c.g?c.a:2*c.a)-c.g);b[0]=128;for(var d=1;d<b.length-8;++d)b[d]=0;for(var e=8*c.f,d=b.length-8;d<b.length;++d)b[d]=e&255,e/=256;oj(c,b);b=Array(16);for(d=e=0;4>d;++d)for(var f=0;32>f;f+=8)b[e++]=c.b[d]>>>f&255;if(8192>=b.length)c=String.fromCharCode.apply(null,
|
||||||
|
b);else for(c="",d=0;d<b.length;d+=8192)e=fe(b,d,d+8192),c+=String.fromCharCode.apply(null,e);a.l=c}return a.l};function rj(a){a=a||{};this.l=this.f=this.c=null;this.g=void 0!==a.fill?a.fill:null;this.b=void 0!==a.stroke?a.stroke:null;this.a=a.radius;this.A=[0,0];this.s=this.C=this.o=null;var b=a.atlasManager,c,d=null,e,f=0;this.b&&(e=le(this.b.b),f=this.b.a,void 0===f&&(f=1),d=this.b.g,ag||(d=null));var g=2*(this.a+f)+1;e={strokeStyle:e,Bd:f,size:g,lineDash:d};if(void 0===b)b=Ge(g,g),this.f=b.canvas,c=g=this.f.width,this.Gh(e,b,0,0),this.g?this.l=this.f:(b=Ge(e.size,e.size),this.l=b.canvas,this.Fh(e,b,0,0));
|
||||||
|
else{g=Math.round(g);(d=!this.g)&&(c=this.Fh.bind(this,e));var f=this.b?qj(this.b):"-",h=this.g?kj(this.g):"-";this.c&&f==this.c[1]&&h==this.c[2]&&this.a==this.c[3]||(this.c=["c"+f+h+(void 0!==this.a?this.a.toString():"-"),f,h,this.a]);b=b.add(this.c[0],g,g,this.Gh.bind(this,e),c);this.f=b.image;this.A=[b.offsetX,b.offsetY];c=b.image.width;this.l=d?b.Sg:this.f}this.o=[g/2,g/2];this.C=[g,g];this.s=[c,c];Eh.call(this,{opacity:1,rotateWithView:!1,rotation:0,scale:1,snapToPixel:void 0!==a.snapToPixel?
|
||||||
|
a.snapToPixel:!0})}x(rj,Eh);k=rj.prototype;k.Zb=function(){return this.o};k.Bn=function(){return this.g};k.pe=function(){return this.l};k.jc=function(){return this.f};k.td=function(){return 2};k.ld=function(){return this.s};k.Ia=function(){return this.A};k.Cn=function(){return this.a};k.Gb=function(){return this.C};k.Dn=function(){return this.b};k.pf=oa;k.load=oa;k.Xf=oa;
|
||||||
|
k.Gh=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);this.g&&(b.fillStyle=ne(this.g.b),b.fill());this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};
|
||||||
|
k.Fh=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();b.arc(a.size/2,a.size/2,this.a,0,2*Math.PI,!0);b.fillStyle=le(fj);b.fill();this.b&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};function sj(a){a=a||{};this.i=null;this.g=tj;void 0!==a.geometry&&this.Jh(a.geometry);this.c=void 0!==a.fill?a.fill:null;this.a=void 0!==a.image?a.image:null;this.f=void 0!==a.stroke?a.stroke:null;this.l=void 0!==a.text?a.text:null;this.b=a.zIndex}k=sj.prototype;k.X=function(){return this.i};k.Zj=function(){return this.g};k.Pn=function(){return this.c};k.Qn=function(){return this.a};k.Rn=function(){return this.f};k.Ha=function(){return this.l};k.Sn=function(){return this.b};
|
||||||
|
k.Jh=function(a){"function"===typeof a?this.g=a:"string"===typeof a?this.g=function(b){return b.get(a)}:a?a&&(this.g=function(){return a}):this.g=tj;this.i=a};k.Tn=function(a){this.b=a};function uj(a){if("function"!==typeof a){var b;b=Array.isArray(a)?a:[a];a=function(){return b}}return a}var vj=null;function wj(){if(!vj){var a=new jj({color:"rgba(255,255,255,0.4)"}),b=new pj({color:"#3399CC",width:1.25});vj=[new sj({image:new rj({fill:a,stroke:b,radius:5}),fill:a,stroke:b})]}return vj}
|
||||||
|
function xj(){var a={},b=[255,255,255,1],c=[0,153,255,1];a.Polygon=[new sj({fill:new jj({color:[255,255,255,.5]})})];a.MultiPolygon=a.Polygon;a.LineString=[new sj({stroke:new pj({color:b,width:5})}),new sj({stroke:new pj({color:c,width:3})})];a.MultiLineString=a.LineString;a.Circle=a.Polygon.concat(a.LineString);a.Point=[new sj({image:new rj({radius:6,fill:new jj({color:c}),stroke:new pj({color:b,width:1.5})}),zIndex:Infinity})];a.MultiPoint=a.Point;a.GeometryCollection=a.Polygon.concat(a.LineString,
|
||||||
|
a.Point);return a}function tj(a){return a.X()};function I(a){a=a?a:{};var b=Ca({},a);delete b.style;delete b.renderBuffer;delete b.updateWhileAnimating;delete b.updateWhileInteracting;rh.call(this,b);this.a=void 0!==a.renderBuffer?a.renderBuffer:100;this.A=null;this.i=void 0;this.l(a.style);this.P=void 0!==a.updateWhileAnimating?a.updateWhileAnimating:!1;this.T=void 0!==a.updateWhileInteracting?a.updateWhileInteracting:!1}x(I,rh);function yj(a){return a.get("renderOrder")}I.prototype.D=function(){return this.A};I.prototype.C=function(){return this.i};
|
||||||
|
I.prototype.l=function(a){this.A=void 0!==a?a:wj;this.i=null===a?void 0:uj(this.A);this.u()};function J(a){a=a?a:{};var b=Ca({},a);delete b.preload;delete b.useInterimTilesOnError;I.call(this,b);this.W(a.preload?a.preload:0);this.ia(a.useInterimTilesOnError?a.useInterimTilesOnError:!0);this.s=a.renderMode||"hybrid"}x(J,I);J.prototype.f=function(){return this.get("preload")};J.prototype.c=function(){return this.get("useInterimTilesOnError")};J.prototype.W=function(a){this.set("preload",a)};J.prototype.ia=function(a){this.set("useInterimTilesOnError",a)};function zj(a,b,c,d,e){this.f=a;this.A=b;this.c=c;this.C=d;this.Hc=e;this.i=this.b=this.a=this.ia=this.Ra=this.W=null;this.Ba=this.na=this.v=this.Aa=this.ya=this.S=0;this.Hb=!1;this.l=this.oa=0;this.za=!1;this.P=0;this.g="";this.j=this.D=this.cb=this.Sa=0;this.T=this.s=this.o=null;this.U=[];this.rb=ch()}x(zj,ph);
|
||||||
|
function Aj(a,b,c){if(a.i){b=Vc(b,0,c,2,a.C,a.U);c=a.f;var d=a.rb,e=c.globalAlpha;1!=a.v&&(c.globalAlpha=e*a.v);var f=a.oa;a.Hb&&(f+=a.Hc);var g,h;g=0;for(h=b.length;g<h;g+=2){var l=b[g]-a.S,m=b[g+1]-a.ya;a.za&&(l=Math.round(l),m=Math.round(m));if(0!==f||1!=a.l){var n=l+a.S,p=m+a.ya;lh(d,n,p,a.l,a.l,f,-n,-p);c.setTransform.apply(c,d)}c.drawImage(a.i,a.na,a.Ba,a.P,a.Aa,l,m,a.P,a.Aa)}0===f&&1==a.l||c.setTransform(1,0,0,1,0,0);1!=a.v&&(c.globalAlpha=e)}}
|
||||||
|
function Bj(a,b,c,d){var e=0;if(a.T&&""!==a.g){a.o&&Cj(a,a.o);a.s&&Dj(a,a.s);var f=a.T,g=a.f,h=a.ia;h?(h.font!=f.font&&(h.font=g.font=f.font),h.textAlign!=f.textAlign&&(h.textAlign=g.textAlign=f.textAlign),h.textBaseline!=f.textBaseline&&(h.textBaseline=g.textBaseline=f.textBaseline)):(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline,a.ia={font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});b=Vc(b,e,c,d,a.C,a.U);for(f=a.f;e<c;e+=d){g=b[e]+a.Sa;h=b[e+1]+a.cb;if(0!==a.D||
|
||||||
|
1!=a.j){var l=lh(a.rb,g,h,a.j,a.j,a.D,-g,-h);f.setTransform.apply(f,l)}a.s&&f.strokeText(a.g,g,h);a.o&&f.fillText(a.g,g,h)}0===a.D&&1==a.j||f.setTransform(1,0,0,1,0,0)}}function Ej(a,b,c,d,e,f){var g=a.f;a=Vc(b,c,d,e,a.C,a.U);g.moveTo(a[0],a[1]);b=a.length;f&&(b-=2);for(c=2;c<b;c+=2)g.lineTo(a[c],a[c+1]);f&&g.closePath();return d}function Fj(a,b,c,d,e){var f,g;f=0;for(g=d.length;f<g;++f)c=Ej(a,b,c,d[f],e,!0);return c}k=zj.prototype;
|
||||||
|
k.Rd=function(a){if(oc(this.c,a.H())){if(this.a||this.b){this.a&&Cj(this,this.a);this.b&&Dj(this,this.b);var b;b=this.C;var c=this.U,d=a.la();b=d?Vc(d,0,d.length,a.va(),b,c):null;c=b[2]-b[0];d=b[3]-b[1];c=Math.sqrt(c*c+d*d);d=this.f;d.beginPath();d.arc(b[0],b[1],c,0,2*Math.PI);this.a&&d.fill();this.b&&d.stroke()}""!==this.g&&Bj(this,a.rd(),2,2)}};k.sd=function(a){this.Tb(a.c,a.f);this.Ub(a.a);this.Wb(a.Ha())};
|
||||||
|
k.sc=function(a){switch(a.Y()){case "Point":this.uc(a);break;case "LineString":this.hd(a);break;case "Polygon":this.bf(a);break;case "MultiPoint":this.tc(a);break;case "MultiLineString":this.$e(a);break;case "MultiPolygon":this.af(a);break;case "GeometryCollection":this.Ze(a);break;case "Circle":this.Rd(a)}};k.Ye=function(a,b){var c=(0,b.g)(a);c&&oc(this.c,c.H())&&(this.sd(b),this.sc(c))};k.Ze=function(a){a=a.c;var b,c;b=0;for(c=a.length;b<c;++b)this.sc(a[b])};
|
||||||
|
k.uc=function(a){var b=a.la();a=a.va();this.i&&Aj(this,b,b.length);""!==this.g&&Bj(this,b,b.length,a)};k.tc=function(a){var b=a.la();a=a.va();this.i&&Aj(this,b,b.length);""!==this.g&&Bj(this,b,b.length,a)};k.hd=function(a){if(oc(this.c,a.H())){if(this.b){Dj(this,this.b);var b=this.f,c=a.la();b.beginPath();Ej(this,c,0,c.length,a.va(),!1);b.stroke()}""!==this.g&&(a=Gj(a),Bj(this,a,2,2))}};
|
||||||
|
k.$e=function(a){var b=a.H();if(oc(this.c,b)){if(this.b){Dj(this,this.b);var b=this.f,c=a.la(),d=0,e=a.Eb(),f=a.va();b.beginPath();var g,h;g=0;for(h=e.length;g<h;++g)d=Ej(this,c,d,e[g],f,!1);b.stroke()}""!==this.g&&(a=Hj(a),Bj(this,a,a.length,2))}};k.bf=function(a){if(oc(this.c,a.H())){if(this.b||this.a){this.a&&Cj(this,this.a);this.b&&Dj(this,this.b);var b=this.f;b.beginPath();Fj(this,a.Nb(),0,a.Eb(),a.va());this.a&&b.fill();this.b&&b.stroke()}""!==this.g&&(a=Ad(a),Bj(this,a,2,2))}};
|
||||||
|
k.af=function(a){if(oc(this.c,a.H())){if(this.b||this.a){this.a&&Cj(this,this.a);this.b&&Dj(this,this.b);var b=this.f,c=Ij(a),d=0,e=a.i,f=a.va(),g,h;g=0;for(h=e.length;g<h;++g){var l=e[g];b.beginPath();d=Fj(this,c,d,l,f);this.a&&b.fill();this.b&&b.stroke()}}""!==this.g&&(a=Jj(a),Bj(this,a,a.length,2))}};function Cj(a,b){var c=a.f,d=a.W;d?d.fillStyle!=b.fillStyle&&(d.fillStyle=c.fillStyle=b.fillStyle):(c.fillStyle=b.fillStyle,a.W={fillStyle:b.fillStyle})}
|
||||||
|
function Dj(a,b){var c=a.f,d=a.Ra;d?(d.lineCap!=b.lineCap&&(d.lineCap=c.lineCap=b.lineCap),ag&&!mb(d.lineDash,b.lineDash)&&c.setLineDash(d.lineDash=b.lineDash),d.lineJoin!=b.lineJoin&&(d.lineJoin=c.lineJoin=b.lineJoin),d.lineWidth!=b.lineWidth&&(d.lineWidth=c.lineWidth=b.lineWidth),d.miterLimit!=b.miterLimit&&(d.miterLimit=c.miterLimit=b.miterLimit),d.strokeStyle!=b.strokeStyle&&(d.strokeStyle=c.strokeStyle=b.strokeStyle)):(c.lineCap=b.lineCap,ag&&c.setLineDash(b.lineDash),c.lineJoin=b.lineJoin,c.lineWidth=
|
||||||
|
b.lineWidth,c.miterLimit=b.miterLimit,c.strokeStyle=b.strokeStyle,a.Ra={lineCap:b.lineCap,lineDash:b.lineDash,lineJoin:b.lineJoin,lineWidth:b.lineWidth,miterLimit:b.miterLimit,strokeStyle:b.strokeStyle})}
|
||||||
|
k.Tb=function(a,b){if(a){var c=a.b;this.a={fillStyle:ne(c?c:fj)}}else this.a=null;if(b){var c=b.b,d=b.f,e=b.g,f=b.c,g=b.a,h=b.i;this.b={lineCap:void 0!==d?d:"round",lineDash:e?e:gj,lineJoin:void 0!==f?f:"round",lineWidth:this.A*(void 0!==g?g:1),miterLimit:void 0!==h?h:10,strokeStyle:le(c?c:hj)}}else this.b=null};
|
||||||
|
k.Ub=function(a){if(a){var b=a.Zb(),c=a.jc(1),d=a.Ia(),e=a.Gb();this.S=b[0];this.ya=b[1];this.Aa=e[1];this.i=c;this.v=a.v;this.na=d[0];this.Ba=d[1];this.Hb=a.U;this.oa=a.j;this.l=a.i;this.za=a.D;this.P=e[0]}else this.i=null};
|
||||||
|
k.Wb=function(a){if(a){var b=a.b;b?(b=b.b,this.o={fillStyle:ne(b?b:fj)}):this.o=null;var c=a.l;if(c){var b=c.b,d=c.f,e=c.g,f=c.c,g=c.a,c=c.i;this.s={lineCap:void 0!==d?d:"round",lineDash:e?e:gj,lineJoin:void 0!==f?f:"round",lineWidth:void 0!==g?g:1,miterLimit:void 0!==c?c:10,strokeStyle:le(b?b:hj)}}else this.s=null;var b=a.g,d=a.f,e=a.c,f=a.i,g=a.a,c=a.Ha(),h=a.o;a=a.j;this.T={font:void 0!==b?b:"10px sans-serif",textAlign:void 0!==h?h:"center",textBaseline:void 0!==a?a:"middle"};this.g=void 0!==c?
|
||||||
|
c:"";this.Sa=void 0!==d?this.A*d:0;this.cb=void 0!==e?this.A*e:0;this.D=void 0!==f?f:0;this.j=this.A*(void 0!==g?g:1)}else this.g=""};function Kj(a){vh.call(this,a);this.S=ch()}x(Kj,vh);
|
||||||
|
Kj.prototype.i=function(a,b,c){Lj(this,"precompose",c,a,void 0);var d=this.f?this.f.a():null;if(d){var e=b.extent,f=void 0!==e;if(f){var g=a.pixelRatio,h=a.size[0]*g,l=a.size[1]*g,m=a.viewState.rotation,n=fc(e),p=ec(e),q=dc(e),e=cc(e);hh(a.coordinateToPixelTransform,n);hh(a.coordinateToPixelTransform,p);hh(a.coordinateToPixelTransform,q);hh(a.coordinateToPixelTransform,e);c.save();ij(c,-m,h/2,l/2);c.beginPath();c.moveTo(n[0]*g,n[1]*g);c.lineTo(p[0]*g,p[1]*g);c.lineTo(q[0]*g,q[1]*g);c.lineTo(e[0]*
|
||||||
|
g,e[1]*g);c.clip();ij(c,m,h/2,l/2)}g=this.s;h=c.globalAlpha;c.globalAlpha=b.opacity;c.drawImage(d,0,0,+d.width,+d.height,Math.round(g[4]),Math.round(g[5]),Math.round(d.width*g[0]),Math.round(d.height*g[3]));c.globalAlpha=h;f&&c.restore()}Mj(this,c,a)};
|
||||||
|
function Lj(a,b,c,d,e){var f=a.a;if(Ya(f,b)){var g=d.size[0]*d.pixelRatio,h=d.size[1]*d.pixelRatio,l=d.viewState.rotation;ij(c,-l,g/2,h/2);a=void 0!==e?e:Nj(a,d,0);f.b(new qh(b,new zj(c,d.pixelRatio,d.extent,a,d.viewState.rotation),d,c,null));ij(c,l,g/2,h/2)}}function Mj(a,b,c,d){Lj(a,"postcompose",b,c,d)}function Nj(a,b,c){var d=b.viewState,e=b.pixelRatio,f=e/d.resolution;return lh(a.S,e*b.size[0]/2,e*b.size[1]/2,f,-f,-d.rotation,-d.center[0]+c,-d.center[1])};var Oj=["Polygon","LineString","Image","Text"];function Pj(a,b,c,d){this.Ba=a;this.T=b;this.overlaps=d;this.f=null;this.c=0;this.resolution=c;this.Aa=this.ya=null;this.a=[];this.coordinates=[];this.Ra=ch();this.b=[];this.W=[];this.ia=ch();this.na=ch()}x(Pj,ph);
|
||||||
|
function Qj(a,b,c,d,e,f){var g=a.coordinates.length,h=a.df(),l=[b[c],b[c+1]],m=[NaN,NaN],n=!0,p,q,r;for(p=c+e;p<d;p+=e)m[0]=b[p],m[1]=b[p+1],r=Tb(h,m),r!==q?(n&&(a.coordinates[g++]=l[0],a.coordinates[g++]=l[1]),a.coordinates[g++]=m[0],a.coordinates[g++]=m[1],n=!1):1===r?(a.coordinates[g++]=m[0],a.coordinates[g++]=m[1],n=!1):n=!0,l[0]=m[0],l[1]=m[1],q=r;p===c+e&&(a.coordinates[g++]=l[0],a.coordinates[g++]=l[1]);f&&(a.coordinates[g++]=b[c],a.coordinates[g++]=b[c+1]);return g}
|
||||||
|
function Rj(a,b){a.ya=[0,b,0];a.a.push(a.ya);a.Aa=[0,b,0];a.b.push(a.Aa)}
|
||||||
|
function Sj(a,b,c,d,e,f,g,h,l){var m;mb(d,a.Ra)?m=a.W:(m=Vc(a.coordinates,0,a.coordinates.length,2,d,a.W),gh(a.Ra,d));d=!Ga(f);var n=0,p=g.length,q,r,v=a.ia,y=a.na,w,G,z,D,H=0,ba=0;for(a=a.a!=g||a.overlaps?0:200;n<p;){var A=g[n],Fa,Ja,M,ma;switch(A[0]){case 0:q=A[1];d&&f[t(q).toString()]||!q.X()?n=A[2]:void 0===l||oc(l,q.X().H())?++n:n=A[2];break;case 1:H>a&&(b.fill(),H=0);ba>a&&(b.stroke(),ba=0);H||ba||b.beginPath();++n;break;case 2:q=A[1];r=m[q];A=m[q+1];z=m[q+2];q=m[q+3];D=z-r;ma=q-A;D=Math.sqrt(D*
|
||||||
|
D+ma*ma);b.moveTo(z,q);b.arc(r,A,D,0,2*Math.PI,!0);++n;break;case 3:b.closePath();++n;break;case 4:q=A[1];r=A[2];Fa=A[3];M=A[4]*c;var Ub=A[5]*c,Kb=A[6];Ja=A[7];var Hb=A[8],Xb=A[9];z=A[11];D=A[12];var gc=A[13],Nb=A[14];for(A[10]&&(z+=e);q<r;q+=2){A=m[q]-M;ma=m[q+1]-Ub;gc&&(A=Math.round(A),ma=Math.round(ma));if(1!=D||0!==z){var Od=A+M,sf=ma+Ub;lh(v,Od,sf,D,D,z,-Od,-sf);b.transform.apply(b,v)}Od=b.globalAlpha;1!=Ja&&(b.globalAlpha=Od*Ja);var sf=Nb+Hb>Fa.width?Fa.width-Hb:Nb,Pd=Kb+Xb>Fa.height?Fa.height-
|
||||||
|
Xb:Kb;b.drawImage(Fa,Hb,Xb,sf,Pd,A,ma,sf*c,Pd*c);1!=Ja&&(b.globalAlpha=Od);if(1!=D||0!==z)mh(gh(y,v)),b.transform.apply(b,y)}++n;break;case 5:q=A[1];r=A[2];M=A[3];Ub=A[4]*c;Kb=A[5]*c;z=A[6];D=A[7]*c;Fa=A[8];for(Ja=A[9];q<r;q+=2){A=m[q]+Ub;ma=m[q+1]+Kb;if(1!=D||0!==z)lh(v,A,ma,D,D,z,-A,-ma),b.transform.apply(b,v);Hb=M.split("\n");Xb=Hb.length;1<Xb?(gc=Math.round(1.5*b.measureText("M").width),ma-=(Xb-1)/2*gc):gc=0;for(Nb=0;Nb<Xb;Nb++)Od=Hb[Nb],Ja&&b.strokeText(Od,A,ma),Fa&&b.fillText(Od,A,ma),ma+=gc;
|
||||||
|
if(1!=D||0!==z)mh(gh(y,v)),b.transform.apply(b,y)}++n;break;case 6:if(void 0!==h&&(q=A[1],q=h(q)))return q;++n;break;case 7:a?H++:b.fill();++n;break;case 8:q=A[1];r=A[2];A=m[q];ma=m[q+1];z=A+.5|0;D=ma+.5|0;if(z!==w||D!==G)b.moveTo(A,ma),w=z,G=D;for(q+=2;q<r;q+=2)if(A=m[q],ma=m[q+1],z=A+.5|0,D=ma+.5|0,q==r-2||z!==w||D!==G)b.lineTo(A,ma),w=z,G=D;++n;break;case 9:H&&(b.fill(),H=0);b.fillStyle=A[1];++n;break;case 10:w=void 0!==A[7]?A[7]:!0;G=A[2];ba&&(b.stroke(),ba=0);b.strokeStyle=A[1];b.lineWidth=w?
|
||||||
|
G*c:G;b.lineCap=A[3];b.lineJoin=A[4];b.miterLimit=A[5];ag&&b.setLineDash(A[6]);G=w=NaN;++n;break;case 11:b.font=A[1];b.textAlign=A[2];b.textBaseline=A[3];++n;break;case 12:a?ba++:b.stroke();++n;break;default:++n}}H&&b.fill();ba&&b.stroke()}Pj.prototype.Pa=function(a,b,c,d,e){Sj(this,a,b,c,d,e,this.a,void 0,void 0)};
|
||||||
|
function Tj(a){var b=a.b;b.reverse();var c,d=b.length,e,f,g=-1;for(c=0;c<d;++c)if(e=b[c],f=e[0],6==f)g=c;else if(0==f){e[2]=c;e=a.b;for(f=c;g<f;){var h=e[g];e[g]=e[f];e[f]=h;++g;--f}g=-1}}function Uj(a,b){a.ya[2]=a.a.length;a.ya=null;a.Aa[2]=a.b.length;a.Aa=null;var c=[6,b];a.a.push(c);a.b.push(c)}Pj.prototype.ke=oa;Pj.prototype.df=function(){return this.T};
|
||||||
|
function Vj(a,b,c,d){Pj.call(this,a,b,c,d);this.o=this.P=null;this.S=this.C=this.D=this.A=this.U=this.v=this.s=this.j=this.l=this.i=this.g=void 0}x(Vj,Pj);Vj.prototype.uc=function(a,b){if(this.o){Rj(this,b);var c=a.la(),d=this.coordinates.length,c=Qj(this,c,0,c.length,a.va(),!1);this.a.push([4,d,c,this.o,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);this.b.push([4,d,c,this.P,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);Uj(this,b)}};
|
||||||
|
Vj.prototype.tc=function(a,b){if(this.o){Rj(this,b);var c=a.la(),d=this.coordinates.length,c=Qj(this,c,0,c.length,a.va(),!1);this.a.push([4,d,c,this.o,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);this.b.push([4,d,c,this.P,this.g,this.i,this.l,this.j,this.s,this.v,this.U,this.A,this.D,this.C,this.S]);Uj(this,b)}};Vj.prototype.ke=function(){Tj(this);this.i=this.g=void 0;this.o=this.P=null;this.S=this.C=this.A=this.U=this.v=this.s=this.j=this.D=this.l=void 0};
|
||||||
|
Vj.prototype.Ub=function(a){var b=a.Zb(),c=a.Gb(),d=a.pe(1),e=a.jc(1),f=a.Ia();this.g=b[0];this.i=b[1];this.P=d;this.o=e;this.l=c[1];this.j=a.v;this.s=f[0];this.v=f[1];this.U=a.U;this.A=a.j;this.D=a.i;this.C=a.D;this.S=c[0]};function Wj(a,b,c,d){Pj.call(this,a,b,c,d);this.g={fd:void 0,ad:void 0,bd:null,cd:void 0,dd:void 0,ed:void 0,nf:0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}x(Wj,Pj);
|
||||||
|
function Xj(a,b,c,d,e){var f=a.coordinates.length;b=Qj(a,b,c,d,e,!1);f=[8,f,b];a.a.push(f);a.b.push(f);return d}k=Wj.prototype;k.df=function(){this.f||(this.f=Ob(this.T),0<this.c&&Mb(this.f,this.resolution*(this.c+1)/2,this.f));return this.f};
|
||||||
|
function Yj(a){var b=a.g,c=b.strokeStyle,d=b.lineCap,e=b.lineDash,f=b.lineJoin,g=b.lineWidth,h=b.miterLimit;b.fd==c&&b.ad==d&&mb(b.bd,e)&&b.cd==f&&b.dd==g&&b.ed==h||(b.nf!=a.coordinates.length&&(a.a.push([12]),b.nf=a.coordinates.length),a.a.push([10,c,g,d,f,h,e],[1]),b.fd=c,b.ad=d,b.bd=e,b.cd=f,b.dd=g,b.ed=h)}
|
||||||
|
k.hd=function(a,b){var c=this.g,d=c.lineWidth;void 0!==c.strokeStyle&&void 0!==d&&(Yj(this),Rj(this,b),this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]),c=a.la(),Xj(this,c,0,c.length,a.va()),this.b.push([12]),Uj(this,b))};
|
||||||
|
k.$e=function(a,b){var c=this.g,d=c.lineWidth;if(void 0!==c.strokeStyle&&void 0!==d){Yj(this);Rj(this,b);this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash],[1]);var c=a.Eb(),d=a.la(),e=a.va(),f=0,g,h;g=0;for(h=c.length;g<h;++g)f=Xj(this,d,f,c[g],e);this.b.push([12]);Uj(this,b)}};k.ke=function(){this.g.nf!=this.coordinates.length&&this.a.push([12]);Tj(this);this.g=null};
|
||||||
|
k.Tb=function(a,b){var c=b.b;this.g.strokeStyle=le(c?c:hj);c=b.f;this.g.lineCap=void 0!==c?c:"round";c=b.g;this.g.lineDash=c?c:gj;c=b.c;this.g.lineJoin=void 0!==c?c:"round";c=b.a;this.g.lineWidth=void 0!==c?c:1;c=b.i;this.g.miterLimit=void 0!==c?c:10;this.g.lineWidth>this.c&&(this.c=this.g.lineWidth,this.f=null)};
|
||||||
|
function Zj(a,b,c,d){Pj.call(this,a,b,c,d);this.g={ug:void 0,fd:void 0,ad:void 0,bd:null,cd:void 0,dd:void 0,ed:void 0,fillStyle:void 0,strokeStyle:void 0,lineCap:void 0,lineDash:null,lineJoin:void 0,lineWidth:void 0,miterLimit:void 0}}x(Zj,Pj);
|
||||||
|
function ak(a,b,c,d,e){var f=a.g,g=[1];a.a.push(g);a.b.push(g);var h,g=0;for(h=d.length;g<h;++g){var l=d[g],m=a.coordinates.length;c=Qj(a,b,c,l,e,!0);c=[8,m,c];m=[3];a.a.push(c,m);a.b.push(c,m);c=l}b=[7];a.b.push(b);void 0!==f.fillStyle&&a.a.push(b);void 0!==f.strokeStyle&&(f=[12],a.a.push(f),a.b.push(f));return c}k=Zj.prototype;
|
||||||
|
k.Rd=function(a,b){var c=this.g,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){bk(this);Rj(this,b);this.b.push([9,le(fj)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var e=a.la(),d=this.coordinates.length;Qj(this,e,0,e.length,a.va(),!1);e=[1];d=[2,d];this.a.push(e,d);this.b.push(e,d);d=[7];this.b.push(d);void 0!==c.fillStyle&&this.a.push(d);void 0!==c.strokeStyle&&(c=[12],this.a.push(c),this.b.push(c));Uj(this,b)}};
|
||||||
|
k.bf=function(a,b){var c=this.g,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d)bk(this),Rj(this,b),this.b.push([9,le(fj)]),void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]),c=a.Eb(),d=a.Nb(),ak(this,d,0,c,a.va()),Uj(this,b)};
|
||||||
|
k.af=function(a,b){var c=this.g,d=c.strokeStyle;if(void 0!==c.fillStyle||void 0!==d){bk(this);Rj(this,b);this.b.push([9,le(fj)]);void 0!==c.strokeStyle&&this.b.push([10,c.strokeStyle,c.lineWidth,c.lineCap,c.lineJoin,c.miterLimit,c.lineDash]);var c=a.i,d=Ij(a),e=a.va(),f=0,g,h;g=0;for(h=c.length;g<h;++g)f=ak(this,d,f,c[g],e);Uj(this,b)}};k.ke=function(){Tj(this);this.g=null;var a=this.Ba;if(0!==a){var b=this.coordinates,c,d;c=0;for(d=b.length;c<d;++c)b[c]=a*Math.round(b[c]/a)}};
|
||||||
|
k.df=function(){this.f||(this.f=Ob(this.T),0<this.c&&Mb(this.f,this.resolution*(this.c+1)/2,this.f));return this.f};
|
||||||
|
k.Tb=function(a,b){var c=this.g;if(a){var d=a.b;c.fillStyle=ne(d?d:fj)}else c.fillStyle=void 0;b?(d=b.b,c.strokeStyle=le(d?d:hj),d=b.f,c.lineCap=void 0!==d?d:"round",d=b.g,c.lineDash=d?d.slice():gj,d=b.c,c.lineJoin=void 0!==d?d:"round",d=b.a,c.lineWidth=void 0!==d?d:1,d=b.i,c.miterLimit=void 0!==d?d:10,c.lineWidth>this.c&&(this.c=c.lineWidth,this.f=null)):(c.strokeStyle=void 0,c.lineCap=void 0,c.lineDash=null,c.lineJoin=void 0,c.lineWidth=void 0,c.miterLimit=void 0)};
|
||||||
|
function bk(a){var b=a.g,c=b.fillStyle,d=b.strokeStyle,e=b.lineCap,f=b.lineDash,g=b.lineJoin,h=b.lineWidth,l=b.miterLimit;void 0!==c&&b.ug!=c&&(a.a.push([9,c]),b.ug=b.fillStyle);void 0===d||b.fd==d&&b.ad==e&&b.bd==f&&b.cd==g&&b.dd==h&&b.ed==l||(a.a.push([10,d,h,e,g,l,f]),b.fd=d,b.ad=e,b.bd=f,b.cd=g,b.dd=h,b.ed=l)}function ck(a,b,c,d){Pj.call(this,a,b,c,d);this.C=this.D=this.A=null;this.o="";this.U=this.v=this.s=this.j=0;this.l=this.i=this.g=null}x(ck,Pj);
|
||||||
|
function dk(a,b,c,d,e){if(""!==a.o&&a.l&&(a.g||a.i)){if(a.g){var f=a.g,g=a.A;if(!g||g.fillStyle!=f.fillStyle){var h=[9,f.fillStyle];a.a.push(h);a.b.push(h);g?g.fillStyle=f.fillStyle:a.A={fillStyle:f.fillStyle}}}a.i&&(f=a.i,g=a.D,g&&g.lineCap==f.lineCap&&g.lineDash==f.lineDash&&g.lineJoin==f.lineJoin&&g.lineWidth==f.lineWidth&&g.miterLimit==f.miterLimit&&g.strokeStyle==f.strokeStyle||(h=[10,f.strokeStyle,f.lineWidth,f.lineCap,f.lineJoin,f.miterLimit,f.lineDash,!1],a.a.push(h),a.b.push(h),g?(g.lineCap=
|
||||||
|
f.lineCap,g.lineDash=f.lineDash,g.lineJoin=f.lineJoin,g.lineWidth=f.lineWidth,g.miterLimit=f.miterLimit,g.strokeStyle=f.strokeStyle):a.D={lineCap:f.lineCap,lineDash:f.lineDash,lineJoin:f.lineJoin,lineWidth:f.lineWidth,miterLimit:f.miterLimit,strokeStyle:f.strokeStyle}));f=a.l;g=a.C;g&&g.font==f.font&&g.textAlign==f.textAlign&&g.textBaseline==f.textBaseline||(h=[11,f.font,f.textAlign,f.textBaseline],a.a.push(h),a.b.push(h),g?(g.font=f.font,g.textAlign=f.textAlign,g.textBaseline=f.textBaseline):a.C=
|
||||||
|
{font:f.font,textAlign:f.textAlign,textBaseline:f.textBaseline});Rj(a,e);f=a.coordinates.length;b=Qj(a,b,0,c,d,!1);b=[5,f,b,a.o,a.j,a.s,a.v,a.U,!!a.g,!!a.i];a.a.push(b);a.b.push(b);Uj(a,e)}}
|
||||||
|
ck.prototype.Wb=function(a){if(a){var b=a.b;b?(b=b.b,b=ne(b?b:fj),this.g?this.g.fillStyle=b:this.g={fillStyle:b}):this.g=null;var c=a.l;if(c){var b=c.b,d=c.f,e=c.g,f=c.c,g=c.a,c=c.i,d=void 0!==d?d:"round",e=e?e.slice():gj,f=void 0!==f?f:"round",g=void 0!==g?g:1,c=void 0!==c?c:10,b=le(b?b:hj);if(this.i){var h=this.i;h.lineCap=d;h.lineDash=e;h.lineJoin=f;h.lineWidth=g;h.miterLimit=c;h.strokeStyle=b}else this.i={lineCap:d,lineDash:e,lineJoin:f,lineWidth:g,miterLimit:c,strokeStyle:b}}else this.i=null;
|
||||||
|
var l=a.g,b=a.f,d=a.c,e=a.i,g=a.a,c=a.Ha(),f=a.o,h=a.j;a=void 0!==l?l:"10px sans-serif";f=void 0!==f?f:"center";h=void 0!==h?h:"middle";this.l?(l=this.l,l.font=a,l.textAlign=f,l.textBaseline=h):this.l={font:a,textAlign:f,textBaseline:h};this.o=void 0!==c?c:"";this.j=void 0!==b?b:0;this.s=void 0!==d?d:0;this.v=void 0!==e?e:0;this.U=void 0!==g?g:1}else this.o=""};function ek(a,b,c,d,e){this.j=a;this.g=b;this.l=d;this.o=c;this.f=e;this.a={};this.c=Ge(1,1);this.i=ch()}
|
||||||
|
function fk(a){for(var b in a.a){var c=a.a[b],d;for(d in c)c[d].ke()}}ek.prototype.sa=function(a,b,c,d,e){var f=lh(this.i,.5,.5,1/b,-1/b,-c,-a[0],-a[1]),g=this.c;g.clearRect(0,0,1,1);var h;void 0!==this.f&&(h=Jb(),Lb(h,a),Mb(h,b*this.f,h));return gk(this,g,f,c,d,function(a){if(0<g.getImageData(0,0,1,1).data[3]){if(a=e(a))return a;g.clearRect(0,0,1,1)}},h)};
|
||||||
|
ek.prototype.b=function(a,b){var c=void 0!==a?a.toString():"0",d=this.a[c];void 0===d&&(d={},this.a[c]=d);c=d[b];void 0===c&&(c=new hk[b](this.j,this.g,this.o,this.l),d[b]=c);return c};ek.prototype.Ya=function(){return Ga(this.a)};
|
||||||
|
ek.prototype.Pa=function(a,b,c,d,e,f){var g=Object.keys(this.a).map(Number);g.sort(fb);var h=this.g,l=h[0],m=h[1],n=h[2],h=h[3],l=[l,m,l,h,n,h,n,m];Vc(l,0,8,2,c,l);a.save();a.beginPath();a.moveTo(l[0],l[1]);a.lineTo(l[2],l[3]);a.lineTo(l[4],l[5]);a.lineTo(l[6],l[7]);a.closePath();a.clip();f=f?f:Oj;for(var p,q,l=0,m=g.length;l<m;++l)for(p=this.a[g[l].toString()],n=0,h=f.length;n<h;++n)q=p[f[n]],void 0!==q&&q.Pa(a,b,c,d,e);a.restore()};
|
||||||
|
function gk(a,b,c,d,e,f,g){var h=Object.keys(a.a).map(Number);h.sort(function(a,b){return b-a});var l,m,n,p,q;l=0;for(m=h.length;l<m;++l)for(p=a.a[h[l].toString()],n=Oj.length-1;0<=n;--n)if(q=p[Oj[n]],void 0!==q&&(q=Sj(q,b,1,c,d,e,q.b,f,g)))return q}var hk={Image:Vj,LineString:Wj,Polygon:Zj,Text:ck};function ik(a,b,c,d){this.g=a;this.b=b;this.c=c;this.f=d}k=ik.prototype;k.get=function(a){return this.f[a]};k.Eb=function(){return this.c};k.H=function(){this.a||(this.a="Point"===this.g?Wb(this.b):Yb(this.b,0,this.b.length,2));return this.a};k.Nb=function(){return this.b};k.la=ik.prototype.Nb;k.X=function(){return this};k.Nm=function(){return this.f};k.od=ik.prototype.X;k.va=function(){return 2};k.ec=oa;k.Y=function(){return this.g};function jk(a,b){return t(a)-t(b)}function kk(a,b){var c=.5*a/b;return c*c}function lk(a,b,c,d,e,f){var g=!1,h,l;if(h=c.a)l=h.td(),2==l||3==l?h.Xf(e,f):(0==l&&h.load(),h.pf(e,f),g=!0);if(e=(0,c.g)(b))d=e.od(d),(0,mk[d.Y()])(a,d,c,b);return g}
|
||||||
|
var mk={Point:function(a,b,c,d){var e=c.a;if(e){if(2!=e.td())return;var f=a.b(c.b,"Image");f.Ub(e);f.uc(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,b.la(),2,2,d)},LineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,"LineString");f.Tb(null,e);f.hd(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,Gj(b),2,2,d)},Polygon:function(a,b,c,d){var e=c.c,f=c.f;if(e||f){var g=a.b(c.b,"Polygon");g.Tb(e,f);g.bf(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,Ad(b),2,2,d)},MultiPoint:function(a,b,c,d){var e=
|
||||||
|
c.a;if(e){if(2!=e.td())return;var f=a.b(c.b,"Image");f.Ub(e);f.tc(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),c=b.la(),dk(a,c,c.length,b.va(),d)},MultiLineString:function(a,b,c,d){var e=c.f;if(e){var f=a.b(c.b,"LineString");f.Tb(null,e);f.$e(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),b=Hj(b),dk(a,b,b.length,2,d)},MultiPolygon:function(a,b,c,d){var e=c.c,f=c.f;if(f||e){var g=a.b(c.b,"Polygon");g.Tb(e,f);g.af(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),b=Jj(b),dk(a,b,b.length,2,d)},GeometryCollection:function(a,
|
||||||
|
b,c,d){b=b.c;var e,f;e=0;for(f=b.length;e<f;++e)(0,mk[b[e].Y()])(a,b[e],c,d)},Circle:function(a,b,c,d){var e=c.c,f=c.f;if(e||f){var g=a.b(c.b,"Polygon");g.Tb(e,f);g.Rd(b,d)}if(e=c.Ha())a=a.b(c.b,"Text"),a.Wb(e),dk(a,b.rd(),2,2,d)}};function nk(a,b,c,d,e,f){this.c=void 0!==f?f:null;th.call(this,a,b,c,void 0!==f?0:2,d);this.g=e}x(nk,th);nk.prototype.i=function(a){this.state=a?3:2;uh(this)};nk.prototype.load=function(){0==this.state&&(this.state=1,uh(this),this.c(this.i.bind(this)))};nk.prototype.a=function(){return this.g};var ok,pk=pa.navigator,qk=pa.chrome,rk=-1<pk.userAgent.indexOf("OPR"),sk=-1<pk.userAgent.indexOf("Edge");ok=!(!pk.userAgent.match("CriOS")&&null!==qk&&void 0!==qk&&"Google Inc."===pk.vendor&&0==rk&&0==sk);function tk(a,b,c,d){var e=Sc(c,b,a);c=b.getPointResolution(d,c);b=b.ac();void 0!==b&&(c*=b);b=a.ac();void 0!==b&&(c/=b);a=a.getPointResolution(c,e)/c;isFinite(a)&&0<a&&(c/=a);return c}function uk(a,b,c,d){a=c-a;b=d-b;var e=Math.sqrt(a*a+b*b);return[Math.round(c+a/e),Math.round(d+b/e)]}
|
||||||
|
function vk(a,b,c,d,e,f,g,h,l,m,n){var p=Ge(Math.round(c*a),Math.round(c*b));if(0===l.length)return p.canvas;p.scale(c,c);var q=Jb();l.forEach(function(a){ac(q,a.extent)});var r=Ge(Math.round(c*jc(q)/d),Math.round(c*kc(q)/d)),v=c/d;l.forEach(function(a){r.drawImage(a.image,m,m,a.image.width-2*m,a.image.height-2*m,(a.extent[0]-q[0])*v,-(a.extent[3]-q[3])*v,jc(a.extent)*v,kc(a.extent)*v)});var y=fc(g);h.f.forEach(function(a){var b=a.source,e=a.target,g=b[1][0],h=b[1][1],l=b[2][0],m=b[2][1];a=(e[0][0]-
|
||||||
|
y[0])/f;var n=-(e[0][1]-y[1])/f,v=(e[1][0]-y[0])/f,M=-(e[1][1]-y[1])/f,ma=(e[2][0]-y[0])/f,Ub=-(e[2][1]-y[1])/f,e=b[0][0],b=b[0][1],g=g-e,h=h-b,l=l-e,m=m-b;a:{g=[[g,h,0,0,v-a],[l,m,0,0,ma-a],[0,0,g,h,M-n],[0,0,l,m,Ub-n]];h=g.length;for(l=0;l<h;l++){for(var m=l,Kb=Math.abs(g[l][l]),Hb=l+1;Hb<h;Hb++){var Xb=Math.abs(g[Hb][l]);Xb>Kb&&(Kb=Xb,m=Hb)}if(0===Kb){g=null;break a}Kb=g[m];g[m]=g[l];g[l]=Kb;for(m=l+1;m<h;m++)for(Kb=-g[m][l]/g[l][l],Hb=l;Hb<h+1;Hb++)g[m][Hb]=l==Hb?0:g[m][Hb]+Kb*g[l][Hb]}l=Array(h);
|
||||||
|
for(m=h-1;0<=m;m--)for(l[m]=g[m][h]/g[m][m],Kb=m-1;0<=Kb;Kb--)g[Kb][h]-=g[Kb][m]*l[m];g=l}g&&(p.save(),p.beginPath(),ok?(l=(a+v+ma)/3,m=(n+M+Ub)/3,h=uk(l,m,a,n),v=uk(l,m,v,M),ma=uk(l,m,ma,Ub),p.moveTo(h[0],h[1]),p.lineTo(v[0],v[1]),p.lineTo(ma[0],ma[1])):(p.moveTo(a,n),p.lineTo(v,M),p.lineTo(ma,Ub)),p.closePath(),p.clip(),p.transform(g[0],g[2],g[1],g[3],a,n),p.translate(q[0]-e,q[3]-b),p.scale(d/c,-d/c),p.drawImage(r.canvas,0,0),p.restore())});n&&(p.save(),p.strokeStyle="black",p.lineWidth=1,h.f.forEach(function(a){var b=
|
||||||
|
a.target;a=(b[0][0]-y[0])/f;var c=-(b[0][1]-y[1])/f,d=(b[1][0]-y[0])/f,e=-(b[1][1]-y[1])/f,g=(b[2][0]-y[0])/f,b=-(b[2][1]-y[1])/f;p.beginPath();p.moveTo(a,c);p.lineTo(d,e);p.lineTo(g,b);p.closePath();p.stroke()}),p.restore());return p.canvas};function wk(a,b,c,d,e){this.g=a;this.c=b;var f={},g=Qc(this.c,this.g);this.a=function(a){var b=a[0]+"/"+a[1];f[b]||(f[b]=g(a));return f[b]};this.i=d;this.s=e*e;this.f=[];this.o=!1;this.j=this.g.a&&!!d&&!!this.g.H()&&jc(d)==jc(this.g.H());this.b=this.g.H()?jc(this.g.H()):null;this.l=this.c.H()?jc(this.c.H()):null;a=fc(c);b=ec(c);d=dc(c);c=cc(c);e=this.a(a);var h=this.a(b),l=this.a(d),m=this.a(c);xk(this,a,b,d,c,e,h,l,m,10);if(this.o){var n=Infinity;this.f.forEach(function(a){n=Math.min(n,a.source[0][0],
|
||||||
|
a.source[1][0],a.source[2][0])});this.f.forEach(function(a){if(Math.max(a.source[0][0],a.source[1][0],a.source[2][0])-n>this.b/2){var b=[[a.source[0][0],a.source[0][1]],[a.source[1][0],a.source[1][1]],[a.source[2][0],a.source[2][1]]];b[0][0]-n>this.b/2&&(b[0][0]-=this.b);b[1][0]-n>this.b/2&&(b[1][0]-=this.b);b[2][0]-n>this.b/2&&(b[2][0]-=this.b);Math.max(b[0][0],b[1][0],b[2][0])-Math.min(b[0][0],b[1][0],b[2][0])<this.b/2&&(a.source=b)}},this)}f={}}
|
||||||
|
function xk(a,b,c,d,e,f,g,h,l,m){var n=Ib([f,g,h,l]),p=a.b?jc(n)/a.b:null,q=a.g.a&&.5<p&&1>p,r=!1;if(0<m){if(a.c.g&&a.l)var v=Ib([b,c,d,e]),r=r|.25<jc(v)/a.l;!q&&a.g.g&&p&&(r|=.25<p)}if(r||!a.i||oc(n,a.i)){if(!(r||isFinite(f[0])&&isFinite(f[1])&&isFinite(g[0])&&isFinite(g[1])&&isFinite(h[0])&&isFinite(h[1])&&isFinite(l[0])&&isFinite(l[1])))if(0<m)r=!0;else return;if(0<m&&(r||(p=a.a([(b[0]+d[0])/2,(b[1]+d[1])/2]),n=q?(xa(f[0],a.b)+xa(h[0],a.b))/2-xa(p[0],a.b):(f[0]+h[0])/2-p[0],p=(f[1]+h[1])/2-p[1],
|
||||||
|
r=n*n+p*p>a.s),r)){Math.abs(b[0]-d[0])<=Math.abs(b[1]-d[1])?(q=[(c[0]+d[0])/2,(c[1]+d[1])/2],n=a.a(q),p=[(e[0]+b[0])/2,(e[1]+b[1])/2],r=a.a(p),xk(a,b,c,q,p,f,g,n,r,m-1),xk(a,p,q,d,e,r,n,h,l,m-1)):(q=[(b[0]+c[0])/2,(b[1]+c[1])/2],n=a.a(q),p=[(d[0]+e[0])/2,(d[1]+e[1])/2],r=a.a(p),xk(a,b,q,p,e,f,n,r,l,m-1),xk(a,q,c,d,p,n,g,h,r,m-1));return}if(q){if(!a.j)return;a.o=!0}a.f.push({source:[f,h,l],target:[b,d,e]});a.f.push({source:[f,g,h],target:[b,c,d]})}}
|
||||||
|
function yk(a){var b=Jb();a.f.forEach(function(a){a=a.source;Lb(b,a[0]);Lb(b,a[1]);Lb(b,a[2])});return b};function zk(a,b,c,d,e,f){this.v=b;this.s=a.H();var g=b.H(),h=g?nc(c,g):c,g=tk(a,b,lc(h),d);this.o=new wk(a,b,h,this.s,.5*g);this.c=d;this.g=c;a=yk(this.o);this.j=(this.pb=f(a,g,e))?this.pb.f:1;this.Ad=this.i=null;e=2;f=[];this.pb&&(e=0,f=this.pb.l);th.call(this,c,d,this.j,e,f)}x(zk,th);zk.prototype.ka=function(){1==this.state&&(Ka(this.Ad),this.Ad=null);th.prototype.ka.call(this)};zk.prototype.a=function(){return this.i};
|
||||||
|
zk.prototype.zd=function(){var a=this.pb.V();2==a&&(this.i=vk(jc(this.g)/this.c,kc(this.g)/this.c,this.j,this.pb.$(),0,this.c,this.g,this.o,[{extent:this.pb.H(),image:this.pb.a()}],0));this.state=a;uh(this)};zk.prototype.load=function(){if(0==this.state){this.state=1;uh(this);var a=this.pb.V();2==a||3==a?this.zd():(this.Ad=B(this.pb,"change",function(){var a=this.pb.V();if(2==a||3==a)Ka(this.Ad),this.Ad=null,this.zd()},this),this.pb.load())}};function Ak(a){af.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,state:a.state});this.D=void 0!==a.resolutions?a.resolutions:null;this.a=null;this.na=0}x(Ak,af);function Bk(a,b){if(a.D){var c=hb(a.D,b,0);b=a.D[c]}return b}
|
||||||
|
Ak.prototype.A=function(a,b,c,d){var e=this.f;if(e&&d&&!Pc(e,d)){if(this.a){if(this.na==this.g&&Pc(this.a.v,d)&&this.a.$()==b&&this.a.f==c&&$b(this.a.H(),a))return this.a;Ta(this.a);this.a=null}this.a=new zk(e,d,a,b,c,function(a,b,c){return this.Mc(a,b,c,e)}.bind(this));this.na=this.g;return this.a}e&&(d=e);return this.Mc(a,b,c,d)};Ak.prototype.o=function(a){a=a.target;switch(a.V()){case 1:this.b(new Ck(Dk,a));break;case 2:this.b(new Ck(Ek,a));break;case 3:this.b(new Ck(Fk,a))}};
|
||||||
|
function Gk(a,b){a.a().src=b}function Ck(a,b){Ua.call(this,a);this.image=b}x(Ck,Ua);var Dk="imageloadstart",Ek="imageloadend",Fk="imageloaderror";function Hk(a){Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:a.projection,resolutions:a.resolutions,state:a.state});this.ia=a.canvasFunction;this.T=null;this.W=0;this.oa=void 0!==a.ratio?a.ratio:1.5}x(Hk,Ak);Hk.prototype.Mc=function(a,b,c,d){b=Bk(this,b);var e=this.T;if(e&&this.W==this.g&&e.$()==b&&e.f==c&&Sb(e.H(),a))return e;a=a.slice();pc(a,this.oa);(d=this.ia(a,b,c,[jc(a)/b*c,kc(a)/b*c],d))&&(e=new nk(a,b,c,this.l,d));this.T=e;this.W=this.g;return e};function Ik(a){bb.call(this);this.i=void 0;this.a="geometry";this.c=null;this.l=void 0;this.f=null;B(this,db(this.a),this.be,this);void 0!==a&&(a instanceof Uc||!a?this.Ua(a):this.G(a))}x(Ik,bb);k=Ik.prototype;k.clone=function(){var a=new Ik(this.O());a.Ec(this.a);var b=this.X();b&&a.Ua(b.clone());(b=this.c)&&a.sf(b);return a};k.X=function(){return this.get(this.a)};k.Xa=function(){return this.i};k.$j=function(){return this.a};k.Jl=function(){return this.c};k.ec=function(){return this.l};k.Kl=function(){this.u()};
|
||||||
|
k.be=function(){this.f&&(Ka(this.f),this.f=null);var a=this.X();a&&(this.f=B(a,"change",this.Kl,this));this.u()};k.Ua=function(a){this.set(this.a,a)};k.sf=function(a){this.l=(this.c=a)?Jk(a):void 0;this.u()};k.mc=function(a){this.i=a;this.u()};k.Ec=function(a){Qa(this,db(this.a),this.be,this);this.a=a;B(this,db(this.a),this.be,this);this.be()};function Jk(a){if("function"!==typeof a){var b;b=Array.isArray(a)?a:[a];a=function(){return b}}return a};function Kk(a,b,c,d,e){We.call(this,a,b);this.g=Ge();this.l=d;this.c=null;this.f={gd:!1,Tf:null,bi:-1,Uf:-1,yd:null,ui:[]};this.v=e;this.j=c}x(Kk,We);k=Kk.prototype;k.$a=function(){return-1==this.f.Uf?null:this.g.canvas};k.Ul=function(){return this.l};k.jb=function(){return this.j};k.load=function(){0==this.state&&(this.state=1,Xe(this),this.v(this,this.j),this.s(null,NaN,null))};k.gi=function(a){this.c=a;this.state=2;Xe(this)};k.vf=function(a){this.o=a};k.ki=function(a){this.s=a};var Lk=document.implementation.createDocument("","",null);function Mk(a,b){return Lk.createElementNS(a,b)}function Nk(a,b){return Ok(a,b,[]).join("")}function Ok(a,b,c){if(a.nodeType==Node.CDATA_SECTION_NODE||a.nodeType==Node.TEXT_NODE)b?c.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(a.nodeValue);else for(a=a.firstChild;a;a=a.nextSibling)Ok(a,b,c);return c}function Pk(a){return a instanceof Document}function Qk(a){return a instanceof Node}
|
||||||
|
function Rk(a){return(new DOMParser).parseFromString(a,"application/xml")}function Sk(a,b){return function(c,d){var e=a.call(b,c,d);void 0!==e&&jb(d[d.length-1],e)}}function Tk(a,b){return function(c,d){var e=a.call(void 0!==b?b:this,c,d);void 0!==e&&d[d.length-1].push(e)}}function Uk(a,b){return function(c,d){var e=a.call(void 0!==b?b:this,c,d);void 0!==e&&(d[d.length-1]=e)}}
|
||||||
|
function Vk(a){return function(b,c){var d=a.call(this,b,c);if(void 0!==d){var e=c[c.length-1],f=b.localName,g;f in e?g=e[f]:g=e[f]=[];g.push(d)}}}function K(a,b){return function(c,d){var e=a.call(this,c,d);void 0!==e&&(d[d.length-1][void 0!==b?b:c.localName]=e)}}function L(a,b){return function(c,d,e){a.call(void 0!==b?b:this,c,d,e);e[e.length-1].node.appendChild(c)}}
|
||||||
|
function Wk(a){var b,c;return function(d,e,f){if(!b){b={};var g={};g[d.localName]=a;b[d.namespaceURI]=g;c=Xk(d.localName)}Yk(b,c,e,f)}}function Xk(a,b){return function(c,d,e){c=d[d.length-1].node;d=a;void 0===d&&(d=e);e=b;void 0===b&&(e=c.namespaceURI);return Mk(e,d)}}var Zk=Xk();function $k(a,b){for(var c=b.length,d=Array(c),e=0;e<c;++e)d[e]=a[b[e]];return d}function N(a,b,c){c=void 0!==c?c:{};var d,e;d=0;for(e=a.length;d<e;++d)c[a[d]]=b;return c}
|
||||||
|
function al(a,b,c,d){for(b=b.firstElementChild;b;b=b.nextElementSibling){var e=a[b.namespaceURI];void 0!==e&&(e=e[b.localName])&&e.call(d,b,c)}}function O(a,b,c,d,e){d.push(a);al(b,c,d,e);return d.pop()}function Yk(a,b,c,d,e,f){for(var g=(void 0!==e?e:c).length,h,l,m=0;m<g;++m)h=c[m],void 0!==h&&(l=b.call(f,h,d,void 0!==e?e[m]:void 0),void 0!==l&&a[l.namespaceURI][l.localName].call(f,l,h,d))}function bl(a,b,c,d,e,f,g){e.push(a);Yk(b,c,d,e,f,g);e.pop()};function cl(a,b,c,d){return function(e,f,g){var h=new XMLHttpRequest;h.open("GET","function"===typeof a?a(e,f,g):a,!0);"arraybuffer"==b.Y()&&(h.responseType="arraybuffer");h.onload=function(){if(200<=h.status&&300>h.status){var a=b.Y(),e;"json"==a||"text"==a?e=h.responseText:"xml"==a?(e=h.responseXML)||(e=Rk(h.responseText)):"arraybuffer"==a&&(e=h.response);e&&c.call(this,b.Fa(e,{featureProjection:g}),b.Oa(e))}else d.call(this)}.bind(this);h.send()}}
|
||||||
|
function dl(a,b){return cl(a,b,function(a,b){this.vf(b);this.gi(a)},function(){this.state=3;Xe(this)})}function el(a,b){return cl(a,b,function(a){this.Jc(a)},oa)};function fl(){return[[-Infinity,-Infinity,Infinity,Infinity]]};var gl,hl,il,jl;
|
||||||
|
(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Tp=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
|
||||||
|
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b){function f(a,b,d,e,q){d=d||0;e=e||a.length-1;for(q=q||h;e>d;){if(600<e-d){var r=e-d+1,v=b-d+1,y=Math.log(r),w=.5*Math.exp(2*y/3),y=.5*Math.sqrt(y*w*(r-w)/r)*(0>v-r/2?-1:1);f(a,b,Math.max(d,Math.floor(b-v*w/r+y)),Math.min(e,Math.floor(b+(r-v)*w/r+y)),q)}r=a[b];v=d;w=e;g(a,d,b);for(0<q(a[e],r)&&g(a,d,e);v<w;){g(a,v,w);v++;for(w--;0>q(a[v],r);)v++;
|
||||||
|
for(;0<q(a[w],r);)w--}0===q(a[d],r)?g(a,d,w):(w++,g(a,w,e));w<=b&&(d=w+1);b<=w&&(e=w-1)}}function g(a,b,d){var e=a[b];a[b]=a[d];a[d]=e}function h(a,b){return a<b?-1:a>b?1:0}b.ja=f},{}],2:[function(a,b){function f(a,b){if(!(this instanceof f))return new f(a,b);this.Te=Math.max(4,a||9);this.hg=Math.max(2,Math.ceil(.4*this.Te));b&&this.mj(b);this.clear()}function g(a,b){h(a,0,a.children.length,b,a)}function h(a,b,d,e,f){f||(f=y(null));f.ca=Infinity;f.fa=Infinity;f.ea=-Infinity;f.ga=-Infinity;for(var g;b<
|
||||||
|
d;b++)g=a.children[b],l(f,a.Ta?e(g):g);return f}function l(a,b){a.ca=Math.min(a.ca,b.ca);a.fa=Math.min(a.fa,b.fa);a.ea=Math.max(a.ea,b.ea);a.ga=Math.max(a.ga,b.ga)}function m(a,b){return a.ca-b.ca}function n(a,b){return a.fa-b.fa}function p(a){return(a.ea-a.ca)*(a.ga-a.fa)}function q(a){return a.ea-a.ca+(a.ga-a.fa)}function r(a,b){return a.ca<=b.ca&&a.fa<=b.fa&&b.ea<=a.ea&&b.ga<=a.ga}function v(a,b){return b.ca<=a.ea&&b.fa<=a.ga&&b.ea>=a.ca&&b.ga>=a.fa}function y(a){return{children:a,height:1,Ta:!0,
|
||||||
|
ca:Infinity,fa:Infinity,ea:-Infinity,ga:-Infinity}}function w(a,b,d,e,f){for(var g=[b,d],h;g.length;)d=g.pop(),b=g.pop(),d-b<=e||(h=b+Math.ceil((d-b)/e/2)*e,G(a,h,b,d,f),g.push(b,h,h,d))}b.ja=f;var G=a("quickselect");f.prototype={all:function(){return this.cg(this.data,[])},search:function(a){var b=this.data,d=[],e=this.mb;if(!v(a,b))return d;for(var f=[],g,h,l,m;b;){g=0;for(h=b.children.length;g<h;g++)l=b.children[g],m=b.Ta?e(l):l,v(a,m)&&(b.Ta?d.push(l):r(a,m)?this.cg(l,d):f.push(l));b=f.pop()}return d},
|
||||||
|
load:function(a){if(!a||!a.length)return this;if(a.length<this.hg){for(var b=0,d=a.length;b<d;b++)this.Ca(a[b]);return this}a=this.eg(a.slice(),0,a.length-1,0);this.data.children.length?this.data.height===a.height?this.jg(this.data,a):(this.data.height<a.height&&(b=this.data,this.data=a,a=b),this.gg(a,this.data.height-a.height-1,!0)):this.data=a;return this},Ca:function(a){a&&this.gg(a,this.data.height-1);return this},clear:function(){this.data=y([]);return this},remove:function(a,b){if(!a)return this;
|
||||||
|
for(var d=this.data,e=this.mb(a),f=[],g=[],h,l,m,n;d||f.length;){d||(d=f.pop(),l=f[f.length-1],h=g.pop(),n=!0);if(d.Ta){a:{m=a;var p=d.children,q=b;if(q){for(var v=0;v<p.length;v++)if(q(m,p[v])){m=v;break a}m=-1}else m=p.indexOf(m)}if(-1!==m){d.children.splice(m,1);f.push(d);this.kj(f);break}}n||d.Ta||!r(d,e)?l?(h++,d=l.children[h],n=!1):d=null:(f.push(d),g.push(h),h=0,l=d,d=d.children[0])}return this},mb:function(a){return a},Ve:m,We:n,toJSON:function(){return this.data},cg:function(a,b){for(var d=
|
||||||
|
[];a;)a.Ta?b.push.apply(b,a.children):d.push.apply(d,a.children),a=d.pop();return b},eg:function(a,b,d,e){var f=d-b+1,h=this.Te,l;if(f<=h)return l=y(a.slice(b,d+1)),g(l,this.mb),l;e||(e=Math.ceil(Math.log(f)/Math.log(h)),h=Math.ceil(f/Math.pow(h,e-1)));l=y([]);l.Ta=!1;l.height=e;var f=Math.ceil(f/h),h=f*Math.ceil(Math.sqrt(h)),m,n,p;for(w(a,b,d,h,this.Ve);b<=d;b+=h)for(n=Math.min(b+h-1,d),w(a,b,n,f,this.We),m=b;m<=n;m+=f)p=Math.min(m+f-1,n),l.children.push(this.eg(a,m,p,e-1));g(l,this.mb);return l},
|
||||||
|
jj:function(a,b,d,e){for(var f,g,h,l,m,n,q,r;;){e.push(b);if(b.Ta||e.length-1===d)break;q=r=Infinity;f=0;for(g=b.children.length;f<g;f++)h=b.children[f],m=p(h),n=(Math.max(h.ea,a.ea)-Math.min(h.ca,a.ca))*(Math.max(h.ga,a.ga)-Math.min(h.fa,a.fa))-m,n<r?(r=n,q=m<q?m:q,l=h):n===r&&m<q&&(q=m,l=h);b=l||b.children[0]}return b},gg:function(a,b,d){var e=this.mb;d=d?a:e(a);var e=[],f=this.jj(d,this.data,b,e);f.children.push(a);for(l(f,d);0<=b;)if(e[b].children.length>this.Te)this.sj(e,b),b--;else break;this.gj(d,
|
||||||
|
e,b)},sj:function(a,b){var d=a[b],e=d.children.length,f=this.hg;this.hj(d,f,e);e=this.ij(d,f,e);e=y(d.children.splice(e,d.children.length-e));e.height=d.height;e.Ta=d.Ta;g(d,this.mb);g(e,this.mb);b?a[b-1].children.push(e):this.jg(d,e)},jg:function(a,b){this.data=y([a,b]);this.data.height=a.height+1;this.data.Ta=!1;g(this.data,this.mb)},ij:function(a,b,d){var e,f,g,l,m,n,q;m=n=Infinity;for(e=b;e<=d-b;e++)f=h(a,0,e,this.mb),g=h(a,e,d,this.mb),l=Math.max(0,Math.min(f.ea,g.ea)-Math.max(f.ca,g.ca))*Math.max(0,
|
||||||
|
Math.min(f.ga,g.ga)-Math.max(f.fa,g.fa)),f=p(f)+p(g),l<m?(m=l,q=e,n=f<n?f:n):l===m&&f<n&&(n=f,q=e);return q},hj:function(a,b,d){var e=a.Ta?this.Ve:m,f=a.Ta?this.We:n,g=this.dg(a,b,d,e);b=this.dg(a,b,d,f);g<b&&a.children.sort(e)},dg:function(a,b,d,e){a.children.sort(e);e=this.mb;var f=h(a,0,b,e),g=h(a,d-b,d,e),m=q(f)+q(g),n,p;for(n=b;n<d-b;n++)p=a.children[n],l(f,a.Ta?e(p):p),m+=q(f);for(n=d-b-1;n>=b;n--)p=a.children[n],l(g,a.Ta?e(p):p),m+=q(g);return m},gj:function(a,b,d){for(;0<=d;d--)l(b[d],a)},
|
||||||
|
kj:function(a){for(var b=a.length-1,d;0<=b;b--)0===a[b].children.length?0<b?(d=a[b-1].children,d.splice(d.indexOf(a[b]),1)):this.clear():g(a[b],this.mb)},mj:function(a){var b=["return a"," - b",";"];this.Ve=new Function("a","b",b.join(a[0]));this.We=new Function("a","b",b.join(a[1]));this.mb=new Function("a","return {minX: a"+a[0]+", minY: a"+a[1]+", maxX: a"+a[2]+", maxY: a"+a[3]+"};")}}},{quickselect:1}]},{},[2])(2)});gl=b.ja})();function kl(a){this.a=gl(a);this.b={}}k=kl.prototype;k.Ca=function(a,b){var c={ca:a[0],fa:a[1],ea:a[2],ga:a[3],value:b};this.a.Ca(c);this.b[t(b)]=c};k.load=function(a,b){for(var c=Array(b.length),d=0,e=b.length;d<e;d++){var f=a[d],g=b[d],f={ca:f[0],fa:f[1],ea:f[2],ga:f[3],value:g};c[d]=f;this.b[t(g)]=f}this.a.load(c)};k.remove=function(a){a=t(a);var b=this.b[a];delete this.b[a];return null!==this.a.remove(b)};
|
||||||
|
function ll(a,b,c){var d=t(c),d=a.b[d];$b([d.ca,d.fa,d.ea,d.ga],b)||(a.remove(c),a.Ca(b,c))}function ml(a){return a.a.all().map(function(a){return a.value})}function nl(a,b){return a.a.search({ca:b[0],fa:b[1],ea:b[2],ga:b[3]}).map(function(a){return a.value})}k.forEach=function(a,b){return pl(ml(this),a,b)};function ql(a,b,c,d){return pl(nl(a,b),c,d)}function pl(a,b,c){for(var d,e=0,f=a.length;e<f&&!(d=b.call(c,a[e]));e++);return d}k.Ya=function(){return Ga(this.b)};
|
||||||
|
k.clear=function(){this.a.clear();this.b={}};k.H=function(){var a=this.a.data;return[a.ca,a.fa,a.ea,a.ga]};function P(a){a=a||{};af.call(this,{attributions:a.attributions,logo:a.logo,projection:void 0,state:"ready",wrapX:void 0!==a.wrapX?a.wrapX:!0});this.P=oa;this.oa=a.format;this.T=a.overlaps||!0;this.W=a.url;void 0!==a.loader?this.P=a.loader:void 0!==this.W&&(this.P=el(this.W,this.oa));this.rb=void 0!==a.strategy?a.strategy:fl;var b=void 0!==a.useSpatialIndex?a.useSpatialIndex:!0;this.a=b?new kl:null;this.ia=new kl;this.i={};this.o={};this.j={};this.s={};this.c=null;var c,d;a.features instanceof be?
|
||||||
|
(c=a.features,d=c.a):Array.isArray(a.features)&&(d=a.features);b||void 0!==c||(c=new be(d));void 0!==d&&rl(this,d);void 0!==c&&sl(this,c)}x(P,af);k=P.prototype;k.sb=function(a){var b=t(a).toString();if(tl(this,b,a)){ul(this,b,a);var c=a.X();c?(b=c.H(),this.a&&this.a.Ca(b,a)):this.i[b]=a;this.b(new vl("addfeature",a))}this.u()};function ul(a,b,c){a.s[b]=[B(c,"change",a.Eh,a),B(c,"propertychange",a.Eh,a)]}
|
||||||
|
function tl(a,b,c){var d=!0,e=c.Xa();void 0!==e?e.toString()in a.o?d=!1:a.o[e.toString()]=c:a.j[b]=c;return d}k.Jc=function(a){rl(this,a);this.u()};function rl(a,b){var c,d,e,f,g=[],h=[],l=[];d=0;for(e=b.length;d<e;d++)f=b[d],c=t(f).toString(),tl(a,c,f)&&h.push(f);d=0;for(e=h.length;d<e;d++){f=h[d];c=t(f).toString();ul(a,c,f);var m=f.X();m?(c=m.H(),g.push(c),l.push(f)):a.i[c]=f}a.a&&a.a.load(g,l);d=0;for(e=h.length;d<e;d++)a.b(new vl("addfeature",h[d]))}
|
||||||
|
function sl(a,b){var c=!1;B(a,"addfeature",function(a){c||(c=!0,b.push(a.feature),c=!1)});B(a,"removefeature",function(a){c||(c=!0,b.remove(a.feature),c=!1)});B(b,"add",function(a){c||(a=a.element,c=!0,this.sb(a),c=!1)},a);B(b,"remove",function(a){c||(a=a.element,c=!0,this.ob(a),c=!1)},a);a.c=b}
|
||||||
|
k.clear=function(a){if(a){for(var b in this.s)this.s[b].forEach(Ka);this.c||(this.s={},this.o={},this.j={})}else if(this.a){this.a.forEach(this.Sf,this);for(var c in this.i)this.Sf(this.i[c])}this.c&&this.c.clear();this.a&&this.a.clear();this.ia.clear();this.i={};this.b(new vl("clear"));this.u()};k.wg=function(a,b){if(this.a)return this.a.forEach(a,b);if(this.c)return this.c.forEach(a,b)};function wl(a,b,c){a.vb([b[0],b[1],b[0],b[1]],function(a){if(a.X().sg(b))return c.call(void 0,a)})}
|
||||||
|
k.vb=function(a,b,c){if(this.a)return ql(this.a,a,b,c);if(this.c)return this.c.forEach(b,c)};k.xg=function(a,b,c){return this.vb(a,function(d){if(d.X().Ka(a)&&(d=b.call(c,d)))return d})};k.Fg=function(){return this.c};k.oe=function(){var a;this.c?a=this.c.a:this.a&&(a=ml(this.a),Ga(this.i)||jb(a,Ea(this.i)));return a};k.Eg=function(a){var b=[];wl(this,a,function(a){b.push(a)});return b};k.ef=function(a){return nl(this.a,a)};
|
||||||
|
k.Ag=function(a,b){var c=a[0],d=a[1],e=null,f=[NaN,NaN],g=Infinity,h=[-Infinity,-Infinity,Infinity,Infinity],l=b?b:rc;ql(this.a,h,function(a){if(l(a)){var b=a.X(),p=g;g=b.tb(c,d,f,g);g<p&&(e=a,a=Math.sqrt(g),h[0]=c-a,h[1]=d-a,h[2]=c+a,h[3]=d+a)}});return e};k.H=function(){return this.a.H()};k.Dg=function(a){a=this.o[a.toString()];return void 0!==a?a:null};k.Ch=function(){return this.oa};k.Dh=function(){return this.W};
|
||||||
|
k.Eh=function(a){a=a.target;var b=t(a).toString(),c=a.X();c?(c=c.H(),b in this.i?(delete this.i[b],this.a&&this.a.Ca(c,a)):this.a&&ll(this.a,c,a)):b in this.i||(this.a&&this.a.remove(a),this.i[b]=a);c=a.Xa();void 0!==c?(c=c.toString(),b in this.j?(delete this.j[b],this.o[c]=a):this.o[c]!==a&&(xl(this,a),this.o[c]=a)):b in this.j||(xl(this,a),this.j[b]=a);this.u();this.b(new vl("changefeature",a))};k.Ya=function(){return this.a.Ya()&&Ga(this.i)};
|
||||||
|
k.Pc=function(a,b,c){var d=this.ia;a=this.rb(a,b);var e,f;e=0;for(f=a.length;e<f;++e){var g=a[e];ql(d,g,function(a){return Sb(a.extent,g)})||(this.P.call(this,g,b,c),d.Ca(g,{extent:g.slice()}))}};k.ob=function(a){var b=t(a).toString();b in this.i?delete this.i[b]:this.a&&this.a.remove(a);this.Sf(a);this.u()};k.Sf=function(a){var b=t(a).toString();this.s[b].forEach(Ka);delete this.s[b];var c=a.Xa();void 0!==c?delete this.o[c.toString()]:delete this.j[b];this.b(new vl("removefeature",a))};
|
||||||
|
function xl(a,b){for(var c in a.o)if(a.o[c]===b){delete a.o[c];break}}function vl(a,b){Ua.call(this,a);this.feature=b}x(vl,Ua);function yl(a){this.c=a.source;this.za=ch();this.i=Ge();this.j=[0,0];this.v=null;Hk.call(this,{attributions:a.attributions,canvasFunction:this.Dj.bind(this),logo:a.logo,projection:a.projection,ratio:a.ratio,resolutions:a.resolutions,state:this.c.V()});this.P=null;this.s=void 0;this.xh(a.style);B(this.c,"change",this.en,this)}x(yl,Hk);k=yl.prototype;
|
||||||
|
k.Dj=function(a,b,c,d,e){var f=new ek(.5*b/c,a,b,this.c.T);this.c.Pc(a,b,e);var g=!1;this.c.vb(a,function(a){var d;if(!(d=g)){var e;(d=a.ec())?e=d.call(a,b):this.s&&(e=this.s(a,b));if(e){var n,p=!1;Array.isArray(e)||(e=[e]);d=0;for(n=e.length;d<n;++d)p=lk(f,a,e[d],kk(b,c),this.dn,this)||p;d=p}else d=!1}g=d},this);fk(f);if(g)return null;this.j[0]!=d[0]||this.j[1]!=d[1]?(this.i.canvas.width=d[0],this.i.canvas.height=d[1],this.j[0]=d[0],this.j[1]=d[1]):this.i.clearRect(0,0,d[0],d[1]);a=zl(this,lc(a),
|
||||||
|
b,c,d);f.Pa(this.i,c,a,0,{});this.v=f;return this.i.canvas};k.sa=function(a,b,c,d,e){if(this.v){var f={};return this.v.sa(a,b,0,d,function(a){var b=t(a).toString();if(!(b in f))return f[b]=!0,e(a)})}};k.an=function(){return this.c};k.bn=function(){return this.P};k.cn=function(){return this.s};function zl(a,b,c,d,e){c=d/c;return lh(a.za,e[0]/2,e[1]/2,c,-c,0,-b[0],-b[1])}k.dn=function(){this.u()};k.en=function(){cf(this,this.c.V())};
|
||||||
|
k.xh=function(a){this.P=void 0!==a?a:wj;this.s=a?uj(this.P):void 0;this.u()};function Al(a){Kj.call(this,a);this.f=null;this.s=ch();this.c=this.o=null}x(Al,Kj);Al.prototype.sa=function(a,b,c,d){var e=this.a;return e.ha().sa(a,b.viewState.resolution,b.viewState.rotation,b.skippedFeatureUids,function(a){return c.call(d,a,e)})};
|
||||||
|
Al.prototype.Cc=function(a,b,c,d){if(this.f&&this.f.a())if(this.a.ha()instanceof yl){if(a=hh(b.pixelToCoordinateTransform,a.slice()),this.sa(a,b,rc,this))return c.call(d,this.a)}else if(this.o||(this.o=mh(this.s.slice())),b=hh(this.o,a.slice()),this.c||(this.c=Ge(1,1)),this.c.clearRect(0,0,1,1),this.c.drawImage(this.f?this.f.a():null,b[0],b[1],1,1,0,0,1,1),0<this.c.getImageData(0,0,1,1).data[3])return c.call(d,this.a)};
|
||||||
|
Al.prototype.l=function(a,b){var c=a.pixelRatio,d=a.viewState,e=d.center,f=d.resolution,g=this.a.ha(),h=a.viewHints,l=a.extent;void 0!==b.extent&&(l=nc(l,b.extent));h[0]||h[1]||ic(l)||(d=g.A(l,f,c,d.projection))&&xh(this,d)&&(this.f=d);if(this.f){var d=this.f,h=d.H(),l=d.$(),m=d.f,f=c*l/(f*m),n=dh(this.s);kh(n,c*a.size[0]/2,c*a.size[1]/2);jh(n,f,f);kh(n,m*(h[0]-e[0])/l,m*(e[1]-h[3])/l);this.o=null;zh(a.attributions,d.l);Ah(a,g)}return!!this.f};function Bl(a){Kj.call(this,a);this.c=Ge();this.o=null;this.j=Jb();this.P=[0,0,0];this.C=ch();this.D=0}x(Bl,Kj);Bl.prototype.i=function(a,b,c){var d=Nj(this,a,0);Lj(this,"precompose",c,a,d);Cl(this,c,a,b);Mj(this,c,a,d)};
|
||||||
|
Bl.prototype.l=function(a,b){function c(a){a=a.V();return 2==a||4==a||3==a&&!r}var d=a.pixelRatio,e=a.viewState,f=e.projection,g=this.a,h=g.ha(),l=h.fb(f),m=l.Lb(e.resolution,this.D),n=l.$(m),p=e.center;n==e.resolution?(p=Ch(p,n,a.size),e=mc(p,n,e.rotation,a.size)):e=a.extent;void 0!==b.extent&&(e=nc(e,b.extent));if(ic(e))return!1;n=kf(l,e,n);p={};p[m]={};var q=this.Qd(h,f,p),r=g.c(),v=Jb(),y=new Wd(0,0,0,0),w,G,z,D;for(z=n.ca;z<=n.ea;++z)for(D=n.fa;D<=n.ga;++D)w=h.bc(m,z,D,d,f),!c(w)&&w.a&&(w=w.a),
|
||||||
|
c(w)?p[m][w.ma.toString()]=w:(G=hf(l,w.ma,q,y,v),G||(w=jf(l,w.ma,y,v))&&q(m+1,w));q=Object.keys(p).map(Number);q.sort(fb);var v=[],H,y=0;for(z=q.length;y<z;++y)for(H in w=q[y],D=p[w],D)w=D[H],2==w.V()&&v.push(w);this.o=v;Bh(a.usedTiles,h,m,n);Dh(a,h,l,d,f,e,m,g.f());yh(a,h);Ah(a,h);return!0};Bl.prototype.Cc=function(a,b,c,d){var e=this.c.canvas,f=b.size;e.width=f[0];e.height=f[1];this.i(b,oh(this.a),this.c);if(0<this.c.getImageData(a[0],a[1],1,1).data[3])return c.call(d,this.a)};
|
||||||
|
function Cl(a,b,c,d){var e=c.pixelRatio,f=c.viewState,g=f.center,h=f.projection,l=f.resolution,f=f.rotation,m=c.size,n=Math.round(e*m[0]/2),p=Math.round(e*m[1]/2),m=e/l,q=a.a,r=q.ha(),v=r.Ud(h),y=r.fb(h),q=Ya(q,"render"),w=b,G,z,D,H;if(f||q)w=a.c,G=w.canvas,H=y.Lb(l),D=r.$d(H,e,h),H=$e(y.Ja(H)),D=D[0]/H[0],l=b.canvas.width*D,z=b.canvas.height*D,H=Math.round(Math.sqrt(l*l+z*z)),G.width!=H?G.width=G.height=H:w.clearRect(0,0,H,H),G=(H-l)/2/D,z=(H-z)/2/D,m*=D,n=Math.round(D*(n+G)),p=Math.round(D*(p+z));
|
||||||
|
l=w.globalAlpha;w.globalAlpha=d.opacity;var ba=a.o,A,Fa=r.jf(h)&&1==d.opacity;Fa||(ba.reverse(),A=[]);var Ja=d.extent;if(d=void 0!==Ja){var M=fc(Ja),ma=ec(Ja),Ub=dc(Ja),Ja=cc(Ja);hh(c.coordinateToPixelTransform,M);hh(c.coordinateToPixelTransform,ma);hh(c.coordinateToPixelTransform,Ub);hh(c.coordinateToPixelTransform,Ja);var Kb=G||0,Hb=z||0;w.save();var Xb=w.canvas.width*e/2,gc=w.canvas.height*e/2;ij(w,-f,Xb,gc);w.beginPath();w.moveTo(M[0]*e+Kb,M[1]*e+Hb);w.lineTo(ma[0]*e+Kb,ma[1]*e+Hb);w.lineTo(Ub[0]*
|
||||||
|
e+Kb,Ub[1]*e+Hb);w.lineTo(Ja[0]*e+Kb,Ja[1]*e+Hb);w.clip();ij(w,f,Xb,gc)}M=0;for(ma=ba.length;M<ma;++M){var Ub=ba[M],Ja=Ub.ma,gc=y.Ea(Ja,a.j),Xb=Ja[0],Nb=cc(y.Ea(y.qd(g,Xb,a.P))),Ja=Math.round(jc(gc)*m),Kb=Math.round(kc(gc)*m),Hb=Math.round((gc[0]-Nb[0])*m/Ja)*Ja+n+Math.round((Nb[0]-g[0])*m),gc=Math.round((Nb[1]-gc[3])*m/Kb)*Kb+p+Math.round((g[1]-Nb[1])*m);if(!Fa){Nb=[Hb,gc,Hb+Ja,gc+Kb];w.save();for(var Od=0,sf=A.length;Od<sf;++Od){var Pd=A[Od];oc(Nb,Pd)&&(w.beginPath(),w.moveTo(Nb[0],Nb[1]),w.lineTo(Nb[0],
|
||||||
|
Nb[3]),w.lineTo(Nb[2],Nb[3]),w.lineTo(Nb[2],Nb[1]),w.moveTo(Pd[0],Pd[1]),w.lineTo(Pd[2],Pd[1]),w.lineTo(Pd[2],Pd[3]),w.lineTo(Pd[0],Pd[3]),w.closePath(),w.clip())}A.push(Nb)}Xb=r.$d(Xb,e,h);w.drawImage(Ub.$a(),v,v,Xb[0],Xb[1],Hb,gc,Ja,Kb);Fa||w.restore()}d&&w.restore();q&&(e=G-n/D+n,h=z-p/D+p,g=lh(a.C,H/2-e,H/2-h,m,-m,-f,-g[0]+e/m,-g[1]-h/m),Lj(a,"render",w,c,g));(f||q)&&b.drawImage(w.canvas,-Math.round(G),-Math.round(z),H/D,H/D);w.globalAlpha=l};function Dl(a){Kj.call(this,a);this.c=!1;this.D=-1;this.A=NaN;this.v=Jb();this.o=this.U=null;this.j=Ge()}x(Dl,Kj);
|
||||||
|
Dl.prototype.i=function(a,b,c){var d=a.extent,e=a.pixelRatio,f=b.Qc?a.skippedFeatureUids:{},g=a.viewState,h=g.projection,g=g.rotation,l=h.H(),m=this.a.ha(),n=Nj(this,a,0);Lj(this,"precompose",c,a,n);var p=this.o;if(p&&!p.Ya()){var q;Ya(this.a,"render")?(this.j.canvas.width=c.canvas.width,this.j.canvas.height=c.canvas.height,q=this.j):q=c;var r=q.globalAlpha;q.globalAlpha=b.opacity;b=a.size[0]*e;var v=a.size[1]*e;ij(q,-g,b/2,v/2);p.Pa(q,e,n,g,f);if(m.C&&h.a&&!Sb(l,d)){for(var h=d[0],m=jc(l),y=0;h<
|
||||||
|
l[0];)--y,n=m*y,n=Nj(this,a,n),p.Pa(q,e,n,g,f),h+=m;y=0;for(h=d[2];h>l[2];)++y,n=m*y,n=Nj(this,a,n),p.Pa(q,e,n,g,f),h-=m;n=Nj(this,a,0)}ij(q,g,b/2,v/2);q!=c&&(Lj(this,"render",q,a,n),c.drawImage(q.canvas,0,0));q.globalAlpha=r}Mj(this,c,a,n)};Dl.prototype.sa=function(a,b,c,d){if(this.o){var e=this.a,f={};return this.o.sa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=t(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};Dl.prototype.C=function(){wh(this)};
|
||||||
|
Dl.prototype.l=function(a){function b(a){var b,d=a.ec();d?b=d.call(a,m):(d=c.i)&&(b=d(a,m));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=lk(q,a,b[e],kk(m,n),this.C,this)||d;else d=lk(q,a,b,kk(m,n),this.C,this)||d;a=d}else a=!1;this.c=this.c||a}}var c=this.a,d=c.ha();zh(a.attributions,d.l);Ah(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.P,h=c.T;if(!this.c&&!g&&e||!h&&f)return!0;var l=a.extent,h=a.viewState,e=h.projection,m=h.resolution,n=a.pixelRatio,f=c.g,p=c.a,g=yj(c);
|
||||||
|
void 0===g&&(g=jk);l=Mb(l,p*m);p=h.projection.H();d.C&&h.projection.a&&!Sb(p,a.extent)&&(a=Math.max(jc(l)/2,jc(p)),l[0]=p[0]-a,l[2]=p[2]+a);if(!this.c&&this.A==m&&this.D==f&&this.U==g&&Sb(this.v,l))return!0;this.o=null;this.c=!1;var q=new ek(.5*m/n,l,m,d.T,c.a);d.Pc(l,m,e);if(g){var r=[];d.vb(l,function(a){r.push(a)},this);r.sort(g);r.forEach(b,this)}else d.vb(l,b,this);fk(q);this.A=m;this.D=f;this.U=g;this.v=l;this.o=q;return!0};function El(a,b){var c=/\{z\}/g,d=/\{x\}/g,e=/\{y\}/g,f=/\{-y\}/g;return function(g){if(g)return a.replace(c,g[0].toString()).replace(d,g[1].toString()).replace(e,function(){return(-g[2]-1).toString()}).replace(f,function(){var a=b.a?b.a[g[0]]:null;return(a.ga-a.fa+1+g[2]).toString()})}}function Fl(a,b){for(var c=a.length,d=Array(c),e=0;e<c;++e)d[e]=El(a[e],b);return Gl(d)}function Gl(a){return 1===a.length?a[0]:function(b,c,d){if(b)return a[xa((b[1]<<b[0])+b[2],a.length)](b,c,d)}}
|
||||||
|
function Hl(){}function Il(a){var b=[],c=/\{(\d)-(\d)\}/.exec(a)||/\{([a-z])-([a-z])\}/.exec(a);if(c){var d=c[2].charCodeAt(0),e;for(e=c[1].charCodeAt(0);e<=d;++e)b.push(a.replace(c[0],String.fromCharCode(e)))}else b.push(a);return b};function Jl(a){rf.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tilePixelRatio:a.tilePixelRatio,wrapX:a.wrapX});this.tileLoadFunction=a.tileLoadFunction;this.tileUrlFunction=this.vc?this.vc.bind(this):Hl;this.urls=null;a.urls?this.bb(a.urls):a.url&&this.Va(a.url);a.tileUrlFunction&&this.Qa(a.tileUrlFunction)}x(Jl,rf);k=Jl.prototype;k.gb=function(){return this.tileLoadFunction};
|
||||||
|
k.hb=function(){return this.tileUrlFunction};k.ib=function(){return this.urls};k.Bh=function(a){a=a.target;switch(a.V()){case 1:this.b(new wf("tileloadstart",a));break;case 2:this.b(new wf("tileloadend",a));break;case 3:this.b(new wf("tileloaderror",a))}};k.lb=function(a){this.a.clear();this.tileLoadFunction=a;this.u()};k.Qa=function(a,b){this.tileUrlFunction=a;"undefined"!==typeof b?uf(this,b):this.u()};
|
||||||
|
k.Va=function(a){var b=this.urls=Il(a);this.Qa(this.vc?this.vc.bind(this):Fl(b,this.tileGrid),a)};k.bb=function(a){this.urls=a;var b=a.join("\n");this.Qa(this.vc?this.vc.bind(this):Fl(a,this.tileGrid),b)};k.Yf=function(a,b,c){a=this.Fb(a,b,c);Re(this.a,a)&&this.a.get(a)};function Kl(a){Jl.call(this,{attributions:a.attributions,cacheSize:void 0!==a.cacheSize?a.cacheSize:128,extent:a.extent,logo:a.logo,opaque:!1,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction?a.tileLoadFunction:Ll,tileUrlFunction:a.tileUrlFunction,tilePixelRatio:a.tilePixelRatio,url:a.url,urls:a.urls,wrapX:void 0===a.wrapX?!0:a.wrapX});this.c=a.format?a.format:null;this.i=a.overlaps||!0;this.tileClass=a.tileClass?a.tileClass:Kk}x(Kl,Jl);
|
||||||
|
Kl.prototype.bc=function(a,b,c,d,e){var f=this.Fb(a,b,c);if(Re(this.a,f))return this.a.get(f);a=[a,b,c];d=(b=vf(this,a,e))?this.tileUrlFunction(b,d,e):void 0;d=new this.tileClass(a,void 0!==d?0:4,void 0!==d?d:"",this.c,this.tileLoadFunction);B(d,"change",this.Bh,this);this.a.set(f,d);return d};Kl.prototype.$d=function(a,b){var c=$e(this.tileGrid.Ja(a));return[c[0]*b,c[1]*b]};function Ll(a,b){a.ki(dl(b,a.l))};var Ml={image:Oj,hybrid:["Polygon","LineString"]},Nl={hybrid:["Image","Text"],vector:Oj};function Ol(a){Bl.call(this,a);this.U=!1;this.v=ch();this.D="vector"==a.s?1:0}x(Ol,Bl);
|
||||||
|
Ol.prototype.i=function(a,b,c){var d=Nj(this,a,0);Lj(this,"precompose",c,a,d);var e=this.a.s;"vector"!==e&&Cl(this,c,a,b);if("image"!==e){var f=this.a,e=Nl[f.s],g=a.pixelRatio,h=b.Qc?a.skippedFeatureUids:{},l=a.viewState,m=l.center,n=l.rotation,p=a.size,l=g/l.resolution,q=f.ha(),r=q.cc(g),v=Nj(this,a,0);Ya(f,"render")?(this.c.canvas.width=c.canvas.width,this.c.canvas.height=c.canvas.height,f=this.c):f=c;var y=f.globalAlpha;f.globalAlpha=b.opacity;b=this.o;var q=q.tileGrid,w,G,z,D,H,ba,A,Fa;G=0;for(z=
|
||||||
|
b.length;G<z;++G)D=b[G],A=D.f,H=q.Ea(D.ma,this.j),w=D.ma[0],ba="tile-pixels"==D.o.xb(),w=q.$(w),Fa=w/r,w=Math.round(g*p[0]/2),D=Math.round(g*p[1]/2),ba?(H=fc(H),dh(this.v),H=lh(this.v,w,D,l*Fa,l*Fa,n,(H[0]-m[0])/Fa,(m[1]-H[1])/Fa)):H=v,ij(f,-n,w,D),A.yd.Pa(f,g,H,n,h,e),ij(f,n,w,D);f!=c&&(Lj(this,"render",f,a,v),c.drawImage(f.canvas,0,0));f.globalAlpha=y}Mj(this,c,a,d)};
|
||||||
|
function Pl(a,b,c){function d(a){var b,c=a.ec();c?b=c.call(a,v):(c=e.i)&&(b=c(a,v));if(b){Array.isArray(b)||(b=[b]);var c=z,d=G;if(b){var f=!1;if(Array.isArray(b))for(var g=0,h=b.length;g<h;++g)f=lk(d,a,b[g],c,this.A,this)||f;else f=lk(d,a,b,c,this.A,this)||f;a=f}else a=!1;this.U=this.U||a;l.gd=l.gd||a}}var e=a.a,f=c.pixelRatio;c=c.viewState.projection;var g=e.g,h=yj(e)||null,l=b.f;if(l.gd||l.bi!=g||l.Tf!=h){l.yd=null;l.gd=!1;var m=e.ha(),n=m.tileGrid,p=b.ma,q=b.o,r="tile-pixels"==q.xb(),v=n.$(p[0]),
|
||||||
|
y;if(r)var w=r=m.cc(f),n=$e(n.Ja(p[0])),n=[0,0,n[0]*w,n[1]*w];else r=v,n=n.Ea(p),Pc(c,q)||(y=!0,b.vf(c));l.gd=!1;var G=new ek(0,n,r,m.i,e.a),z=kk(r,f);b=b.c;h&&h!==l.Tf&&b.sort(h);m=0;for(r=b.length;m<r;++m)f=b[m],y&&f.X().kb(q,c),d.call(a,f);fk(G);l.bi=g;l.Tf=h;l.yd=G;l.resolution=NaN}}
|
||||||
|
Ol.prototype.sa=function(a,b,c,d){var e=b.pixelRatio,f=b.viewState.resolution;b=b.viewState.rotation;var g=this.a,h={},l=this.o,m=g.ha(),n=m.tileGrid,p,q,r,v,y,w;r=0;for(v=l.length;r<v;++r)w=l[r],q=w.ma,y=m.tileGrid.Ea(q,this.j),Qb(y,a)&&("tile-pixels"===w.o.xb()?(y=fc(y),f=m.cc(e),q=n.$(q[0])/f,q=[(a[0]-y[0])/q,(y[1]-a[1])/q]):q=a,w=w.f.yd,p=p||w.sa(q,f,b,{},function(a){var b=t(a).toString();if(!(b in h))return h[b]=!0,c.call(d,a,g)}));return p};Ol.prototype.A=function(){wh(this)};
|
||||||
|
Ol.prototype.l=function(a,b){var c=Bl.prototype.l.call(this,a,b);if(c)for(var d=Object.keys(a.Ee||{}),e=0,f=this.o.length;e<f;++e){var g=this.o[e];Pl(this,g,a);var h=g,g=a,l=this.a,m=Ml[l.s];if(m){var n=g.pixelRatio,p=h.f,q=l.g;if(!mb(p.ui,d)||p.Uf!==q){p.ui=d;p.Uf=q;var q=h.g,r=l.ha(),v=r.tileGrid,y=h.ma[0],w=v.$(y),l=$e(v.Ja(y)),y=v.$(y),G=y/w,z=l[0]*n*G,D=l[1]*n*G;q.canvas.width=z/G+.5;q.canvas.height=D/G+.5;q.scale(1/G,1/G);q.translate(z/2,D/2);G="tile-pixels"==h.o.xb();w=n/w;r=r.cc(n);y/=r;v=
|
||||||
|
v.Ea(h.ma,this.j);h=dh(this.v);G?(jh(h,w*y,w*y),kh(h,-l[0]*r/2,-l[1]*r/2)):(l=lc(v),jh(h,w,-w),kh(h,-l[0],-l[1]));p.yd.Pa(q,n,h,0,g.skippedFeatureUids||{},m)}}}return c};function Ql(a,b){Jh.call(this,0,b);this.f=Ge();this.b=this.f.canvas;this.b.style.width="100%";this.b.style.height="100%";this.b.className="ol-unselectable";a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0;this.c=ch()}x(Ql,Jh);Ql.prototype.Xe=function(a){return a instanceof ej?new Al(a):a instanceof F?new Bl(a):a instanceof J?new Ol(a):a instanceof I?new Dl(a):null};
|
||||||
|
function Rl(a,b,c){var d=a.i,e=a.f;if(Ya(d,b)){var f=c.extent,g=c.pixelRatio,h=c.viewState.rotation,l=c.viewState,m=c.pixelRatio/l.resolution;a=lh(a.c,a.b.width/2,a.b.height/2,m,-m,-l.rotation,-l.center[0],-l.center[1]);d.b(new qh(b,new zj(e,g,f,a,h),c,e,null))}}Ql.prototype.Y=function(){return"canvas"};
|
||||||
|
Ql.prototype.Ce=function(a){if(a){var b=this.f,c=a.pixelRatio,d=Math.round(a.size[0]*c),c=Math.round(a.size[1]*c);this.b.width!=d||this.b.height!=c?(this.b.width=d,this.b.height=c):b.clearRect(0,0,d,c);var e=a.viewState.rotation;Kh(a);Rl(this,"precompose",a);var f=a.layerStatesArray;nb(f);ij(b,e,d/2,c/2);var g=a.viewState.resolution,h,l,m,n;h=0;for(l=f.length;h<l;++h)n=f[h],m=n.layer,m=Mh(this,m),sh(n,g)&&"ready"==n.S&&m.l(a,n)&&m.i(a,n,b);ij(b,-e,d/2,c/2);Rl(this,"postcompose",a);this.a||(this.b.style.display=
|
||||||
|
"",this.a=!0);Nh(this,a);a.postRenderFunctions.push(Lh)}else this.a&&(this.b.style.display="none",this.a=!1)};function Sl(a,b){vh.call(this,a);this.target=b}x(Sl,vh);Sl.prototype.Nd=oa;Sl.prototype.th=oa;function Tl(a){var b=document.createElement("DIV");b.style.position="absolute";Sl.call(this,a,b);this.f=null;this.c=ch()}x(Tl,Sl);Tl.prototype.sa=function(a,b,c,d){var e=this.a;return e.ha().sa(a,b.viewState.resolution,b.viewState.rotation,b.skippedFeatureUids,function(a){return c.call(d,a,e)})};Tl.prototype.Nd=function(){Ne(this.target);this.f=null};
|
||||||
|
Tl.prototype.yf=function(a,b){var c=a.viewState,d=c.center,e=c.resolution,f=c.rotation,g=this.f,h=this.a.ha(),l=a.viewHints,m=a.extent;void 0!==b.extent&&(m=nc(m,b.extent));l[0]||l[1]||ic(m)||(c=h.A(m,e,a.pixelRatio,c.projection))&&xh(this,c)&&(g=c);g&&(l=g.H(),m=g.$(),c=ch(),lh(c,a.size[0]/2,a.size[1]/2,m/e,m/e,f,(l[0]-d[0])/m,(d[1]-l[3])/m),g!=this.f&&(d=g.a(this),d.style.maxWidth="none",d.style.position="absolute",Ne(this.target),this.target.appendChild(d),this.f=g),mb(c,this.c)||(Ke(this.target,
|
||||||
|
c),gh(this.c,c)),zh(a.attributions,g.l),Ah(a,h));return!0};function Ul(a){var b=document.createElement("DIV");b.style.position="absolute";Sl.call(this,a,b);this.c=!0;this.l=1;this.i=0;this.f={}}x(Ul,Sl);Ul.prototype.Nd=function(){Ne(this.target);this.i=0};
|
||||||
|
Ul.prototype.yf=function(a,b){if(!b.visible)return this.c&&(this.target.style.display="none",this.c=!1),!0;var c=a.pixelRatio,d=a.viewState,e=d.projection,f=this.a,g=f.ha(),h=g.fb(e),l=g.Ud(e),m=h.Lb(d.resolution),n=h.$(m),p=d.center,q;n==d.resolution?(p=Ch(p,n,a.size),q=mc(p,n,d.rotation,a.size)):q=a.extent;void 0!==b.extent&&(q=nc(q,b.extent));var n=kf(h,q,n),r={};r[m]={};var v=this.Qd(g,e,r),y=f.c(),w=Jb(),G=new Wd(0,0,0,0),z,D,H,ba;for(H=n.ca;H<=n.ea;++H)for(ba=n.fa;ba<=n.ga;++ba)z=g.bc(m,H,ba,
|
||||||
|
c,e),D=z.V(),D=2==D||4==D||3==D&&!y,!D&&z.a&&(z=z.a),D=z.V(),2==D?r[m][z.ma.toString()]=z:4==D||3==D&&!y||(D=hf(h,z.ma,v,G,w),D||(z=jf(h,z.ma,G,w))&&v(m+1,z));var A;if(this.i!=g.g){for(A in this.f)y=this.f[+A],Me(y.target);this.f={};this.i=g.g}w=Object.keys(r).map(Number);w.sort(fb);var v={},Fa;H=0;for(ba=w.length;H<ba;++H){A=w[H];A in this.f?y=this.f[A]:(y=h.qd(p,A),y=new Vl(h,y),v[A]=!0,this.f[A]=y);A=r[A];for(Fa in A){z=y;D=A[Fa];var Ja=l,M=D.ma,ma=M[0],Ub=M[1],Kb=M[2],M=M.toString();if(!(M in
|
||||||
|
z.a)){var ma=$e(z.c.Ja(ma),z.o),Hb=D.$a(z),Xb=Hb.style;Xb.maxWidth="none";var gc,Nb;0<Ja?(gc=document.createElement("DIV"),Nb=gc.style,Nb.overflow="hidden",Nb.width=ma[0]+"px",Nb.height=ma[1]+"px",Xb.position="absolute",Xb.left=-Ja+"px",Xb.top=-Ja+"px",Xb.width=ma[0]+2*Ja+"px",Xb.height=ma[1]+2*Ja+"px",gc.appendChild(Hb)):(Xb.width=ma[0]+"px",Xb.height=ma[1]+"px",gc=Hb,Nb=Xb);Nb.position="absolute";Nb.left=(Ub-z.g[1])*ma[0]+"px";Nb.top=(z.g[2]-Kb)*ma[1]+"px";z.b||(z.b=document.createDocumentFragment());
|
||||||
|
z.b.appendChild(gc);z.a[M]=D}}y.b&&(y.target.appendChild(y.b),y.b=null)}l=Object.keys(this.f).map(Number);l.sort(fb);H=ch();Fa=0;for(w=l.length;Fa<w;++Fa)if(A=l[Fa],y=this.f[A],A in r)if(z=y.$(),ba=y.Ia(),lh(H,a.size[0]/2,a.size[1]/2,z/d.resolution,z/d.resolution,d.rotation,(ba[0]-p[0])/z,(p[1]-ba[1])/z),y.setTransform(H),A in v){for(--A;0<=A;--A)if(A in this.f){this.f[A].target.parentNode&&this.f[A].target.parentNode.insertBefore(y.target,this.f[A].target.nextSibling);break}0>A&&this.target.insertBefore(y.target,
|
||||||
|
this.target.childNodes[0]||null)}else{if(!a.viewHints[0]&&!a.viewHints[1]){D=gf(y.c,q,y.g[0],G);A=[];z=void 0;for(z in y.a)ba=y.a[z],D.contains(ba.ma)||A.push(ba);D=0;for(Ja=A.length;D<Ja;++D)ba=A[D],z=ba.ma.toString(),Me(ba.$a(y)),delete y.a[z]}}else Me(y.target),delete this.f[A];b.opacity!=this.l&&(this.l=this.target.style.opacity=b.opacity);b.visible&&!this.c&&(this.target.style.display="",this.c=!0);Bh(a.usedTiles,g,m,n);Dh(a,g,h,c,e,q,m,f.f());yh(a,g);Ah(a,g);return!0};
|
||||||
|
function Vl(a,b){this.target=document.createElement("DIV");this.target.style.position="absolute";this.target.style.width="100%";this.target.style.height="100%";this.c=a;this.g=b;this.i=fc(a.Ea(b));this.l=a.$(b[0]);this.a={};this.b=null;this.f=ch();this.o=[0,0]}Vl.prototype.Ia=function(){return this.i};Vl.prototype.$=function(){return this.l};Vl.prototype.setTransform=function(a){mb(a,this.f)||(Ke(this.target,a),gh(this.f,a))};function Wl(a){this.i=Ge();var b=this.i.canvas;b.style.maxWidth="none";b.style.position="absolute";Sl.call(this,a,b);this.f=!1;this.l=-1;this.s=NaN;this.o=Jb();this.c=this.j=null;this.U=ch();this.v=ch()}x(Wl,Sl);k=Wl.prototype;k.Nd=function(){var a=this.i.canvas;a.width=a.width;this.l=0};
|
||||||
|
k.th=function(a,b){var c=a.viewState,d=c.center,e=c.rotation,f=c.resolution,c=a.pixelRatio,g=a.size[0],h=a.size[1],l=g*c,m=h*c,d=lh(this.U,c*g/2,c*h/2,c/f,-c/f,-e,-d[0],-d[1]),f=this.i;f.canvas.width=l;f.canvas.height=m;var n=dh(this.v);jh(n,1/c,1/c);kh(n,-(l-g)/2*c,-(m-h)/2*c);Ke(f.canvas,n);Xl(this,"precompose",a,d);(g=this.c)&&!g.Ya()&&(f.globalAlpha=b.opacity,g.Pa(f,c,d,e,b.Qc?a.skippedFeatureUids:{}),Xl(this,"render",a,d));Xl(this,"postcompose",a,d)};
|
||||||
|
function Xl(a,b,c,d){var e=a.i;a=a.a;Ya(a,b)&&a.b(new qh(b,new zj(e,c.pixelRatio,c.extent,d,c.viewState.rotation),c,e,null))}k.sa=function(a,b,c,d){if(this.c){var e=this.a,f={};return this.c.sa(a,b.viewState.resolution,b.viewState.rotation,{},function(a){var b=t(a).toString();if(!(b in f))return f[b]=!0,c.call(d,a,e)})}};k.uh=function(){wh(this)};
|
||||||
|
k.yf=function(a){function b(a){var b,d=a.ec();d?b=d.call(a,l):(d=c.i)&&(b=d(a,l));if(b){if(b){d=!1;if(Array.isArray(b))for(var e=0,f=b.length;e<f;++e)d=lk(n,a,b[e],kk(l,m),this.uh,this)||d;else d=lk(n,a,b,kk(l,m),this.uh,this)||d;a=d}else a=!1;this.f=this.f||a}}var c=this.a,d=c.ha();zh(a.attributions,d.l);Ah(a,d);var e=a.viewHints[0],f=a.viewHints[1],g=c.P,h=c.T;if(!this.f&&!g&&e||!h&&f)return!0;var f=a.extent,g=a.viewState,e=g.projection,l=g.resolution,m=a.pixelRatio;a=c.g;h=c.a;g=yj(c);void 0===
|
||||||
|
g&&(g=jk);f=Mb(f,h*l);if(!this.f&&this.s==l&&this.l==a&&this.j==g&&Sb(this.o,f))return!0;this.c=null;this.f=!1;var n=new ek(.5*l/m,f,l,d.T,c.a);d.Pc(f,l,e);if(g){var p=[];d.vb(f,function(a){p.push(a)},this);p.sort(g);p.forEach(b,this)}else d.vb(f,b,this);fk(n);this.s=l;this.l=a;this.j=g;this.o=f;this.c=n;return!0};function Yl(a,b){Jh.call(this,0,b);this.f=Ge();var c=this.f.canvas;c.style.position="absolute";c.style.width="100%";c.style.height="100%";c.className="ol-unselectable";a.insertBefore(c,a.childNodes[0]||null);this.c=ch();this.b=document.createElement("DIV");this.b.className="ol-unselectable";c=this.b.style;c.position="absolute";c.width="100%";c.height="100%";B(this.b,"touchstart",Wa);a.insertBefore(this.b,a.childNodes[0]||null);this.a=!0}x(Yl,Jh);Yl.prototype.ka=function(){Me(this.b);Jh.prototype.ka.call(this)};
|
||||||
|
Yl.prototype.Xe=function(a){if(a instanceof ej)a=new Tl(a);else if(a instanceof F)a=new Ul(a);else if(a instanceof I)a=new Wl(a);else return null;return a};function Zl(a,b,c){var d=a.i;if(Ya(d,b)){var e=c.extent,f=c.pixelRatio,g=c.viewState,h=g.rotation,l=a.f,m=l.canvas;a=lh(a.c,m.width/2,m.height/2,f/g.resolution,-f/g.resolution,-h,-g.center[0],-g.center[1]);d.b(new qh(b,new zj(l,f,e,a,h),c,l,null))}}Yl.prototype.Y=function(){return"dom"};
|
||||||
|
Yl.prototype.Ce=function(a){if(a){var b=this.i;if(Ya(b,"precompose")||Ya(b,"postcompose")){var b=this.f.canvas,c=a.pixelRatio;b.width=a.size[0]*c;b.height=a.size[1]*c}Zl(this,"precompose",a);b=a.layerStatesArray;nb(b);var c=a.viewState.resolution,d,e,f,g;d=0;for(e=b.length;d<e;++d)g=b[d],f=g.layer,f=Mh(this,f),this.b.insertBefore(f.target,this.b.childNodes[d]||null),sh(g,c)&&"ready"==g.S?f.yf(a,g)&&f.th(a,g):f.Nd();var b=a.layerStates,h;for(h in this.g)h in b||(f=this.g[h],Me(f.target));this.a||(this.b.style.display=
|
||||||
|
"",this.a=!0);Kh(a);Nh(this,a);a.postRenderFunctions.push(Lh);Zl(this,"postcompose",a)}else this.a&&(this.b.style.display="none",this.a=!1)};function $l(a){this.b=a}function am(a){this.b=a}x(am,$l);am.prototype.Y=function(){return 35632};function bm(a){this.b=a}x(bm,$l);bm.prototype.Y=function(){return 35633};function cm(){this.b="precision mediump float;varying vec2 a;varying float b;uniform float k;uniform sampler2D l;void main(void){vec4 texColor=texture2D(l,a);gl_FragColor.rgb=texColor.rgb;float alpha=texColor.a*b*k;if(alpha==0.0){discard;}gl_FragColor.a=alpha;}"}x(cm,am);ca(cm);
|
||||||
|
function dm(){this.b="varying vec2 a;varying float b;attribute vec2 c;attribute vec2 d;attribute vec2 e;attribute float f;attribute float g;uniform mat4 h;uniform mat4 i;uniform mat4 j;void main(void){mat4 offsetMatrix=i;if(g==1.0){offsetMatrix=i*j;}vec4 offsets=offsetMatrix*vec4(e,0.,0.);gl_Position=h*vec4(c,0.,1.)+offsets;a=d;b=f;}"}x(dm,bm);ca(dm);
|
||||||
|
function em(a,b){this.o=a.getUniformLocation(b,"j");this.j=a.getUniformLocation(b,"i");this.i=a.getUniformLocation(b,"k");this.l=a.getUniformLocation(b,"h");this.b=a.getAttribLocation(b,"e");this.a=a.getAttribLocation(b,"f");this.f=a.getAttribLocation(b,"c");this.g=a.getAttribLocation(b,"g");this.c=a.getAttribLocation(b,"d")};function fm(a){this.b=void 0!==a?a:[]};function gm(a,b){this.l=a;this.b=b;this.a={};this.c={};this.f={};this.j=this.s=this.i=this.o=null;(this.g=gb(na,"OES_element_index_uint"))&&b.getExtension("OES_element_index_uint");B(this.l,"webglcontextlost",this.ao,this);B(this.l,"webglcontextrestored",this.bo,this)}x(gm,Sa);
|
||||||
|
function hm(a,b,c){var d=a.b,e=c.b,f=String(t(c));if(f in a.a)d.bindBuffer(b,a.a[f].buffer);else{var g=d.createBuffer();d.bindBuffer(b,g);var h;34962==b?h=new Float32Array(e):34963==b&&(h=a.g?new Uint32Array(e):new Uint16Array(e));d.bufferData(b,h,35044);a.a[f]={Db:c,buffer:g}}}function im(a,b){var c=a.b,d=String(t(b)),e=a.a[d];c.isContextLost()||c.deleteBuffer(e.buffer);delete a.a[d]}k=gm.prototype;
|
||||||
|
k.ka=function(){Ra(this.l);var a=this.b;if(!a.isContextLost()){for(var b in this.a)a.deleteBuffer(this.a[b].buffer);for(b in this.f)a.deleteProgram(this.f[b]);for(b in this.c)a.deleteShader(this.c[b]);a.deleteFramebuffer(this.i);a.deleteRenderbuffer(this.j);a.deleteTexture(this.s)}};k.$n=function(){return this.b};
|
||||||
|
function jm(a){if(!a.i){var b=a.b,c=b.createFramebuffer();b.bindFramebuffer(b.FRAMEBUFFER,c);var d=km(b,1,1),e=b.createRenderbuffer();b.bindRenderbuffer(b.RENDERBUFFER,e);b.renderbufferStorage(b.RENDERBUFFER,b.DEPTH_COMPONENT16,1,1);b.framebufferTexture2D(b.FRAMEBUFFER,b.COLOR_ATTACHMENT0,b.TEXTURE_2D,d,0);b.framebufferRenderbuffer(b.FRAMEBUFFER,b.DEPTH_ATTACHMENT,b.RENDERBUFFER,e);b.bindTexture(b.TEXTURE_2D,null);b.bindRenderbuffer(b.RENDERBUFFER,null);b.bindFramebuffer(b.FRAMEBUFFER,null);a.i=c;
|
||||||
|
a.s=d;a.j=e}return a.i}function lm(a,b){var c=String(t(b));if(c in a.c)return a.c[c];var d=a.b,e=d.createShader(b.Y());d.shaderSource(e,b.b);d.compileShader(e);return a.c[c]=e}function mm(a,b,c){var d=t(b)+"/"+t(c);if(d in a.f)return a.f[d];var e=a.b,f=e.createProgram();e.attachShader(f,lm(a,b));e.attachShader(f,lm(a,c));e.linkProgram(f);return a.f[d]=f}k.ao=function(){Da(this.a);Da(this.c);Da(this.f);this.j=this.s=this.i=this.o=null};k.bo=function(){};
|
||||||
|
k.we=function(a){if(a==this.o)return!1;this.b.useProgram(a);this.o=a;return!0};function nm(a,b,c){var d=a.createTexture();a.bindTexture(a.TEXTURE_2D,d);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR);void 0!==b&&a.texParameteri(3553,10242,b);void 0!==c&&a.texParameteri(3553,10243,c);return d}function km(a,b,c){var d=nm(a,void 0,void 0);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,b,c,0,a.RGBA,a.UNSIGNED_BYTE,null);return d}
|
||||||
|
function om(a,b){var c=nm(a,33071,33071);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b);return c};function pm(a,b){this.D=this.A=void 0;this.j=lc(b);this.U=[];this.i=[];this.S=void 0;this.c=[];this.f=[];this.Aa=this.ya=void 0;this.a=[];this.C=this.o=null;this.P=void 0;this.za=ch();this.Sa=ch();this.W=this.T=void 0;this.cb=ch();this.Ba=De();this.na=this.ia=this.Ra=void 0;this.oa=[];this.l=[];this.b=[];this.v=null;this.g=[];this.s=[];this.Hb=void 0}x(pm,ph);
|
||||||
|
function qm(a,b){var c=a.v,d=a.o,e=a.oa,f=a.l,g=b.b;return function(){if(!g.isContextLost()){var a,l;a=0;for(l=e.length;a<l;++a)g.deleteTexture(e[a]);a=0;for(l=f.length;a<l;++a)g.deleteTexture(f[a])}im(b,c);im(b,d)}}
|
||||||
|
function rm(a,b,c,d){var e=a.A,f=a.D,g=a.S,h=a.ya,l=a.Aa,m=a.P,n=a.T,p=a.W,q=a.Ra?1:0,r=a.ia,v=a.na,y=a.Hb,w=Math.cos(r),r=Math.sin(r),G=a.a.length,z=a.b.length,D,H,ba,A,Fa,Ja;for(D=0;D<c;D+=d)Fa=b[D]-a.j[0],Ja=b[D+1]-a.j[1],H=z/8,ba=-v*e,A=-v*(g-f),a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=n/l,a.b[z++]=(p+g)/h,a.b[z++]=m,a.b[z++]=q,ba=v*(y-e),A=-v*(g-f),a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=(n+y)/l,a.b[z++]=(p+g)/h,a.b[z++]=m,a.b[z++]=q,ba=
|
||||||
|
v*(y-e),A=v*f,a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=(n+y)/l,a.b[z++]=p/h,a.b[z++]=m,a.b[z++]=q,ba=-v*e,A=v*f,a.b[z++]=Fa,a.b[z++]=Ja,a.b[z++]=ba*w-A*r,a.b[z++]=ba*r+A*w,a.b[z++]=n/l,a.b[z++]=p/h,a.b[z++]=m,a.b[z++]=q,a.a[G++]=H,a.a[G++]=H+1,a.a[G++]=H+2,a.a[G++]=H,a.a[G++]=H+2,a.a[G++]=H+3}pm.prototype.tc=function(a,b){this.g.push(this.a.length);this.s.push(b);var c=a.la();rm(this,c,c.length,a.va())};
|
||||||
|
pm.prototype.uc=function(a,b){this.g.push(this.a.length);this.s.push(b);var c=a.la();rm(this,c,c.length,a.va())};function sm(a,b){var c=b.b;a.U.push(a.a.length);a.i.push(a.a.length);a.v=new fm(a.b);hm(b,34962,a.v);a.o=new fm(a.a);hm(b,34963,a.o);var d={};tm(a.oa,a.c,d,c);tm(a.l,a.f,d,c);a.A=void 0;a.D=void 0;a.S=void 0;a.c=null;a.f=null;a.ya=void 0;a.Aa=void 0;a.a=null;a.P=void 0;a.T=void 0;a.W=void 0;a.Ra=void 0;a.ia=void 0;a.na=void 0;a.b=null;a.Hb=void 0}
|
||||||
|
function tm(a,b,c,d){var e,f,g,h=b.length;for(g=0;g<h;++g)e=b[g],f=t(e).toString(),f in c?e=c[f]:(e=om(d,e),c[f]=e),a[g]=e}
|
||||||
|
pm.prototype.Pa=function(a,b,c,d,e,f,g,h,l,m,n){f=a.b;hm(a,34962,this.v);hm(a,34963,this.o);var p=cm.$b(),q=dm.$b(),q=mm(a,p,q);this.C?p=this.C:this.C=p=new em(f,q);a.we(q);f.enableVertexAttribArray(p.f);f.vertexAttribPointer(p.f,2,5126,!1,32,0);f.enableVertexAttribArray(p.b);f.vertexAttribPointer(p.b,2,5126,!1,32,8);f.enableVertexAttribArray(p.c);f.vertexAttribPointer(p.c,2,5126,!1,32,16);f.enableVertexAttribArray(p.a);f.vertexAttribPointer(p.a,1,5126,!1,32,24);f.enableVertexAttribArray(p.g);f.vertexAttribPointer(p.g,
|
||||||
|
1,5126,!1,32,28);q=dh(this.cb);jh(q,2/(c*e[0]),2/(c*e[1]));ih(q,-d);kh(q,-(b[0]-this.j[0]),-(b[1]-this.j[1]));b=dh(this.Sa);jh(b,2/e[0],2/e[1]);e=dh(this.za);0!==d&&ih(e,-d);f.uniformMatrix4fv(p.l,!1,Ee(this.Ba,q));f.uniformMatrix4fv(p.j,!1,Ee(this.Ba,b));f.uniformMatrix4fv(p.o,!1,Ee(this.Ba,e));f.uniform1f(p.i,g);var r;if(void 0===l)um(this,f,a,h,this.oa,this.U);else{if(m)a:{d=a.g?5125:5123;a=a.g?4:2;e=this.g.length-1;for(g=this.l.length-1;0<=g;--g)for(f.bindTexture(3553,this.l[g]),m=0<g?this.i[g-
|
||||||
|
1]:0,b=this.i[g];0<=e&&this.g[e]>=m;){r=this.g[e];c=this.s[e];q=t(c).toString();if(void 0===h[q]&&c.X()&&(void 0===n||oc(n,c.X().H()))&&(f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),f.drawElements(4,b-r,d,r*a),b=l(c))){h=b;break a}b=r;e--}h=void 0}else f.clear(f.COLOR_BUFFER_BIT|f.DEPTH_BUFFER_BIT),um(this,f,a,h,this.l,this.i),h=(h=l(null))?h:void 0;r=h}f.disableVertexAttribArray(p.f);f.disableVertexAttribArray(p.b);f.disableVertexAttribArray(p.c);f.disableVertexAttribArray(p.a);f.disableVertexAttribArray(p.g);
|
||||||
|
return r};function um(a,b,c,d,e,f){var g=c.g?5125:5123;c=c.g?4:2;if(Ga(d)){var h;a=0;d=e.length;for(h=0;a<d;++a){b.bindTexture(3553,e[a]);var l=f[a];b.drawElements(4,l-h,g,h*c);h=l}}else{h=0;var m,l=0;for(m=e.length;l<m;++l){b.bindTexture(3553,e[l]);for(var n=0<l?f[l-1]:0,p=f[l],q=n;h<a.g.length&&a.g[h]<=p;){var r=t(a.s[h]).toString();void 0!==d[r]?(q!==n&&b.drawElements(4,n-q,g,q*c),n=q=h===a.g.length-1?p:a.g[h+1]):n=h===a.g.length-1?p:a.g[h+1];h++}q!==n&&b.drawElements(4,n-q,g,q*c)}}}
|
||||||
|
pm.prototype.Ub=function(a){var b=a.Zb(),c=a.jc(1),d=a.ld(),e=a.pe(1),f=a.v,g=a.Ia(),h=a.U,l=a.j,m=a.Gb();a=a.i;var n;0===this.c.length?this.c.push(c):(n=this.c[this.c.length-1],t(n)!=t(c)&&(this.U.push(this.a.length),this.c.push(c)));0===this.f.length?this.f.push(e):(n=this.f[this.f.length-1],t(n)!=t(e)&&(this.i.push(this.a.length),this.f.push(e)));this.A=b[0];this.D=b[1];this.S=m[1];this.ya=d[1];this.Aa=d[0];this.P=f;this.T=g[0];this.W=g[1];this.ia=l;this.Ra=h;this.na=a;this.Hb=m[0]};
|
||||||
|
function vm(a,b,c){this.f=b;this.c=a;this.g=c;this.a={}}function wm(a,b){var c=[],d;for(d in a.a)c.push(qm(a.a[d],b));return function(){for(var a=c.length,b,d=0;d<a;d++)b=c[d].apply(this,arguments);return b}}function xm(a,b){for(var c in a.a)sm(a.a[c],b)}vm.prototype.b=function(a,b){var c=this.a[b];void 0===c&&(c=new ym[b](this.c,this.f),this.a[b]=c);return c};vm.prototype.Ya=function(){return Ga(this.a)};
|
||||||
|
vm.prototype.Pa=function(a,b,c,d,e,f,g,h){var l,m,n;l=0;for(m=Oj.length;l<m;++l)n=this.a[Oj[l]],void 0!==n&&n.Pa(a,b,c,d,e,f,g,h,void 0,!1)};function zm(a,b,c,d,e,f,g,h,l,m,n){var p=Am,q,r;for(q=Oj.length-1;0<=q;--q)if(r=a.a[Oj[q]],void 0!==r&&(r=r.Pa(b,c,d,e,p,f,g,h,l,m,n)))return r}
|
||||||
|
vm.prototype.sa=function(a,b,c,d,e,f,g,h,l,m){var n=b.b;n.bindFramebuffer(n.FRAMEBUFFER,jm(b));var p;void 0!==this.g&&(p=Mb(Wb(a),d*this.g));return zm(this,b,a,d,e,g,h,l,function(a){var b=new Uint8Array(4);n.readPixels(0,0,1,1,n.RGBA,n.UNSIGNED_BYTE,b);if(0<b[3]&&(a=m(a)))return a},!0,p)};
|
||||||
|
function Bm(a,b,c,d,e,f,g,h){var l=c.b;l.bindFramebuffer(l.FRAMEBUFFER,jm(c));return void 0!==zm(a,c,b,d,e,f,g,h,function(){var a=new Uint8Array(4);l.readPixels(0,0,1,1,l.RGBA,l.UNSIGNED_BYTE,a);return 0<a[3]},!1)}var ym={Image:pm},Am=[1,1];function Cm(a,b,c,d,e,f,g){this.b=a;this.f=b;this.g=f;this.c=g;this.o=e;this.l=d;this.i=c;this.a=null}x(Cm,ph);k=Cm.prototype;k.sd=function(a){this.Ub(a.a)};k.sc=function(a){switch(a.Y()){case "Point":this.uc(a,null);break;case "MultiPoint":this.tc(a,null);break;case "GeometryCollection":this.Ze(a,null)}};k.Ye=function(a,b){var c=(0,b.g)(a);c&&oc(this.g,c.H())&&(this.sd(b),this.sc(c))};k.Ze=function(a){a=a.c;var b,c;b=0;for(c=a.length;b<c;++b)this.sc(a[b])};
|
||||||
|
k.uc=function(a,b){var c=this.b,d=(new vm(1,this.g)).b(0,"Image");d.Ub(this.a);d.uc(a,b);sm(d,c);d.Pa(this.b,this.f,this.i,this.l,this.o,this.c,1,{},void 0,!1);qm(d,c)()};k.tc=function(a,b){var c=this.b,d=(new vm(1,this.g)).b(0,"Image");d.Ub(this.a);d.tc(a,b);sm(d,c);d.Pa(this.b,this.f,this.i,this.l,this.o,this.c,1,{},void 0,!1);qm(d,c)()};k.Ub=function(a){this.a=a};function Dm(){this.b="precision mediump float;varying vec2 a;uniform float f;uniform sampler2D g;void main(void){vec4 texColor=texture2D(g,a);gl_FragColor.rgb=texColor.rgb;gl_FragColor.a=texColor.a*f;}"}x(Dm,am);ca(Dm);function Em(){this.b="varying vec2 a;attribute vec2 b;attribute vec2 c;uniform mat4 d;uniform mat4 e;void main(void){gl_Position=e*vec4(b,0.,1.);a=(d*vec4(c,0.,1.)).st;}"}x(Em,bm);ca(Em);
|
||||||
|
function Fm(a,b){this.g=a.getUniformLocation(b,"f");this.f=a.getUniformLocation(b,"e");this.i=a.getUniformLocation(b,"d");this.c=a.getUniformLocation(b,"g");this.b=a.getAttribLocation(b,"b");this.a=a.getAttribLocation(b,"c")};function Gm(a,b){vh.call(this,b);this.f=a;this.T=new fm([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]);this.i=this.qb=null;this.l=void 0;this.s=ch();this.U=ch();this.D=De();this.v=null}x(Gm,vh);
|
||||||
|
function Hm(a,b,c){var d=a.f.f;if(void 0===a.l||a.l!=c){b.postRenderFunctions.push(function(a,b,c){a.isContextLost()||(a.deleteFramebuffer(b),a.deleteTexture(c))}.bind(null,d,a.i,a.qb));b=km(d,c,c);var e=d.createFramebuffer();d.bindFramebuffer(36160,e);d.framebufferTexture2D(36160,36064,3553,b,0);a.qb=b;a.i=e;a.l=c}else d.bindFramebuffer(36160,a.i)}
|
||||||
|
Gm.prototype.vh=function(a,b,c){Im(this,"precompose",c,a);hm(c,34962,this.T);var d=c.b,e=Dm.$b(),f=Em.$b(),e=mm(c,e,f);this.v?f=this.v:this.v=f=new Fm(d,e);c.we(e)&&(d.enableVertexAttribArray(f.b),d.vertexAttribPointer(f.b,2,5126,!1,16,0),d.enableVertexAttribArray(f.a),d.vertexAttribPointer(f.a,2,5126,!1,16,8),d.uniform1i(f.c,0));d.uniformMatrix4fv(f.i,!1,Ee(this.D,this.s));d.uniformMatrix4fv(f.f,!1,Ee(this.D,this.U));d.uniform1f(f.g,b.opacity);d.bindTexture(3553,this.qb);d.drawArrays(5,0,4);Im(this,
|
||||||
|
"postcompose",c,a)};function Im(a,b,c,d){a=a.a;if(Ya(a,b)){var e=d.viewState;a.b(new qh(b,new Cm(c,e.center,e.resolution,e.rotation,d.size,d.extent,d.pixelRatio),d,null,c))}}Gm.prototype.zf=function(){this.i=this.qb=null;this.l=void 0};function Jm(a,b){Gm.call(this,a,b);this.j=this.o=this.c=null}x(Jm,Gm);function Km(a,b){var c=b.a();return om(a.f.f,c)}Jm.prototype.sa=function(a,b,c,d){var e=this.a;return e.ha().sa(a,b.viewState.resolution,b.viewState.rotation,b.skippedFeatureUids,function(a){return c.call(d,a,e)})};
|
||||||
|
Jm.prototype.Af=function(a,b){var c=this.f.f,d=a.pixelRatio,e=a.viewState,f=e.center,g=e.resolution,h=e.rotation,l=this.c,m=this.qb,n=this.a.ha(),p=a.viewHints,q=a.extent;void 0!==b.extent&&(q=nc(q,b.extent));p[0]||p[1]||ic(q)||(e=n.A(q,g,d,e.projection))&&xh(this,e)&&(l=e,m=Km(this,e),this.qb&&a.postRenderFunctions.push(function(a,b){a.isContextLost()||a.deleteTexture(b)}.bind(null,c,this.qb)));l&&(c=this.f.c.l,Lm(this,c.width,c.height,d,f,g,h,l.H()),this.j=null,d=this.s,dh(d),jh(d,1,-1),kh(d,0,
|
||||||
|
-1),this.c=l,this.qb=m,zh(a.attributions,l.l),Ah(a,n));return!0};function Lm(a,b,c,d,e,f,g,h){b*=f;c*=f;a=a.U;dh(a);jh(a,2*d/b,2*d/c);ih(a,-g);kh(a,h[0]-e[0],h[1]-e[1]);jh(a,(h[2]-h[0])/2,(h[3]-h[1])/2);kh(a,1,1)}Jm.prototype.le=function(a,b){return void 0!==this.sa(a,b,rc,this)};
|
||||||
|
Jm.prototype.Cc=function(a,b,c,d){if(this.c&&this.c.a())if(this.a.ha()instanceof yl){var e=hh(b.pixelToCoordinateTransform,a.slice());if(this.sa(e,b,rc,this))return c.call(d,this.a)}else{e=[this.c.a().width,this.c.a().height];if(!this.j){var f=b.size;b=ch();kh(b,-1,-1);jh(b,2/f[0],2/f[1]);kh(b,0,f[1]);jh(b,1,-1);var f=mh(this.U.slice()),g=ch();kh(g,0,e[1]);jh(g,1,-1);jh(g,e[0]/2,e[1]/2);kh(g,1,1);fh(g,f);fh(g,b);this.j=g}a=hh(this.j,a.slice());if(!(0>a[0]||a[0]>e[0]||0>a[1]||a[1]>e[1])&&(this.o||
|
||||||
|
(this.o=Ge(1,1)),this.o.clearRect(0,0,1,1),this.o.drawImage(this.c.a(),a[0],a[1],1,1,0,0,1,1),0<this.o.getImageData(0,0,1,1).data[3]))return c.call(d,this.a)}};function Mm(){this.b="precision mediump float;varying vec2 a;uniform sampler2D e;void main(void){gl_FragColor=texture2D(e,a);}"}x(Mm,am);ca(Mm);function Nm(){this.b="varying vec2 a;attribute vec2 b;attribute vec2 c;uniform vec4 d;void main(void){gl_Position=vec4(b*d.xy+d.zw,0.,1.);a=c;}"}x(Nm,bm);ca(Nm);function Om(a,b){this.g=a.getUniformLocation(b,"e");this.f=a.getUniformLocation(b,"d");this.b=a.getAttribLocation(b,"b");this.a=a.getAttribLocation(b,"c")};function Pm(a,b){Gm.call(this,a,b);this.S=Mm.$b();this.W=Nm.$b();this.c=null;this.C=new fm([0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0]);this.A=this.o=null;this.j=-1;this.P=[0,0]}x(Pm,Gm);k=Pm.prototype;k.ka=function(){im(this.f.c,this.C);Gm.prototype.ka.call(this)};k.Qd=function(a,b,c){var d=this.f;return function(e,f){return tf(a,b,e,f,function(a){var b=Re(d.a,a.jb());b&&(c[e]||(c[e]={}),c[e][a.ma.toString()]=a);return b})}};k.zf=function(){Gm.prototype.zf.call(this);this.c=null};
|
||||||
|
k.Af=function(a,b,c){var d=this.f,e=c.b,f=a.viewState,g=f.projection,h=this.a,l=h.ha(),m=l.fb(g),n=m.Lb(f.resolution),p=m.$(n),q=l.$d(n,a.pixelRatio,g),r=q[0]/$e(m.Ja(n),this.P)[0],v=p/r,y=l.Ud(g),w=f.center,G;p==f.resolution?(w=Ch(w,p,a.size),G=mc(w,p,f.rotation,a.size)):G=a.extent;p=kf(m,G,p);if(this.o&&Yd(this.o,p)&&this.j==l.g)v=this.A;else{var z=[p.ea-p.ca+1,p.ga-p.fa+1],D=Math.pow(2,Math.ceil(Math.log(Math.max(z[0]*q[0],z[1]*q[1]))/Math.LN2)),z=v*D,H=m.Ia(n),ba=H[0]+p.ca*q[0]*v,v=H[1]+p.fa*
|
||||||
|
q[1]*v,v=[ba,v,ba+z,v+z];Hm(this,a,D);e.viewport(0,0,D,D);e.clearColor(0,0,0,0);e.clear(16384);e.disable(3042);D=mm(c,this.S,this.W);c.we(D);this.c||(this.c=new Om(e,D));hm(c,34962,this.C);e.enableVertexAttribArray(this.c.b);e.vertexAttribPointer(this.c.b,2,5126,!1,16,0);e.enableVertexAttribArray(this.c.a);e.vertexAttribPointer(this.c.a,2,5126,!1,16,8);e.uniform1i(this.c.g,0);c={};c[n]={};var A=this.Qd(l,g,c),Fa=h.c(),D=!0,ba=Jb(),Ja=new Wd(0,0,0,0),M,ma,Ub;for(ma=p.ca;ma<=p.ea;++ma)for(Ub=p.fa;Ub<=
|
||||||
|
p.ga;++Ub){H=l.bc(n,ma,Ub,r,g);if(void 0!==b.extent&&(M=m.Ea(H.ma,ba),!oc(M,b.extent)))continue;M=H.V();M=2==M||4==M||3==M&&!Fa;!M&&H.a&&(H=H.a);M=H.V();if(2==M){if(Re(d.a,H.jb())){c[n][H.ma.toString()]=H;continue}}else if(4==M||3==M&&!Fa)continue;D=!1;M=hf(m,H.ma,A,Ja,ba);M||(H=jf(m,H.ma,Ja,ba))&&A(n+1,H)}b=Object.keys(c).map(Number);b.sort(fb);for(var A=new Float32Array(4),Kb,Fa=0,Ja=b.length;Fa<Ja;++Fa)for(Kb in ma=c[b[Fa]],ma)H=ma[Kb],M=m.Ea(H.ma,ba),A[0]=2*(M[2]-M[0])/z,A[1]=2*(M[3]-M[1])/z,
|
||||||
|
A[2]=2*(M[0]-v[0])/z-1,A[3]=2*(M[1]-v[1])/z-1,e.uniform4fv(this.c.f,A),Qm(d,H,q,y*r),e.drawArrays(5,0,4);D?(this.o=p,this.A=v,this.j=l.g):(this.A=this.o=null,this.j=-1,a.animate=!0)}Bh(a.usedTiles,l,n,p);var Hb=d.o;Dh(a,l,m,r,g,G,n,h.f(),function(a){var b;(b=2!=a.V()||Re(d.a,a.jb()))||(b=a.jb()in Hb.g);b||Hb.f([a,mf(m,a.ma),m.$(a.ma[0]),q,y*r])},this);yh(a,l);Ah(a,l);e=this.s;dh(e);kh(e,(w[0]-v[0])/(v[2]-v[0]),(w[1]-v[1])/(v[3]-v[1]));0!==f.rotation&&ih(e,f.rotation);jh(e,a.size[0]*f.resolution/(v[2]-
|
||||||
|
v[0]),a.size[1]*f.resolution/(v[3]-v[1]));kh(e,-.5,-.5);return!0};k.Cc=function(a,b,c,d){if(this.i){a=hh(this.s,[a[0]/b.size[0],(b.size[1]-a[1])/b.size[1]].slice());a=[a[0]*this.l,a[1]*this.l];b=this.f.c.b;b.bindFramebuffer(b.FRAMEBUFFER,this.i);var e=new Uint8Array(4);b.readPixels(a[0],a[1],1,1,b.RGBA,b.UNSIGNED_BYTE,e);if(0<e[3])return c.call(d,this.a)}};function Rm(a,b){Gm.call(this,a,b);this.j=!1;this.P=-1;this.S=NaN;this.A=Jb();this.o=this.c=this.C=null}x(Rm,Gm);k=Rm.prototype;k.vh=function(a,b,c){this.o=b;var d=a.viewState,e=this.c;e&&!e.Ya()&&e.Pa(c,d.center,d.resolution,d.rotation,a.size,a.pixelRatio,b.opacity,b.Qc?a.skippedFeatureUids:{})};k.ka=function(){var a=this.c;a&&(wm(a,this.f.c)(),this.c=null);Gm.prototype.ka.call(this)};
|
||||||
|
k.sa=function(a,b,c,d){if(this.c&&this.o){var e=b.viewState,f=this.a,g={};return this.c.sa(a,this.f.c,e.center,e.resolution,e.rotation,b.size,b.pixelRatio,this.o.opacity,{},function(a){var b=t(a).toString();if(!(b in g))return g[b]=!0,c.call(d,a,f)})}};k.le=function(a,b){if(this.c&&this.o){var c=b.viewState;return Bm(this.c,a,this.f.c,c.resolution,c.rotation,b.pixelRatio,this.o.opacity,b.skippedFeatureUids)}return!1};
|
||||||
|
k.Cc=function(a,b,c,d){a=hh(b.pixelToCoordinateTransform,a.slice());if(this.le(a,b))return c.call(d,this.a)};k.wh=function(){wh(this)};
|
||||||
|
k.Af=function(a,b,c){function d(a){var b,c=a.ec();c?b=c.call(a,m):(c=e.i)&&(b=c(a,m));if(b){if(b){c=!1;if(Array.isArray(b))for(var d=0,f=b.length;d<f;++d)c=lk(q,a,b[d],kk(m,n),this.wh,this)||c;else c=lk(q,a,b,kk(m,n),this.wh,this)||c;a=c}else a=!1;this.j=this.j||a}}var e=this.a;b=e.ha();zh(a.attributions,b.l);Ah(a,b);var f=a.viewHints[0],g=a.viewHints[1],h=e.P,l=e.T;if(!this.j&&!h&&f||!l&&g)return!0;var g=a.extent,h=a.viewState,f=h.projection,m=h.resolution,n=a.pixelRatio,h=e.g,p=e.a,l=yj(e);void 0===
|
||||||
|
l&&(l=jk);g=Mb(g,p*m);if(!this.j&&this.S==m&&this.P==h&&this.C==l&&Sb(this.A,g))return!0;this.c&&a.postRenderFunctions.push(wm(this.c,c));this.j=!1;var q=new vm(.5*m/n,g,e.a);b.Pc(g,m,f);if(l){var r=[];b.vb(g,function(a){r.push(a)},this);r.sort(l);r.forEach(d,this)}else b.vb(g,d,this);xm(q,c);this.S=m;this.P=h;this.C=l;this.A=g;this.c=q;return!0};function Sm(a,b){Jh.call(this,0,b);this.b=document.createElement("CANVAS");this.b.style.width="100%";this.b.style.height="100%";this.b.className="ol-unselectable";a.insertBefore(this.b,a.childNodes[0]||null);this.U=this.A=0;this.D=Ge();this.j=!0;this.f=Uf(this.b,{antialias:!0,depth:!1,failIfMajorPerformanceCaveat:!0,preserveDrawingBuffer:!1,stencil:!0});this.c=new gm(this.b,this.f);B(this.b,"webglcontextlost",this.Pm,this);B(this.b,"webglcontextrestored",this.Qm,this);this.a=new Qe;this.v=null;this.o=
|
||||||
|
new Oh(function(a){var b=a[1];a=a[2];var e=b[0]-this.v[0],b=b[1]-this.v[1];return 65536*Math.log(a)+Math.sqrt(e*e+b*b)/a}.bind(this),function(a){return a[0].jb()});this.C=function(){if(!this.o.Ya()){Sh(this.o);var a=Ph(this.o);Qm(this,a[0],a[3],a[4])}return!1}.bind(this);this.l=0;Tm(this)}x(Sm,Jh);
|
||||||
|
function Qm(a,b,c,d){var e=a.f,f=b.jb();if(Re(a.a,f))a=a.a.get(f),e.bindTexture(3553,a.qb),9729!=a.Wg&&(e.texParameteri(3553,10240,9729),a.Wg=9729),9729!=a.Yg&&(e.texParameteri(3553,10241,9729),a.Yg=9729);else{var g=e.createTexture();e.bindTexture(3553,g);if(0<d){var h=a.D.canvas,l=a.D;a.A!==c[0]||a.U!==c[1]?(h.width=c[0],h.height=c[1],a.A=c[0],a.U=c[1]):l.clearRect(0,0,c[0],c[1]);l.drawImage(b.$a(),d,d,c[0],c[1],0,0,c[0],c[1]);e.texImage2D(3553,0,6408,6408,5121,h)}else e.texImage2D(3553,0,6408,6408,
|
||||||
|
5121,b.$a());e.texParameteri(3553,10240,9729);e.texParameteri(3553,10241,9729);e.texParameteri(3553,10242,33071);e.texParameteri(3553,10243,33071);a.a.set(f,{qb:g,Wg:9729,Yg:9729})}}k=Sm.prototype;k.Xe=function(a){return a instanceof ej?new Jm(this,a):a instanceof F?new Pm(this,a):a instanceof I?new Rm(this,a):null};function Um(a,b,c){var d=a.i;if(Ya(d,b)){a=a.c;var e=c.viewState;d.b(new qh(b,new Cm(a,e.center,e.resolution,e.rotation,c.size,c.extent,c.pixelRatio),c,null,a))}}
|
||||||
|
k.ka=function(){var a=this.f;a.isContextLost()||this.a.forEach(function(b){b&&a.deleteTexture(b.qb)});Ta(this.c);Jh.prototype.ka.call(this)};k.Gj=function(a,b){for(var c=this.f,d;1024<this.a.wc()-this.l;){if(d=this.a.b.pc)c.deleteTexture(d.qb);else if(+this.a.b.Mb==b.index)break;else--this.l;this.a.pop()}};k.Y=function(){return"webgl"};k.Pm=function(a){a.preventDefault();this.a.clear();this.l=0;a=this.g;for(var b in a)a[b].zf()};k.Qm=function(){Tm(this);this.i.render()};
|
||||||
|
function Tm(a){a=a.f;a.activeTexture(33984);a.blendFuncSeparate(770,771,1,771);a.disable(2884);a.disable(2929);a.disable(3089);a.disable(2960)}
|
||||||
|
k.Ce=function(a){var b=this.c,c=this.f;if(c.isContextLost())return!1;if(!a)return this.j&&(this.b.style.display="none",this.j=!1),!1;this.v=a.focus;this.a.set((-a.index).toString(),null);++this.l;Um(this,"precompose",a);var d=[],e=a.layerStatesArray;nb(e);var f=a.viewState.resolution,g,h,l,m;g=0;for(h=e.length;g<h;++g)m=e[g],sh(m,f)&&"ready"==m.S&&(l=Mh(this,m.layer),l.Af(a,m,b)&&d.push(m));e=a.size[0]*a.pixelRatio;f=a.size[1]*a.pixelRatio;if(this.b.width!=e||this.b.height!=f)this.b.width=e,this.b.height=
|
||||||
|
f;c.bindFramebuffer(36160,null);c.clearColor(0,0,0,0);c.clear(16384);c.enable(3042);c.viewport(0,0,this.b.width,this.b.height);g=0;for(h=d.length;g<h;++g)m=d[g],l=Mh(this,m.layer),l.vh(a,m,b);this.j||(this.b.style.display="",this.j=!0);Kh(a);1024<this.a.wc()-this.l&&a.postRenderFunctions.push(this.Gj.bind(this));this.o.Ya()||(a.postRenderFunctions.push(this.C),a.animate=!0);Um(this,"postcompose",a);Nh(this,a);a.postRenderFunctions.push(Lh)};
|
||||||
|
k.sa=function(a,b,c,d,e,f){var g;if(this.f.isContextLost())return!1;var h=b.viewState,l=b.layerStatesArray,m;for(m=l.length-1;0<=m;--m){g=l[m];var n=g.layer;if(sh(g,h.resolution)&&e.call(f,n)&&(g=Mh(this,n).sa(a,b,c,d)))return g}};k.sh=function(a,b,c,d){var e=!1;if(this.f.isContextLost())return!1;var f=b.viewState,g=b.layerStatesArray,h;for(h=g.length-1;0<=h;--h){var l=g[h],m=l.layer;if(sh(l,f.resolution)&&c.call(d,m)&&(e=Mh(this,m).le(a,b)))return!0}return e};
|
||||||
|
k.rh=function(a,b,c,d,e){if(this.f.isContextLost())return!1;var f=b.viewState,g,h=b.layerStatesArray,l;for(l=h.length-1;0<=l;--l){g=h[l];var m=g.layer;if(sh(g,f.resolution)&&e.call(d,m)&&(g=Mh(this,m).Cc(a,b,c,d)))return g}};var Vm=["canvas","webgl","dom"];
|
||||||
|
function Q(a){bb.call(this);var b=Wm(a);this.rb=void 0!==a.loadTilesWhileAnimating?a.loadTilesWhileAnimating:!1;this.Hc=void 0!==a.loadTilesWhileInteracting?a.loadTilesWhileInteracting:!1;this.Oe=void 0!==a.pixelRatio?a.pixelRatio:$f;this.Ne=b.logos;this.W=function(){this.i=void 0;this.Uo.call(this,Date.now())}.bind(this);this.Sa=ch();this.Pe=ch();this.cb=0;this.f=null;this.za=Jb();this.C=this.P=null;this.a=document.createElement("DIV");this.a.className="ol-viewport"+(eg?" ol-touch":"");this.a.style.position=
|
||||||
|
"relative";this.a.style.overflow="hidden";this.a.style.width="100%";this.a.style.height="100%";this.a.style.msTouchAction="none";this.a.style.touchAction="none";this.A=document.createElement("DIV");this.A.className="ol-overlaycontainer";this.a.appendChild(this.A);this.v=document.createElement("DIV");this.v.className="ol-overlaycontainer-stopevent";a=["click","dblclick","mousedown","touchstart","mspointerdown",Yg,"mousewheel","wheel"];for(var c=0,d=a.length;c<d;++c)B(this.v,a[c],Va);this.a.appendChild(this.v);
|
||||||
|
this.na=new Qg(this);for(var e in ah)B(this.na,ah[e],this.Pg,this);this.ia=b.keyboardEventTarget;this.s=null;B(this.a,"wheel",this.Oc,this);B(this.a,"mousewheel",this.Oc,this);this.o=b.controls;this.l=b.interactions;this.j=b.overlays;this.Cf={};this.D=new b.Wo(this.a,this);this.T=null;this.S=[];this.oa=[];this.Ba=new Th(this.Bk.bind(this),this.hl.bind(this));this.Ee={};B(this,db("layergroup"),this.Ok,this);B(this,db("view"),this.il,this);B(this,db("size"),this.el,this);B(this,db("target"),this.gl,
|
||||||
|
this);this.G(b.values);this.o.forEach(function(a){a.setMap(this)},this);B(this.o,"add",function(a){a.element.setMap(this)},this);B(this.o,"remove",function(a){a.element.setMap(null)},this);this.l.forEach(function(a){a.setMap(this)},this);B(this.l,"add",function(a){a.element.setMap(this)},this);B(this.l,"remove",function(a){a.element.setMap(null)},this);this.j.forEach(this.mg,this);B(this.j,"add",function(a){this.mg(a.element)},this);B(this.j,"remove",function(a){var b=a.element.Xa();void 0!==b&&delete this.Cf[b.toString()];
|
||||||
|
a.element.setMap(null)},this)}x(Q,bb);k=Q.prototype;k.uj=function(a){this.o.push(a)};k.vj=function(a){this.l.push(a)};k.kg=function(a){this.xc().Tc().push(a)};k.lg=function(a){this.j.push(a)};k.mg=function(a){var b=a.Xa();void 0!==b&&(this.Cf[b.toString()]=a);a.setMap(this)};k.Wa=function(a){this.render();Array.prototype.push.apply(this.S,arguments)};
|
||||||
|
k.ka=function(){Ta(this.na);Ta(this.D);Qa(this.a,"wheel",this.Oc,this);Qa(this.a,"mousewheel",this.Oc,this);void 0!==this.c&&(pa.removeEventListener("resize",this.c,!1),this.c=void 0);this.i&&(pa.cancelAnimationFrame(this.i),this.i=void 0);this.fh(null);bb.prototype.ka.call(this)};k.kd=function(a,b,c,d,e){if(this.f)return a=this.Ma(a),this.D.sa(a,this.f,b,void 0!==c?c:null,void 0!==d?d:rc,void 0!==e?e:null)};
|
||||||
|
k.Tl=function(a,b,c,d,e){if(this.f)return this.D.rh(a,this.f,b,void 0!==c?c:null,void 0!==d?d:rc,void 0!==e?e:null)};k.kl=function(a,b,c){if(!this.f)return!1;a=this.Ma(a);return this.D.sh(a,this.f,void 0!==b?b:rc,void 0!==c?c:null)};k.Wj=function(a){return this.Ma(this.Td(a))};k.Td=function(a){var b=this.a.getBoundingClientRect();a=a.changedTouches?a.changedTouches[0]:a;return[a.clientX-b.left,a.clientY-b.top]};k.tf=function(){return this.get("target")};
|
||||||
|
k.yc=function(){var a=this.tf();return void 0!==a?"string"===typeof a?document.getElementById(a):a:null};k.Ma=function(a){var b=this.f;return b?hh(b.pixelToCoordinateTransform,a.slice()):null};k.Uj=function(){return this.o};k.nk=function(){return this.j};k.mk=function(a){a=this.Cf[a.toString()];return void 0!==a?a:null};k.ak=function(){return this.l};k.xc=function(){return this.get("layergroup")};k.eh=function(){return this.xc().Tc()};
|
||||||
|
k.Ga=function(a){var b=this.f;return b?hh(b.coordinateToPixelTransform,a.slice(0,2)):null};k.Za=function(){return this.get("size")};k.aa=function(){return this.get("view")};k.Dk=function(){return this.a};k.Bk=function(a,b,c,d){var e=this.f;if(!(e&&b in e.wantedTiles&&e.wantedTiles[b][a.ma.toString()]))return Infinity;a=c[0]-e.focus[0];c=c[1]-e.focus[1];return 65536*Math.log(d)+Math.sqrt(a*a+c*c)/d};k.Oc=function(a,b){var c=new Og(b||a.type,this,a);this.Pg(c)};
|
||||||
|
k.Pg=function(a){if(this.f){this.T=a.coordinate;a.frameState=this.f;var b=this.l.a,c;if(!1!==this.b(a))for(c=b.length-1;0<=c;c--){var d=b[c];if(d.f()&&!d.handleEvent(a))break}}};k.cl=function(){var a=this.f,b=this.Ba;if(!b.Ya()){var c=16,d=c;if(a){var e=a.viewHints;e[0]&&(c=this.rb?8:0,d=2);e[1]&&(c=this.Hc?8:0,d=2)}b.i<c&&(Sh(b),Uh(b,c,d))}b=this.oa;c=0;for(d=b.length;c<d;++c)b[c](this,a);b.length=0};k.el=function(){this.render()};
|
||||||
|
k.gl=function(){var a;this.tf()&&(a=this.yc());if(this.s){for(var b=0,c=this.s.length;b<c;++b)Ka(this.s[b]);this.s=null}a?(a.appendChild(this.a),a=this.ia?this.ia:a,this.s=[B(a,"keydown",this.Oc,this),B(a,"keypress",this.Oc,this)],this.c||(this.c=this.Xc.bind(this),pa.addEventListener("resize",this.c,!1))):(Me(this.a),void 0!==this.c&&(pa.removeEventListener("resize",this.c,!1),this.c=void 0));this.Xc()};k.hl=function(){this.render()};k.jl=function(){this.render()};
|
||||||
|
k.il=function(){this.P&&(Ka(this.P),this.P=null);var a=this.aa();a&&(this.P=B(a,"propertychange",this.jl,this));this.render()};k.Pk=function(){this.render()};k.Qk=function(){this.render()};k.Ok=function(){this.C&&(this.C.forEach(Ka),this.C=null);var a=this.xc();a&&(this.C=[B(a,"propertychange",this.Qk,this),B(a,"change",this.Pk,this)]);this.render()};k.Vo=function(){this.i&&pa.cancelAnimationFrame(this.i);this.W()};k.render=function(){void 0===this.i&&(this.i=pa.requestAnimationFrame(this.W))};
|
||||||
|
k.Oo=function(a){return this.o.remove(a)};k.Po=function(a){return this.l.remove(a)};k.Ro=function(a){return this.xc().Tc().remove(a)};k.So=function(a){return this.j.remove(a)};
|
||||||
|
k.Uo=function(a){var b,c,d,e=this.Za(),f=this.aa(),g=Jb(),h=null;if(void 0!==e&&0<e[0]&&0<e[1]&&f&&Kd(f)){var h=Gd(f,this.f?this.f.viewHints:void 0),l=this.xc().hf(),m={};b=0;for(c=l.length;b<c;++b)m[t(l[b].layer)]=l[b];d=f.V();h={animate:!1,attributions:{},coordinateToPixelTransform:this.Sa,extent:g,focus:this.T?this.T:d.center,index:this.cb++,layerStates:m,layerStatesArray:l,logos:Ca({},this.Ne),pixelRatio:this.Oe,pixelToCoordinateTransform:this.Pe,postRenderFunctions:[],size:e,skippedFeatureUids:this.Ee,
|
||||||
|
tileQueue:this.Ba,time:a,usedTiles:{},viewState:d,viewHints:h,wantedTiles:{}}}if(h){a=this.S;b=e=0;for(c=a.length;b<c;++b)f=a[b],f(this,h)&&(a[e++]=f);a.length=e;h.extent=mc(d.center,d.resolution,d.rotation,h.size,g)}this.f=h;this.D.Ce(h);h&&(h.animate&&this.render(),Array.prototype.push.apply(this.oa,h.postRenderFunctions),0!==this.S.length||h.viewHints[0]||h.viewHints[1]||$b(h.extent,this.za)||(this.b(new Oe("moveend",this,h)),Ob(h.extent,this.za)));this.b(new Oe("postrender",this,h));Mf(this.cl,
|
||||||
|
this)};k.ji=function(a){this.set("layergroup",a)};k.Wf=function(a){this.set("size",a)};k.fh=function(a){this.set("target",a)};k.kp=function(a){this.set("view",a)};k.ti=function(a){a=t(a).toString();this.Ee[a]=!0;this.render()};
|
||||||
|
k.Xc=function(){var a=this.yc();if(a){var b=pa.getComputedStyle(a);this.Wf([a.offsetWidth-parseFloat(b.borderLeftWidth)-parseFloat(b.paddingLeft)-parseFloat(b.paddingRight)-parseFloat(b.borderRightWidth),a.offsetHeight-parseFloat(b.borderTopWidth)-parseFloat(b.paddingTop)-parseFloat(b.paddingBottom)-parseFloat(b.borderBottomWidth)])}else this.Wf(void 0)};k.wi=function(a){a=t(a).toString();delete this.Ee[a];this.render()};
|
||||||
|
function Wm(a){var b=null;void 0!==a.keyboardEventTarget&&(b="string"===typeof a.keyboardEventTarget?document.getElementById(a.keyboardEventTarget):a.keyboardEventTarget);var c={},d={};if(void 0===a.logo||"boolean"===typeof a.logo&&a.logo)d["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAHGAAABxgEXwfpGAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAhNQTFRF////AP//AICAgP//AFVVQECA////K1VVSbbbYL/fJ05idsTYJFtbbcjbJllmZszWWMTOIFhoHlNiZszTa9DdUcHNHlNlV8XRIVdiasrUHlZjIVZjaMnVH1RlIFRkH1RkH1ZlasvYasvXVsPQH1VkacnVa8vWIVZjIFRjVMPQa8rXIVVkXsXRsNveIFVkIFZlIVVj3eDeh6GmbMvXH1ZkIFRka8rWbMvXIFVkIFVjIFVkbMvWH1VjbMvWIFVlbcvWIFVla8vVIFVkbMvWbMvVH1VkbMvWIFVlbcvWIFVkbcvVbMvWjNPbIFVkU8LPwMzNIFVkbczWIFVkbsvWbMvXIFVkRnB8bcvW2+TkW8XRIFVkIlZlJVloJlpoKlxrLl9tMmJwOWd0Omh1RXF8TneCT3iDUHiDU8LPVMLPVcLPVcPQVsPPVsPQV8PQWMTQWsTQW8TQXMXSXsXRX4SNX8bSYMfTYcfTYsfTY8jUZcfSZsnUaIqTacrVasrVa8jTa8rWbI2VbMvWbcvWdJObdcvUdszUd8vVeJaee87Yfc3WgJyjhqGnitDYjaarldPZnrK2oNbborW5o9bbo9fbpLa6q9ndrL3ArtndscDDutzfu8fJwN7gwt7gxc/QyuHhy+HizeHi0NfX0+Pj19zb1+Tj2uXk29/e3uLg3+Lh3+bl4uXj4ufl4+fl5Ofl5ufl5ujm5+jmySDnBAAAAFp0Uk5TAAECAgMEBAYHCA0NDg4UGRogIiMmKSssLzU7PkJJT1JTVFliY2hrdHZ3foSFhYeJjY2QkpugqbG1tre5w8zQ09XY3uXn6+zx8vT09vf4+Pj5+fr6/P39/f3+gz7SsAAAAVVJREFUOMtjYKA7EBDnwCPLrObS1BRiLoJLnte6CQy8FLHLCzs2QUG4FjZ5GbcmBDDjxJBXDWxCBrb8aM4zbkIDzpLYnAcE9VXlJSWlZRU13koIeW57mGx5XjoMZEUqwxWYQaQbSzLSkYGfKFSe0QMsX5WbjgY0YS4MBplemI4BdGBW+DQ11eZiymfqQuXZIjqwyadPNoSZ4L+0FVM6e+oGI6g8a9iKNT3o8kVzNkzRg5lgl7p4wyRUL9Yt2jAxVh6mQCogae6GmflI8p0r13VFWTHBQ0rWPW7ahgWVcPm+9cuLoyy4kCJDzCm6d8PSFoh0zvQNC5OjDJhQopPPJqph1doJBUD5tnkbZiUEqaCnB3bTqLTFG1bPn71kw4b+GFdpLElKIzRxxgYgWNYc5SCENVHKeUaltHdXx0dZ8uBI1hJ2UUDgq82CM2MwKeibqAvSO7MCABq0wXEPiqWEAAAAAElFTkSuQmCC"]=
|
||||||
|
"http://openlayers.org/";else{var e=a.logo;"string"===typeof e?d[e]="":e instanceof HTMLElement?d[t(e).toString()]=e:fa(e)&&(d[e.src]=e.href)}e=a.layers instanceof Vi?a.layers:new Vi({layers:a.layers});c.layergroup=e;c.target=a.target;c.view=void 0!==a.view?a.view:new Fd;var e=Jh,f;void 0!==a.renderer?Array.isArray(a.renderer)?f=a.renderer:"string"===typeof a.renderer&&(f=[a.renderer]):f=Vm;var g,h;g=0;for(h=f.length;g<h;++g){var l=f[g];if("canvas"==l){if(bg){e=Ql;break}}else if("dom"==l){e=Yl;break}else if("webgl"==
|
||||||
|
l&&Vf){e=Sm;break}}var m;void 0!==a.controls?m=Array.isArray(a.controls)?new be(a.controls.slice()):a.controls:m=Df();var n;void 0!==a.interactions?n=Array.isArray(a.interactions)?new be(a.interactions.slice()):a.interactions:n=Ui();a=void 0!==a.overlays?Array.isArray(a.overlays)?new be(a.overlays.slice()):a.overlays:new be;return{controls:m,interactions:n,keyboardEventTarget:b,logos:d,overlays:a,Wo:e,values:c}}dj();function Xm(a){bb.call(this);this.j=a.id;this.o=void 0!==a.insertFirst?a.insertFirst:!0;this.s=void 0!==a.stopEvent?a.stopEvent:!0;this.f=document.createElement("DIV");this.f.className="ol-overlay-container";this.f.style.position="absolute";this.autoPan=void 0!==a.autoPan?a.autoPan:!1;this.i=void 0!==a.autoPanAnimation?a.autoPanAnimation:{};this.l=void 0!==a.autoPanMargin?a.autoPanMargin:20;this.a={Md:"",fe:"",De:"",Fe:"",visible:!0};this.c=null;B(this,db("element"),this.Jk,this);B(this,db("map"),
|
||||||
|
this.Vk,this);B(this,db("offset"),this.Zk,this);B(this,db("position"),this.al,this);B(this,db("positioning"),this.bl,this);void 0!==a.element&&this.fi(a.element);this.li(void 0!==a.offset?a.offset:[0,0]);this.oi(void 0!==a.positioning?a.positioning:"top-left");void 0!==a.position&&this.uf(a.position)}x(Xm,bb);k=Xm.prototype;k.Sd=function(){return this.get("element")};k.Xa=function(){return this.j};k.he=function(){return this.get("map")};k.Kg=function(){return this.get("offset")};k.gh=function(){return this.get("position")};
|
||||||
|
k.Lg=function(){return this.get("positioning")};k.Jk=function(){Ne(this.f);var a=this.Sd();a&&this.f.appendChild(a)};k.Vk=function(){this.c&&(Me(this.f),Ka(this.c),this.c=null);var a=this.he();a&&(this.c=B(a,"postrender",this.render,this),Ym(this),a=this.s?a.v:a.A,this.o?a.insertBefore(this.f,a.childNodes[0]||null):a.appendChild(this.f))};k.render=function(){Ym(this)};k.Zk=function(){Ym(this)};
|
||||||
|
k.al=function(){Ym(this);if(void 0!==this.get("position")&&this.autoPan){var a=this.he();if(void 0!==a&&a.yc()){var b=Zm(a.yc(),a.Za()),c=this.Sd(),d=c.offsetWidth,e=c.currentStyle||pa.getComputedStyle(c),d=d+(parseInt(e.marginLeft,10)+parseInt(e.marginRight,10)),e=c.offsetHeight,f=c.currentStyle||pa.getComputedStyle(c),e=e+(parseInt(f.marginTop,10)+parseInt(f.marginBottom,10)),g=Zm(c,[d,e]),c=this.l;Sb(b,g)||(d=g[0]-b[0],e=b[2]-g[2],f=g[1]-b[1],g=b[3]-g[3],b=[0,0],0>d?b[0]=d-c:0>e&&(b[0]=Math.abs(e)+
|
||||||
|
c),0>f?b[1]=f-c:0>g&&(b[1]=Math.abs(g)+c),0===b[0]&&0===b[1])||(c=a.aa().ab(),d=a.Ga(c),b=[d[0]+b[0],d[1]+b[1]],this.i&&(this.i.source=c,a.Wa(Td(this.i))),a.aa().nb(a.Ma(b)))}}};k.bl=function(){Ym(this)};k.fi=function(a){this.set("element",a)};k.setMap=function(a){this.set("map",a)};k.li=function(a){this.set("offset",a)};k.uf=function(a){this.set("position",a)};function Zm(a,b){var c=a.getBoundingClientRect(),d=c.left+pa.pageXOffset,c=c.top+pa.pageYOffset;return[d,c,d+b[0],c+b[1]]}
|
||||||
|
k.oi=function(a){this.set("positioning",a)};function $m(a,b){a.a.visible!==b&&(a.f.style.display=b?"":"none",a.a.visible=b)}
|
||||||
|
function Ym(a){var b=a.he(),c=a.gh();if(void 0!==b&&b.f&&void 0!==c){var c=b.Ga(c),d=b.Za(),b=a.f.style,e=a.Kg(),f=a.Lg(),g=e[0],e=e[1];if("bottom-right"==f||"center-right"==f||"top-right"==f)""!==a.a.fe&&(a.a.fe=b.left=""),g=Math.round(d[0]-c[0]-g)+"px",a.a.De!=g&&(a.a.De=b.right=g);else{""!==a.a.De&&(a.a.De=b.right="");if("bottom-center"==f||"center-center"==f||"top-center"==f)g-=a.f.offsetWidth/2;g=Math.round(c[0]+g)+"px";a.a.fe!=g&&(a.a.fe=b.left=g)}if("bottom-left"==f||"bottom-center"==f||"bottom-right"==
|
||||||
|
f)""!==a.a.Fe&&(a.a.Fe=b.top=""),c=Math.round(d[1]-c[1]-e)+"px",a.a.Md!=c&&(a.a.Md=b.bottom=c);else{""!==a.a.Md&&(a.a.Md=b.bottom="");if("center-left"==f||"center-center"==f||"center-right"==f)e-=a.f.offsetHeight/2;c=Math.round(c[1]+e)+"px";a.a.Fe!=c&&(a.a.Fe=b.top=c)}$m(a,!0)}else $m(a,!1)};function an(a){a=a?a:{};this.l=void 0!==a.collapsed?a.collapsed:!0;this.o=void 0!==a.collapsible?a.collapsible:!0;this.o||(this.l=!1);var b=void 0!==a.className?a.className:"ol-overviewmap",c=void 0!==a.tipLabel?a.tipLabel:"Overview map",d=void 0!==a.collapseLabel?a.collapseLabel:"\u00ab";"string"===typeof d?(this.j=document.createElement("span"),this.j.textContent=d):this.j=d;d=void 0!==a.label?a.label:"\u00bb";"string"===typeof d?(this.v=document.createElement("span"),this.v.textContent=d):this.v=
|
||||||
|
d;var e=this.o&&!this.l?this.j:this.v,d=document.createElement("button");d.setAttribute("type","button");d.title=c;d.appendChild(e);B(d,"click",this.gm,this);c=document.createElement("DIV");c.className="ol-overviewmap-map";var f=this.f=new Q({controls:new be,interactions:new be,target:c,view:a.view});a.layers&&a.layers.forEach(function(a){f.kg(a)},this);e=document.createElement("DIV");e.className="ol-overviewmap-box";e.style.boxSizing="border-box";this.A=new Xm({position:[0,0],positioning:"bottom-left",
|
||||||
|
element:e});this.f.lg(this.A);e=document.createElement("div");e.className=b+" ol-unselectable ol-control"+(this.l&&this.o?" ol-collapsed":"")+(this.o?"":" ol-uncollapsible");e.appendChild(c);e.appendChild(d);Pe.call(this,{element:e,render:a.render?a.render:bn,target:a.target})}x(an,Pe);k=an.prototype;
|
||||||
|
k.setMap=function(a){var b=this.a;a!==b&&(b&&(b=b.aa())&&Qa(b,db("rotation"),this.de,this),Pe.prototype.setMap.call(this,a),a&&(this.s.push(B(a,"propertychange",this.Wk,this)),0===this.f.eh().dc()&&this.f.ji(a.xc()),a=a.aa()))&&(B(a,db("rotation"),this.de,this),Kd(a)&&(this.f.Xc(),cn(this)))};k.Wk=function(a){"view"===a.key&&((a=a.oldValue)&&Qa(a,db("rotation"),this.de,this),a=this.a.aa(),B(a,db("rotation"),this.de,this))};k.de=function(){this.f.aa().ie(this.a.aa().La())};
|
||||||
|
function bn(){var a=this.a,b=this.f;if(a.f&&b.f){var c=a.Za(),a=a.aa().Kc(c),d=b.Za(),c=b.aa().Kc(d),e=b.Ga(fc(a)),f=b.Ga(dc(a)),b=Math.abs(e[0]-f[0]),e=Math.abs(e[1]-f[1]),f=d[0],d=d[1];b<.1*f||e<.1*d||b>.75*f||e>.75*d?cn(this):Sb(c,a)||(a=this.f,c=this.a.aa(),a.aa().nb(c.ab()))}dn(this)}function cn(a){var b=a.a;a=a.f;var c=b.Za(),b=b.aa().Kc(c),c=a.Za();a=a.aa();pc(b,1/(.1*Math.pow(2,Math.log(7.5)/Math.LN2/2)));a.cf(b,c)}
|
||||||
|
function dn(a){var b=a.a,c=a.f;if(b.f&&c.f){var d=b.Za(),e=b.aa(),f=c.aa();c.Za();var c=e.La(),b=a.A,g=a.A.Sd(),e=e.Kc(d),d=f.$(),f=cc(e),e=ec(e),h;if(a=a.a.aa().ab())h=[f[0]-a[0],f[1]-a[1]],Db(h,c),yb(h,a);b.uf(h);g&&(g.style.width=Math.abs((f[0]-e[0])/d)+"px",g.style.height=Math.abs((e[1]-f[1])/d)+"px")}}k.gm=function(a){a.preventDefault();en(this)};
|
||||||
|
function en(a){a.element.classList.toggle("ol-collapsed");a.l?Le(a.j,a.v):Le(a.v,a.j);a.l=!a.l;var b=a.f;a.l||b.f||(b.Xc(),cn(a),Pa(b,"postrender",function(){dn(this)},a))}k.fm=function(){return this.o};k.im=function(a){this.o!==a&&(this.o=a,this.element.classList.toggle("ol-uncollapsible"),!a&&this.l&&en(this))};k.hm=function(a){this.o&&this.l!==a&&en(this)};k.em=function(){return this.l};k.pk=function(){return this.f};function fn(a){a=a?a:{};var b=void 0!==a.className?a.className:"ol-scale-line";this.o=document.createElement("DIV");this.o.className=b+"-inner";this.f=document.createElement("DIV");this.f.className=b+" ol-unselectable";this.f.appendChild(this.o);this.v=null;this.j=void 0!==a.minWidth?a.minWidth:64;this.l=!1;this.D=void 0;this.A="";Pe.call(this,{element:this.f,render:a.render?a.render:gn,target:a.target});B(this,db("units"),this.S,this);this.C(a.units||"metric")}x(fn,Pe);var hn=[1,2,5];
|
||||||
|
fn.prototype.xb=function(){return this.get("units")};function gn(a){(a=a.frameState)?this.v=a.viewState:this.v=null;jn(this)}fn.prototype.S=function(){jn(this)};fn.prototype.C=function(a){this.set("units",a)};
|
||||||
|
function jn(a){var b=a.v;if(b){var c=b.projection,d=c.ac(),b=c.getPointResolution(b.resolution,b.center)*d,d=a.j*b,c="",e=a.xb();"degrees"==e?(c=vc.degrees,b/=c,d<c/60?(c="\u2033",b*=3600):d<c?(c="\u2032",b*=60):c="\u00b0"):"imperial"==e?.9144>d?(c="in",b/=.0254):1609.344>d?(c="ft",b/=.3048):(c="mi",b/=1609.344):"nautical"==e?(b/=1852,c="nm"):"metric"==e?1>d?(c="mm",b*=1E3):1E3>d?c="m":(c="km",b/=1E3):"us"==e&&(.9144>d?(c="in",b*=39.37):1609.344>d?(c="ft",b/=.30480061):(c="mi",b/=1609.3472));for(var e=
|
||||||
|
3*Math.floor(Math.log(a.j*b)/Math.log(10)),f;;){f=hn[(e%3+3)%3]*Math.pow(10,Math.floor(e/3));d=Math.round(f/b);if(isNaN(d)){a.f.style.display="none";a.l=!1;return}if(d>=a.j)break;++e}b=f+" "+c;a.A!=b&&(a.o.innerHTML=b,a.A=b);a.D!=d&&(a.o.style.width=d+"px",a.D=d);a.l||(a.f.style.display="",a.l=!0)}else a.l&&(a.f.style.display="none",a.l=!1)};function kn(a){a=a?a:{};this.f=void 0;this.l=ln;this.v=[];this.D=this.j=0;this.T=null;this.ia=!1;this.W=void 0!==a.duration?a.duration:200;var b=void 0!==a.className?a.className:"ol-zoomslider",c=document.createElement("button");c.setAttribute("type","button");c.className=b+"-thumb ol-unselectable";var d=document.createElement("div");d.className=b+" ol-unselectable ol-control";d.appendChild(c);this.o=new Ig(d);B(this.o,sg,this.Ik,this);B(this.o,tg,this.Ng,this);B(this.o,ug,this.Og,this);B(d,"click",
|
||||||
|
this.Hk,this);B(c,"click",Va);Pe.call(this,{element:d,render:a.render?a.render:mn})}x(kn,Pe);kn.prototype.ka=function(){Ta(this.o);Pe.prototype.ka.call(this)};var ln=0;k=kn.prototype;k.setMap=function(a){Pe.prototype.setMap.call(this,a);a&&a.render()};
|
||||||
|
function mn(a){if(a.frameState){if(!this.ia){var b=this.element,c=b.offsetWidth,d=b.offsetHeight,e=b.firstElementChild,f=pa.getComputedStyle(e),b=e.offsetWidth+parseFloat(f.marginRight)+parseFloat(f.marginLeft),e=e.offsetHeight+parseFloat(f.marginTop)+parseFloat(f.marginBottom);this.T=[b,e];c>d?(this.l=1,this.D=c-b):(this.l=ln,this.j=d-e);this.ia=!0}a=a.frameState.viewState.resolution;a!==this.f&&(this.f=a,nn(this,a))}}
|
||||||
|
k.Hk=function(a){var b=this.a,c=b.aa(),d=c.$();b.Wa(Vd({resolution:d,duration:this.W,easing:Nd}));a=on(this,sa(1===this.l?(a.offsetX-this.T[0]/2)/this.D:(a.offsetY-this.T[1]/2)/this.j,0,1));c.Vb(c.constrainResolution(a))};
|
||||||
|
k.Ik=function(a){if(!this.A&&a.b.target===this.element.firstElementChild&&(Ld(this.a.aa(),1),this.C=a.clientX,this.S=a.clientY,this.A=!0,0===this.v.length)){a=this.Ng;var b=this.Og;this.v.push(B(document,"mousemove",a,this),B(document,"touchmove",a,this),B(document,tg,a,this),B(document,"mouseup",b,this),B(document,"touchend",b,this),B(document,ug,b,this))}};
|
||||||
|
k.Ng=function(a){if(this.A){var b=this.element.firstElementChild;this.f=on(this,sa(1===this.l?(a.clientX-this.C+parseInt(b.style.left,10))/this.D:(a.clientY-this.S+parseInt(b.style.top,10))/this.j,0,1));this.a.aa().Vb(this.f);nn(this,this.f);this.C=a.clientX;this.S=a.clientY}};k.Og=function(){if(this.A){var a=this.a,b=a.aa();Ld(b,-1);a.Wa(Vd({resolution:this.f,duration:this.W,easing:Nd}));a=b.constrainResolution(this.f);b.Vb(a);this.A=!1;this.S=this.C=void 0;this.v.forEach(Ka);this.v.length=0}};
|
||||||
|
function nn(a,b){var c;c=1-Jd(a.a.aa())(b);var d=a.element.firstElementChild;1==a.l?d.style.left=a.D*c+"px":d.style.top=a.j*c+"px"}function on(a,b){return Id(a.a.aa())(1-b)};function pn(a){a=a?a:{};this.f=a.extent?a.extent:null;var b=void 0!==a.className?a.className:"ol-zoom-extent",c=void 0!==a.label?a.label:"E",d=void 0!==a.tipLabel?a.tipLabel:"Fit to extent",e=document.createElement("button");e.setAttribute("type","button");e.title=d;e.appendChild("string"===typeof c?document.createTextNode(c):c);B(e,"click",this.l,this);c=document.createElement("div");c.className=b+" ol-unselectable ol-control";c.appendChild(e);Pe.call(this,{element:c,target:a.target})}x(pn,Pe);
|
||||||
|
pn.prototype.l=function(a){a.preventDefault();var b=this.a;a=b.aa();var c=this.f?this.f:a.l.H(),b=b.Za();a.cf(c,b)};function qn(a){bb.call(this);a=a?a:{};this.a=null;B(this,db("tracking"),this.Il,this);this.rf(void 0!==a.tracking?a.tracking:!1)}x(qn,bb);k=qn.prototype;k.ka=function(){this.rf(!1);bb.prototype.ka.call(this)};
|
||||||
|
k.co=function(a){if(null!==a.alpha){var b=wa(a.alpha);this.set("alpha",b);"boolean"===typeof a.absolute&&a.absolute?this.set("heading",b):"number"===typeof a.webkitCompassHeading&&-1!=a.webkitCompassAccuracy&&this.set("heading",wa(a.webkitCompassHeading))}null!==a.beta&&this.set("beta",wa(a.beta));null!==a.gamma&&this.set("gamma",wa(a.gamma));this.u()};k.Oj=function(){return this.get("alpha")};k.Rj=function(){return this.get("beta")};k.Yj=function(){return this.get("gamma")};k.Hl=function(){return this.get("heading")};
|
||||||
|
k.$g=function(){return this.get("tracking")};k.Il=function(){if(cg){var a=this.$g();a&&!this.a?this.a=B(pa,"deviceorientation",this.co,this):a||null===this.a||(Ka(this.a),this.a=null)}};k.rf=function(a){this.set("tracking",a)};function rn(){this.defaultDataProjection=null}function sn(a,b,c){var d;c&&(d={dataProjection:c.dataProjection?c.dataProjection:a.Oa(b),featureProjection:c.featureProjection});return tn(a,d)}function tn(a,b){var c;b&&(c={featureProjection:b.featureProjection,dataProjection:b.dataProjection?b.dataProjection:a.defaultDataProjection,rightHanded:b.rightHanded},b.decimals&&(c.decimals=b.decimals));return c}
|
||||||
|
function un(a,b,c){var d=c?zc(c.featureProjection):null,e=c?zc(c.dataProjection):null,f;d&&e&&!Pc(d,e)?a instanceof Uc?f=(b?a.clone():a).kb(b?d:e,b?e:d):f=Tc(b?a.slice():a,b?d:e,b?e:d):f=a;if(b&&c&&c.decimals){var g=Math.pow(10,c.decimals);a=function(a){for(var b=0,c=a.length;b<c;++b)a[b]=Math.round(a[b]*g)/g;return a};Array.isArray(f)?a(f):f.rc(a)}return f};function vn(){this.defaultDataProjection=null}x(vn,rn);function wn(a){return fa(a)?a:"string"===typeof a?(a=JSON.parse(a))?a:null:null}k=vn.prototype;k.Y=function(){return"json"};k.Sb=function(a,b){return this.Uc(wn(a),sn(this,a,b))};k.Fa=function(a,b){return this.Jf(wn(a),sn(this,a,b))};k.Vc=function(a,b){return this.Rh(wn(a),sn(this,a,b))};k.Oa=function(a){return this.Yh(wn(a))};k.Dd=function(a,b){return JSON.stringify(this.Yc(a,b))};k.Yb=function(a,b){return JSON.stringify(this.Ie(a,b))};
|
||||||
|
k.Zc=function(a,b){return JSON.stringify(this.Ke(a,b))};function xn(a,b,c,d,e,f){var g=NaN,h=NaN,l=(c-b)/d;if(0!==l)if(1==l)g=a[b],h=a[b+1];else if(2==l)g=(1-e)*a[b]+e*a[b+d],h=(1-e)*a[b+1]+e*a[b+d+1];else{var h=a[b],l=a[b+1],m=0,g=[0],n;for(n=b+d;n<c;n+=d){var p=a[n],q=a[n+1],m=m+Math.sqrt((p-h)*(p-h)+(q-l)*(q-l));g.push(m);h=p;l=q}c=e*m;l=0;m=g.length;for(n=!1;l<m;)e=l+(m-l>>1),h=+fb(g[e],c),0>h?l=e+1:(m=e,n=!h);e=n?l:~l;0>e?(c=(c-g[-e-2])/(g[-e-1]-g[-e-2]),b+=(-e-2)*d,g=ya(a[b],a[b+d],c),h=ya(a[b+1],a[b+d+1],c)):(g=a[b+e*d],h=a[b+e*d+1])}return f?(f[0]=
|
||||||
|
g,f[1]=h,f):[g,h]}function yn(a,b,c,d,e,f){if(c==b)return null;if(e<a[b+d-1])return f?(c=a.slice(b,b+d),c[d-1]=e,c):null;if(a[c-1]<e)return f?(c=a.slice(c-d,c),c[d-1]=e,c):null;if(e==a[b+d-1])return a.slice(b,b+d);b/=d;for(c/=d;b<c;)f=b+c>>1,e<a[(f+1)*d-1]?c=f:b=f+1;c=a[b*d-1];if(e==c)return a.slice((b-1)*d,(b-1)*d+d);f=(e-c)/(a[(b+1)*d-1]-c);c=[];var g;for(g=0;g<d-1;++g)c.push(ya(a[(b-1)*d+g],a[b*d+g],f));c.push(e);return c}
|
||||||
|
function zn(a,b,c,d,e,f){var g=0;if(f)return yn(a,g,b[b.length-1],c,d,e);if(d<a[c-1])return e?(a=a.slice(0,c),a[c-1]=d,a):null;if(a[a.length-1]<d)return e?(a=a.slice(a.length-c),a[c-1]=d,a):null;e=0;for(f=b.length;e<f;++e){var h=b[e];if(g!=h){if(d<a[g+c-1])break;if(d<=a[h-1])return yn(a,g,h,c,d,!1);g=h}}return null};function R(a,b){Wc.call(this);this.i=null;this.D=this.C=this.j=-1;this.ra(a,b)}x(R,Wc);k=R.prototype;k.wj=function(a){this.B?jb(this.B,a):this.B=a.slice();this.u()};k.clone=function(){var a=new R(null);a.ba(this.f,this.B.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.D!=this.g&&(this.C=Math.sqrt(cd(this.B,0,this.B.length,this.a,0)),this.D=this.g);return ed(this.B,0,this.B.length,this.a,this.C,!1,a,b,c,d)};
|
||||||
|
k.Lj=function(a,b){return td(this.B,0,this.B.length,this.a,a,b)};k.lm=function(a,b){return"XYM"!=this.f&&"XYZM"!=this.f?null:yn(this.B,0,this.B.length,this.a,a,void 0!==b?b:!1)};k.Z=function(){return jd(this.B,0,this.B.length,this.a)};k.Bg=function(a,b){return xn(this.B,0,this.B.length,this.a,a,b)};k.mm=function(){var a=this.B,b=this.a,c=a[0],d=a[1],e=0,f;for(f=0+b;f<this.B.length;f+=b)var g=a[f],h=a[f+1],e=e+Math.sqrt((g-c)*(g-c)+(h-d)*(h-d)),c=g,d=h;return e};
|
||||||
|
function Gj(a){a.j!=a.g&&(a.i=a.Bg(.5,a.i),a.j=a.g);return a.i}k.Nc=function(a){var b=[];b.length=ld(this.B,0,this.B.length,this.a,a,b,0);a=new R(null);a.ba("XY",b);return a};k.Y=function(){return"LineString"};k.Ka=function(a){return ud(this.B,0,this.B.length,this.a,a)};k.ra=function(a,b){a?(Zc(this,b,a,1),this.B||(this.B=[]),this.B.length=hd(this.B,0,a,this.a),this.u()):this.ba("XY",null)};k.ba=function(a,b){Yc(this,a,b);this.u()};function S(a,b){Wc.call(this);this.i=[];this.j=this.D=-1;this.ra(a,b)}x(S,Wc);k=S.prototype;k.xj=function(a){this.B?jb(this.B,a.la().slice()):this.B=a.la().slice();this.i.push(this.B.length);this.u()};k.clone=function(){var a=new S(null);a.ba(this.f,this.B.slice(),this.i.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;this.j!=this.g&&(this.D=Math.sqrt(dd(this.B,0,this.i,this.a,0)),this.j=this.g);return fd(this.B,0,this.i,this.a,this.D,!1,a,b,c,d)};
|
||||||
|
k.om=function(a,b,c){return"XYM"!=this.f&&"XYZM"!=this.f||0===this.B.length?null:zn(this.B,this.i,this.a,a,void 0!==b?b:!1,void 0!==c?c:!1)};k.Z=function(){return kd(this.B,0,this.i,this.a)};k.Eb=function(){return this.i};k.fk=function(a){if(0>a||this.i.length<=a)return null;var b=new R(null);b.ba(this.f,this.B.slice(0===a?0:this.i[a-1],this.i[a]));return b};
|
||||||
|
k.md=function(){var a=this.B,b=this.i,c=this.f,d=[],e=0,f,g;f=0;for(g=b.length;f<g;++f){var h=b[f],l=new R(null);l.ba(c,a.slice(e,h));d.push(l);e=h}return d};function Hj(a){var b=[],c=a.B,d=0,e=a.i;a=a.a;var f,g;f=0;for(g=e.length;f<g;++f){var h=e[f],d=xn(c,d,h,a,.5);jb(b,d);d=h}return b}k.Nc=function(a){var b=[],c=[],d=this.B,e=this.i,f=this.a,g=0,h=0,l,m;l=0;for(m=e.length;l<m;++l){var n=e[l],h=ld(d,g,n,f,a,b,h);c.push(h);g=n}b.length=h;a=new S(null);a.ba("XY",b,c);return a};k.Y=function(){return"MultiLineString"};
|
||||||
|
k.Ka=function(a){a:{var b=this.B,c=this.i,d=this.a,e=0,f,g;f=0;for(g=c.length;f<g;++f){if(ud(b,e,c[f],d,a)){a=!0;break a}e=c[f]}a=!1}return a};k.ra=function(a,b){if(a){Zc(this,b,a,2);this.B||(this.B=[]);var c=id(this.B,0,a,this.a,this.i);this.B.length=0===c.length?0:c[c.length-1];this.u()}else this.ba("XY",null,this.i)};k.ba=function(a,b,c){Yc(this,a,b);this.i=c;this.u()};
|
||||||
|
function An(a,b){var c=a.f,d=[],e=[],f,g;f=0;for(g=b.length;f<g;++f){var h=b[f];0===f&&(c=h.f);jb(d,h.la());e.push(d.length)}a.ba(c,d,e)};function T(a,b){Wc.call(this);this.ra(a,b)}x(T,Wc);k=T.prototype;k.zj=function(a){this.B?jb(this.B,a.la()):this.B=a.la().slice();this.u()};k.clone=function(){var a=new T(null);a.ba(this.f,this.B.slice());return a};k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;var e=this.B,f=this.a,g,h,l;g=0;for(h=e.length;g<h;g+=f)if(l=va(a,b,e[g],e[g+1]),l<d){d=l;for(l=0;l<f;++l)c[l]=e[g+l];c.length=f}return d};k.Z=function(){return jd(this.B,0,this.B.length,this.a)};
|
||||||
|
k.rk=function(a){var b=this.B?this.B.length/this.a:0;if(0>a||b<=a)return null;b=new C(null);b.ba(this.f,this.B.slice(a*this.a,(a+1)*this.a));return b};k.je=function(){var a=this.B,b=this.f,c=this.a,d=[],e,f;e=0;for(f=a.length;e<f;e+=c){var g=new C(null);g.ba(b,a.slice(e,e+c));d.push(g)}return d};k.Y=function(){return"MultiPoint"};k.Ka=function(a){var b=this.B,c=this.a,d,e,f,g;d=0;for(e=b.length;d<e;d+=c)if(f=b[d],g=b[d+1],Rb(a,f,g))return!0;return!1};
|
||||||
|
k.ra=function(a,b){a?(Zc(this,b,a,1),this.B||(this.B=[]),this.B.length=hd(this.B,0,a,this.a),this.u()):this.ba("XY",null)};k.ba=function(a,b){Yc(this,a,b);this.u()};function U(a,b){Wc.call(this);this.i=[];this.D=-1;this.C=null;this.T=this.S=this.P=-1;this.j=null;this.ra(a,b)}x(U,Wc);k=U.prototype;k.Aj=function(a){if(this.B){var b=this.B.length;jb(this.B,a.la());a=a.Eb().slice();var c,d;c=0;for(d=a.length;c<d;++c)a[c]+=b}else this.B=a.la().slice(),a=a.Eb().slice(),this.i.push();this.i.push(a);this.u()};k.clone=function(){for(var a=new U(null),b=this.i.length,c=Array(b),d=0;d<b;++d)c[d]=this.i[d].slice();Bn(a,this.f,this.B.slice(),c);return a};
|
||||||
|
k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;if(this.S!=this.g){var e=this.i,f=0,g=0,h,l;h=0;for(l=e.length;h<l;++h)var m=e[h],g=dd(this.B,f,m,this.a,g),f=m[m.length-1];this.P=Math.sqrt(g);this.S=this.g}e=Ij(this);f=this.i;g=this.a;h=this.P;l=0;var m=[NaN,NaN],n,p;n=0;for(p=f.length;n<p;++n){var q=f[n];d=fd(e,l,q,g,h,!0,a,b,c,d,m);l=q[q.length-1]}return d};
|
||||||
|
k.Bc=function(a,b){var c;a:{c=Ij(this);var d=this.i,e=0;if(0!==d.length){var f,g;f=0;for(g=d.length;f<g;++f){var h=d[f];if(rd(c,e,h,this.a,a,b)){c=!0;break a}e=h[h.length-1]}}c=!1}return c};k.pm=function(){var a=Ij(this),b=this.i,c=0,d=0,e,f;e=0;for(f=b.length;e<f;++e)var g=b[e],d=d+ad(a,c,g,this.a),c=g[g.length-1];return d};
|
||||||
|
k.Z=function(a){var b;void 0!==a?(b=Ij(this).slice(),zd(b,this.i,this.a,a)):b=this.B;a=b;b=this.i;var c=this.a,d=0,e=[],f=0,g,h;g=0;for(h=b.length;g<h;++g){var l=b[g];e[f++]=kd(a,d,l,c,e[f]);d=l[l.length-1]}e.length=f;return e};
|
||||||
|
function Jj(a){if(a.D!=a.g){var b=a.B,c=a.i,d=a.a,e=0,f=[],g,h;g=0;for(h=c.length;g<h;++g){var l=c[g],e=Yb(b,e,l[0],d);f.push((e[0]+e[2])/2,(e[1]+e[3])/2);e=l[l.length-1]}b=Ij(a);c=a.i;d=a.a;g=0;h=[];l=0;for(e=c.length;l<e;++l){var m=c[l];h=sd(b,g,m,d,f,2*l,h);g=m[m.length-1]}a.C=h;a.D=a.g}return a.C}k.ck=function(){var a=new T(null);a.ba("XY",Jj(this).slice());return a};
|
||||||
|
function Ij(a){if(a.T!=a.g){var b=a.B,c;a:{c=a.i;var d,e;d=0;for(e=c.length;d<e;++d)if(!xd(b,c[d],a.a,void 0)){c=!1;break a}c=!0}c?a.j=b:(a.j=b.slice(),a.j.length=zd(a.j,a.i,a.a));a.T=a.g}return a.j}k.Nc=function(a){var b=[],c=[],d=this.B,e=this.i,f=this.a;a=Math.sqrt(a);var g=0,h=0,l,m;l=0;for(m=e.length;l<m;++l){var n=e[l],p=[],h=md(d,g,n,f,a,b,h,p);c.push(p);g=n[n.length-1]}b.length=h;d=new U(null);Bn(d,"XY",b,c);return d};
|
||||||
|
k.tk=function(a){if(0>a||this.i.length<=a)return null;var b;0===a?b=0:(b=this.i[a-1],b=b[b.length-1]);a=this.i[a].slice();var c=a[a.length-1];if(0!==b){var d,e;d=0;for(e=a.length;d<e;++d)a[d]-=b}d=new E(null);d.ba(this.f,this.B.slice(b,c),a);return d};k.Wd=function(){var a=this.f,b=this.B,c=this.i,d=[],e=0,f,g,h,l;f=0;for(g=c.length;f<g;++f){var m=c[f].slice(),n=m[m.length-1];if(0!==e)for(h=0,l=m.length;h<l;++h)m[h]-=e;h=new E(null);h.ba(a,b.slice(e,n),m);d.push(h);e=n}return d};k.Y=function(){return"MultiPolygon"};
|
||||||
|
k.Ka=function(a){a:{var b=Ij(this),c=this.i,d=this.a,e=0,f,g;f=0;for(g=c.length;f<g;++f){var h=c[f];if(vd(b,e,h,d,a)){a=!0;break a}e=h[h.length-1]}a=!1}return a};k.ra=function(a,b){if(a){Zc(this,b,a,3);this.B||(this.B=[]);var c=this.B,d=this.a,e=this.i,f=0,e=e?e:[],g=0,h,l;h=0;for(l=a.length;h<l;++h)f=id(c,f,a[h],d,e[g]),e[g++]=f,f=f[f.length-1];e.length=g;0===e.length?this.B.length=0:(c=e[e.length-1],this.B.length=0===c.length?0:c[c.length-1]);this.u()}else Bn(this,"XY",null,this.i)};
|
||||||
|
function Bn(a,b,c,d){Yc(a,b,c);a.i=d;a.u()}function Cn(a,b){var c=a.f,d=[],e=[],f,g,h;f=0;for(g=b.length;f<g;++f){var l=b[f];0===f&&(c=l.f);var m=d.length;h=l.Eb();var n,p;n=0;for(p=h.length;n<p;++n)h[n]+=m;jb(d,l.la());e.push(h)}Bn(a,c,d,e)};function Dn(a){a=a?a:{};this.defaultDataProjection=null;this.b=a.geometryName}x(Dn,vn);
|
||||||
|
function En(a,b){if(!a)return null;var c;if("number"===typeof a.x&&"number"===typeof a.y)c="Point";else if(a.points)c="MultiPoint";else if(a.paths)c=1===a.paths.length?"LineString":"MultiLineString";else if(a.rings){var d=a.rings,e=Fn(a),f=[];c=[];var g,h;g=0;for(h=d.length;g<h;++g){var l=ib(d[g]);wd(l,0,l.length,e.length)?f.push([d[g]]):c.push(d[g])}for(;c.length;){d=c.shift();e=!1;for(g=f.length-1;0<=g;g--)if(Sb((new nd(f[g][0])).H(),(new nd(d)).H())){f[g].push(d);e=!0;break}e||f.push([d.reverse()])}a=
|
||||||
|
Ca({},a);1===f.length?(c="Polygon",a.rings=f[0]):(c="MultiPolygon",a.rings=f)}return un((0,Gn[c])(a),!1,b)}function Fn(a){var b="XY";!0===a.hasZ&&!0===a.hasM?b="XYZM":!0===a.hasZ?b="XYZ":!0===a.hasM&&(b="XYM");return b}function Hn(a){a=a.f;return{hasZ:"XYZ"===a||"XYZM"===a,hasM:"XYM"===a||"XYZM"===a}}
|
||||||
|
var Gn={Point:function(a){return void 0!==a.m&&void 0!==a.z?new C([a.x,a.y,a.z,a.m],"XYZM"):void 0!==a.z?new C([a.x,a.y,a.z],"XYZ"):void 0!==a.m?new C([a.x,a.y,a.m],"XYM"):new C([a.x,a.y])},LineString:function(a){return new R(a.paths[0],Fn(a))},Polygon:function(a){return new E(a.rings,Fn(a))},MultiPoint:function(a){return new T(a.points,Fn(a))},MultiLineString:function(a){return new S(a.paths,Fn(a))},MultiPolygon:function(a){return new U(a.rings,Fn(a))}},In={Point:function(a){var b=a.Z();a=a.f;if("XYZ"===
|
||||||
|
a)return{x:b[0],y:b[1],z:b[2]};if("XYM"===a)return{x:b[0],y:b[1],m:b[2]};if("XYZM"===a)return{x:b[0],y:b[1],z:b[2],m:b[3]};if("XY"===a)return{x:b[0],y:b[1]}},LineString:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,paths:[a.Z()]}},Polygon:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,rings:a.Z(!1)}},MultiPoint:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,points:a.Z()}},MultiLineString:function(a){var b=Hn(a);return{hasZ:b.hasZ,hasM:b.hasM,paths:a.Z()}},MultiPolygon:function(a){var b=
|
||||||
|
Hn(a);a=a.Z(!1);for(var c=[],d=0;d<a.length;d++)for(var e=a[d].length-1;0<=e;e--)c.push(a[d][e]);return{hasZ:b.hasZ,hasM:b.hasM,rings:c}}};k=Dn.prototype;k.Uc=function(a,b){var c=En(a.geometry,b),d=new Ik;this.b&&d.Ec(this.b);d.Ua(c);b&&b.mf&&a.attributes[b.mf]&&d.mc(a.attributes[b.mf]);a.attributes&&d.G(a.attributes);return d};
|
||||||
|
k.Jf=function(a,b){var c=b?b:{};if(a.features){var d=[],e=a.features,f,g;c.mf=a.objectIdFieldName;f=0;for(g=e.length;f<g;++f)d.push(this.Uc(e[f],c));return d}return[this.Uc(a,c)]};k.Rh=function(a,b){return En(a,b)};k.Yh=function(a){return a.spatialReference&&a.spatialReference.wkid?zc("EPSG:"+a.spatialReference.wkid):null};function Jn(a,b){return(0,In[a.Y()])(un(a,!0,b),b)}k.Ke=function(a,b){return Jn(a,tn(this,b))};
|
||||||
|
k.Yc=function(a,b){b=tn(this,b);var c={},d=a.X();d&&(c.geometry=Jn(d,b));d=a.O();delete d[a.a];c.attributes=Ga(d)?{}:d;b&&b.featureProjection&&(c.spatialReference={wkid:zc(b.featureProjection).eb.split(":").pop()});return c};k.Ie=function(a,b){b=tn(this,b);var c=[],d,e;d=0;for(e=a.length;d<e;++d)c.push(this.Yc(a[d],b));return{features:c}};function Kn(a){Uc.call(this);this.c=a?a:null;Ln(this)}x(Kn,Uc);function Mn(a){var b=[],c,d;c=0;for(d=a.length;c<d;++c)b.push(a[c].clone());return b}function Nn(a){var b,c;if(a.c)for(b=0,c=a.c.length;b<c;++b)Qa(a.c[b],"change",a.u,a)}function Ln(a){var b,c;if(a.c)for(b=0,c=a.c.length;b<c;++b)B(a.c[b],"change",a.u,a)}k=Kn.prototype;k.clone=function(){var a=new Kn(null);a.hi(this.c);return a};
|
||||||
|
k.tb=function(a,b,c,d){if(d<Pb(this.H(),a,b))return d;var e=this.c,f,g;f=0;for(g=e.length;f<g;++f)d=e[f].tb(a,b,c,d);return d};k.Bc=function(a,b){var c=this.c,d,e;d=0;for(e=c.length;d<e;++d)if(c[d].Bc(a,b))return!0;return!1};k.Od=function(a){Vb(Infinity,Infinity,-Infinity,-Infinity,a);for(var b=this.c,c=0,d=b.length;c<d;++c)ac(a,b[c].H());return a};k.ff=function(){return Mn(this.c)};
|
||||||
|
k.od=function(a){this.s!=this.g&&(Da(this.l),this.o=0,this.s=this.g);if(0>a||0!==this.o&&a<this.o)return this;var b=a.toString();if(this.l.hasOwnProperty(b))return this.l[b];var c=[],d=this.c,e=!1,f,g;f=0;for(g=d.length;f<g;++f){var h=d[f],l=h.od(a);c.push(l);l!==h&&(e=!0)}if(e)return a=new Kn(null),Nn(a),a.c=c,Ln(a),a.u(),this.l[b]=a;this.o=a;return this};k.Y=function(){return"GeometryCollection"};k.Ka=function(a){var b=this.c,c,d;c=0;for(d=b.length;c<d;++c)if(b[c].Ka(a))return!0;return!1};
|
||||||
|
k.Ya=function(){return 0===this.c.length};k.rotate=function(a,b){for(var c=this.c,d=0,e=c.length;d<e;++d)c[d].rotate(a,b);this.u()};k.hi=function(a){a=Mn(a);Nn(this);this.c=a;Ln(this);this.u()};k.rc=function(a){var b=this.c,c,d;c=0;for(d=b.length;c<d;++c)b[c].rc(a);this.u()};k.Sc=function(a,b){var c=this.c,d,e;d=0;for(e=c.length;d<e;++d)c[d].Sc(a,b);this.u()};k.ka=function(){Nn(this);Uc.prototype.ka.call(this)};function On(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc(a.defaultDataProjection?a.defaultDataProjection:"EPSG:4326");this.b=a.geometryName}x(On,vn);function Pn(a,b){return a?un((0,Qn[a.type])(a),!1,b):null}function Rn(a,b){return(0,Sn[a.Y()])(un(a,!0,b),b)}
|
||||||
|
var Qn={Point:function(a){return new C(a.coordinates)},LineString:function(a){return new R(a.coordinates)},Polygon:function(a){return new E(a.coordinates)},MultiPoint:function(a){return new T(a.coordinates)},MultiLineString:function(a){return new S(a.coordinates)},MultiPolygon:function(a){return new U(a.coordinates)},GeometryCollection:function(a,b){var c=a.geometries.map(function(a){return Pn(a,b)});return new Kn(c)}},Sn={Point:function(a){return{type:"Point",coordinates:a.Z()}},LineString:function(a){return{type:"LineString",
|
||||||
|
coordinates:a.Z()}},Polygon:function(a,b){var c;b&&(c=b.rightHanded);return{type:"Polygon",coordinates:a.Z(c)}},MultiPoint:function(a){return{type:"MultiPoint",coordinates:a.Z()}},MultiLineString:function(a){return{type:"MultiLineString",coordinates:a.Z()}},MultiPolygon:function(a,b){var c;b&&(c=b.rightHanded);return{type:"MultiPolygon",coordinates:a.Z(c)}},GeometryCollection:function(a,b){return{type:"GeometryCollection",geometries:a.c.map(function(a){var d=Ca({},b);delete d.featureProjection;return Rn(a,
|
||||||
|
d)})}},Circle:function(){return{type:"GeometryCollection",geometries:[]}}};k=On.prototype;k.Uc=function(a,b){var c=Pn(a.geometry,b),d=new Ik;this.b&&d.Ec(this.b);d.Ua(c);void 0!==a.id&&d.mc(a.id);a.properties&&d.G(a.properties);return d};k.Jf=function(a,b){if("Feature"==a.type)return[this.Uc(a,b)];if("FeatureCollection"==a.type){var c=[],d=a.features,e,f;e=0;for(f=d.length;e<f;++e)c.push(this.Uc(d[e],b));return c}return[]};k.Rh=function(a,b){return Pn(a,b)};
|
||||||
|
k.Yh=function(a){return(a=a.crs)?"name"==a.type?zc(a.properties.name):"EPSG"==a.type?zc("EPSG:"+a.properties.code):null:this.defaultDataProjection};k.Yc=function(a,b){b=tn(this,b);var c={type:"Feature"},d=a.Xa();void 0!==d&&(c.id=d);(d=a.X())?c.geometry=Rn(d,b):c.geometry=null;d=a.O();delete d[a.a];Ga(d)?c.properties=null:c.properties=d;return c};k.Ie=function(a,b){b=tn(this,b);var c=[],d,e;d=0;for(e=a.length;d<e;++d)c.push(this.Yc(a[d],b));return{type:"FeatureCollection",features:c}};
|
||||||
|
k.Ke=function(a,b){return Rn(a,tn(this,b))};function Tn(){this.f=new XMLSerializer;this.defaultDataProjection=null}x(Tn,rn);k=Tn.prototype;k.Y=function(){return"xml"};k.Sb=function(a,b){if(Pk(a))return Un(this,a,b);if(Qk(a))return this.Ph(a,b);if("string"===typeof a){var c=Rk(a);return Un(this,c,b)}return null};function Un(a,b,c){a=Vn(a,b,c);return 0<a.length?a[0]:null}k.Fa=function(a,b){if(Pk(a))return Vn(this,a,b);if(Qk(a))return this.lc(a,b);if("string"===typeof a){var c=Rk(a);return Vn(this,c,b)}return[]};
|
||||||
|
function Vn(a,b,c){var d=[];for(b=b.firstChild;b;b=b.nextSibling)b.nodeType==Node.ELEMENT_NODE&&jb(d,a.lc(b,c));return d}k.Vc=function(a,b){if(Pk(a))return this.v(a,b);if(Qk(a)){var c=this.ye(a,[sn(this,a,b?b:{})]);return c?c:null}return"string"===typeof a?(c=Rk(a),this.v(c,b)):null};k.Oa=function(a){return Pk(a)?this.Pf(a):Qk(a)?this.Be(a):"string"===typeof a?(a=Rk(a),this.Pf(a)):null};k.Pf=function(){return this.defaultDataProjection};k.Be=function(){return this.defaultDataProjection};
|
||||||
|
k.Dd=function(a,b){var c=this.A(a,b);return this.f.serializeToString(c)};k.Yb=function(a,b){var c=this.a(a,b);return this.f.serializeToString(c)};k.Zc=function(a,b){var c=this.s(a,b);return this.f.serializeToString(c)};function Wn(a){a=a?a:{};this.featureType=a.featureType;this.featureNS=a.featureNS;this.srsName=a.srsName;this.schemaLocation="";this.b={};this.b["http://www.opengis.net/gml"]={featureMember:Uk(Wn.prototype.vd),featureMembers:Uk(Wn.prototype.vd)};Tn.call(this)}x(Wn,Tn);var Xn=/^[\s\xa0]*$/;k=Wn.prototype;
|
||||||
|
k.vd=function(a,b){var c=a.localName,d=null;if("FeatureCollection"==c)"http://www.opengis.net/wfs"===a.namespaceURI?d=O([],this.b,a,b,this):d=O(null,this.b,a,b,this);else if("featureMembers"==c||"featureMember"==c){var e=b[0],f=e.featureType,g=e.featureNS,h,l;if(!f&&a.childNodes){f=[];g={};h=0;for(l=a.childNodes.length;h<l;++h){var m=a.childNodes[h];if(1===m.nodeType){var n=m.nodeName.split(":").pop();if(-1===f.indexOf(n)){var p="",q=0,m=m.namespaceURI,r;for(r in g){if(g[r]===m){p=r;break}++q}p||
|
||||||
|
(p="p"+q,g[p]=m);f.push(p+":"+n)}}}"featureMember"!=c&&(e.featureType=f,e.featureNS=g)}"string"===typeof g&&(h=g,g={},g.p0=h);var e={},f=Array.isArray(f)?f:[f],v;for(v in g){n={};h=0;for(l=f.length;h<l;++h)(-1===f[h].indexOf(":")?"p0":f[h].split(":")[0])===v&&(n[f[h].split(":").pop()]="featureMembers"==c?Tk(this.If,this):Uk(this.If,this));e[g[v]]=n}"featureMember"==c?d=O(void 0,e,a,b):d=O([],e,a,b)}null===d&&(d=[]);return d};
|
||||||
|
k.ye=function(a,b){var c=b[0];c.srsName=a.firstElementChild.getAttribute("srsName");var d=O(null,this.bg,a,b,this);if(d)return un(d,!1,c)};
|
||||||
|
k.If=function(a,b){var c,d;(d=a.getAttribute("fid"))||(d=a.getAttributeNS("http://www.opengis.net/gml","id")||"");var e={},f;for(c=a.firstElementChild;c;c=c.nextElementSibling){var g=c.localName;if(0===c.childNodes.length||1===c.childNodes.length&&(3===c.firstChild.nodeType||4===c.firstChild.nodeType)){var h=Nk(c,!1);Xn.test(h)&&(h=void 0);e[g]=h}else"boundedBy"!==g&&(f=g),e[g]=this.ye(c,b)}c=new Ik(e);f&&c.Ec(f);d&&c.mc(d);return c};
|
||||||
|
k.Xh=function(a,b){var c=this.xe(a,b);if(c){var d=new C(null);d.ba("XYZ",c);return d}};k.Vh=function(a,b){var c=O([],this.Ui,a,b,this);if(c)return new T(c)};k.Uh=function(a,b){var c=O([],this.Ti,a,b,this);if(c){var d=new S(null);An(d,c);return d}};k.Wh=function(a,b){var c=O([],this.Vi,a,b,this);if(c){var d=new U(null);Cn(d,c);return d}};k.Mh=function(a,b){al(this.Yi,a,b,this)};k.Ug=function(a,b){al(this.Ri,a,b,this)};k.Nh=function(a,b){al(this.Zi,a,b,this)};
|
||||||
|
k.ze=function(a,b){var c=this.xe(a,b);if(c){var d=new R(null);d.ba("XYZ",c);return d}};k.zo=function(a,b){var c=O(null,this.Fd,a,b,this);if(c)return c};k.Th=function(a,b){var c=this.xe(a,b);if(c){var d=new nd(null);od(d,"XYZ",c);return d}};k.Ae=function(a,b){var c=O([null],this.Me,a,b,this);if(c&&c[0]){var d=new E(null),e=c[0],f=[e.length],g,h;g=1;for(h=c.length;g<h;++g)jb(e,c[g]),f.push(e.length);d.ba("XYZ",e,f);return d}};k.xe=function(a,b){return O(null,this.Fd,a,b,this)};
|
||||||
|
k.Ui={"http://www.opengis.net/gml":{pointMember:Tk(Wn.prototype.Mh),pointMembers:Tk(Wn.prototype.Mh)}};k.Ti={"http://www.opengis.net/gml":{lineStringMember:Tk(Wn.prototype.Ug),lineStringMembers:Tk(Wn.prototype.Ug)}};k.Vi={"http://www.opengis.net/gml":{polygonMember:Tk(Wn.prototype.Nh),polygonMembers:Tk(Wn.prototype.Nh)}};k.Yi={"http://www.opengis.net/gml":{Point:Tk(Wn.prototype.xe)}};k.Ri={"http://www.opengis.net/gml":{LineString:Tk(Wn.prototype.ze)}};k.Zi={"http://www.opengis.net/gml":{Polygon:Tk(Wn.prototype.Ae)}};
|
||||||
|
k.Gd={"http://www.opengis.net/gml":{LinearRing:Uk(Wn.prototype.zo)}};k.lc=function(a,b){var c={featureType:this.featureType,featureNS:this.featureNS};b&&Ca(c,sn(this,a,b));return this.vd(a,[c])||[]};k.Be=function(a){return zc(this.srsName?this.srsName:a.firstElementChild.getAttribute("srsName"))};function Yn(a){a=Nk(a,!1);return Zn(a)}function Zn(a){if(a=/^\s*(true|1)|(false|0)\s*$/.exec(a))return void 0!==a[1]||!1}
|
||||||
|
function $n(a){a=Nk(a,!1);if(a=/^\s*(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?))\s*$/.exec(a)){var b=Date.UTC(parseInt(a[1],10),parseInt(a[2],10)-1,parseInt(a[3],10),parseInt(a[4],10),parseInt(a[5],10),parseInt(a[6],10))/1E3;if("Z"!=a[7]){var c="-"==a[8]?-1:1,b=b+60*c*parseInt(a[9],10);void 0!==a[10]&&(b+=3600*c*parseInt(a[10],10))}return b}}function ao(a){a=Nk(a,!1);return bo(a)}
|
||||||
|
function bo(a){if(a=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(a))return parseFloat(a[1])}function co(a){a=Nk(a,!1);return eo(a)}function eo(a){if(a=/^\s*(\d+)\s*$/.exec(a))return parseInt(a[1],10)}function V(a){return Nk(a,!1).trim()}function fo(a,b){go(a,b?"1":"0")}function ho(a,b){a.appendChild(Lk.createTextNode(b.toPrecision()))}function io(a,b){a.appendChild(Lk.createTextNode(b.toString()))}function go(a,b){a.appendChild(Lk.createTextNode(b))};function jo(a){a=a?a:{};Wn.call(this,a);this.b["http://www.opengis.net/gml"].featureMember=Tk(Wn.prototype.vd);this.schemaLocation=a.schemaLocation?a.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd"}x(jo,Wn);k=jo.prototype;
|
||||||
|
k.Qh=function(a,b){var c=Nk(a,!1).replace(/^\s*|\s*$/g,""),d=b[0].srsName,e=a.parentNode.getAttribute("srsDimension"),f="enu";d&&(d=zc(d))&&(f=d.b);c=c.split(/[\s,]+/);d=2;a.getAttribute("srsDimension")?d=eo(a.getAttribute("srsDimension")):a.getAttribute("dimension")?d=eo(a.getAttribute("dimension")):e&&(d=eo(e));for(var g,h,l=[],m=0,n=c.length;m<n;m+=d)e=parseFloat(c[m]),g=parseFloat(c[m+1]),h=3===d?parseFloat(c[m+2]):0,"en"===f.substr(0,2)?l.push(e,g,h):l.push(g,e,h);return l};
|
||||||
|
k.wo=function(a,b){var c=O([null],this.Ni,a,b,this);return Vb(c[1][0],c[1][1],c[1][3],c[1][4])};k.ml=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&b[b.length-1].push(c)};k.eo=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&(b[b.length-1][0]=c)};k.Fd={"http://www.opengis.net/gml":{coordinates:Uk(jo.prototype.Qh)}};k.Me={"http://www.opengis.net/gml":{innerBoundaryIs:jo.prototype.ml,outerBoundaryIs:jo.prototype.eo}};k.Ni={"http://www.opengis.net/gml":{coordinates:Tk(jo.prototype.Qh)}};
|
||||||
|
k.bg={"http://www.opengis.net/gml":{Point:Uk(Wn.prototype.Xh),MultiPoint:Uk(Wn.prototype.Vh),LineString:Uk(Wn.prototype.ze),MultiLineString:Uk(Wn.prototype.Uh),LinearRing:Uk(Wn.prototype.Th),Polygon:Uk(Wn.prototype.Ae),MultiPolygon:Uk(Wn.prototype.Wh),Box:Uk(jo.prototype.wo)}};function ko(a){a=a?a:{};Wn.call(this,a);this.j=void 0!==a.surface?a.surface:!1;this.i=void 0!==a.curve?a.curve:!1;this.l=void 0!==a.multiCurve?a.multiCurve:!0;this.o=void 0!==a.multiSurface?a.multiSurface:!0;this.schemaLocation=a.schemaLocation?a.schemaLocation:"http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd"}x(ko,Wn);k=ko.prototype;k.Do=function(a,b){var c=O([],this.Si,a,b,this);if(c){var d=new S(null);An(d,c);return d}};
|
||||||
|
k.Eo=function(a,b){var c=O([],this.Wi,a,b,this);if(c){var d=new U(null);Cn(d,c);return d}};k.vg=function(a,b){al(this.Oi,a,b,this)};k.vi=function(a,b){al(this.cj,a,b,this)};k.Ho=function(a,b){return O([null],this.Xi,a,b,this)};k.Jo=function(a,b){return O([null],this.bj,a,b,this)};k.Io=function(a,b){return O([null],this.Me,a,b,this)};k.Co=function(a,b){return O([null],this.Fd,a,b,this)};k.ol=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&b[b.length-1].push(c)};
|
||||||
|
k.Hj=function(a,b){var c=O(void 0,this.Gd,a,b,this);c&&(b[b.length-1][0]=c)};k.Zh=function(a,b){var c=O([null],this.dj,a,b,this);if(c&&c[0]){var d=new E(null),e=c[0],f=[e.length],g,h;g=1;for(h=c.length;g<h;++g)jb(e,c[g]),f.push(e.length);d.ba("XYZ",e,f);return d}};k.Oh=function(a,b){var c=O([null],this.Pi,a,b,this);if(c){var d=new R(null);d.ba("XYZ",c);return d}};k.yo=function(a,b){var c=O([null],this.Qi,a,b,this);return Vb(c[1][0],c[1][1],c[2][0],c[2][1])};
|
||||||
|
k.Ao=function(a,b){for(var c=Nk(a,!1),d=/^\s*([+\-]?\d*\.?\d+(?:[eE][+\-]?\d+)?)\s*/,e=[],f;f=d.exec(c);)e.push(parseFloat(f[1])),c=c.substr(f[0].length);if(""===c){c=b[0].srsName;d="enu";c&&(d=zc(c).b);if("neu"===d)for(c=0,d=e.length;c<d;c+=3)f=e[c],e[c]=e[c+1],e[c+1]=f;c=e.length;2==c&&e.push(0);return 0===c?void 0:e}};
|
||||||
|
k.Mf=function(a,b){var c=Nk(a,!1).replace(/^\s*|\s*$/g,""),d=b[0].srsName,e=a.parentNode.getAttribute("srsDimension"),f="enu";d&&(f=zc(d).b);c=c.split(/\s+/);d=2;a.getAttribute("srsDimension")?d=eo(a.getAttribute("srsDimension")):a.getAttribute("dimension")?d=eo(a.getAttribute("dimension")):e&&(d=eo(e));for(var g,h,l=[],m=0,n=c.length;m<n;m+=d)e=parseFloat(c[m]),g=parseFloat(c[m+1]),h=3===d?parseFloat(c[m+2]):0,"en"===f.substr(0,2)?l.push(e,g,h):l.push(g,e,h);return l};
|
||||||
|
k.Fd={"http://www.opengis.net/gml":{pos:Uk(ko.prototype.Ao),posList:Uk(ko.prototype.Mf)}};k.Me={"http://www.opengis.net/gml":{interior:ko.prototype.ol,exterior:ko.prototype.Hj}};
|
||||||
|
k.bg={"http://www.opengis.net/gml":{Point:Uk(Wn.prototype.Xh),MultiPoint:Uk(Wn.prototype.Vh),LineString:Uk(Wn.prototype.ze),MultiLineString:Uk(Wn.prototype.Uh),LinearRing:Uk(Wn.prototype.Th),Polygon:Uk(Wn.prototype.Ae),MultiPolygon:Uk(Wn.prototype.Wh),Surface:Uk(ko.prototype.Zh),MultiSurface:Uk(ko.prototype.Eo),Curve:Uk(ko.prototype.Oh),MultiCurve:Uk(ko.prototype.Do),Envelope:Uk(ko.prototype.yo)}};k.Si={"http://www.opengis.net/gml":{curveMember:Tk(ko.prototype.vg),curveMembers:Tk(ko.prototype.vg)}};
|
||||||
|
k.Wi={"http://www.opengis.net/gml":{surfaceMember:Tk(ko.prototype.vi),surfaceMembers:Tk(ko.prototype.vi)}};k.Oi={"http://www.opengis.net/gml":{LineString:Tk(Wn.prototype.ze),Curve:Tk(ko.prototype.Oh)}};k.cj={"http://www.opengis.net/gml":{Polygon:Tk(Wn.prototype.Ae),Surface:Tk(ko.prototype.Zh)}};k.dj={"http://www.opengis.net/gml":{patches:Uk(ko.prototype.Ho)}};k.Pi={"http://www.opengis.net/gml":{segments:Uk(ko.prototype.Jo)}};k.Qi={"http://www.opengis.net/gml":{lowerCorner:Tk(ko.prototype.Mf),upperCorner:Tk(ko.prototype.Mf)}};
|
||||||
|
k.Xi={"http://www.opengis.net/gml":{PolygonPatch:Uk(ko.prototype.Io)}};k.bj={"http://www.opengis.net/gml":{LineStringSegment:Uk(ko.prototype.Co)}};function lo(a,b,c){c=c[c.length-1].srsName;b=b.Z();for(var d=b.length,e=Array(d),f,g=0;g<d;++g){f=b[g];var h=g,l="enu";c&&(l=zc(c).b);e[h]="en"===l.substr(0,2)?f[0]+" "+f[1]:f[1]+" "+f[0]}go(a,e.join(" "))}
|
||||||
|
k.Ji=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);d=Mk(a.namespaceURI,"pos");a.appendChild(d);c=c[c.length-1].srsName;a="enu";c&&(a=zc(c).b);b=b.Z();go(d,"en"===a.substr(0,2)?b[0]+" "+b[1]:b[1]+" "+b[0])};var mo={"http://www.opengis.net/gml":{lowerCorner:L(go),upperCorner:L(go)}};k=ko.prototype;k.xp=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);bl({node:a},mo,Zk,[b[0]+" "+b[1],b[2]+" "+b[3]],c,["lowerCorner","upperCorner"],this)};
|
||||||
|
k.Gi=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);d=Mk(a.namespaceURI,"posList");a.appendChild(d);lo(d,b,c)};k.aj=function(a,b){var c=b[b.length-1],d=c.node,e=c.exteriorWritten;void 0===e&&(c.exteriorWritten=!0);return Mk(d.namespaceURI,void 0!==e?"interior":"exterior")};
|
||||||
|
k.Le=function(a,b,c){var d=c[c.length-1].srsName;"PolygonPatch"!==a.nodeName&&d&&a.setAttribute("srsName",d);"Polygon"===a.nodeName||"PolygonPatch"===a.nodeName?(b=b.Vd(),bl({node:a,srsName:d},no,this.aj,b,c,void 0,this)):"Surface"===a.nodeName&&(d=Mk(a.namespaceURI,"patches"),a.appendChild(d),a=Mk(d.namespaceURI,"PolygonPatch"),d.appendChild(a),this.Le(a,b,c))};
|
||||||
|
k.Ge=function(a,b,c){var d=c[c.length-1].srsName;"LineStringSegment"!==a.nodeName&&d&&a.setAttribute("srsName",d);"LineString"===a.nodeName||"LineStringSegment"===a.nodeName?(d=Mk(a.namespaceURI,"posList"),a.appendChild(d),lo(d,b,c)):"Curve"===a.nodeName&&(d=Mk(a.namespaceURI,"segments"),a.appendChild(d),a=Mk(d.namespaceURI,"LineStringSegment"),d.appendChild(a),this.Ge(a,b,c))};
|
||||||
|
k.Ii=function(a,b,c){var d=c[c.length-1],e=d.srsName,d=d.surface;e&&a.setAttribute("srsName",e);b=b.Wd();bl({node:a,srsName:e,surface:d},oo,this.c,b,c,void 0,this)};k.yp=function(a,b,c){var d=c[c.length-1].srsName;d&&a.setAttribute("srsName",d);b=b.je();bl({node:a,srsName:d},po,Xk("pointMember"),b,c,void 0,this)};k.Hi=function(a,b,c){var d=c[c.length-1],e=d.srsName,d=d.curve;e&&a.setAttribute("srsName",e);b=b.md();bl({node:a,srsName:e,curve:d},qo,this.c,b,c,void 0,this)};
|
||||||
|
k.Ki=function(a,b,c){var d=Mk(a.namespaceURI,"LinearRing");a.appendChild(d);this.Gi(d,b,c)};k.Li=function(a,b,c){var d=this.g(b,c);d&&(a.appendChild(d),this.Le(d,b,c))};k.zp=function(a,b,c){var d=Mk(a.namespaceURI,"Point");a.appendChild(d);this.Ji(d,b,c)};k.Fi=function(a,b,c){var d=this.g(b,c);d&&(a.appendChild(d),this.Ge(d,b,c))};
|
||||||
|
k.Je=function(a,b,c){var d=c[c.length-1],e=Ca({},d);e.node=a;var f;Array.isArray(b)?d.dataProjection?f=Tc(b,d.featureProjection,d.dataProjection):f=b:f=un(b,!0,d);bl(e,ro,this.g,[f],c,void 0,this)};
|
||||||
|
k.Bi=function(a,b,c){var d=b.Xa();d&&a.setAttribute("fid",d);var d=c[c.length-1],e=d.featureNS,f=b.a;d.Dc||(d.Dc={},d.Dc[e]={});var g=b.O();b=[];var h=[],l;for(l in g){var m=g[l];null!==m&&(b.push(l),h.push(m),l==f||m instanceof Uc?l in d.Dc[e]||(d.Dc[e][l]=L(this.Je,this)):l in d.Dc[e]||(d.Dc[e][l]=L(go)))}l=Ca({},d);l.node=a;bl(l,d.Dc,Xk(void 0,e),h,c,b)};
|
||||||
|
var oo={"http://www.opengis.net/gml":{surfaceMember:L(ko.prototype.Li),polygonMember:L(ko.prototype.Li)}},po={"http://www.opengis.net/gml":{pointMember:L(ko.prototype.zp)}},qo={"http://www.opengis.net/gml":{lineStringMember:L(ko.prototype.Fi),curveMember:L(ko.prototype.Fi)}},no={"http://www.opengis.net/gml":{exterior:L(ko.prototype.Ki),interior:L(ko.prototype.Ki)}},ro={"http://www.opengis.net/gml":{Curve:L(ko.prototype.Ge),MultiCurve:L(ko.prototype.Hi),Point:L(ko.prototype.Ji),MultiPoint:L(ko.prototype.yp),
|
||||||
|
LineString:L(ko.prototype.Ge),MultiLineString:L(ko.prototype.Hi),LinearRing:L(ko.prototype.Gi),Polygon:L(ko.prototype.Le),MultiPolygon:L(ko.prototype.Ii),Surface:L(ko.prototype.Le),MultiSurface:L(ko.prototype.Ii),Envelope:L(ko.prototype.xp)}},so={MultiLineString:"lineStringMember",MultiCurve:"curveMember",MultiPolygon:"polygonMember",MultiSurface:"surfaceMember"};ko.prototype.c=function(a,b){return Mk("http://www.opengis.net/gml",so[b[b.length-1].node.nodeName])};
|
||||||
|
ko.prototype.g=function(a,b){var c=b[b.length-1],d=c.multiSurface,e=c.surface,f=c.curve,c=c.multiCurve,g;Array.isArray(a)?g="Envelope":(g=a.Y(),"MultiPolygon"===g&&!0===d?g="MultiSurface":"Polygon"===g&&!0===e?g="Surface":"LineString"===g&&!0===f?g="Curve":"MultiLineString"===g&&!0===c&&(g="MultiCurve"));return Mk("http://www.opengis.net/gml",g)};
|
||||||
|
ko.prototype.s=function(a,b){b=tn(this,b);var c=Mk("http://www.opengis.net/gml","geom"),d={node:c,srsName:this.srsName,curve:this.i,surface:this.j,multiSurface:this.o,multiCurve:this.l};b&&Ca(d,b);this.Je(c,a,[d]);return c};
|
||||||
|
ko.prototype.a=function(a,b){b=tn(this,b);var c=Mk("http://www.opengis.net/gml","featureMembers");c.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.schemaLocation);var d={srsName:this.srsName,curve:this.i,surface:this.j,multiSurface:this.o,multiCurve:this.l,featureNS:this.featureNS,featureType:this.featureType};b&&Ca(d,b);var d=[d],e=d[d.length-1],f=e.featureType,g=e.featureNS,h={};h[g]={};h[g][f]=L(this.Bi,this);e=Ca({},e);e.node=c;bl(e,h,Xk(f,g),a,d);return c};function to(a){a=a?a:{};Tn.call(this);this.defaultDataProjection=zc("EPSG:4326");this.b=a.readExtensions}x(to,Tn);var uo=[null,"http://www.topografix.com/GPX/1/0","http://www.topografix.com/GPX/1/1"];function vo(a,b,c){a.push(parseFloat(b.getAttribute("lon")),parseFloat(b.getAttribute("lat")));"ele"in c?(a.push(c.ele),delete c.ele):a.push(0);"time"in c?(a.push(c.time),delete c.time):a.push(0);return a}function wo(a,b){var c=b[b.length-1],d=a.getAttribute("href");null!==d&&(c.link=d);al(xo,a,b)}
|
||||||
|
function yo(a,b){b[b.length-1].extensionsNode_=a}function zo(a,b){var c=b[0],d=O({flatCoordinates:[]},Ao,a,b);if(d){var e=d.flatCoordinates;delete d.flatCoordinates;var f=new R(null);f.ba("XYZM",e);un(f,!1,c);c=new Ik(f);c.G(d);return c}}function Bo(a,b){var c=b[0],d=O({flatCoordinates:[],ends:[]},Co,a,b);if(d){var e=d.flatCoordinates;delete d.flatCoordinates;var f=d.ends;delete d.ends;var g=new S(null);g.ba("XYZM",e,f);un(g,!1,c);c=new Ik(g);c.G(d);return c}}
|
||||||
|
function Do(a,b){var c=b[0],d=O({},Eo,a,b);if(d){var e=vo([],a,d),e=new C(e,"XYZM");un(e,!1,c);c=new Ik(e);c.G(d);return c}}
|
||||||
|
var Fo={rte:zo,trk:Bo,wpt:Do},Go=N(uo,{rte:Tk(zo),trk:Tk(Bo),wpt:Tk(Do)}),xo=N(uo,{text:K(V,"linkText"),type:K(V,"linkType")}),Ao=N(uo,{name:K(V),cmt:K(V),desc:K(V),src:K(V),link:wo,number:K(co),extensions:yo,type:K(V),rtept:function(a,b){var c=O({},Ho,a,b);c&&vo(b[b.length-1].flatCoordinates,a,c)}}),Ho=N(uo,{ele:K(ao),time:K($n)}),Co=N(uo,{name:K(V),cmt:K(V),desc:K(V),src:K(V),link:wo,number:K(co),type:K(V),extensions:yo,trkseg:function(a,b){var c=b[b.length-1];al(Io,a,b);c.ends.push(c.flatCoordinates.length)}}),
|
||||||
|
Io=N(uo,{trkpt:function(a,b){var c=O({},Jo,a,b);c&&vo(b[b.length-1].flatCoordinates,a,c)}}),Jo=N(uo,{ele:K(ao),time:K($n)}),Eo=N(uo,{ele:K(ao),time:K($n),magvar:K(ao),geoidheight:K(ao),name:K(V),cmt:K(V),desc:K(V),src:K(V),link:wo,sym:K(V),type:K(V),fix:K(V),sat:K(co),hdop:K(ao),vdop:K(ao),pdop:K(ao),ageofdgpsdata:K(ao),dgpsid:K(co),extensions:yo});
|
||||||
|
function Ko(a,b){b||(b=[]);for(var c=0,d=b.length;c<d;++c){var e=b[c];if(a.b){var f=e.get("extensionsNode_")||null;a.b(e,f)}e.set("extensionsNode_",void 0)}}to.prototype.Ph=function(a,b){if(!gb(uo,a.namespaceURI))return null;var c=Fo[a.localName];if(!c)return null;c=c(a,[sn(this,a,b)]);if(!c)return null;Ko(this,[c]);return c};to.prototype.lc=function(a,b){if(!gb(uo,a.namespaceURI))return[];if("gpx"==a.localName){var c=O([],Go,a,[sn(this,a,b)]);if(c)return Ko(this,c),c}return[]};
|
||||||
|
function Lo(a,b,c){a.setAttribute("href",b);b=c[c.length-1].properties;bl({node:a},Mo,Zk,[b.linkText,b.linkType],c,No)}function Oo(a,b,c){var d=c[c.length-1],e=d.node.namespaceURI,f=d.properties;a.setAttributeNS(null,"lat",b[1]);a.setAttributeNS(null,"lon",b[0]);switch(d.geometryLayout){case "XYZM":0!==b[3]&&(f.time=b[3]);case "XYZ":0!==b[2]&&(f.ele=b[2]);break;case "XYM":0!==b[2]&&(f.time=b[2])}b="rtept"==a.nodeName?Po[e]:Qo[e];d=$k(f,b);bl({node:a,properties:f},Ro,Zk,d,c,b)}
|
||||||
|
var No=["text","type"],Mo=N(uo,{text:L(go),type:L(go)}),So=N(uo,"name cmt desc src link number type rtept".split(" ")),To=N(uo,{name:L(go),cmt:L(go),desc:L(go),src:L(go),link:L(Lo),number:L(io),type:L(go),rtept:Wk(L(Oo))}),Po=N(uo,["ele","time"]),Uo=N(uo,"name cmt desc src link number type trkseg".split(" ")),Xo=N(uo,{name:L(go),cmt:L(go),desc:L(go),src:L(go),link:L(Lo),number:L(io),type:L(go),trkseg:Wk(L(function(a,b,c){bl({node:a,geometryLayout:b.f,properties:{}},Vo,Wo,b.Z(),c)}))}),Wo=Xk("trkpt"),
|
||||||
|
Vo=N(uo,{trkpt:L(Oo)}),Qo=N(uo,"ele time magvar geoidheight name cmt desc src link sym type fix sat hdop vdop pdop ageofdgpsdata dgpsid".split(" ")),Ro=N(uo,{ele:L(ho),time:L(function(a,b){var c=new Date(1E3*b);a.appendChild(Lk.createTextNode(c.getUTCFullYear()+"-"+wb(c.getUTCMonth()+1)+"-"+wb(c.getUTCDate())+"T"+wb(c.getUTCHours())+":"+wb(c.getUTCMinutes())+":"+wb(c.getUTCSeconds())+"Z"))}),magvar:L(ho),geoidheight:L(ho),name:L(go),cmt:L(go),desc:L(go),src:L(go),link:L(Lo),sym:L(go),type:L(go),fix:L(go),
|
||||||
|
sat:L(io),hdop:L(ho),vdop:L(ho),pdop:L(ho),ageofdgpsdata:L(ho),dgpsid:L(io)}),Yo={Point:"wpt",LineString:"rte",MultiLineString:"trk"};function Zo(a,b){var c=a.X();if(c&&(c=Yo[c.Y()]))return Mk(b[b.length-1].node.namespaceURI,c)}
|
||||||
|
var $o=N(uo,{rte:L(function(a,b,c){var d=c[0],e=b.O();a={node:a,properties:e};if(b=b.X())b=un(b,!0,d),a.geometryLayout=b.f,e.rtept=b.Z();d=So[c[c.length-1].node.namespaceURI];e=$k(e,d);bl(a,To,Zk,e,c,d)}),trk:L(function(a,b,c){var d=c[0],e=b.O();a={node:a,properties:e};if(b=b.X())b=un(b,!0,d),e.trkseg=b.md();d=Uo[c[c.length-1].node.namespaceURI];e=$k(e,d);bl(a,Xo,Zk,e,c,d)}),wpt:L(function(a,b,c){var d=c[0],e=c[c.length-1];e.properties=b.O();if(b=b.X())b=un(b,!0,d),e.geometryLayout=b.f,Oo(a,b.Z(),
|
||||||
|
c)})});to.prototype.a=function(a,b){b=tn(this,b);var c=Mk("http://www.topografix.com/GPX/1/1","gpx");c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");c.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation","http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd");c.setAttribute("version","1.1");c.setAttribute("creator","OpenLayers 3");bl({node:c},$o,Zo,a,[b]);return c};function ap(){this.defaultDataProjection=null}x(ap,rn);function bp(a){return"string"===typeof a?a:""}k=ap.prototype;k.Y=function(){return"text"};k.Sb=function(a,b){return this.ud(bp(a),tn(this,b))};k.Fa=function(a,b){return this.Kf(bp(a),tn(this,b))};k.Vc=function(a,b){return this.wd(bp(a),tn(this,b))};k.Oa=function(a){bp(a);return this.defaultDataProjection};k.Dd=function(a,b){return this.He(a,tn(this,b))};k.Yb=function(a,b){return this.Ci(a,tn(this,b))};
|
||||||
|
k.Zc=function(a,b){return this.Ed(a,tn(this,b))};function cp(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc("EPSG:4326");this.b=a.altitudeMode?a.altitudeMode:"none"}x(cp,ap);var dp=/^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{5})([NS])(\d{3})(\d{5})([EW])([AV])(\d{5})(\d{5})/,ep=/^H.([A-Z]{3}).*?:(.*)/,fp=/^HFDTE(\d{2})(\d{2})(\d{2})/,gp=/\r\n|\r|\n/;
|
||||||
|
cp.prototype.ud=function(a,b){var c=this.b,d=a.split(gp),e={},f=[],g=2E3,h=0,l=1,m=-1,n,p;n=0;for(p=d.length;n<p;++n){var q=d[n],r;if("B"==q.charAt(0)){if(r=dp.exec(q)){var q=parseInt(r[1],10),v=parseInt(r[2],10),y=parseInt(r[3],10),w=parseInt(r[4],10)+parseInt(r[5],10)/6E4;"S"==r[6]&&(w=-w);var G=parseInt(r[7],10)+parseInt(r[8],10)/6E4;"W"==r[9]&&(G=-G);f.push(G,w);"none"!=c&&f.push("gps"==c?parseInt(r[11],10):"barometric"==c?parseInt(r[12],10):0);r=Date.UTC(g,h,l,q,v,y);r<m&&(r=Date.UTC(g,h,l+1,
|
||||||
|
q,v,y));f.push(r/1E3);m=r}}else"H"==q.charAt(0)&&((r=fp.exec(q))?(l=parseInt(r[1],10),h=parseInt(r[2],10)-1,g=2E3+parseInt(r[3],10)):(r=ep.exec(q))&&(e[r[1]]=r[2].trim()))}if(0===f.length)return null;d=new R(null);d.ba("none"==c?"XYM":"XYZM",f);c=new Ik(un(d,!1,b));c.G(e);return c};cp.prototype.Kf=function(a,b){var c=this.ud(a,b);return c?[c]:[]};function hp(a,b){this.a={};this.b=[];this.g=0;var c=arguments.length;if(1<c){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else if(a){var e;if(a instanceof hp)e=a.N(),d=a.zc();else{var c=[],f=0;for(e in a)c[f++]=e;e=c;c=[];f=0;for(d in a)c[f++]=a[d];d=c}for(c=0;c<e.length;c++)this.set(e[c],d[c])}}k=hp.prototype;k.wc=function(){return this.g};k.zc=function(){ip(this);for(var a=[],b=0;b<this.b.length;b++)a.push(this.a[this.b[b]]);return a};
|
||||||
|
k.N=function(){ip(this);return this.b.concat()};k.Ya=function(){return 0==this.g};k.clear=function(){this.a={};this.g=this.b.length=0};k.remove=function(a){return jp(this.a,a)?(delete this.a[a],this.g--,this.b.length>2*this.g&&ip(this),!0):!1};function ip(a){if(a.g!=a.b.length){for(var b=0,c=0;b<a.b.length;){var d=a.b[b];jp(a.a,d)&&(a.b[c++]=d);b++}a.b.length=c}if(a.g!=a.b.length){for(var e={},c=b=0;b<a.b.length;)d=a.b[b],jp(e,d)||(a.b[c++]=d,e[d]=1),b++;a.b.length=c}}
|
||||||
|
k.get=function(a,b){return jp(this.a,a)?this.a[a]:b};k.set=function(a,b){jp(this.a,a)||(this.g++,this.b.push(a));this.a[a]=b};k.forEach=function(a,b){for(var c=this.N(),d=0;d<c.length;d++){var e=c[d],f=this.get(e);a.call(b,f,e,this)}};k.clone=function(){return new hp(this)};function jp(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var kp=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;function lp(a,b){if(a)for(var c=a.split("&"),d=0;d<c.length;d++){var e=c[d].indexOf("="),f,g=null;0<=e?(f=c[d].substring(0,e),g=c[d].substring(e+1)):f=c[d];b(f,g?decodeURIComponent(g.replace(/\+/g," ")):"")}};function mp(a,b){this.a=this.l=this.g="";this.o=null;this.f=this.b="";this.c=!1;var c;a instanceof mp?(this.c=void 0!==b?b:a.c,np(this,a.g),this.l=a.l,this.a=a.a,op(this,a.o),this.b=a.b,pp(this,a.i.clone()),this.f=a.f):a&&(c=String(a).match(kp))?(this.c=!!b,np(this,c[1]||"",!0),this.l=qp(c[2]||""),this.a=qp(c[3]||"",!0),op(this,c[4]),this.b=qp(c[5]||"",!0),pp(this,c[6]||"",!0),this.f=qp(c[7]||"")):(this.c=!!b,this.i=new rp(null,0,this.c))}
|
||||||
|
mp.prototype.toString=function(){var a=[],b=this.g;b&&a.push(sp(b,tp,!0),":");var c=this.a;if(c||"file"==b)a.push("//"),(b=this.l)&&a.push(sp(b,tp,!0),"@"),a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),c=this.o,null!=c&&a.push(":",String(c));if(c=this.b)this.a&&"/"!=c.charAt(0)&&a.push("/"),a.push(sp(c,"/"==c.charAt(0)?up:vp,!0));(c=this.i.toString())&&a.push("?",c);(c=this.f)&&a.push("#",sp(c,wp));return a.join("")};mp.prototype.clone=function(){return new mp(this)};
|
||||||
|
function np(a,b,c){a.g=c?qp(b,!0):b;a.g&&(a.g=a.g.replace(/:$/,""))}function op(a,b){if(b){b=Number(b);if(isNaN(b)||0>b)throw Error("Bad port number "+b);a.o=b}else a.o=null}function pp(a,b,c){b instanceof rp?(a.i=b,xp(a.i,a.c)):(c||(b=sp(b,yp)),a.i=new rp(b,0,a.c))}function zp(a){return a instanceof mp?a.clone():new mp(a,void 0)}
|
||||||
|
function Ap(a,b){a instanceof mp||(a=zp(a));b instanceof mp||(b=zp(b));var c=a,d=b,e=c.clone(),f=!!d.g;f?np(e,d.g):f=!!d.l;f?e.l=d.l:f=!!d.a;f?e.a=d.a:f=null!=d.o;var g=d.b;if(f)op(e,d.o);else if(f=!!d.b)if("/"!=g.charAt(0)&&(c.a&&!c.b?g="/"+g:(c=e.b.lastIndexOf("/"),-1!=c&&(g=e.b.substr(0,c+1)+g))),c=g,".."==c||"."==c)g="";else if(-1!=c.indexOf("./")||-1!=c.indexOf("/.")){for(var g=0==c.lastIndexOf("/",0),c=c.split("/"),h=[],l=0;l<c.length;){var m=c[l++];"."==m?g&&l==c.length&&h.push(""):".."==m?
|
||||||
|
((1<h.length||1==h.length&&""!=h[0])&&h.pop(),g&&l==c.length&&h.push("")):(h.push(m),g=!0)}g=h.join("/")}else g=c;f?e.b=g:f=""!==d.i.toString();f?pp(e,qp(d.i.toString())):f=!!d.f;f&&(e.f=d.f);return e}function qp(a,b){return a?b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""}function sp(a,b,c){return ea(a)?(a=encodeURI(a).replace(b,Bp),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null}function Bp(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)}
|
||||||
|
var tp=/[#\/\?@]/g,vp=/[\#\?:]/g,up=/[\#\?]/g,yp=/[\#\?@]/g,wp=/#/g;function rp(a,b,c){this.a=this.b=null;this.g=a||null;this.f=!!c}function Cp(a){a.b||(a.b=new hp,a.a=0,a.g&&lp(a.g,function(b,c){a.add(decodeURIComponent(b.replace(/\+/g," ")),c)}))}k=rp.prototype;k.wc=function(){Cp(this);return this.a};k.add=function(a,b){Cp(this);this.g=null;a=Dp(this,a);var c=this.b.get(a);c||this.b.set(a,c=[]);c.push(b);this.a=this.a+1;return this};
|
||||||
|
k.remove=function(a){Cp(this);a=Dp(this,a);return jp(this.b.a,a)?(this.g=null,this.a=this.a-this.b.get(a).length,this.b.remove(a)):!1};k.clear=function(){this.b=this.g=null;this.a=0};k.Ya=function(){Cp(this);return 0==this.a};function Ep(a,b){Cp(a);b=Dp(a,b);return jp(a.b.a,b)}k.N=function(){Cp(this);for(var a=this.b.zc(),b=this.b.N(),c=[],d=0;d<b.length;d++)for(var e=a[d],f=0;f<e.length;f++)c.push(b[d]);return c};
|
||||||
|
k.zc=function(a){Cp(this);var b=[];if(ea(a))Ep(this,a)&&(b=de(b,this.b.get(Dp(this,a))));else{a=this.b.zc();for(var c=0;c<a.length;c++)b=de(b,a[c])}return b};k.set=function(a,b){Cp(this);this.g=null;a=Dp(this,a);Ep(this,a)&&(this.a=this.a-this.b.get(a).length);this.b.set(a,[b]);this.a=this.a+1;return this};k.get=function(a,b){var c=a?this.zc(a):[];return 0<c.length?String(c[0]):b};
|
||||||
|
k.toString=function(){if(this.g)return this.g;if(!this.b)return"";for(var a=[],b=this.b.N(),c=0;c<b.length;c++)for(var d=b[c],e=encodeURIComponent(String(d)),d=this.zc(d),f=0;f<d.length;f++){var g=e;""!==d[f]&&(g+="="+encodeURIComponent(String(d[f])));a.push(g)}return this.g=a.join("&")};k.clone=function(){var a=new rp;a.g=this.g;this.b&&(a.b=this.b.clone(),a.a=this.a);return a};function Dp(a,b){var c=String(b);a.f&&(c=c.toLowerCase());return c}
|
||||||
|
function xp(a,b){b&&!a.f&&(Cp(a),a.g=null,a.b.forEach(function(a,b){var e=b.toLowerCase();b!=e&&(this.remove(b),this.remove(e),0<a.length&&(this.g=null,this.b.set(Dp(this,e),ee(a)),this.a=this.a+a.length))},a));a.f=b};function Fp(a){a=a||{};this.g=a.font;this.i=a.rotation;this.a=a.scale;this.s=a.text;this.o=a.textAlign;this.j=a.textBaseline;this.b=void 0!==a.fill?a.fill:new jj({color:"#333"});this.l=void 0!==a.stroke?a.stroke:null;this.f=void 0!==a.offsetX?a.offsetX:0;this.c=void 0!==a.offsetY?a.offsetY:0}k=Fp.prototype;k.Xj=function(){return this.g};k.kk=function(){return this.f};k.lk=function(){return this.c};k.Un=function(){return this.b};k.Vn=function(){return this.i};k.Wn=function(){return this.a};k.Xn=function(){return this.l};
|
||||||
|
k.Ha=function(){return this.s};k.yk=function(){return this.o};k.zk=function(){return this.j};k.bp=function(a){this.g=a};k.mi=function(a){this.f=a};k.ni=function(a){this.c=a};k.ap=function(a){this.b=a};k.Yn=function(a){this.i=a};k.Zn=function(a){this.a=a};k.ip=function(a){this.l=a};k.pi=function(a){this.s=a};k.ri=function(a){this.o=a};k.jp=function(a){this.j=a};function Gp(a){a=a?a:{};Tn.call(this);this.defaultDataProjection=zc("EPSG:4326");this.g=a.defaultStyle?a.defaultStyle:Hp;this.c=void 0!==a.extractStyles?a.extractStyles:!0;this.l=void 0!==a.writeStyles?a.writeStyles:!0;this.b={};this.i=void 0!==a.showPointNames?a.showPointNames:!0}x(Gp,Tn);
|
||||||
|
var Ip=["http://www.google.com/kml/ext/2.2"],Jp=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],Kp=[255,255,255,1],Lp=new jj({color:Kp}),Mp=[20,2],Np=[64,64],Op=new Fh({anchor:Mp,anchorOrigin:"bottom-left",anchorXUnits:"pixels",anchorYUnits:"pixels",crossOrigin:"anonymous",rotation:0,scale:.5,size:Np,src:"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"}),Pp=new pj({color:Kp,width:1}),Qp=new Fp({font:"bold 16px Helvetica",
|
||||||
|
fill:Lp,stroke:new pj({color:[51,51,51,1],width:2}),scale:.8}),Hp=[new sj({fill:Lp,image:Op,text:Qp,stroke:Pp,zIndex:0})],Rp={fraction:"fraction",pixels:"pixels"};function Sp(a,b){var c,d=[0,0],e="start";if(a.a){var f=a.a.ld();f&&2==f.length&&(d[0]=a.a.i*f[0]/2,d[1]=-a.a.i*f[1]/2,e="left")}if(Ga(a.Ha()))c=new Fp({text:b,offsetX:d[0],offsetY:d[1],textAlign:e});else{var f=a.Ha(),g={};for(c in f)g[c]=f[c];c=g;c.pi(b);c.ri(e);c.mi(d[0]);c.ni(d[1])}return new sj({text:c})}
|
||||||
|
function Tp(a,b,c,d,e){return function(){var f=e,g="";f&&this.X()&&(f="Point"===this.X().Y());f&&(g=this.get("name"),f=f&&g);if(a)return f?(f=Sp(a[0],g),a.concat(f)):a;if(b){var h=Up(b,c,d);return f?(f=Sp(h[0],g),h.concat(f)):h}return f?(f=Sp(c[0],g),c.concat(f)):c}}function Up(a,b,c){return Array.isArray(a)?a:"string"===typeof a?(!(a in c)&&"#"+a in c&&(a="#"+a),Up(c[a],b,c)):b}
|
||||||
|
function Vp(a){a=Nk(a,!1);if(a=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(a))return a=a[1],[parseInt(a.substr(6,2),16),parseInt(a.substr(4,2),16),parseInt(a.substr(2,2),16),parseInt(a.substr(0,2),16)/255]}function Wp(a){a=Nk(a,!1);for(var b=[],c=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s*,\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?))?\s*/i,d;d=c.exec(a);)b.push(parseFloat(d[1]),parseFloat(d[2]),d[3]?parseFloat(d[3]):0),a=a.substr(d[0].length);return""!==a?void 0:b}
|
||||||
|
function Xp(a){var b=Nk(a,!1);return a.baseURI?Ap(a.baseURI,b.trim()).toString():b.trim()}function Yp(a){a=ao(a);if(void 0!==a)return Math.sqrt(a)}function Zp(a,b){return O(null,$p,a,b)}function aq(a,b){var c=O({B:[],zi:[]},bq,a,b);if(c){var d=c.B,c=c.zi,e,f;e=0;for(f=Math.min(d.length,c.length);e<f;++e)d[4*e+3]=c[e];c=new R(null);c.ba("XYZM",d);return c}}function cq(a,b){var c=O({},dq,a,b),d=O(null,eq,a,b);if(d){var e=new R(null);e.ba("XYZ",d);e.G(c);return e}}
|
||||||
|
function fq(a,b){var c=O({},dq,a,b),d=O(null,eq,a,b);if(d){var e=new E(null);e.ba("XYZ",d,[d.length]);e.G(c);return e}}
|
||||||
|
function gq(a,b){var c=O([],hq,a,b);if(!c)return null;if(0===c.length)return new Kn(c);var d=!0,e=c[0].Y(),f,g,h;g=1;for(h=c.length;g<h;++g)if(f=c[g],f.Y()!=e){d=!1;break}if(d){if("Point"==e){f=c[0];d=f.f;e=f.la();g=1;for(h=c.length;g<h;++g)f=c[g],jb(e,f.la());f=new T(null);f.ba(d,e);iq(f,c);return f}return"LineString"==e?(f=new S(null),An(f,c),iq(f,c),f):"Polygon"==e?(f=new U(null),Cn(f,c),iq(f,c),f):"GeometryCollection"==e?new Kn(c):null}return new Kn(c)}
|
||||||
|
function jq(a,b){var c=O({},dq,a,b),d=O(null,eq,a,b);if(d){var e=new C(null);e.ba("XYZ",d);e.G(c);return e}}function kq(a,b){var c=O({},dq,a,b),d=O([null],lq,a,b);if(d&&d[0]){var e=new E(null),f=d[0],g=[f.length],h,l;h=1;for(l=d.length;h<l;++h)jb(f,d[h]),g.push(f.length);e.ba("XYZ",f,g);e.G(c);return e}}
|
||||||
|
function mq(a,b){var c=O({},nq,a,b);if(!c)return null;var d="fillStyle"in c?c.fillStyle:Lp,e=c.fill;void 0===e||e||(d=null);var e="imageStyle"in c?c.imageStyle:Op,f="textStyle"in c?c.textStyle:Qp,g="strokeStyle"in c?c.strokeStyle:Pp,c=c.outline;void 0===c||c||(g=null);return[new sj({fill:d,image:e,stroke:g,text:f,zIndex:void 0})]}
|
||||||
|
function iq(a,b){var c=b.length,d=Array(b.length),e=Array(b.length),f,g,h,l;h=l=!1;for(g=0;g<c;++g)f=b[g],d[g]=f.get("extrude"),e[g]=f.get("altitudeMode"),h=h||void 0!==d[g],l=l||e[g];h&&a.set("extrude",d);l&&a.set("altitudeMode",e)}function oq(a,b){al(pq,a,b)}
|
||||||
|
var qq=N(Jp,{value:Uk(V)}),pq=N(Jp,{Data:function(a,b){var c=a.getAttribute("name");if(null!==c){var d=O(void 0,qq,a,b);d&&(b[b.length-1][c]=d)}},SchemaData:function(a,b){al(rq,a,b)}}),dq=N(Jp,{extrude:K(Yn),altitudeMode:K(V)}),$p=N(Jp,{coordinates:Uk(Wp)}),lq=N(Jp,{innerBoundaryIs:function(a,b){var c=O(void 0,sq,a,b);c&&b[b.length-1].push(c)},outerBoundaryIs:function(a,b){var c=O(void 0,tq,a,b);c&&(b[b.length-1][0]=c)}}),bq=N(Jp,{when:function(a,b){var c=b[b.length-1].zi,d=Nk(a,!1);if(d=/^\s*(\d{4})($|-(\d{2})($|-(\d{2})($|T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?)))))\s*$/.exec(d)){var e=
|
||||||
|
Date.UTC(parseInt(d[1],10),d[3]?parseInt(d[3],10)-1:0,d[5]?parseInt(d[5],10):1,d[7]?parseInt(d[7],10):0,d[8]?parseInt(d[8],10):0,d[9]?parseInt(d[9],10):0);if(d[10]&&"Z"!=d[10]){var f="-"==d[11]?-1:1,e=e+60*f*parseInt(d[12],10);d[13]&&(e+=3600*f*parseInt(d[13],10))}c.push(e)}else c.push(0)}},N(Ip,{coord:function(a,b){var c=b[b.length-1].B,d=Nk(a,!1);(d=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(d))?c.push(parseFloat(d[1]),
|
||||||
|
parseFloat(d[2]),parseFloat(d[3]),0):c.push(0,0,0,0)}})),eq=N(Jp,{coordinates:Uk(Wp)}),uq=N(Jp,{href:K(Xp)},N(Ip,{x:K(ao),y:K(ao),w:K(ao),h:K(ao)})),vq=N(Jp,{Icon:K(function(a,b){var c=O({},uq,a,b);return c?c:null}),heading:K(ao),hotSpot:K(function(a){var b=a.getAttribute("xunits"),c=a.getAttribute("yunits");return{x:parseFloat(a.getAttribute("x")),$f:Rp[b],y:parseFloat(a.getAttribute("y")),ag:Rp[c]}}),scale:K(Yp)}),sq=N(Jp,{LinearRing:Uk(Zp)}),wq=N(Jp,{color:K(Vp),scale:K(Yp)}),xq=N(Jp,{color:K(Vp),
|
||||||
|
width:K(ao)}),hq=N(Jp,{LineString:Tk(cq),LinearRing:Tk(fq),MultiGeometry:Tk(gq),Point:Tk(jq),Polygon:Tk(kq)}),yq=N(Ip,{Track:Tk(aq)}),Aq=N(Jp,{ExtendedData:oq,Link:function(a,b){al(zq,a,b)},address:K(V),description:K(V),name:K(V),open:K(Yn),phoneNumber:K(V),visibility:K(Yn)}),zq=N(Jp,{href:K(Xp)}),tq=N(Jp,{LinearRing:Uk(Zp)}),Bq=N(Jp,{Style:K(mq),key:K(V),styleUrl:K(function(a){var b=Nk(a,!1).trim();return a.baseURI?Ap(a.baseURI,b).toString():b})}),Dq=N(Jp,{ExtendedData:oq,MultiGeometry:K(gq,"geometry"),
|
||||||
|
LineString:K(cq,"geometry"),LinearRing:K(fq,"geometry"),Point:K(jq,"geometry"),Polygon:K(kq,"geometry"),Style:K(mq),StyleMap:function(a,b){var c=O(void 0,Cq,a,b);if(c){var d=b[b.length-1];Array.isArray(c)?d.Style=c:"string"===typeof c&&(d.styleUrl=c)}},address:K(V),description:K(V),name:K(V),open:K(Yn),phoneNumber:K(V),styleUrl:K(Xp),visibility:K(Yn)},N(Ip,{MultiTrack:K(function(a,b){var c=O([],yq,a,b);if(c){var d=new S(null);An(d,c);return d}},"geometry"),Track:K(aq,"geometry")})),Eq=N(Jp,{color:K(Vp),
|
||||||
|
fill:K(Yn),outline:K(Yn)}),rq=N(Jp,{SimpleData:function(a,b){var c=a.getAttribute("name");if(null!==c){var d=V(a);b[b.length-1][c]=d}}}),nq=N(Jp,{IconStyle:function(a,b){var c=O({},vq,a,b);if(c){var d=b[b.length-1],e="Icon"in c?c.Icon:{},f;f=(f=e.href)?f:"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png";var g,h,l,m=c.hotSpot;m?(g=[m.x,m.y],h=m.$f,l=m.ag):"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"===f?(g=Mp,l=h="pixels"):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(f)&&
|
||||||
|
(g=[.5,0],l=h="fraction");var n,m=e.x,p=e.y;void 0!==m&&void 0!==p&&(n=[m,p]);var q,m=e.w,e=e.h;void 0!==m&&void 0!==e&&(q=[m,e]);var r,e=c.heading;void 0!==e&&(r=wa(e));c=c.scale;"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"==f&&(q=Np,void 0===c&&(c=.5));g=new Fh({anchor:g,anchorOrigin:"bottom-left",anchorXUnits:h,anchorYUnits:l,crossOrigin:"anonymous",offset:n,offsetOrigin:"bottom-left",rotation:r,scale:c,size:q,src:f});d.imageStyle=g}},LabelStyle:function(a,b){var c=O({},wq,a,
|
||||||
|
b);c&&(b[b.length-1].textStyle=new Fp({fill:new jj({color:"color"in c?c.color:Kp}),scale:c.scale}))},LineStyle:function(a,b){var c=O({},xq,a,b);c&&(b[b.length-1].strokeStyle=new pj({color:"color"in c?c.color:Kp,width:"width"in c?c.width:1}))},PolyStyle:function(a,b){var c=O({},Eq,a,b);if(c){var d=b[b.length-1];d.fillStyle=new jj({color:"color"in c?c.color:Kp});var e=c.fill;void 0!==e&&(d.fill=e);c=c.outline;void 0!==c&&(d.outline=c)}}}),Cq=N(Jp,{Pair:function(a,b){var c=O({},Bq,a,b);if(c){var d=c.key;
|
||||||
|
d&&"normal"==d&&((d=c.styleUrl)&&(b[b.length-1]=d),(c=c.Style)&&(b[b.length-1]=c))}}});k=Gp.prototype;k.Gf=function(a,b){var c=N(Jp,{Document:Sk(this.Gf,this),Folder:Sk(this.Gf,this),Placemark:Tk(this.Of,this),Style:this.Lo.bind(this),StyleMap:this.Ko.bind(this)});if(c=O([],c,a,b,this))return c};
|
||||||
|
k.Of=function(a,b){var c=O({geometry:null},Dq,a,b);if(c){var d=new Ik,e=a.getAttribute("id");null!==e&&d.mc(e);var e=b[0],f=c.geometry;f&&un(f,!1,e);d.Ua(f);delete c.geometry;this.c&&d.sf(Tp(c.Style,c.styleUrl,this.g,this.b,this.i));delete c.Style;d.G(c);return d}};k.Lo=function(a,b){var c=a.getAttribute("id");if(null!==c){var d=mq(a,b);d&&(c=a.baseURI?Ap(a.baseURI,"#"+c).toString():"#"+c,this.b[c]=d)}};
|
||||||
|
k.Ko=function(a,b){var c=a.getAttribute("id");if(null!==c){var d=O(void 0,Cq,a,b);d&&(c=a.baseURI?Ap(a.baseURI,"#"+c).toString():"#"+c,this.b[c]=d)}};k.Ph=function(a,b){if(!gb(Jp,a.namespaceURI))return null;var c=this.Of(a,[sn(this,a,b)]);return c?c:null};
|
||||||
|
k.lc=function(a,b){if(!gb(Jp,a.namespaceURI))return[];var c;c=a.localName;if("Document"==c||"Folder"==c)return(c=this.Gf(a,[sn(this,a,b)]))?c:[];if("Placemark"==c)return(c=this.Of(a,[sn(this,a,b)]))?[c]:[];if("kml"==c){c=[];var d;for(d=a.firstElementChild;d;d=d.nextElementSibling){var e=this.lc(d,b);e&&jb(c,e)}return c}return[]};k.Fo=function(a){if(Pk(a))return Fq(this,a);if(Qk(a))return Gq(this,a);if("string"===typeof a)return a=Rk(a),Fq(this,a)};
|
||||||
|
function Fq(a,b){var c;for(c=b.firstChild;c;c=c.nextSibling)if(c.nodeType==Node.ELEMENT_NODE){var d=Gq(a,c);if(d)return d}}function Gq(a,b){var c;for(c=b.firstElementChild;c;c=c.nextElementSibling)if(gb(Jp,c.namespaceURI)&&"name"==c.localName)return V(c);for(c=b.firstElementChild;c;c=c.nextElementSibling){var d=c.localName;if(gb(Jp,c.namespaceURI)&&("Document"==d||"Folder"==d||"Placemark"==d||"kml"==d)&&(d=Gq(a,c)))return d}}
|
||||||
|
k.Go=function(a){var b=[];Pk(a)?jb(b,Hq(this,a)):Qk(a)?jb(b,Iq(this,a)):"string"===typeof a&&(a=Rk(a),jb(b,Hq(this,a)));return b};function Hq(a,b){var c,d=[];for(c=b.firstChild;c;c=c.nextSibling)c.nodeType==Node.ELEMENT_NODE&&jb(d,Iq(a,c));return d}
|
||||||
|
function Iq(a,b){var c,d=[];for(c=b.firstElementChild;c;c=c.nextElementSibling)if(gb(Jp,c.namespaceURI)&&"NetworkLink"==c.localName){var e=O({},Aq,c,[]);d.push(e)}for(c=b.firstElementChild;c;c=c.nextElementSibling)e=c.localName,!gb(Jp,c.namespaceURI)||"Document"!=e&&"Folder"!=e&&"kml"!=e||jb(d,Iq(a,c));return d}function Jq(a,b){var c=je(b),c=[255*(4==c.length?c[3]:1),c[2],c[1],c[0]],d;for(d=0;4>d;++d){var e=parseInt(c[d],10).toString(16);c[d]=1==e.length?"0"+e:e}go(a,c.join(""))}
|
||||||
|
function Kq(a,b,c){a={node:a};var d=b.Y(),e,f;"GeometryCollection"==d?(e=b.ff(),f=Lq):"MultiPoint"==d?(e=b.je(),f=Mq):"MultiLineString"==d?(e=b.md(),f=Nq):"MultiPolygon"==d&&(e=b.Wd(),f=Oq);bl(a,Pq,f,e,c)}function Qq(a,b,c){bl({node:a},Rq,Sq,[b],c)}
|
||||||
|
function Tq(a,b,c){var d={node:a};b.Xa()&&a.setAttribute("id",b.Xa());a=b.O();var e=b.ec();e&&(e=e.call(b,0))&&(e=Array.isArray(e)?e[0]:e,this.l&&(a.Style=e),(e=e.Ha())&&(a.name=e.Ha()));e=Uq[c[c.length-1].node.namespaceURI];a=$k(a,e);bl(d,Vq,Zk,a,c,e);a=c[0];(b=b.X())&&(b=un(b,!0,a));bl(d,Vq,Lq,[b],c)}function Wq(a,b,c){var d=b.la();a={node:a};a.layout=b.f;a.stride=b.va();bl(a,Xq,Yq,[d],c)}function Zq(a,b,c){b=b.Vd();var d=b.shift();a={node:a};bl(a,$q,ar,b,c);bl(a,$q,br,[d],c)}
|
||||||
|
function cr(a,b){ho(a,Math.round(b*b*1E6)/1E6)}
|
||||||
|
var dr=N(Jp,["Document","Placemark"]),gr=N(Jp,{Document:L(function(a,b,c){bl({node:a},er,fr,b,c,void 0,this)}),Placemark:L(Tq)}),er=N(Jp,{Placemark:L(Tq)}),hr={Point:"Point",LineString:"LineString",LinearRing:"LinearRing",Polygon:"Polygon",MultiPoint:"MultiGeometry",MultiLineString:"MultiGeometry",MultiPolygon:"MultiGeometry",GeometryCollection:"MultiGeometry"},ir=N(Jp,["href"],N(Ip,["x","y","w","h"])),jr=N(Jp,{href:L(go)},N(Ip,{x:L(ho),y:L(ho),w:L(ho),h:L(ho)})),kr=N(Jp,["scale","heading","Icon",
|
||||||
|
"hotSpot"]),mr=N(Jp,{Icon:L(function(a,b,c){a={node:a};var d=ir[c[c.length-1].node.namespaceURI],e=$k(b,d);bl(a,jr,Zk,e,c,d);d=ir[Ip[0]];e=$k(b,d);bl(a,jr,lr,e,c,d)}),heading:L(ho),hotSpot:L(function(a,b){a.setAttribute("x",b.x);a.setAttribute("y",b.y);a.setAttribute("xunits",b.$f);a.setAttribute("yunits",b.ag)}),scale:L(cr)}),nr=N(Jp,["color","scale"]),or=N(Jp,{color:L(Jq),scale:L(cr)}),pr=N(Jp,["color","width"]),qr=N(Jp,{color:L(Jq),width:L(ho)}),Rq=N(Jp,{LinearRing:L(Wq)}),Pq=N(Jp,{LineString:L(Wq),
|
||||||
|
Point:L(Wq),Polygon:L(Zq),GeometryCollection:L(Kq)}),Uq=N(Jp,"name open visibility address phoneNumber description styleUrl Style".split(" ")),Vq=N(Jp,{MultiGeometry:L(Kq),LineString:L(Wq),LinearRing:L(Wq),Point:L(Wq),Polygon:L(Zq),Style:L(function(a,b,c){a={node:a};var d={},e=b.c,f=b.f,g=b.a;b=b.Ha();g instanceof Fh&&(d.IconStyle=g);b&&(d.LabelStyle=b);f&&(d.LineStyle=f);e&&(d.PolyStyle=e);b=rr[c[c.length-1].node.namespaceURI];d=$k(d,b);bl(a,sr,Zk,d,c,b)}),address:L(go),description:L(go),name:L(go),
|
||||||
|
open:L(fo),phoneNumber:L(go),styleUrl:L(go),visibility:L(fo)}),Xq=N(Jp,{coordinates:L(function(a,b,c){c=c[c.length-1];var d=c.layout;c=c.stride;var e;"XY"==d||"XYM"==d?e=2:("XYZ"==d||"XYZM"==d)&&(e=3);var f,g=b.length,h="";if(0<g){h+=b[0];for(d=1;d<e;++d)h+=","+b[d];for(f=c;f<g;f+=c)for(h+=" "+b[f],d=1;d<e;++d)h+=","+b[f+d]}go(a,h)})}),$q=N(Jp,{outerBoundaryIs:L(Qq),innerBoundaryIs:L(Qq)}),tr=N(Jp,{color:L(Jq)}),rr=N(Jp,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),sr=N(Jp,{IconStyle:L(function(a,
|
||||||
|
b,c){a={node:a};var d={},e=b.Gb(),f=b.ld(),g={href:b.b.j};if(e){g.w=e[0];g.h=e[1];var h=b.Zb(),l=b.Ia();l&&f&&0!==l[0]&&l[1]!==e[1]&&(g.x=l[0],g.y=f[1]-(l[1]+e[1]));h&&0!==h[0]&&h[1]!==e[1]&&(d.hotSpot={x:h[0],$f:"pixels",y:e[1]-h[1],ag:"pixels"})}d.Icon=g;e=b.i;1!==e&&(d.scale=e);b=b.j;0!==b&&(d.heading=b);b=kr[c[c.length-1].node.namespaceURI];d=$k(d,b);bl(a,mr,Zk,d,c,b)}),LabelStyle:L(function(a,b,c){a={node:a};var d={},e=b.b;e&&(d.color=e.b);(b=b.a)&&1!==b&&(d.scale=b);b=nr[c[c.length-1].node.namespaceURI];
|
||||||
|
d=$k(d,b);bl(a,or,Zk,d,c,b)}),LineStyle:L(function(a,b,c){a={node:a};var d=pr[c[c.length-1].node.namespaceURI];b=$k({color:b.b,width:b.a},d);bl(a,qr,Zk,b,c,d)}),PolyStyle:L(function(a,b,c){bl({node:a},tr,ur,[b.b],c)})});function lr(a,b,c){return Mk(Ip[0],"gx:"+c)}function fr(a,b){return Mk(b[b.length-1].node.namespaceURI,"Placemark")}function Lq(a,b){if(a)return Mk(b[b.length-1].node.namespaceURI,hr[a.Y()])}
|
||||||
|
var ur=Xk("color"),Yq=Xk("coordinates"),ar=Xk("innerBoundaryIs"),Mq=Xk("Point"),Nq=Xk("LineString"),Sq=Xk("LinearRing"),Oq=Xk("Polygon"),br=Xk("outerBoundaryIs");
|
||||||
|
Gp.prototype.a=function(a,b){b=tn(this,b);var c=Mk(Jp[4],"kml");c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:gx",Ip[0]);c.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");c.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");var d={node:c},e={};1<a.length?e.Document=a:1==a.length&&(e.Placemark=a[0]);var f=dr[c.namespaceURI],
|
||||||
|
e=$k(e,f);bl(d,gr,Zk,e,[b],f,this);return c};(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Rp=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
|
||||||
|
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b,f){f.read=function(a,b,d,e,f){var p;p=8*f-e-1;var q=(1<<p)-1,r=q>>1,v=-7;f=d?f-1:0;var y=d?-1:1,w=a[b+f];f+=y;d=w&(1<<-v)-1;w>>=-v;for(v+=p;0<v;d=256*d+a[b+f],f+=y,v-=8);p=d&(1<<-v)-1;d>>=-v;for(v+=e;0<v;p=256*p+a[b+f],f+=y,v-=8);if(0===d)d=1-r;else{if(d===q)return p?NaN:Infinity*(w?-1:1);p+=Math.pow(2,e);d-=r}return(w?-1:1)*p*Math.pow(2,d-
|
||||||
|
e)};f.write=function(a,b,d,e,f,p){var q,r=8*p-f-1,v=(1<<r)-1,y=v>>1,w=23===f?Math.pow(2,-24)-Math.pow(2,-77):0;p=e?0:p-1;var G=e?1:-1,z=0>b||0===b&&0>1/b?1:0;b=Math.abs(b);isNaN(b)||Infinity===b?(b=isNaN(b)?1:0,e=v):(e=Math.floor(Math.log(b)/Math.LN2),1>b*(q=Math.pow(2,-e))&&(e--,q*=2),b=1<=e+y?b+w/q:b+w*Math.pow(2,1-y),2<=b*q&&(e++,q/=2),e+y>=v?(b=0,e=v):1<=e+y?(b=(b*q-1)*Math.pow(2,f),e+=y):(b=b*Math.pow(2,y-1)*Math.pow(2,f),e=0));for(;8<=f;a[d+p]=b&255,p+=G,b/=256,f-=8);e=e<<f|b;for(r+=f;0<r;a[d+
|
||||||
|
p]=e&255,p+=G,e/=256,r-=8);a[d+p-G]|=128*z}},{}],2:[function(a,b){function f(a){var b;a&&a.length&&(b=a,a=b.length);a=new Uint8Array(a||0);b&&a.set(b);a.$h=l.$h;a.Zf=l.Zf;a.Sh=l.Sh;a.Ei=l.Ei;a.Nf=l.Nf;a.Di=l.Di;a.Hf=l.Hf;a.Ai=l.Ai;a.toString=l.toString;a.write=l.write;a.slice=l.slice;a.tg=l.tg;a.nj=!0;return a}function g(a){for(var b=a.length,d=[],e=0,f,g;e<b;e++){f=a.charCodeAt(e);if(55295<f&&57344>f)if(g)if(56320>f){d.push(239,191,189);g=f;continue}else f=g-55296<<10|f-56320|65536,g=null;else{56319<
|
||||||
|
f||e+1===b?d.push(239,191,189):g=f;continue}else g&&(d.push(239,191,189),g=null);128>f?d.push(f):2048>f?d.push(f>>6|192,f&63|128):65536>f?d.push(f>>12|224,f>>6&63|128,f&63|128):d.push(f>>18|240,f>>12&63|128,f>>6&63|128,f&63|128)}return d}b.ja=f;var h=a("ieee754"),l,m,n;l={$h:function(a){return(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},Zf:function(a,b){this[b]=a;this[b+1]=a>>>8;this[b+2]=a>>>16;this[b+3]=a>>>24},Sh:function(a){return(this[a]|this[a+1]<<8|this[a+2]<<16)+(this[a+3]<<24)},
|
||||||
|
Nf:function(a){return h.read(this,a,!0,23,4)},Hf:function(a){return h.read(this,a,!0,52,8)},Di:function(a,b){return h.write(this,a,b,!0,23,4)},Ai:function(a,b){return h.write(this,a,b,!0,52,8)},toString:function(a,b,d){var e=a="";d=Math.min(this.length,d||this.length);for(b=b||0;b<d;b++){var f=this[b];127>=f?(a+=decodeURIComponent(e)+String.fromCharCode(f),e=""):e+="%"+f.toString(16)}return a+=decodeURIComponent(e)},write:function(a,b){for(var d=a===m?n:g(a),e=0;e<d.length;e++)this[b+e]=d[e]},slice:function(a,
|
||||||
|
b){return this.subarray(a,b)},tg:function(a,b){b=b||0;for(var d=0;d<this.length;d++)a[b+d]=this[d]}};l.Ei=l.Zf;f.byteLength=function(a){m=a;n=g(a);return n.length};f.isBuffer=function(a){return!(!a||!a.nj)}},{ieee754:1}],3:[function(a,b){(function(f){function g(a){this.Db=l.isBuffer(a)?a:new l(a||0);this.da=0;this.length=this.Db.length}function h(a,b){var d=b.Db,e;e=d[b.da++];a+=268435456*(e&127);if(128>e)return a;e=d[b.da++];a+=34359738368*(e&127);if(128>e)return a;e=d[b.da++];a+=4398046511104*(e&
|
||||||
|
127);if(128>e)return a;e=d[b.da++];a+=562949953421312*(e&127);if(128>e)return a;e=d[b.da++];a+=72057594037927936*(e&127);if(128>e)return a;e=d[b.da++];if(128>e)return a+0x7fffffffffffffff*(e&127);throw Error("Expected varint not more than 10 bytes");}b.ja=g;var l=f.Ap||a("./buffer");g.f=0;g.g=1;g.b=2;g.a=5;var m=Math.pow(2,63);g.prototype={Lf:function(a,b,d){for(d=d||this.length;this.da<d;){var e=this.Da(),f=this.da;a(e>>3,b,this);this.da===f&&this.op(e)}return b},Bo:function(){var a=this.Db.Nf(this.da);
|
||||||
|
this.da+=4;return a},xo:function(){var a=this.Db.Hf(this.da);this.da+=8;return a},Da:function(){var a=this.Db,b,d;d=a[this.da++];b=d&127;if(128>d)return b;d=a[this.da++];b|=(d&127)<<7;if(128>d)return b;d=a[this.da++];b|=(d&127)<<14;if(128>d)return b;d=a[this.da++];b|=(d&127)<<21;return 128>d?b:h(b,this)},Mo:function(){var a=this.da,b=this.Da();if(b<m)return b;for(var d=this.da-2;255===this.Db[d];)d--;d<a&&(d=a);for(var e=b=0;e<d-a+1;e++)var f=~this.Db[a+e]&127,b=b+(4>e?f<<7*e:f*Math.pow(2,7*e));return-b-
|
||||||
|
1},xd:function(){var a=this.Da();return 1===a%2?(a+1)/-2:a/2},vo:function(){return!!this.Da()},Qf:function(){var a=this.Da()+this.da,b=this.Db.toString("utf8",this.da,a);this.da=a;return b},op:function(a){a&=7;if(a===g.f)for(;127<this.Db[this.da++];);else if(a===g.b)this.da=this.Da()+this.da;else if(a===g.a)this.da+=4;else if(a===g.g)this.da+=8;else throw Error("Unimplemented type: "+a);}}}).call(this,"undefined"!==typeof global?global:"undefined"!==typeof self?self:"undefined"!==typeof window?window:
|
||||||
|
{})},{"./buffer":2}]},{},[3])(3)});hl=b.ja})();(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Up=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
|
||||||
|
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b){function f(a,b){this.x=a;this.y=b}b.ja=f;f.prototype={clone:function(){return new f(this.x,this.y)},add:function(a){return this.clone().fj(a)},rotate:function(a){return this.clone().qj(a)},round:function(){return this.clone().rj()},angle:function(){return Math.atan2(this.y,this.x)},fj:function(a){this.x+=a.x;this.y+=a.y;return this},qj:function(a){var b=
|
||||||
|
Math.cos(a);a=Math.sin(a);var d=a*this.x+b*this.y;this.x=b*this.x-a*this.y;this.y=d;return this},rj:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this}};f.b=function(a){return a instanceof f?a:Array.isArray(a)?new f(a[0],a[1]):a}},{}],2:[function(a,b){b.ja.ej=a("./lib/vectortile.js");b.ja.Np=a("./lib/vectortilefeature.js");b.ja.Op=a("./lib/vectortilelayer.js")},{"./lib/vectortile.js":3,"./lib/vectortilefeature.js":4,"./lib/vectortilelayer.js":5}],3:[function(a,b){function f(a,
|
||||||
|
b,d){3===a&&(a=new g(d,d.Da()+d.da),a.length&&(b[a.name]=a))}var g=a("./vectortilelayer");b.ja=function(a,b){this.layers=a.Lf(f,{},b)}},{"./vectortilelayer":5}],4:[function(a,b){function f(a,b,d,e,f){this.properties={};this.extent=d;this.type=0;this.qc=a;this.Qe=-1;this.Id=e;this.Kd=f;a.Lf(g,this,b)}function g(a,b,d){if(1==a)b.Qp=d.Da();else if(2==a)for(a=d.Da()+d.da;d.da<a;){var e=b.Id[d.Da()],f=b.Kd[d.Da()];b.properties[e]=f}else 3==a?b.type=d.Da():4==a&&(b.Qe=d.da)}var h=a("point-geometry");b.ja=
|
||||||
|
f;f.b=["Unknown","Point","LineString","Polygon"];f.prototype.Vg=function(){var a=this.qc;a.da=this.Qe;for(var b=a.Da()+a.da,d=1,e=0,f=0,g=0,v=[],y;a.da<b;)if(e||(e=a.Da(),d=e&7,e>>=3),e--,1===d||2===d)f+=a.xd(),g+=a.xd(),1===d&&(y&&v.push(y),y=[]),y.push(new h(f,g));else if(7===d)y&&y.push(y[0].clone());else throw Error("unknown command "+d);y&&v.push(y);return v};f.prototype.bbox=function(){var a=this.qc;a.da=this.Qe;for(var b=a.Da()+a.da,d=1,e=0,f=0,g=0,h=Infinity,y=-Infinity,w=Infinity,G=-Infinity;a.da<
|
||||||
|
b;)if(e||(e=a.Da(),d=e&7,e>>=3),e--,1===d||2===d)f+=a.xd(),g+=a.xd(),f<h&&(h=f),f>y&&(y=f),g<w&&(w=g),g>G&&(G=g);else if(7!==d)throw Error("unknown command "+d);return[h,w,y,G]}},{"point-geometry":1}],5:[function(a,b){function f(a,b){this.version=1;this.name=null;this.extent=4096;this.length=0;this.qc=a;this.Id=[];this.Kd=[];this.Hd=[];a.Lf(g,this,b);this.length=this.Hd.length}function g(a,b,d){15===a?b.version=d.Da():1===a?b.name=d.Qf():5===a?b.extent=d.Da():2===a?b.Hd.push(d.da):3===a?b.Id.push(d.Qf()):
|
||||||
|
4===a&&b.Kd.push(h(d))}function h(a){for(var b=null,d=a.Da()+a.da;a.da<d;)b=a.Da()>>3,b=1===b?a.Qf():2===b?a.Bo():3===b?a.xo():4===b?a.Mo():5===b?a.Da():6===b?a.xd():7===b?a.vo():null;return b}var l=a("./vectortilefeature.js");b.ja=f;f.prototype.feature=function(a){if(0>a||a>=this.Hd.length)throw Error("feature index out of bounds");this.qc.da=this.Hd[a];a=this.qc.Da()+this.qc.da;return new l(this.qc,a,this.extent,this.Id,this.Kd)}},{"./vectortilefeature.js":4}]},{},[2])(2)});il=b.ja})();function vr(a){this.defaultDataProjection=null;a=a?a:{};this.defaultDataProjection=new wc({code:"",units:"tile-pixels"});this.b=a.featureClass?a.featureClass:ik;this.g=a.geometryName?a.geometryName:"geometry";this.a=a.layerName?a.layerName:"layer";this.f=a.layers?a.layers:null}x(vr,rn);vr.prototype.Y=function(){return"arraybuffer"};
|
||||||
|
vr.prototype.Fa=function(a,b){var c=this.f,d=new hl(a),d=new il.ej(d),e=[],f=this.b,g,h,l;for(l in d.layers)if(!c||-1!=c.indexOf(l)){g=d.layers[l];for(var m=0,n=g.length;m<n;++m){if(f===ik){var p=g.feature(m);h=l;var q=p.Vg(),r=[],v=[];wr(q,v,r);var y=p.type,w=void 0;1===y?w=1===q.length?"Point":"MultiPoint":2===y?w=1===q.length?"LineString":"MultiLineString":3===y&&(w="Polygon");p=p.properties;p[this.a]=h;h=new this.b(w,v,r,p)}else{p=g.feature(m);w=l;v=b;h=new this.b;r=p.properties;r[this.a]=w;w=
|
||||||
|
p.type;if(0===w)w=null;else{p=p.Vg();q=[];y=[];wr(p,y,q);var G=void 0;1===w?G=1===p.length?new C(null):new T(null):2===w?1===p.length?G=new R(null):G=new S(null):3===w&&(G=new E(null));G.ba("XY",y,q);w=G}(v=un(w,!1,tn(this,v)))&&(r[this.g]=v);h.G(r);h.Ec(this.g)}e.push(h)}}return e};vr.prototype.Oa=function(){return this.defaultDataProjection};vr.prototype.c=function(a){this.f=a};
|
||||||
|
function wr(a,b,c){for(var d=0,e=0,f=a.length;e<f;++e){var g=a[e],h,l;h=0;for(l=g.length;h<l;++h){var m=g[h];b.push(m.x,m.y)}d+=2*h;c.push(d)}};function xr(a,b){return new yr(a,b)}function zr(a,b,c){return new Ar(a,b,c)}function Br(a){this.Xb=a}function Cr(a){this.Xb=a}x(Cr,Br);function Dr(a,b,c){this.Xb=a;this.b=b;this.a=c}x(Dr,Cr);function yr(a,b){Dr.call(this,"And",a,b)}x(yr,Dr);function Er(a,b){Dr.call(this,"Or",a,b)}x(Er,Dr);function Fr(a){this.Xb="Not";this.condition=a}x(Fr,Cr);function Ar(a,b,c){this.Xb="BBOX";this.geometryName=a;this.extent=b;this.srsName=c}x(Ar,Br);function Gr(a,b){this.Xb=a;this.b=b}x(Gr,Br);
|
||||||
|
function Hr(a,b,c,d){Gr.call(this,a,b);this.g=c;this.a=d}x(Hr,Gr);function Ir(a,b,c){Hr.call(this,"PropertyIsEqualTo",a,b,c)}x(Ir,Hr);function Jr(a,b,c){Hr.call(this,"PropertyIsNotEqualTo",a,b,c)}x(Jr,Hr);function Kr(a,b){Hr.call(this,"PropertyIsLessThan",a,b)}x(Kr,Hr);function Lr(a,b){Hr.call(this,"PropertyIsLessThanOrEqualTo",a,b)}x(Lr,Hr);function Mr(a,b){Hr.call(this,"PropertyIsGreaterThan",a,b)}x(Mr,Hr);function Nr(a,b){Hr.call(this,"PropertyIsGreaterThanOrEqualTo",a,b)}x(Nr,Hr);
|
||||||
|
function Or(a){Gr.call(this,"PropertyIsNull",a)}x(Or,Gr);function Pr(a,b,c){Gr.call(this,"PropertyIsBetween",a);this.a=b;this.g=c}x(Pr,Gr);function Qr(a,b,c,d,e,f){Gr.call(this,"PropertyIsLike",a);this.f=b;this.i=void 0!==c?c:"*";this.c=void 0!==d?d:".";this.g=void 0!==e?e:"!";this.a=f}x(Qr,Gr);function Rr(){Tn.call(this);this.defaultDataProjection=zc("EPSG:4326")}x(Rr,Tn);function Sr(a,b){b[b.length-1].Cd[a.getAttribute("k")]=a.getAttribute("v")}
|
||||||
|
var Tr=[null],Ur=N(Tr,{nd:function(a,b){b[b.length-1].Rc.push(a.getAttribute("ref"))},tag:Sr}),Wr=N(Tr,{node:function(a,b){var c=b[0],d=b[b.length-1],e=a.getAttribute("id"),f=[parseFloat(a.getAttribute("lon")),parseFloat(a.getAttribute("lat"))];d.Zg[e]=f;var g=O({Cd:{}},Vr,a,b);Ga(g.Cd)||(f=new C(f),un(f,!1,c),c=new Ik(f),c.mc(e),c.G(g.Cd),d.features.push(c))},way:function(a,b){for(var c=b[0],d=a.getAttribute("id"),e=O({Rc:[],Cd:{}},Ur,a,b),f=b[b.length-1],g=[],h=0,l=e.Rc.length;h<l;h++)jb(g,f.Zg[e.Rc[h]]);
|
||||||
|
e.Rc[0]==e.Rc[e.Rc.length-1]?(h=new E(null),h.ba("XY",g,[g.length])):(h=new R(null),h.ba("XY",g));un(h,!1,c);c=new Ik(h);c.mc(d);c.G(e.Cd);f.features.push(c)}}),Vr=N(Tr,{tag:Sr});Rr.prototype.lc=function(a,b){var c=sn(this,a,b);return"osm"==a.localName&&(c=O({Zg:{},features:[]},Wr,a,[c]),c.features)?c.features:[]};function Xr(a){return a.getAttributeNS("http://www.w3.org/1999/xlink","href")};function Yr(){}Yr.prototype.read=function(a){return Pk(a)?this.a(a):Qk(a)?this.b(a):"string"===typeof a?(a=Rk(a),this.a(a)):null};function Zr(){}x(Zr,Yr);Zr.prototype.a=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.b(a);return null};Zr.prototype.b=function(a){return(a=O({},$r,a,[]))?a:null};
|
||||||
|
var as=[null,"http://www.opengis.net/ows/1.1"],$r=N(as,{ServiceIdentification:K(function(a,b){return O({},bs,a,b)}),ServiceProvider:K(function(a,b){return O({},cs,a,b)}),OperationsMetadata:K(function(a,b){return O({},ds,a,b)})}),es=N(as,{DeliveryPoint:K(V),City:K(V),AdministrativeArea:K(V),PostalCode:K(V),Country:K(V),ElectronicMailAddress:K(V)}),fs=N(as,{Value:Vk(function(a){return V(a)})}),gs=N(as,{AllowedValues:K(function(a,b){return O({},fs,a,b)})}),is=N(as,{Phone:K(function(a,b){return O({},
|
||||||
|
hs,a,b)}),Address:K(function(a,b){return O({},es,a,b)})}),ks=N(as,{HTTP:K(function(a,b){return O({},js,a,b)})}),js=N(as,{Get:Vk(function(a,b){var c=Xr(a);return c?O({href:c},ls,a,b):void 0}),Post:void 0}),ms=N(as,{DCP:K(function(a,b){return O({},ks,a,b)})}),ds=N(as,{Operation:function(a,b){var c=a.getAttribute("name"),d=O({},ms,a,b);d&&(b[b.length-1][c]=d)}}),hs=N(as,{Voice:K(V),Facsimile:K(V)}),ls=N(as,{Constraint:Vk(function(a,b){var c=a.getAttribute("name");return c?O({name:c},gs,a,b):void 0})}),
|
||||||
|
ns=N(as,{IndividualName:K(V),PositionName:K(V),ContactInfo:K(function(a,b){return O({},is,a,b)})}),bs=N(as,{Title:K(V),ServiceTypeVersion:K(V),ServiceType:K(V)}),cs=N(as,{ProviderName:K(V),ProviderSite:K(Xr),ServiceContact:K(function(a,b){return O({},ns,a,b)})});function os(a,b,c,d){var e;void 0!==d?e=d:e=[];for(var f=d=0;f<b;){var g=a[f++];e[d++]=a[f++];e[d++]=g;for(g=2;g<c;++g)e[d++]=a[f++]}e.length=d};function ps(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc("EPSG:4326");this.b=a.factor?a.factor:1E5;this.a=a.geometryLayout?a.geometryLayout:"XY"}x(ps,ap);function qs(a,b,c){var d,e=Array(b);for(d=0;d<b;++d)e[d]=0;var f,g;f=0;for(g=a.length;f<g;)for(d=0;d<b;++d,++f){var h=a[f],l=h-e[d];e[d]=h;a[f]=l}return rs(a,c?c:1E5)}
|
||||||
|
function ss(a,b,c){var d,e=Array(b);for(d=0;d<b;++d)e[d]=0;a=ts(a,c?c:1E5);var f;c=0;for(f=a.length;c<f;)for(d=0;d<b;++d,++c)e[d]+=a[c],a[c]=e[d];return a}function rs(a,b){var c=b?b:1E5,d,e;d=0;for(e=a.length;d<e;++d)a[d]=Math.round(a[d]*c);c=0;for(d=a.length;c<d;++c)e=a[c],a[c]=0>e?~(e<<1):e<<1;c="";d=0;for(e=a.length;d<e;++d){for(var f=a[d],g,h="";32<=f;)g=(32|f&31)+63,h+=String.fromCharCode(g),f>>=5;h+=String.fromCharCode(f+63);c+=h}return c}
|
||||||
|
function ts(a,b){var c=b?b:1E5,d=[],e=0,f=0,g,h;g=0;for(h=a.length;g<h;++g){var l=a.charCodeAt(g)-63,e=e|(l&31)<<f;32>l?(d.push(e),f=e=0):f+=5}e=0;for(f=d.length;e<f;++e)g=d[e],d[e]=g&1?~(g>>1):g>>1;e=0;for(f=d.length;e<f;++e)d[e]/=c;return d}k=ps.prototype;k.ud=function(a,b){var c=this.wd(a,b);return new Ik(c)};k.Kf=function(a,b){return[this.ud(a,b)]};k.wd=function(a,b){var c=Xc(this.a),d=ss(a,c,this.b);os(d,d.length,c,d);c=jd(d,0,d.length,c);return un(new R(c,this.a),!1,tn(this,b))};
|
||||||
|
k.He=function(a,b){var c=a.X();return c?this.Ed(c,b):""};k.Ci=function(a,b){return this.He(a[0],b)};k.Ed=function(a,b){a=un(a,!0,tn(this,b));var c=a.la(),d=a.va();os(c,c.length,d,c);return qs(c,d,this.b)};function us(a){a=a?a:{};this.defaultDataProjection=null;this.defaultDataProjection=zc(a.defaultDataProjection?a.defaultDataProjection:"EPSG:4326")}x(us,vn);function vs(a,b){var c=[],d,e,f,g;f=0;for(g=a.length;f<g;++f)d=a[f],0<f&&c.pop(),0<=d?e=b[d]:e=b[~d].slice().reverse(),c.push.apply(c,e);d=0;for(e=c.length;d<e;++d)c[d]=c[d].slice();return c}function ws(a,b,c,d,e){a=a.geometries;var f=[],g,h;g=0;for(h=a.length;g<h;++g)f[g]=xs(a[g],b,c,d,e);return f}
|
||||||
|
function xs(a,b,c,d,e){var f=a.type,g=ys[f];b="Point"===f||"MultiPoint"===f?g(a,c,d):g(a,b);c=new Ik;c.Ua(un(b,!1,e));void 0!==a.id&&c.mc(a.id);a.properties&&c.G(a.properties);return c}
|
||||||
|
us.prototype.Jf=function(a,b){if("Topology"==a.type){var c,d=null,e=null;a.transform&&(c=a.transform,d=c.scale,e=c.translate);var f=a.arcs;if(c){c=d;var g=e,h,l;h=0;for(l=f.length;h<l;++h){var m=f[h],n=c,p=g,q=0,r=0,v,y,w;y=0;for(w=m.length;y<w;++y)v=m[y],q+=v[0],r+=v[1],v[0]=q,v[1]=r,zs(v,n,p)}}c=[];g=Ea(a.objects);h=0;for(l=g.length;h<l;++h)"GeometryCollection"===g[h].type?(m=g[h],c.push.apply(c,ws(m,f,d,e,b))):(m=g[h],c.push(xs(m,f,d,e,b)));return c}return[]};
|
||||||
|
function zs(a,b,c){a[0]=a[0]*b[0]+c[0];a[1]=a[1]*b[1]+c[1]}us.prototype.Oa=function(){return this.defaultDataProjection};
|
||||||
|
var ys={Point:function(a,b,c){a=a.coordinates;b&&c&&zs(a,b,c);return new C(a)},LineString:function(a,b){var c=vs(a.arcs,b);return new R(c)},Polygon:function(a,b){var c=[],d,e;d=0;for(e=a.arcs.length;d<e;++d)c[d]=vs(a.arcs[d],b);return new E(c)},MultiPoint:function(a,b,c){a=a.coordinates;var d,e;if(b&&c)for(d=0,e=a.length;d<e;++d)zs(a[d],b,c);return new T(a)},MultiLineString:function(a,b){var c=[],d,e;d=0;for(e=a.arcs.length;d<e;++d)c[d]=vs(a.arcs[d],b);return new S(c)},MultiPolygon:function(a,b){var c=
|
||||||
|
[],d,e,f,g,h,l;h=0;for(l=a.arcs.length;h<l;++h){d=a.arcs[h];e=[];f=0;for(g=d.length;f<g;++f)e[f]=vs(d[f],b);c[h]=e}return new U(c)}};function As(a){a=a?a:{};this.i=a.featureType;this.g=a.featureNS;this.b=a.gmlFormat?a.gmlFormat:new ko;this.c=a.schemaLocation?a.schemaLocation:"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd";Tn.call(this)}x(As,Tn);As.prototype.lc=function(a,b){var c={featureType:this.i,featureNS:this.g};Ca(c,sn(this,a,b?b:{}));c=[c];this.b.b["http://www.opengis.net/gml"].featureMember=Tk(Wn.prototype.vd);(c=O([],this.b.b,a,c,this.b))||(c=[]);return c};
|
||||||
|
As.prototype.o=function(a){if(Pk(a))return Bs(a);if(Qk(a))return O({},Cs,a,[]);if("string"===typeof a)return a=Rk(a),Bs(a)};As.prototype.l=function(a){if(Pk(a))return Ds(this,a);if(Qk(a))return Es(this,a);if("string"===typeof a)return a=Rk(a),Ds(this,a)};function Ds(a,b){for(var c=b.firstChild;c;c=c.nextSibling)if(c.nodeType==Node.ELEMENT_NODE)return Es(a,c)}var Fs={"http://www.opengis.net/gml":{boundedBy:K(Wn.prototype.ye,"bounds")}};
|
||||||
|
function Es(a,b){var c={},d=eo(b.getAttribute("numberOfFeatures"));c.numberOfFeatures=d;return O(c,Fs,b,[],a.b)}
|
||||||
|
var Gs={"http://www.opengis.net/wfs":{totalInserted:K(co),totalUpdated:K(co),totalDeleted:K(co)}},Hs={"http://www.opengis.net/ogc":{FeatureId:Tk(function(a){return a.getAttribute("fid")})}},Is={"http://www.opengis.net/wfs":{Feature:function(a,b){al(Hs,a,b)}}},Cs={"http://www.opengis.net/wfs":{TransactionSummary:K(function(a,b){return O({},Gs,a,b)},"transactionSummary"),InsertResults:K(function(a,b){return O([],Is,a,b)},"insertIds")}};
|
||||||
|
function Bs(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return O({},Cs,a,[])}var Js={"http://www.opengis.net/wfs":{PropertyName:L(go)}};function Ks(a,b){var c=Mk("http://www.opengis.net/ogc","Filter"),d=Mk("http://www.opengis.net/ogc","FeatureId");c.appendChild(d);d.setAttribute("fid",b);a.appendChild(c)}
|
||||||
|
var Ls={"http://www.opengis.net/wfs":{Insert:L(function(a,b,c){var d=c[c.length-1],d=Mk(d.featureNS,d.featureType);a.appendChild(d);ko.prototype.Bi(d,b,c)}),Update:L(function(a,b,c){var d=c[c.length-1],e=d.featureType,f=d.featurePrefix,f=f?f:"feature",g=d.featureNS;a.setAttribute("typeName",f+":"+e);a.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:"+f,g);e=b.Xa();if(void 0!==e){for(var f=b.N(),g=[],h=0,l=f.length;h<l;h++){var m=b.get(f[h]);void 0!==m&&g.push({name:f[h],value:m})}bl({node:a,
|
||||||
|
srsName:d.srsName},Ls,Xk("Property"),g,c);Ks(a,e)}}),Delete:L(function(a,b,c){var d=c[c.length-1];c=d.featureType;var e=d.featurePrefix,e=e?e:"feature",d=d.featureNS;a.setAttribute("typeName",e+":"+c);a.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:"+e,d);b=b.Xa();void 0!==b&&Ks(a,b)}),Property:L(function(a,b,c){var d=Mk("http://www.opengis.net/wfs","Name");a.appendChild(d);go(d,b.name);void 0!==b.value&&null!==b.value&&(d=Mk("http://www.opengis.net/wfs","Value"),a.appendChild(d),b.value instanceof
|
||||||
|
Uc?ko.prototype.Je(d,b.value,c):go(d,b.value))}),Native:L(function(a,b){b.wp&&a.setAttribute("vendorId",b.wp);void 0!==b.Yo&&a.setAttribute("safeToIgnore",b.Yo);void 0!==b.value&&go(a,b.value)})}};function Ms(a,b,c){a={node:a};var d=b.b;bl(a,Ns,Xk(d.Xb),[d],c);b=b.a;bl(a,Ns,Xk(b.Xb),[b],c)}function Os(a,b){void 0!==b.a&&a.setAttribute("matchCase",b.a.toString());Ps(a,b.b);Qs("Literal",a,""+b.g)}function Qs(a,b,c){a=Mk("http://www.opengis.net/ogc",a);go(a,c);b.appendChild(a)}
|
||||||
|
function Ps(a,b){Qs("PropertyName",a,b)}
|
||||||
|
var Ns={"http://www.opengis.net/wfs":{Query:L(function(a,b,c){var d=c[c.length-1],e=d.featurePrefix,f=d.featureNS,g=d.propertyNames,h=d.srsName;a.setAttribute("typeName",(e?e+":":"")+b);h&&a.setAttribute("srsName",h);f&&a.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:"+e,f);b=Ca({},d);b.node=a;bl(b,Js,Xk("PropertyName"),g,c);if(d=d.filter)g=Mk("http://www.opengis.net/ogc","Filter"),a.appendChild(g),bl({node:g},Ns,Xk(d.Xb),[d],c)})},"http://www.opengis.net/ogc":{And:L(Ms),Or:L(Ms),Not:L(function(a,
|
||||||
|
b,c){b=b.condition;bl({node:a},Ns,Xk(b.Xb),[b],c)}),BBOX:L(function(a,b,c){c[c.length-1].srsName=b.srsName;Ps(a,b.geometryName);ko.prototype.Je(a,b.extent,c)}),PropertyIsEqualTo:L(Os),PropertyIsNotEqualTo:L(Os),PropertyIsLessThan:L(Os),PropertyIsLessThanOrEqualTo:L(Os),PropertyIsGreaterThan:L(Os),PropertyIsGreaterThanOrEqualTo:L(Os),PropertyIsNull:L(function(a,b){Ps(a,b.b)}),PropertyIsBetween:L(function(a,b){Ps(a,b.b);Qs("LowerBoundary",a,""+b.a);Qs("UpperBoundary",a,""+b.g)}),PropertyIsLike:L(function(a,
|
||||||
|
b){a.setAttribute("wildCard",b.i);a.setAttribute("singleChar",b.c);a.setAttribute("escapeChar",b.g);void 0!==b.a&&a.setAttribute("matchCase",b.a.toString());Ps(a,b.b);Qs("Literal",a,""+b.f)})}};
|
||||||
|
As.prototype.j=function(a){var b=Mk("http://www.opengis.net/wfs","GetFeature");b.setAttribute("service","WFS");b.setAttribute("version","1.1.0");var c;if(a&&(a.handle&&b.setAttribute("handle",a.handle),a.outputFormat&&b.setAttribute("outputFormat",a.outputFormat),void 0!==a.maxFeatures&&b.setAttribute("maxFeatures",a.maxFeatures),a.resultType&&b.setAttribute("resultType",a.resultType),void 0!==a.startIndex&&b.setAttribute("startIndex",a.startIndex),void 0!==a.count&&b.setAttribute("count",a.count),
|
||||||
|
c=a.filter,a.bbox)){var d=zr(a.geometryName,a.bbox,a.srsName);c?c=xr(c,d):c=d}b.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.c);d=a.featureTypes;a=[{node:b,srsName:a.srsName,featureNS:a.featureNS?a.featureNS:this.g,featurePrefix:a.featurePrefix,geometryName:a.geometryName,filter:c,propertyNames:a.propertyNames?a.propertyNames:[]}];c=Ca({},a[a.length-1]);c.node=b;bl(c,Ns,Xk("Query"),d,a);return b};
|
||||||
|
As.prototype.U=function(a,b,c,d){var e=[],f=Mk("http://www.opengis.net/wfs","Transaction");f.setAttribute("service","WFS");f.setAttribute("version","1.1.0");var g,h;d&&(g=d.gmlOptions?d.gmlOptions:{},d.handle&&f.setAttribute("handle",d.handle));f.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance","xsi:schemaLocation",this.c);a&&(h={node:f,featureNS:d.featureNS,featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ca(h,g),bl(h,Ls,Xk("Insert"),a,e));b&&(h={node:f,featureNS:d.featureNS,
|
||||||
|
featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ca(h,g),bl(h,Ls,Xk("Update"),b,e));c&&bl({node:f,featureNS:d.featureNS,featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ls,Xk("Delete"),c,e);d.nativeElements&&bl({node:f,featureNS:d.featureNS,featureType:d.featureType,featurePrefix:d.featurePrefix,srsName:d.srsName},Ls,Xk("Native"),d.nativeElements,e);return f};
|
||||||
|
As.prototype.Pf=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.Be(a);return null};As.prototype.Be=function(a){if(a.firstElementChild&&a.firstElementChild.firstElementChild)for(a=a.firstElementChild.firstElementChild,a=a.firstElementChild;a;a=a.nextElementSibling)if(0!==a.childNodes.length&&(1!==a.childNodes.length||3!==a.firstChild.nodeType)){var b=[{}];this.b.ye(a,b);return zc(b.pop().srsName)}return null};function Rs(a){a=a?a:{};this.defaultDataProjection=null;this.b=void 0!==a.splitCollection?a.splitCollection:!1}x(Rs,ap);function Ss(a){a=a.Z();return 0===a.length?"":a[0]+" "+a[1]}function Ts(a){a=a.Z();for(var b=[],c=0,d=a.length;c<d;++c)b.push(a[c][0]+" "+a[c][1]);return b.join(",")}function Us(a){var b=[];a=a.Vd();for(var c=0,d=a.length;c<d;++c)b.push("("+Ts(a[c])+")");return b.join(",")}function Vs(a){var b=a.Y();a=(0,Ws[b])(a);b=b.toUpperCase();return 0===a.length?b+" EMPTY":b+"("+a+")"}
|
||||||
|
var Ws={Point:Ss,LineString:Ts,Polygon:Us,MultiPoint:function(a){var b=[];a=a.je();for(var c=0,d=a.length;c<d;++c)b.push("("+Ss(a[c])+")");return b.join(",")},MultiLineString:function(a){var b=[];a=a.md();for(var c=0,d=a.length;c<d;++c)b.push("("+Ts(a[c])+")");return b.join(",")},MultiPolygon:function(a){var b=[];a=a.Wd();for(var c=0,d=a.length;c<d;++c)b.push("("+Us(a[c])+")");return b.join(",")},GeometryCollection:function(a){var b=[];a=a.ff();for(var c=0,d=a.length;c<d;++c)b.push(Vs(a[c]));return b.join(",")}};
|
||||||
|
k=Rs.prototype;k.ud=function(a,b){var c=this.wd(a,b);if(c){var d=new Ik;d.Ua(c);return d}return null};k.Kf=function(a,b){var c=[],d=this.wd(a,b);this.b&&"GeometryCollection"==d.Y()?c=d.c:c=[d];for(var e=[],f=0,g=c.length;f<g;++f)d=new Ik,d.Ua(c[f]),e.push(d);return e};k.wd=function(a,b){var c;c=new Xs(new Ys(a));c.b=Zs(c.a);return(c=$s(c))?un(c,!1,b):null};k.He=function(a,b){var c=a.X();return c?this.Ed(c,b):""};
|
||||||
|
k.Ci=function(a,b){if(1==a.length)return this.He(a[0],b);for(var c=[],d=0,e=a.length;d<e;++d)c.push(a[d].X());c=new Kn(c);return this.Ed(c,b)};k.Ed=function(a,b){return Vs(un(a,!0,b))};function Ys(a){this.a=a;this.b=-1}
|
||||||
|
function Zs(a){var b=a.a.charAt(++a.b),c={position:a.b,value:b};if("("==b)c.type=2;else if(","==b)c.type=5;else if(")"==b)c.type=3;else if("0"<=b&&"9">=b||"."==b||"-"==b){c.type=4;var d,b=a.b,e=!1,f=!1;do{if("."==d)e=!0;else if("e"==d||"E"==d)f=!0;d=a.a.charAt(++a.b)}while("0"<=d&&"9">=d||"."==d&&(void 0===e||!e)||!f&&("e"==d||"E"==d)||f&&("-"==d||"+"==d));a=parseFloat(a.a.substring(b,a.b--));c.value=a}else if("a"<=b&&"z">=b||"A"<=b&&"Z">=b){c.type=1;b=a.b;do d=a.a.charAt(++a.b);while("a"<=d&&"z">=
|
||||||
|
d||"A"<=d&&"Z">=d);a=a.a.substring(b,a.b--).toUpperCase();c.value=a}else{if(" "==b||"\t"==b||"\r"==b||"\n"==b)return Zs(a);if(""===b)c.type=6;else throw Error("Unexpected character: "+b);}return c}function Xs(a){this.a=a}k=Xs.prototype;k.match=function(a){if(a=this.b.type==a)this.b=Zs(this.a);return a};
|
||||||
|
function $s(a){var b=a.b;if(a.match(1)){var c=b.value;if("GEOMETRYCOLLECTION"==c){a:{if(a.match(2)){b=[];do b.push($s(a));while(a.match(5));if(a.match(3)){a=b;break a}}else if(at(a)){a=[];break a}throw Error(bt(a));}return new Kn(a)}var d=ct[c],b=dt[c];if(!d||!b)throw Error("Invalid geometry type: "+c);a=d.call(a);return new b(a)}throw Error(bt(a));}k.Ef=function(){if(this.match(2)){var a=et(this);if(this.match(3))return a}else if(at(this))return null;throw Error(bt(this));};
|
||||||
|
k.Df=function(){if(this.match(2)){var a=ft(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};k.Ff=function(){if(this.match(2)){var a=gt(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};k.io=function(){if(this.match(2)){var a;if(2==this.b.type)for(a=[this.Ef()];this.match(5);)a.push(this.Ef());else a=ft(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};
|
||||||
|
k.ho=function(){if(this.match(2)){var a=gt(this);if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};k.jo=function(){if(this.match(2)){for(var a=[this.Ff()];this.match(5);)a.push(this.Ff());if(this.match(3))return a}else if(at(this))return[];throw Error(bt(this));};function et(a){for(var b=[],c=0;2>c;++c){var d=a.b;if(a.match(4))b.push(d.value);else break}if(2==b.length)return b;throw Error(bt(a));}function ft(a){for(var b=[et(a)];a.match(5);)b.push(et(a));return b}
|
||||||
|
function gt(a){for(var b=[a.Df()];a.match(5);)b.push(a.Df());return b}function at(a){var b=1==a.b.type&&"EMPTY"==a.b.value;b&&(a.b=Zs(a.a));return b}function bt(a){return"Unexpected `"+a.b.value+"` at position "+a.b.position+" in `"+a.a.a+"`"}var dt={POINT:C,LINESTRING:R,POLYGON:E,MULTIPOINT:T,MULTILINESTRING:S,MULTIPOLYGON:U},ct={POINT:Xs.prototype.Ef,LINESTRING:Xs.prototype.Df,POLYGON:Xs.prototype.Ff,MULTIPOINT:Xs.prototype.io,MULTILINESTRING:Xs.prototype.ho,MULTIPOLYGON:Xs.prototype.jo};function ht(){this.version=void 0}x(ht,Yr);ht.prototype.a=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.b(a);return null};ht.prototype.b=function(a){this.version=a.getAttribute("version").trim();return(a=O({version:this.version},it,a,[]))?a:null};function jt(a,b){return O({},kt,a,b)}function lt(a,b){return O({},mt,a,b)}function nt(a,b){var c=jt(a,b);if(c){var d=[eo(a.getAttribute("width")),eo(a.getAttribute("height"))];c.size=d;return c}}
|
||||||
|
function ot(a,b){return O([],pt,a,b)}
|
||||||
|
var qt=[null,"http://www.opengis.net/wms"],it=N(qt,{Service:K(function(a,b){return O({},rt,a,b)}),Capability:K(function(a,b){return O({},st,a,b)})}),st=N(qt,{Request:K(function(a,b){return O({},tt,a,b)}),Exception:K(function(a,b){return O([],ut,a,b)}),Layer:K(function(a,b){return O({},vt,a,b)})}),rt=N(qt,{Name:K(V),Title:K(V),Abstract:K(V),KeywordList:K(ot),OnlineResource:K(Xr),ContactInformation:K(function(a,b){return O({},wt,a,b)}),Fees:K(V),AccessConstraints:K(V),LayerLimit:K(co),MaxWidth:K(co),
|
||||||
|
MaxHeight:K(co)}),wt=N(qt,{ContactPersonPrimary:K(function(a,b){return O({},xt,a,b)}),ContactPosition:K(V),ContactAddress:K(function(a,b){return O({},yt,a,b)}),ContactVoiceTelephone:K(V),ContactFacsimileTelephone:K(V),ContactElectronicMailAddress:K(V)}),xt=N(qt,{ContactPerson:K(V),ContactOrganization:K(V)}),yt=N(qt,{AddressType:K(V),Address:K(V),City:K(V),StateOrProvince:K(V),PostCode:K(V),Country:K(V)}),ut=N(qt,{Format:Tk(V)}),vt=N(qt,{Name:K(V),Title:K(V),Abstract:K(V),KeywordList:K(ot),CRS:Vk(V),
|
||||||
|
EX_GeographicBoundingBox:K(function(a,b){var c=O({},zt,a,b);if(c){var d=c.westBoundLongitude,e=c.southBoundLatitude,f=c.eastBoundLongitude,c=c.northBoundLatitude;return void 0===d||void 0===e||void 0===f||void 0===c?void 0:[d,e,f,c]}}),BoundingBox:Vk(function(a){var b=[bo(a.getAttribute("minx")),bo(a.getAttribute("miny")),bo(a.getAttribute("maxx")),bo(a.getAttribute("maxy"))],c=[bo(a.getAttribute("resx")),bo(a.getAttribute("resy"))];return{crs:a.getAttribute("CRS"),extent:b,res:c}}),Dimension:Vk(function(a){return{name:a.getAttribute("name"),
|
||||||
|
units:a.getAttribute("units"),unitSymbol:a.getAttribute("unitSymbol"),"default":a.getAttribute("default"),multipleValues:Zn(a.getAttribute("multipleValues")),nearestValue:Zn(a.getAttribute("nearestValue")),current:Zn(a.getAttribute("current")),values:V(a)}}),Attribution:K(function(a,b){return O({},At,a,b)}),AuthorityURL:Vk(function(a,b){var c=jt(a,b);if(c)return c.name=a.getAttribute("name"),c}),Identifier:Vk(V),MetadataURL:Vk(function(a,b){var c=jt(a,b);if(c)return c.type=a.getAttribute("type"),
|
||||||
|
c}),DataURL:Vk(jt),FeatureListURL:Vk(jt),Style:Vk(function(a,b){return O({},Bt,a,b)}),MinScaleDenominator:K(ao),MaxScaleDenominator:K(ao),Layer:Vk(function(a,b){var c=b[b.length-1],d=O({},vt,a,b);if(d){var e=Zn(a.getAttribute("queryable"));void 0===e&&(e=c.queryable);d.queryable=void 0!==e?e:!1;e=eo(a.getAttribute("cascaded"));void 0===e&&(e=c.cascaded);d.cascaded=e;e=Zn(a.getAttribute("opaque"));void 0===e&&(e=c.opaque);d.opaque=void 0!==e?e:!1;e=Zn(a.getAttribute("noSubsets"));void 0===e&&(e=c.noSubsets);
|
||||||
|
d.noSubsets=void 0!==e?e:!1;(e=bo(a.getAttribute("fixedWidth")))||(e=c.fixedWidth);d.fixedWidth=e;(e=bo(a.getAttribute("fixedHeight")))||(e=c.fixedHeight);d.fixedHeight=e;["Style","CRS","AuthorityURL"].forEach(function(a){a in c&&(d[a]=(d[a]||[]).concat(c[a]))});"EX_GeographicBoundingBox BoundingBox Dimension Attribution MinScaleDenominator MaxScaleDenominator".split(" ").forEach(function(a){a in d||(d[a]=c[a])});return d}})}),At=N(qt,{Title:K(V),OnlineResource:K(Xr),LogoURL:K(nt)}),zt=N(qt,{westBoundLongitude:K(ao),
|
||||||
|
eastBoundLongitude:K(ao),southBoundLatitude:K(ao),northBoundLatitude:K(ao)}),tt=N(qt,{GetCapabilities:K(lt),GetMap:K(lt),GetFeatureInfo:K(lt)}),mt=N(qt,{Format:Vk(V),DCPType:Vk(function(a,b){return O({},Ct,a,b)})}),Ct=N(qt,{HTTP:K(function(a,b){return O({},Dt,a,b)})}),Dt=N(qt,{Get:K(jt),Post:K(jt)}),Bt=N(qt,{Name:K(V),Title:K(V),Abstract:K(V),LegendURL:Vk(nt),StyleSheetURL:K(jt),StyleURL:K(jt)}),kt=N(qt,{Format:K(V),OnlineResource:K(Xr)}),pt=N(qt,{Keyword:Tk(V)});function Et(a){a=a?a:{};this.g="http://mapserver.gis.umn.edu/mapserver";this.b=new jo;this.c=a.layers?a.layers:null;Tn.call(this)}x(Et,Tn);
|
||||||
|
Et.prototype.lc=function(a,b){var c={};b&&Ca(c,sn(this,a,b));var d=[c];a.setAttribute("namespaceURI",this.g);var e=a.localName,c=[];if(0!==a.childNodes.length){if("msGMLOutput"==e)for(var f=0,g=a.childNodes.length;f<g;f++){var h=a.childNodes[f];if(h.nodeType===Node.ELEMENT_NODE){var l=d[0],m=h.localName.replace("_layer","");if(!this.c||gb(this.c,m)){m+="_feature";l.featureType=m;l.featureNS=this.g;var n={};n[m]=Tk(this.b.If,this.b);l=N([l.featureNS,null],n);h.setAttribute("namespaceURI",this.g);(h=
|
||||||
|
O([],l,h,d,this.b))&&jb(c,h)}}}"FeatureCollection"==e&&(d=O([],this.b.b,a,[{}],this.b))&&(c=d)}return c};function Ft(){this.g=new Zr}x(Ft,Yr);Ft.prototype.a=function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType==Node.ELEMENT_NODE)return this.b(a);return null};Ft.prototype.b=function(a){var b=a.getAttribute("version").trim(),c=this.g.b(a);if(!c)return null;c.version=b;return(c=O(c,Gt,a,[]))?c:null};function Ht(a){var b=V(a).split(" ");if(b&&2==b.length)return a=+b[0],b=+b[1],isNaN(a)||isNaN(b)?void 0:[a,b]}
|
||||||
|
var It=[null,"http://www.opengis.net/wmts/1.0"],Jt=[null,"http://www.opengis.net/ows/1.1"],Gt=N(It,{Contents:K(function(a,b){return O({},Kt,a,b)})}),Kt=N(It,{Layer:Vk(function(a,b){return O({},Lt,a,b)}),TileMatrixSet:Vk(function(a,b){return O({},Mt,a,b)})}),Lt=N(It,{Style:Vk(function(a,b){var c=O({},Nt,a,b);if(c){var d="true"===a.getAttribute("isDefault");c.isDefault=d;return c}}),Format:Vk(V),TileMatrixSetLink:Vk(function(a,b){return O({},Ot,a,b)}),Dimension:Vk(function(a,b){return O({},Pt,a,b)}),
|
||||||
|
ResourceURL:Vk(function(a){var b=a.getAttribute("format"),c=a.getAttribute("template");a=a.getAttribute("resourceType");var d={};b&&(d.format=b);c&&(d.template=c);a&&(d.resourceType=a);return d})},N(Jt,{Title:K(V),Abstract:K(V),WGS84BoundingBox:K(function(a,b){var c=O([],Qt,a,b);return 2!=c.length?void 0:Ib(c)}),Identifier:K(V)})),Nt=N(It,{LegendURL:Vk(function(a){var b={};b.format=a.getAttribute("format");b.href=Xr(a);return b})},N(Jt,{Title:K(V),Identifier:K(V)})),Ot=N(It,{TileMatrixSet:K(V)}),
|
||||||
|
Pt=N(It,{Default:K(V),Value:Vk(V)},N(Jt,{Identifier:K(V)})),Qt=N(Jt,{LowerCorner:Tk(Ht),UpperCorner:Tk(Ht)}),Mt=N(It,{WellKnownScaleSet:K(V),TileMatrix:Vk(function(a,b){return O({},Rt,a,b)})},N(Jt,{SupportedCRS:K(V),Identifier:K(V)})),Rt=N(It,{TopLeftCorner:K(Ht),ScaleDenominator:K(ao),TileWidth:K(co),TileHeight:K(co),MatrixWidth:K(co),MatrixHeight:K(co)},N(Jt,{Identifier:K(V)}));function St(a){bb.call(this);a=a||{};this.a=null;this.c=Rc;this.f=void 0;B(this,db("projection"),this.Nl,this);B(this,db("tracking"),this.Ol,this);void 0!==a.projection&&this.dh(zc(a.projection));void 0!==a.trackingOptions&&this.si(a.trackingOptions);this.ge(void 0!==a.tracking?a.tracking:!1)}x(St,bb);k=St.prototype;k.ka=function(){this.ge(!1);bb.prototype.ka.call(this)};k.Nl=function(){var a=this.ah();a&&(this.c=Cc(zc("EPSG:4326"),a),this.a&&this.set("position",this.c(this.a)))};
|
||||||
|
k.Ol=function(){if(dg){var a=this.bh();a&&void 0===this.f?this.f=pa.navigator.geolocation.watchPosition(this.qo.bind(this),this.ro.bind(this),this.Mg()):a||void 0===this.f||(pa.navigator.geolocation.clearWatch(this.f),this.f=void 0)}};
|
||||||
|
k.qo=function(a){a=a.coords;this.set("accuracy",a.accuracy);this.set("altitude",null===a.altitude?void 0:a.altitude);this.set("altitudeAccuracy",null===a.altitudeAccuracy?void 0:a.altitudeAccuracy);this.set("heading",null===a.heading?void 0:wa(a.heading));this.a?(this.a[0]=a.longitude,this.a[1]=a.latitude):this.a=[a.longitude,a.latitude];var b=this.c(this.a);this.set("position",b);this.set("speed",null===a.speed?void 0:a.speed);a=Bd($i,this.a,a.accuracy);a.rc(this.c);this.set("accuracyGeometry",a);
|
||||||
|
this.u()};k.ro=function(a){a.type="error";this.ge(!1);this.b(a)};k.Mj=function(){return this.get("accuracy")};k.Nj=function(){return this.get("accuracyGeometry")||null};k.Pj=function(){return this.get("altitude")};k.Qj=function(){return this.get("altitudeAccuracy")};k.Ll=function(){return this.get("heading")};k.Ml=function(){return this.get("position")};k.ah=function(){return this.get("projection")};k.wk=function(){return this.get("speed")};k.bh=function(){return this.get("tracking")};k.Mg=function(){return this.get("trackingOptions")};
|
||||||
|
k.dh=function(a){this.set("projection",a)};k.ge=function(a){this.set("tracking",a)};k.si=function(a){this.set("trackingOptions",a)};function Tt(a,b,c){Wc.call(this);this.Vf(a,b?b:0,c)}x(Tt,Wc);k=Tt.prototype;k.clone=function(){var a=new Tt(null),b=this.B.slice();Yc(a,this.f,b);a.u();return a};k.tb=function(a,b,c,d){var e=this.B;a-=e[0];var f=b-e[1];b=a*a+f*f;if(b<d){if(0===b)for(d=0;d<this.a;++d)c[d]=e[d];else for(d=this.wf()/Math.sqrt(b),c[0]=e[0]+d*a,c[1]=e[1]+d*f,d=2;d<this.a;++d)c[d]=e[d];c.length=this.a;return b}return d};k.Bc=function(a,b){var c=this.B,d=a-c[0],c=b-c[1];return d*d+c*c<=Ut(this)};
|
||||||
|
k.rd=function(){return this.B.slice(0,this.a)};k.Od=function(a){var b=this.B,c=b[this.a]-b[0];return Vb(b[0]-c,b[1]-c,b[0]+c,b[1]+c,a)};k.wf=function(){return Math.sqrt(Ut(this))};function Ut(a){var b=a.B[a.a]-a.B[0];a=a.B[a.a+1]-a.B[1];return b*b+a*a}k.Y=function(){return"Circle"};k.Ka=function(a){var b=this.H();return oc(a,b)?(b=this.rd(),a[0]<=b[0]&&a[2]>=b[0]||a[1]<=b[1]&&a[3]>=b[1]?!0:bc(a,this.sg,this)):!1};
|
||||||
|
k.jm=function(a){var b=this.a,c=this.B[b]-this.B[0],d=a.slice();d[b]=d[0]+c;for(c=1;c<b;++c)d[b+c]=a[c];Yc(this,this.f,d);this.u()};k.Vf=function(a,b,c){if(a){Zc(this,c,a,0);this.B||(this.B=[]);c=this.B;a=gd(c,a);c[a++]=c[0]+b;var d;b=1;for(d=this.a;b<d;++b)c[a++]=c[b];c.length=a}else Yc(this,"XY",null);this.u()};k.km=function(a){this.B[this.a]=this.B[0]+a;this.u()};function Vt(a,b,c){for(var d=[],e=a(0),f=a(1),g=b(e),h=b(f),l=[f,e],m=[h,g],n=[1,0],p={},q=1E5,r,v,y,w,G;0<--q&&0<n.length;)y=n.pop(),e=l.pop(),g=m.pop(),f=y.toString(),f in p||(d.push(g[0],g[1]),p[f]=!0),w=n.pop(),f=l.pop(),h=m.pop(),G=(y+w)/2,r=a(G),v=b(r),ua(v[0],v[1],g[0],g[1],h[0],h[1])<c?(d.push(h[0],h[1]),f=w.toString(),p[f]=!0):(n.push(w,G,G,y),m.push(h,v,v,g),l.push(f,r,r,e));return d}function Wt(a,b,c,d,e){var f=zc("EPSG:4326");return Vt(function(d){return[a,b+(c-b)*d]},Qc(f,d),e)}
|
||||||
|
function Xt(a,b,c,d,e){var f=zc("EPSG:4326");return Vt(function(d){return[b+(c-b)*d,a]},Qc(f,d),e)};function Yt(a){a=a||{};this.c=this.o=null;this.g=this.i=Infinity;this.f=this.l=-Infinity;this.A=this.U=Infinity;this.C=this.D=-Infinity;this.Aa=void 0!==a.targetSize?a.targetSize:100;this.S=void 0!==a.maxLines?a.maxLines:100;this.b=[];this.a=[];this.ya=void 0!==a.strokeStyle?a.strokeStyle:Zt;this.v=this.j=void 0;this.s=null;this.setMap(void 0!==a.map?a.map:null)}var Zt=new pj({color:"rgba(0,0,0,0.2)"}),$t=[90,45,30,20,10,5,2,1,.5,.2,.1,.05,.01,.005,.002,.001];
|
||||||
|
function au(a,b,c,d,e,f,g){var h=g;b=Wt(b,c,d,a.c,e);h=void 0!==a.b[h]?a.b[h]:new R(null);h.ba("XY",b);oc(h.H(),f)&&(a.b[g++]=h);return g}function bu(a,b,c,d,e){var f=e;b=Xt(b,a.f,a.g,a.c,c);f=void 0!==a.a[f]?a.a[f]:new R(null);f.ba("XY",b);oc(f.H(),d)&&(a.a[e++]=f);return e}k=Yt.prototype;k.Pl=function(){return this.o};k.ik=function(){return this.b};k.qk=function(){return this.a};
|
||||||
|
k.Rg=function(a){var b=a.vectorContext,c=a.frameState,d=c.extent;a=c.viewState;var e=a.center,f=a.projection,g=a.resolution;a=c.pixelRatio;a=g*g/(4*a*a);if(!this.c||!Pc(this.c,f)){var h=zc("EPSG:4326"),l=f.H(),m=f.i,n=Tc(m,h,f),p=m[2],q=m[1],r=m[0],v=n[3],y=n[2],w=n[1],n=n[0];this.i=m[3];this.g=p;this.l=q;this.f=r;this.U=v;this.A=y;this.D=w;this.C=n;this.j=Qc(h,f);this.v=Qc(f,h);this.s=this.v(lc(l));this.c=f}f.a&&(f=f.H(),h=jc(f),c=c.focus[0],c<f[0]||c>f[2])&&(c=h*Math.ceil((f[0]-c)/h),d=[d[0]+c,
|
||||||
|
d[1],d[2]+c,d[3]]);c=this.s[0];f=this.s[1];h=-1;m=Math.pow(this.Aa*g,2);p=[];q=[];g=0;for(l=$t.length;g<l;++g){r=$t[g]/2;p[0]=c-r;p[1]=f-r;q[0]=c+r;q[1]=f+r;this.j(p,p);this.j(q,q);r=Math.pow(q[0]-p[0],2)+Math.pow(q[1]-p[1],2);if(r<=m)break;h=$t[g]}g=h;if(-1==g)this.b.length=this.a.length=0;else{c=this.v(e);e=c[0];c=c[1];f=this.S;h=[Math.max(d[0],this.C),Math.max(d[1],this.D),Math.min(d[2],this.A),Math.min(d[3],this.U)];h=Tc(h,this.c,"EPSG:4326");m=h[3];q=h[1];e=Math.floor(e/g)*g;p=sa(e,this.f,this.g);
|
||||||
|
l=au(this,p,q,m,a,d,0);for(h=0;p!=this.f&&h++<f;)p=Math.max(p-g,this.f),l=au(this,p,q,m,a,d,l);p=sa(e,this.f,this.g);for(h=0;p!=this.g&&h++<f;)p=Math.min(p+g,this.g),l=au(this,p,q,m,a,d,l);this.b.length=l;c=Math.floor(c/g)*g;e=sa(c,this.l,this.i);l=bu(this,e,a,d,0);for(h=0;e!=this.l&&h++<f;)e=Math.max(e-g,this.l),l=bu(this,e,a,d,l);e=sa(c,this.l,this.i);for(h=0;e!=this.i&&h++<f;)e=Math.min(e+g,this.i),l=bu(this,e,a,d,l);this.a.length=l}b.Tb(null,this.ya);a=0;for(e=this.b.length;a<e;++a)g=this.b[a],
|
||||||
|
b.hd(g,null);a=0;for(e=this.a.length;a<e;++a)g=this.a[a],b.hd(g,null)};k.setMap=function(a){this.o&&(this.o.J("postcompose",this.Rg,this),this.o.render());a&&(a.I("postcompose",this.Rg,this),a.render());this.o=a};function cu(a,b,c,d,e,f,g){th.call(this,a,b,c,0,d);this.j=e;this.g=new Image;null!==f&&(this.g.crossOrigin=f);this.i={};this.c=null;this.state=0;this.o=g}x(cu,th);cu.prototype.a=function(a){if(void 0!==a){var b;a=t(a);if(a in this.i)return this.i[a];Ga(this.i)?b=this.g:b=this.g.cloneNode(!1);return this.i[a]=b}return this.g};cu.prototype.s=function(){this.state=3;this.c.forEach(Ka);this.c=null;uh(this)};
|
||||||
|
cu.prototype.v=function(){void 0===this.resolution&&(this.resolution=kc(this.extent)/this.g.height);this.state=2;this.c.forEach(Ka);this.c=null;uh(this)};cu.prototype.load=function(){if(0==this.state||3==this.state)this.state=1,uh(this),this.c=[Pa(this.g,"error",this.s,this),Pa(this.g,"load",this.v,this)],this.o(this,this.j)};function du(a,b,c,d,e){We.call(this,a,b);this.s=c;this.g=new Image;null!==d&&(this.g.crossOrigin=d);this.c={};this.j=null;this.v=e}x(du,We);k=du.prototype;k.ka=function(){1==this.state&&eu(this);this.a&&Ta(this.a);this.state=5;Xe(this);We.prototype.ka.call(this)};k.$a=function(a){if(void 0!==a){var b=t(a);if(b in this.c)return this.c[b];a=Ga(this.c)?this.g:this.g.cloneNode(!1);return this.c[b]=a}return this.g};k.jb=function(){return this.s};k.Ql=function(){this.state=3;eu(this);Xe(this)};
|
||||||
|
k.Rl=function(){this.state=this.g.naturalWidth&&this.g.naturalHeight?2:4;eu(this);Xe(this)};k.load=function(){if(0==this.state||3==this.state)this.state=1,Xe(this),this.j=[Pa(this.g,"error",this.Ql,this),Pa(this.g,"load",this.Rl,this)],this.v(this,this.s)};function eu(a){a.j.forEach(Ka);a.j=null};function fu(a){a=a?a:{};Xh.call(this,{handleEvent:rc});this.c=a.formatConstructors?a.formatConstructors:[];this.j=a.projection?zc(a.projection):null;this.a=null;this.target=a.target?a.target:null}x(fu,Xh);function gu(a){a=a.dataTransfer.files;var b,c,d;b=0;for(c=a.length;b<c;++b){d=a.item(b);var e=new FileReader;e.addEventListener("load",this.o.bind(this,d));e.readAsText(d)}}function hu(a){a.stopPropagation();a.preventDefault();a.dataTransfer.dropEffect="copy"}
|
||||||
|
fu.prototype.o=function(a,b){var c=b.target.result,d=this.v,e=this.j;e||(e=d.aa().l);var d=this.c,f=[],g,h;g=0;for(h=d.length;g<h;++g){var l=new d[g];var m={featureProjection:e};try{f=l.Fa(c,m)}catch(n){f=null}if(f&&0<f.length)break}this.b(new iu(ju,a,f,e))};fu.prototype.setMap=function(a){this.a&&(this.a.forEach(Ka),this.a=null);Xh.prototype.setMap.call(this,a);a&&(a=this.target?this.target:a.a,this.a=[B(a,"drop",gu,this),B(a,"dragenter",hu,this),B(a,"dragover",hu,this),B(a,"drop",hu,this)])};
|
||||||
|
var ju="addfeatures";function iu(a,b,c,d){Ua.call(this,a);this.features=c;this.file=b;this.projection=d}x(iu,Ua);function ku(a){a=a?a:{};li.call(this,{handleDownEvent:lu,handleDragEvent:mu,handleUpEvent:nu});this.s=a.condition?a.condition:hi;this.a=this.c=void 0;this.j=0;this.A=void 0!==a.duration?a.duration:400}x(ku,li);
|
||||||
|
function mu(a){if(ji(a)){var b=a.map,c=b.Za(),d=a.pixel;a=d[0]-c[0]/2;d=c[1]/2-d[1];c=Math.atan2(d,a);a=Math.sqrt(a*a+d*d);d=b.aa();b.render();if(void 0!==this.c){var e=c-this.c;Yh(b,d,d.La()-e)}this.c=c;void 0!==this.a&&(c=this.a*(d.$()/a),$h(b,d,c));void 0!==this.a&&(this.j=this.a/a);this.a=a}}
|
||||||
|
function nu(a){if(!ji(a))return!0;a=a.map;var b=a.aa();Ld(b,-1);var c=this.j-1,d=b.La(),d=b.constrainRotation(d,0);Yh(a,b,d,void 0,void 0);var d=b.$(),e=this.A,d=b.constrainResolution(d,0,c);$h(a,b,d,void 0,e);this.j=0;return!1}function lu(a){return ji(a)&&this.s(a)?(Ld(a.map.aa(),1),this.a=this.c=void 0,!0):!1};function ou(a,b){Ua.call(this,a);this.feature=b}x(ou,Ua);
|
||||||
|
function pu(a){li.call(this,{handleDownEvent:qu,handleEvent:ru,handleUpEvent:su});this.na=null;this.P=!1;this.Hc=a.source?a.source:null;this.cb=a.features?a.features:null;this.Cj=a.snapTolerance?a.snapTolerance:12;this.W=a.type;this.c=tu(this.W);this.Sa=a.minPoints?a.minPoints:this.c===uu?3:2;this.za=a.maxPoints?a.maxPoints:Infinity;this.Ne=a.finishCondition?a.finishCondition:rc;var b=a.geometryFunction;if(!b)if("Circle"===this.W)b=function(a,b){var c=b?b:new Tt([NaN,NaN]);c.Vf(a[0],Math.sqrt(Eb(a[0],
|
||||||
|
a[1])));return c};else{var c,b=this.c;b===vu?c=C:b===wu?c=R:b===uu&&(c=E);b=function(a,b){var f=b;f?f.ra(a):f=new c(a);return f}}this.C=b;this.T=this.A=this.a=this.S=this.j=this.s=null;this.Fj=a.clickTolerance?a.clickTolerance*a.clickTolerance:36;this.Ba=new I({source:new P({useSpatialIndex:!1,wrapX:a.wrapX?a.wrapX:!1}),style:a.style?a.style:xu()});this.rb=a.geometryName;this.Bj=a.condition?a.condition:gi;this.oa=a.freehandCondition?a.freehandCondition:hi;B(this,db("active"),this.yi,this)}x(pu,li);
|
||||||
|
function xu(){var a=xj();return function(b){return a[b.X().Y()]}}k=pu.prototype;k.setMap=function(a){li.prototype.setMap.call(this,a);this.yi()};function ru(a){this.c!==wu&&this.c!==uu||!this.oa(a)||(this.P=!0);var b=!this.P;this.P&&a.type===$g?(yu(this,a),b=!1):a.type===Zg?b=zu(this,a):a.type===Tg&&(b=!1);return mi.call(this,a)&&b}function qu(a){return this.Bj(a)?(this.na=a.pixel,!0):this.P?(this.na=a.pixel,this.s||Au(this,a),!0):!1}
|
||||||
|
function su(a){this.P=!1;var b=this.na,c=a.pixel,d=b[0]-c[0],b=b[1]-c[1],c=!0;d*d+b*b<=this.Fj&&(zu(this,a),this.s?this.c===Bu?this.jd():Cu(this,a)?this.Ne(a)&&this.jd():yu(this,a):(Au(this,a),this.c===vu&&this.jd()),c=!1);return c}
|
||||||
|
function zu(a,b){if(a.s){var c=b.coordinate,d=a.j.X(),e;a.c===vu?e=a.a:a.c===uu?(e=a.a[0],e=e[e.length-1],Cu(a,b)&&(c=a.s.slice())):(e=a.a,e=e[e.length-1]);e[0]=c[0];e[1]=c[1];a.C(a.a,d);a.S&&a.S.X().ra(c);d instanceof E&&a.c!==uu?(a.A||(a.A=new Ik(new R(null))),d=d.Hg(0),c=a.A.X(),c.ba(d.f,d.la())):a.T&&(c=a.A.X(),c.ra(a.T));Du(a)}else c=b.coordinate.slice(),a.S?a.S.X().ra(c):(a.S=new Ik(new C(c)),Du(a));return!0}
|
||||||
|
function Cu(a,b){var c=!1;if(a.j){var d=!1,e=[a.s];a.c===wu?d=a.a.length>a.Sa:a.c===uu&&(d=a.a[0].length>a.Sa,e=[a.a[0][0],a.a[0][a.a[0].length-2]]);if(d)for(var d=b.map,f=0,g=e.length;f<g;f++){var h=e[f],l=d.Ga(h),m=b.pixel,c=m[0]-l[0],l=m[1]-l[1],m=a.P&&a.oa(b)?1:a.Cj;if(c=Math.sqrt(c*c+l*l)<=m){a.s=h;break}}}return c}
|
||||||
|
function Au(a,b){var c=b.coordinate;a.s=c;a.c===vu?a.a=c.slice():a.c===uu?(a.a=[[c.slice(),c.slice()]],a.T=a.a[0]):(a.a=[c.slice(),c.slice()],a.c===Bu&&(a.T=a.a));a.T&&(a.A=new Ik(new R(a.T)));c=a.C(a.a);a.j=new Ik;a.rb&&a.j.Ec(a.rb);a.j.Ua(c);Du(a);a.b(new ou("drawstart",a.j))}
|
||||||
|
function yu(a,b){var c=b.coordinate,d=a.j.X(),e,f;if(a.c===wu)a.s=c.slice(),f=a.a,f.push(c.slice()),e=f.length>a.za,a.C(f,d);else if(a.c===uu){f=a.a[0];f.push(c.slice());if(e=f.length>a.za)a.s=f[0];a.C(a.a,d)}Du(a);e&&a.jd()}k.Qo=function(){var a=this.j.X(),b,c;this.c===wu?(b=this.a,b.splice(-2,1),this.C(b,a)):this.c===uu&&(b=this.a[0],b.splice(-2,1),c=this.A.X(),c.ra(b),this.C(this.a,a));0===b.length&&(this.s=null);Du(this)};
|
||||||
|
k.jd=function(){var a=Eu(this),b=this.a,c=a.X();this.c===wu?(b.pop(),this.C(b,c)):this.c===uu&&(b[0].pop(),b[0].push(b[0][0]),this.C(b,c));"MultiPoint"===this.W?a.Ua(new T([b])):"MultiLineString"===this.W?a.Ua(new S([b])):"MultiPolygon"===this.W&&a.Ua(new U([b]));this.b(new ou("drawend",a));this.cb&&this.cb.push(a);this.Hc&&this.Hc.sb(a)};function Eu(a){a.s=null;var b=a.j;b&&(a.j=null,a.S=null,a.A=null,a.Ba.ha().clear(!0));return b}
|
||||||
|
k.rm=function(a){var b=a.X();this.j=a;this.a=b.Z();a=this.a[this.a.length-1];this.s=a.slice();this.a.push(a.slice());Du(this);this.b(new ou("drawstart",this.j))};k.Gc=sc;function Du(a){var b=[];a.j&&b.push(a.j);a.A&&b.push(a.A);a.S&&b.push(a.S);a=a.Ba.ha();a.clear(!0);a.Jc(b)}k.yi=function(){var a=this.v,b=this.f();a&&b||Eu(this);this.Ba.setMap(b?a:null)};
|
||||||
|
function tu(a){var b;"Point"===a||"MultiPoint"===a?b=vu:"LineString"===a||"MultiLineString"===a?b=wu:"Polygon"===a||"MultiPolygon"===a?b=uu:"Circle"===a&&(b=Bu);return b}var vu="Point",wu="LineString",uu="Polygon",Bu="Circle";function Fu(a,b,c){Ua.call(this,a);this.features=b;this.mapBrowserEvent=c}x(Fu,Ua);
|
||||||
|
function Gu(a){li.call(this,{handleDownEvent:Hu,handleDragEvent:Iu,handleEvent:Ju,handleUpEvent:Ku});this.rb=a.condition?a.condition:ki;this.Sa=function(a){return gi(a)&&fi(a)};this.cb=a.deleteCondition?a.deleteCondition:this.Sa;this.za=this.c=null;this.Ba=[0,0];this.C=this.T=!1;this.a=new kl;this.S=void 0!==a.pixelTolerance?a.pixelTolerance:10;this.s=this.oa=!1;this.j=[];this.P=new I({source:new P({useSpatialIndex:!1,wrapX:!!a.wrapX}),style:a.style?a.style:Lu(),updateWhileAnimating:!0,updateWhileInteracting:!0});
|
||||||
|
this.na={Point:this.ym,LineString:this.kh,LinearRing:this.kh,Polygon:this.zm,MultiPoint:this.wm,MultiLineString:this.vm,MultiPolygon:this.xm,GeometryCollection:this.um};this.A=a.features;this.A.forEach(this.xf,this);B(this.A,"add",this.sm,this);B(this.A,"remove",this.tm,this);this.W=null}x(Gu,li);k=Gu.prototype;k.xf=function(a){var b=a.X();b.Y()in this.na&&this.na[b.Y()].call(this,a,b);(b=this.v)&&Mu(this,this.Ba,b);B(a,"change",this.jh,this)};
|
||||||
|
function Nu(a,b){a.C||(a.C=!0,a.b(new Fu("modifystart",a.A,b)))}function Ou(a,b){Pu(a,b);a.c&&0===a.A.dc()&&(a.P.ha().ob(a.c),a.c=null);Qa(b,"change",a.jh,a)}function Pu(a,b){var c=a.a,d=[];c.forEach(function(a){b===a.feature&&d.push(a)});for(var e=d.length-1;0<=e;--e)c.remove(d[e])}k.setMap=function(a){this.P.setMap(a);li.prototype.setMap.call(this,a)};k.sm=function(a){this.xf(a.element)};k.jh=function(a){this.s||(a=a.target,Ou(this,a),this.xf(a))};k.tm=function(a){Ou(this,a.element)};
|
||||||
|
k.ym=function(a,b){var c=b.Z(),c={feature:a,geometry:b,pa:[c,c]};this.a.Ca(b.H(),c)};k.wm=function(a,b){var c=b.Z(),d,e,f;e=0;for(f=c.length;e<f;++e)d=c[e],d={feature:a,geometry:b,depth:[e],index:e,pa:[d,d]},this.a.Ca(b.H(),d)};k.kh=function(a,b){var c=b.Z(),d,e,f,g;d=0;for(e=c.length-1;d<e;++d)f=c.slice(d,d+2),g={feature:a,geometry:b,index:d,pa:f},this.a.Ca(Ib(f),g)};
|
||||||
|
k.vm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,geometry:b,depth:[g],index:e,pa:l},this.a.Ca(Ib(l),m)};k.zm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,geometry:b,depth:[g],index:e,pa:l},this.a.Ca(Ib(l),m)};
|
||||||
|
k.xm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m,n,p,q;l=0;for(m=c.length;l<m;++l)for(n=c[l],g=0,h=n.length;g<h;++g)for(d=n[g],e=0,f=d.length-1;e<f;++e)p=d.slice(e,e+2),q={feature:a,geometry:b,depth:[g,l],index:e,pa:p},this.a.Ca(Ib(p),q)};k.um=function(a,b){var c,d=b.c;for(c=0;c<d.length;++c)this.na[d[c].Y()].call(this,a,d[c])};function Qu(a,b){var c=a.c;c?c.X().ra(b):(c=new Ik(new C(b)),a.c=c,a.P.ha().sb(c))}function Ru(a,b){return a.index-b.index}
|
||||||
|
function Hu(a){if(!this.rb(a))return!1;Mu(this,a.pixel,a.map);this.j.length=0;this.C=!1;var b=this.c;if(b){var c=[],b=b.X().Z(),d=Ib([b]),d=nl(this.a,d),e={};d.sort(Ru);for(var f=0,g=d.length;f<g;++f){var h=d[f],l=h.pa,m=t(h.feature),n=h.depth;n&&(m+="-"+n.join("-"));e[m]||(e[m]=Array(2));if(Cb(l[0],b)&&!e[m][0])this.j.push([h,0]),e[m][0]=h;else if(Cb(l[1],b)&&!e[m][1]){if("LineString"!==h.geometry.Y()&&"MultiLineString"!==h.geometry.Y()||!e[m][0]||0!==e[m][0].index)this.j.push([h,1]),e[m][1]=h}else t(l)in
|
||||||
|
this.za&&!e[m][0]&&!e[m][1]&&c.push([h,b])}c.length&&Nu(this,a);for(a=c.length-1;0<=a;--a)this.nl.apply(this,c[a])}return!!this.c}
|
||||||
|
function Iu(a){this.T=!1;Nu(this,a);a=a.coordinate;for(var b=0,c=this.j.length;b<c;++b){for(var d=this.j[b],e=d[0],f=e.depth,g=e.geometry,h=g.Z(),l=e.pa,d=d[1];a.length<g.va();)a.push(0);switch(g.Y()){case "Point":h=a;l[0]=l[1]=a;break;case "MultiPoint":h[e.index]=a;l[0]=l[1]=a;break;case "LineString":h[e.index+d]=a;l[d]=a;break;case "MultiLineString":h[f[0]][e.index+d]=a;l[d]=a;break;case "Polygon":h[f[0]][e.index+d]=a;l[d]=a;break;case "MultiPolygon":h[f[1]][f[0]][e.index+d]=a,l[d]=a}e=g;this.s=
|
||||||
|
!0;e.ra(h);this.s=!1}Qu(this,a)}function Ku(a){for(var b,c=this.j.length-1;0<=c;--c)b=this.j[c][0],ll(this.a,Ib(b.pa),b);this.C&&(this.b(new Fu("modifyend",this.A,a)),this.C=!1);return!1}function Ju(a){if(!(a instanceof Pg))return!0;this.W=a;var b;Gd(a.map.aa())[1]||a.type!=Zg||this.D||(this.Ba=a.pixel,Mu(this,a.pixel,a.map));this.c&&this.cb(a)&&(a.type==Ug&&this.T?b=!0:(this.c.X(),b=this.ai()));a.type==Ug&&(this.T=!1);return mi.call(this,a)&&!b}
|
||||||
|
function Mu(a,b,c){function d(a,b){return Fb(e,a.pa)-Fb(e,b.pa)}var e=c.Ma(b),f=c.Ma([b[0]-a.S,b[1]+a.S]),g=c.Ma([b[0]+a.S,b[1]-a.S]),f=Ib([f,g]),f=nl(a.a,f);if(0<f.length){f.sort(d);var g=f[0].pa,h=zb(e,g),l=c.Ga(h);if(Math.sqrt(Eb(b,l))<=a.S){b=c.Ga(g[0]);c=c.Ga(g[1]);b=Eb(l,b);c=Eb(l,c);a.oa=Math.sqrt(Math.min(b,c))<=a.S;a.oa&&(h=b>c?g[1]:g[0]);Qu(a,h);c={};c[t(g)]=!0;b=1;for(l=f.length;b<l;++b)if(h=f[b].pa,Cb(g[0],h[0])&&Cb(g[1],h[1])||Cb(g[0],h[1])&&Cb(g[1],h[0]))c[t(h)]=!0;else break;a.za=c;
|
||||||
|
return}}a.c&&(a.P.ha().ob(a.c),a.c=null)}
|
||||||
|
k.nl=function(a,b){for(var c=a.pa,d=a.feature,e=a.geometry,f=a.depth,g=a.index,h;b.length<e.va();)b.push(0);switch(e.Y()){case "MultiLineString":h=e.Z();h[f[0]].splice(g+1,0,b);break;case "Polygon":h=e.Z();h[f[0]].splice(g+1,0,b);break;case "MultiPolygon":h=e.Z();h[f[1]][f[0]].splice(g+1,0,b);break;case "LineString":h=e.Z();h.splice(g+1,0,b);break;default:return}this.s=!0;e.ra(h);this.s=!1;h=this.a;h.remove(a);Su(this,e,g,f,1);var l={pa:[c[0],b],feature:d,geometry:e,depth:f,index:g};h.Ca(Ib(l.pa),
|
||||||
|
l);this.j.push([l,1]);c={pa:[b,c[1]],feature:d,geometry:e,depth:f,index:g+1};h.Ca(Ib(c.pa),c);this.j.push([c,0]);this.T=!0};
|
||||||
|
k.ai=function(){var a=!1;if(this.W&&this.W.type!=$g){var b=this.W;Nu(this,b);var c=this.j,a={},d=!1,e,f,g,h,l,m,n,p;for(h=c.length-1;0<=h;--h)g=c[h],n=g[0],p=t(n.feature),n.depth&&(p+="-"+n.depth.join("-")),p in a||(a[p]={}),0===g[1]?(a[p].right=n,a[p].index=n.index):1==g[1]&&(a[p].left=n,a[p].index=n.index+1);for(p in a){m=a[p].right;h=a[p].left;g=a[p].index;l=g-1;n=void 0!==h?h:m;0>l&&(l=0);c=n.geometry;e=f=c.Z();d=!1;switch(c.Y()){case "MultiLineString":2<f[n.depth[0]].length&&(f[n.depth[0]].splice(g,
|
||||||
|
1),d=!0);break;case "LineString":2<f.length&&(f.splice(g,1),d=!0);break;case "MultiPolygon":e=e[n.depth[1]];case "Polygon":e=e[n.depth[0]],4<e.length&&(g==e.length-1&&(g=0),e.splice(g,1),d=!0,0===g&&(e.pop(),e.push(e[0]),l=e.length-1))}d&&(e=c,this.s=!0,e.ra(f),this.s=!1,f=[],void 0!==h&&(this.a.remove(h),f.push(h.pa[0])),void 0!==m&&(this.a.remove(m),f.push(m.pa[1])),void 0!==h&&void 0!==m&&(h={depth:n.depth,feature:n.feature,geometry:n.geometry,index:l,pa:f},this.a.Ca(Ib(h.pa),h)),Su(this,c,g,n.depth,
|
||||||
|
-1),this.c&&(this.P.ha().ob(this.c),this.c=null))}a=d;this.b(new Fu("modifyend",this.A,b));this.C=!1}return a};function Su(a,b,c,d,e){ql(a.a,b.H(),function(a){a.geometry===b&&(void 0===d||void 0===a.depth||mb(a.depth,d))&&a.index>c&&(a.index+=e)})}function Lu(){var a=xj();return function(){return a.Point}};function Tu(a,b,c,d){Ua.call(this,a);this.selected=b;this.deselected=c;this.mapBrowserEvent=d}x(Tu,Ua);
|
||||||
|
function Uu(a){Xh.call(this,{handleEvent:Vu});var b=a?a:{};this.D=b.condition?b.condition:fi;this.A=b.addCondition?b.addCondition:sc;this.C=b.removeCondition?b.removeCondition:sc;this.S=b.toggleCondition?b.toggleCondition:hi;this.j=b.multi?b.multi:!1;this.o=b.filter?b.filter:rc;this.c=new I({source:new P({useSpatialIndex:!1,features:b.features,wrapX:b.wrapX}),style:b.style?b.style:Wu(),updateWhileAnimating:!0,updateWhileInteracting:!0});if(b.layers)if("function"===typeof b.layers)a=function(a){return b.layers(a)};
|
||||||
|
else{var c=b.layers;a=function(a){return gb(c,a)}}else a=rc;this.s=a;this.a={};a=this.c.ha().c;B(a,"add",this.Am,this);B(a,"remove",this.Dm,this)}x(Uu,Xh);k=Uu.prototype;k.Bm=function(){return this.c.ha().c};k.Cm=function(a){a=t(a);return this.a[a]};
|
||||||
|
function Vu(a){if(!this.D(a))return!0;var b=this.A(a),c=this.C(a),d=this.S(a),e=!b&&!c&&!d,f=a.map,g=this.c.ha().c,h=[],l=[];if(e)Da(this.a),f.kd(a.pixel,function(a,b){if(this.o(a,b)){l.push(a);var c=t(a);this.a[c]=b;return!this.j}},this,this.s),0<l.length&&1==g.dc()&&g.item(0)==l[0]?l.length=0:(0!==g.dc()&&(h=Array.prototype.concat(g.a),g.clear()),g.qf(l));else{f.kd(a.pixel,function(a,e){if(this.o(a,e)){if(!b&&!d||gb(g.a,a))(c||d)&&gb(g.a,a)&&(h.push(a),f=t(a),delete this.a[f]);else{l.push(a);var f=
|
||||||
|
t(a);this.a[f]=e}return!this.j}},this,this.s);for(e=h.length-1;0<=e;--e)g.remove(h[e]);g.qf(l)}(0<l.length||0<h.length)&&this.b(new Tu("select",l,h,a));return ei(a)}k.setMap=function(a){var b=this.v,c=this.c.ha().c;b&&c.forEach(b.wi,b);Xh.prototype.setMap.call(this,a);this.c.setMap(a);a&&c.forEach(a.ti,a)};function Wu(){var a=xj();jb(a.Polygon,a.LineString);jb(a.GeometryCollection,a.LineString);return function(b){return a[b.X().Y()]}}k.Am=function(a){a=a.element;var b=this.v;b&&b.ti(a)};
|
||||||
|
k.Dm=function(a){a=a.element;var b=this.v;b&&b.wi(a)};function Xu(a){li.call(this,{handleEvent:Yu,handleDownEvent:rc,handleUpEvent:Zu});a=a?a:{};this.s=a.source?a.source:null;this.Ba=void 0!==a.vertex?a.vertex:!0;this.T=void 0!==a.edge?a.edge:!0;this.j=a.features?a.features:null;this.oa=[];this.C={};this.S={};this.W={};this.A={};this.P=null;this.c=void 0!==a.pixelTolerance?a.pixelTolerance:10;this.za=$u.bind(this);this.a=new kl;this.na={Point:this.Jm,LineString:this.nh,LinearRing:this.nh,Polygon:this.Km,MultiPoint:this.Hm,MultiLineString:this.Gm,MultiPolygon:this.Im,
|
||||||
|
GeometryCollection:this.Fm}}x(Xu,li);k=Xu.prototype;k.sb=function(a,b){var c=void 0!==b?b:!0,d=t(a),e=a.X();if(e){var f=this.na[e.Y()];f&&(this.W[d]=e.H(Jb()),f.call(this,a,e),c&&(this.S[d]=B(e,"change",this.Kk.bind(this,a),this)))}c&&(this.C[d]=B(a,db(a.a),this.Em,this))};k.Jj=function(a){this.sb(a)};k.Kj=function(a){this.ob(a)};k.lh=function(a){var b;a instanceof vl?b=a.feature:a instanceof ae&&(b=a.element);this.sb(b)};
|
||||||
|
k.mh=function(a){var b;a instanceof vl?b=a.feature:a instanceof ae&&(b=a.element);this.ob(b)};k.Em=function(a){a=a.target;this.ob(a,!0);this.sb(a,!0)};k.Kk=function(a){if(this.D){var b=t(a);b in this.A||(this.A[b]=a)}else this.xi(a)};k.ob=function(a,b){var c=void 0!==b?b:!0,d=t(a),e=this.W[d];if(e){var f=this.a,g=[];ql(f,e,function(b){a===b.feature&&g.push(b)});for(e=g.length-1;0<=e;--e)f.remove(g[e]);c&&($a(this.S[d]),delete this.S[d])}c&&($a(this.C[d]),delete this.C[d])};
|
||||||
|
k.setMap=function(a){var b=this.v,c=this.oa,d;this.j?d=this.j:this.s&&(d=this.s.oe());b&&(c.forEach($a),c.length=0,d.forEach(this.Kj,this));li.prototype.setMap.call(this,a);a&&(this.j?c.push(B(this.j,"add",this.lh,this),B(this.j,"remove",this.mh,this)):this.s&&c.push(B(this.s,"addfeature",this.lh,this),B(this.s,"removefeature",this.mh,this)),d.forEach(this.Jj,this))};k.Gc=sc;k.xi=function(a){this.ob(a,!1);this.sb(a,!1)};
|
||||||
|
k.Fm=function(a,b){var c,d=b.c;for(c=0;c<d.length;++c)this.na[d[c].Y()].call(this,a,d[c])};k.nh=function(a,b){var c=b.Z(),d,e,f,g;d=0;for(e=c.length-1;d<e;++d)f=c.slice(d,d+2),g={feature:a,pa:f},this.a.Ca(Ib(f),g)};k.Gm=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,pa:l},this.a.Ca(Ib(l),m)};k.Hm=function(a,b){var c=b.Z(),d,e,f;e=0;for(f=c.length;e<f;++e)d=c[e],d={feature:a,pa:[d,d]},this.a.Ca(b.H(),d)};
|
||||||
|
k.Im=function(a,b){var c=b.Z(),d,e,f,g,h,l,m,n,p,q;l=0;for(m=c.length;l<m;++l)for(n=c[l],g=0,h=n.length;g<h;++g)for(d=n[g],e=0,f=d.length-1;e<f;++e)p=d.slice(e,e+2),q={feature:a,pa:p},this.a.Ca(Ib(p),q)};k.Jm=function(a,b){var c=b.Z(),c={feature:a,pa:[c,c]};this.a.Ca(b.H(),c)};k.Km=function(a,b){var c=b.Z(),d,e,f,g,h,l,m;g=0;for(h=c.length;g<h;++g)for(d=c[g],e=0,f=d.length-1;e<f;++e)l=d.slice(e,e+2),m={feature:a,pa:l},this.a.Ca(Ib(l),m)};
|
||||||
|
function Yu(a){var b,c,d=a.pixel,e=a.coordinate;b=a.map;var f=b.Ma([d[0]-this.c,d[1]+this.c]);c=b.Ma([d[0]+this.c,d[1]-this.c]);var f=Ib([f,c]),g=nl(this.a,f),h,f=!1,l=null;c=null;if(0<g.length){this.P=e;g.sort(this.za);g=g[0].pa;if(this.Ba&&!this.T){if(e=b.Ga(g[0]),h=b.Ga(g[1]),e=Eb(d,e),d=Eb(d,h),h=Math.sqrt(Math.min(e,d)),h=h<=this.c)f=!0,l=e>d?g[1]:g[0],c=b.Ga(l)}else this.T&&(l=zb(e,g),c=b.Ga(l),Math.sqrt(Eb(d,c))<=this.c&&(f=!0,this.Ba&&(e=b.Ga(g[0]),h=b.Ga(g[1]),e=Eb(c,e),d=Eb(c,h),h=Math.sqrt(Math.min(e,
|
||||||
|
d)),h=h<=this.c)))&&(l=e>d?g[1]:g[0],c=b.Ga(l));f&&(c=[Math.round(c[0]),Math.round(c[1])])}b=l;f&&(a.coordinate=b.slice(0,2),a.pixel=c);return mi.call(this,a)}function Zu(){var a=Ea(this.A);a.length&&(a.forEach(this.xi,this),this.A={});return!1}function $u(a,b){return Fb(this.P,a.pa)-Fb(this.P,b.pa)};function av(a,b,c){Ua.call(this,a);this.features=b;this.coordinate=c}x(av,Ua);function bv(a){li.call(this,{handleDownEvent:cv,handleDragEvent:dv,handleMoveEvent:ev,handleUpEvent:fv});this.s=void 0;this.a=null;this.c=void 0!==a.features?a.features:null;var b;if(a.layers)if("function"===typeof a.layers)b=function(b){return a.layers(b)};else{var c=a.layers;b=function(a){return gb(c,a)}}else b=rc;this.A=b;this.j=null}x(bv,li);
|
||||||
|
function cv(a){this.j=gv(this,a.pixel,a.map);return!this.a&&this.j?(this.a=a.coordinate,ev.call(this,a),this.b(new av("translatestart",this.c,a.coordinate)),!0):!1}function fv(a){return this.a?(this.a=null,ev.call(this,a),this.b(new av("translateend",this.c,a.coordinate)),!0):!1}
|
||||||
|
function dv(a){if(this.a){a=a.coordinate;var b=a[0]-this.a[0],c=a[1]-this.a[1];if(this.c)this.c.forEach(function(a){var d=a.X();d.Sc(b,c);a.Ua(d)});else if(this.j){var d=this.j.X();d.Sc(b,c);this.j.Ua(d)}this.a=a;this.b(new av("translating",this.c,a))}}
|
||||||
|
function ev(a){var b=a.map.yc();if(a=a.map.kd(a.pixel,function(a){return a})){var c=!1;this.c&&gb(this.c.a,a)&&(c=!0);this.s=b.style.cursor;b.style.cursor=this.a?"-webkit-grabbing":c?"-webkit-grab":"pointer";b.style.cursor=this.a?c?"grab":"pointer":"grabbing"}else b.style.cursor=void 0!==this.s?this.s:"",this.s=void 0}function gv(a,b,c){var d=null;b=c.kd(b,function(a){return a},a,a.A);a.c&&gb(a.c.a,b)&&(d=b);return d};function W(a){a=a?a:{};var b=Ca({},a);delete b.gradient;delete b.radius;delete b.blur;delete b.shadow;delete b.weight;I.call(this,b);this.f=null;this.ia=void 0!==a.shadow?a.shadow:250;this.W=void 0;this.c=null;B(this,db("gradient"),this.Lk,this);this.ii(a.gradient?a.gradient:hv);this.di(void 0!==a.blur?a.blur:15);this.qh(void 0!==a.radius?a.radius:8);B(this,db("blur"),this.lf,this);B(this,db("radius"),this.lf,this);this.lf();var c=a.weight?a.weight:"weight",d;"string"===typeof c?d=function(a){return a.get(c)}:
|
||||||
|
d=c;this.l(function(a){a=d(a);a=void 0!==a?sa(a,0,1):1;var b=255*a|0,c=this.c[b];c||(c=[new sj({image:new Fh({opacity:a,src:this.W})})],this.c[b]=c);return c}.bind(this));this.set("renderOrder",null);B(this,"render",this.dl,this)}x(W,I);var hv=["#00f","#0ff","#0f0","#ff0","#f00"];k=W.prototype;k.zg=function(){return this.get("blur")};k.Gg=function(){return this.get("gradient")};k.ph=function(){return this.get("radius")};
|
||||||
|
k.Lk=function(){for(var a=this.Gg(),b=Ge(1,256),c=b.createLinearGradient(0,0,1,256),d=1/(a.length-1),e=0,f=a.length;e<f;++e)c.addColorStop(e*d,a[e]);b.fillStyle=c;b.fillRect(0,0,1,256);this.f=b.getImageData(0,0,1,256).data};k.lf=function(){var a=this.ph(),b=this.zg(),c=a+b+1,d=2*c,d=Ge(d,d);d.shadowOffsetX=d.shadowOffsetY=this.ia;d.shadowBlur=b;d.shadowColor="#000";d.beginPath();b=c-this.ia;d.arc(b,b,a,0,2*Math.PI,!0);d.fill();this.W=d.canvas.toDataURL();this.c=Array(256);this.u()};
|
||||||
|
k.dl=function(a){a=a.context;var b=a.canvas,b=a.getImageData(0,0,b.width,b.height),c=b.data,d,e,f;d=0;for(e=c.length;d<e;d+=4)if(f=4*c[d+3])c[d]=this.f[f],c[d+1]=this.f[f+1],c[d+2]=this.f[f+2];a.putImageData(b,0,0)};k.di=function(a){this.set("blur",a)};k.ii=function(a){this.set("gradient",a)};k.qh=function(a){this.set("radius",a)};function iv(a,b,c,d){function e(){delete pa[g];f.parentNode.removeChild(f)}var f=pa.document.createElement("script"),g="olc_"+t(b);f.async=!0;f.src=a+(-1==a.indexOf("?")?"?":"&")+(d||"callback")+"="+g;var h=pa.setTimeout(function(){e();c&&c()},1E4);pa[g]=function(a){pa.clearTimeout(h);e();b(a)};pa.document.getElementsByTagName("head")[0].appendChild(f)};function jv(a,b,c,d,e,f,g,h,l,m,n){We.call(this,e,0);this.S=void 0!==n?n:!1;this.C=g;this.D=h;this.l=null;this.c={};this.j=b;this.v=d;this.U=f?f:e;this.g=[];this.Wc=null;this.s=0;f=d.Ea(this.U);h=this.v.H();e=this.j.H();f=h?nc(f,h):f;if(0===hc(f))this.state=4;else if((h=a.H())&&(e?e=nc(e,h):e=h),d=d.$(this.U[0]),d=tk(a,c,lc(f),d),!isFinite(d)||0>=d)this.state=4;else if(this.A=new wk(a,c,f,e,d*(void 0!==m?m:.5)),0===this.A.f.length)this.state=4;else if(this.s=b.Lb(d),c=yk(this.A),e&&(a.a?(c[1]=sa(c[1],
|
||||||
|
e[1],e[3]),c[3]=sa(c[3],e[1],e[3])):c=nc(c,e)),hc(c))if(a=gf(b,c,this.s),100>(a.ea-a.ca+1)*(a.ga-a.fa+1)){for(b=a.ca;b<=a.ea;b++)for(c=a.fa;c<=a.ga;c++)(m=l(this.s,b,c,g))&&this.g.push(m);0===this.g.length&&(this.state=4)}else this.state=3;else this.state=4}x(jv,We);jv.prototype.ka=function(){1==this.state&&(this.Wc.forEach(Ka),this.Wc=null);We.prototype.ka.call(this)};
|
||||||
|
jv.prototype.$a=function(a){if(void 0!==a){var b=t(a);if(b in this.c)return this.c[b];a=Ga(this.c)?this.l:this.l.cloneNode(!1);return this.c[b]=a}return this.l};
|
||||||
|
jv.prototype.zd=function(){var a=[];this.g.forEach(function(b){b&&2==b.V()&&a.push({extent:this.j.Ea(b.ma),image:b.$a()})},this);this.g.length=0;if(0===a.length)this.state=3;else{var b=this.U[0],c=this.v.Ja(b),d="number"===typeof c?c:c[0],c="number"===typeof c?c:c[1],b=this.v.$(b),e=this.j.$(this.s),f=this.v.Ea(this.U);this.l=vk(d,c,this.C,e,this.j.H(),b,f,this.A,a,this.D,this.S);this.state=2}Xe(this)};
|
||||||
|
jv.prototype.load=function(){if(0==this.state){this.state=1;Xe(this);var a=0;this.Wc=[];this.g.forEach(function(b){var c=b.V();if(0==c||1==c){a++;var d;d=B(b,"change",function(){var c=b.V();if(2==c||3==c||4==c)Ka(d),a--,0===a&&(this.Wc.forEach(Ka),this.Wc=null,this.zd())},this);this.Wc.push(d)}},this);this.g.forEach(function(a){0==a.V()&&a.load()});0===a&&pa.setTimeout(this.zd.bind(this),0)}};function X(a){Jl.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,extent:a.extent,logo:a.logo,opaque:a.opaque,projection:a.projection,state:a.state,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction?a.tileLoadFunction:kv,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,wrapX:a.wrapX});this.crossOrigin=void 0!==a.crossOrigin?a.crossOrigin:null;this.tileClass=void 0!==a.tileClass?a.tileClass:du;this.i={};this.s={};this.na=a.reprojectionErrorThreshold;
|
||||||
|
this.D=!1}x(X,Jl);k=X.prototype;k.Ah=function(){if(Ve(this.a))return!0;for(var a in this.i)if(Ve(this.i[a]))return!0;return!1};k.Lc=function(a,b){var c=this.pd(a);this.a.Lc(this.a==c?b:{});for(var d in this.i){var e=this.i[d];e.Lc(e==c?b:{})}};k.Ud=function(a){return this.f&&a&&!Pc(this.f,a)?0:this.gf()};k.gf=function(){return 0};k.jf=function(a){return this.f&&a&&!Pc(this.f,a)?!1:Jl.prototype.jf.call(this,a)};
|
||||||
|
k.fb=function(a){var b=this.f;return!this.tileGrid||b&&!Pc(b,a)?(b=t(a).toString(),b in this.s||(this.s[b]=nf(a)),this.s[b]):this.tileGrid};k.pd=function(a){var b=this.f;if(!b||Pc(b,a))return this.a;a=t(a).toString();a in this.i||(this.i[a]=new Ue);return this.i[a]};function lv(a,b,c,d,e,f,g){b=[b,c,d];e=(c=vf(a,b,f))?a.tileUrlFunction(c,e,f):void 0;e=new a.tileClass(b,void 0!==e?0:4,void 0!==e?e:"",a.crossOrigin,a.tileLoadFunction);e.key=g;B(e,"change",a.Bh,a);return e}
|
||||||
|
k.bc=function(a,b,c,d,e){if(this.f&&e&&!Pc(this.f,e)){var f=this.pd(e);c=[a,b,c];var g;a=this.Fb.apply(this,c);Re(f,a)&&(g=f.get(a));b=this.Mb;if(g&&g.key==b)return g;var h=this.f,l=this.fb(h),m=this.fb(e),n=vf(this,c,e);d=new jv(h,l,e,m,c,n,this.cc(d),this.gf(),function(a,b,c,d){return mv(this,a,b,c,d,h)}.bind(this),this.na,this.D);d.key=b;g?(d.a=g,f.replace(a,d)):f.set(a,d);return d}return mv(this,a,b,c,d,e)};
|
||||||
|
function mv(a,b,c,d,e,f){var g,h=a.Fb(b,c,d),l=a.Mb;if(Re(a.a,h)){if(g=a.a.get(h),g.key!=l){var m=g;g.a&&g.a.key==l?(g=g.a,2==m.V()&&(g.a=m)):(g=lv(a,b,c,d,e,f,l),2==m.V()?g.a=m:m.a&&2==m.a.V()&&(g.a=m.a,m.a=null));g.a&&(g.a.a=null);a.a.replace(h,g)}}else g=lv(a,b,c,d,e,f,l),a.a.set(h,g);return g}k.Ab=function(a){if(this.D!=a){this.D=a;for(var b in this.i)this.i[b].clear();this.u()}};k.Bb=function(a,b){var c=zc(a);c&&(c=t(c).toString(),c in this.s||(this.s[c]=b))};function kv(a,b){a.$a().src=b};function nv(a){X.call(this,{cacheSize:a.cacheSize,crossOrigin:"anonymous",opaque:!0,projection:zc("EPSG:3857"),reprojectionErrorThreshold:a.reprojectionErrorThreshold,state:"loading",tileLoadFunction:a.tileLoadFunction,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.j=void 0!==a.culture?a.culture:"en-us";this.c=void 0!==a.maxZoom?a.maxZoom:-1;iv("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+a.imagerySet+"?uriScheme=https&include=ImageryProviders&key="+a.key,this.v.bind(this),void 0,"jsonp")}
|
||||||
|
x(nv,X);var ov=new $d({html:'<a class="ol-attribution-bing-tos" href="http://www.microsoft.com/maps/product/terms.html">Terms of Use</a>'});
|
||||||
|
nv.prototype.v=function(a){if(200!=a.statusCode||"OK"!=a.statusDescription||"ValidCredentials"!=a.authenticationResultCode||1!=a.resourceSets.length||1!=a.resourceSets[0].resources.length)cf(this,"error");else{var b=a.brandLogoUri;-1==b.indexOf("https")&&(b=b.replace("http","https"));var c=a.resourceSets[0].resources[0],d=-1==this.c?c.zoomMax:this.c;a=of(this.f);var e=qf({extent:a,minZoom:c.zoomMin,maxZoom:d,tileSize:c.imageWidth==c.imageHeight?c.imageWidth:[c.imageWidth,c.imageHeight]});this.tileGrid=
|
||||||
|
e;var f=this.j;this.tileUrlFunction=Gl(c.imageUrlSubdomains.map(function(a){var b=[0,0,0],d=c.imageUrl.replace("{subdomain}",a).replace("{culture}",f);return function(a){if(a)return Se(a[0],a[1],-a[2]-1,b),d.replace("{quadkey}",Te(b))}}));if(c.imageryProviders){var g=Cc(zc("EPSG:4326"),this.f);a=c.imageryProviders.map(function(a){var b=a.attribution,c={};a.coverageAreas.forEach(function(a){var b=a.zoomMin,f=Math.min(a.zoomMax,d);a=a.bbox;a=qc([a[1],a[0],a[3],a[2]],g);var h,l;for(h=b;h<=f;++h)l=h.toString(),
|
||||||
|
b=gf(e,a,h),l in c?c[l].push(b):c[l]=[b]});return new $d({html:b,tileRanges:c})});a.push(ov);this.qa(a)}this.S=b;cf(this,"ready")}};function pv(a){a=a||{};var b=void 0!==a.projection?a.projection:"EPSG:3857",c=void 0!==a.tileGrid?a.tileGrid:qf({extent:of(b),maxZoom:a.maxZoom,minZoom:a.minZoom,tileSize:a.tileSize});X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:a.opaque,projection:b,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:c,tileLoadFunction:a.tileLoadFunction,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:a.tileUrlFunction,url:a.url,urls:a.urls,
|
||||||
|
wrapX:void 0!==a.wrapX?a.wrapX:!0})}x(pv,X);function qv(a){this.v=a.account;this.A=a.map||"";this.c=a.config||{};this.j={};pv.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,maxZoom:void 0!==a.maxZoom?a.maxZoom:18,minZoom:a.minZoom,projection:a.projection,state:"loading",wrapX:a.wrapX});rv(this)}x(qv,pv);k=qv.prototype;k.Tj=function(){return this.c};k.up=function(a){Ca(this.c,a);rv(this)};k.$o=function(a){this.c=a||{};rv(this)};
|
||||||
|
function rv(a){var b=JSON.stringify(a.c);if(a.j[b])sv(a,a.j[b]);else{var c="https://"+a.v+".cartodb.com/api/v1/map";a.A&&(c+="/named/"+a.A);var d=new XMLHttpRequest;d.addEventListener("load",a.Nk.bind(a,b));d.addEventListener("error",a.Mk.bind(a));d.open("POST",c);d.setRequestHeader("Content-type","application/json");d.send(JSON.stringify(a.c))}}
|
||||||
|
k.Nk=function(a,b){var c=b.target;if(200<=c.status&&300>c.status){var d;try{d=JSON.parse(c.responseText)}catch(e){cf(this,"error");return}sv(this,d);this.j[a]=d;cf(this,"ready")}else cf(this,"error")};k.Mk=function(){cf(this,"error")};function sv(a,b){a.Va("https://"+b.cdn_url.https+"/"+a.v+"/api/v1/map/"+b.layergroupid+"/{z}/{x}/{y}.png")};function Y(a){P.call(this,{attributions:a.attributions,extent:a.extent,logo:a.logo,projection:a.projection,wrapX:a.wrapX});this.D=void 0;this.za=void 0!==a.distance?a.distance:20;this.A=[];this.na=a.geometryFunction||function(a){return a.X()};this.v=a.source;this.v.I("change",Y.prototype.cb,this)}x(Y,P);Y.prototype.Sa=function(){return this.v};Y.prototype.Pc=function(a,b,c){this.v.Pc(a,b,c);b!==this.D&&(this.clear(),this.D=b,tv(this),this.Jc(this.A))};
|
||||||
|
Y.prototype.cb=function(){this.clear();tv(this);this.Jc(this.A);this.u()};function tv(a){if(void 0!==a.D){a.A.length=0;for(var b=Jb(),c=a.za*a.D,d=a.v.oe(),e={},f=0,g=d.length;f<g;f++){var h=d[f];t(h).toString()in e||!(h=a.na(h))||(h=h.Z(),Wb(h,b),Mb(b,c,b),h=a.v.ef(b),h=h.filter(function(a){a=t(a).toString();return a in e?!1:e[a]=!0}),a.A.push(uv(a,h)))}}}
|
||||||
|
function uv(a,b){for(var c=[0,0],d=b.length-1;0<=d;--d){var e=a.na(b[d]);e?yb(c,e.Z()):b.splice(d,1)}d=1/b.length;c[0]*=d;c[1]*=d;c=new Ik(new C(c));c.set("features",b);return c};function vv(a,b){var c=Object.keys(b).map(function(a){return a+"="+encodeURIComponent(b[a])}).join("&");a=a.replace(/[?&]$/,"");a=-1===a.indexOf("?")?a+"?":a+"&";return a+c};function wv(a){a=a||{};Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:a.projection,resolutions:a.resolutions});this.W=void 0!==a.crossOrigin?a.crossOrigin:null;this.i=a.url;this.j=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;this.v=a.params||{};this.c=null;this.s=[0,0];this.T=0;this.P=void 0!==a.ratio?a.ratio:1.5}x(wv,Ak);k=wv.prototype;k.Sm=function(){return this.v};
|
||||||
|
k.Mc=function(a,b,c,d){if(void 0===this.i)return null;b=Bk(this,b);var e=this.c;if(e&&this.T==this.g&&e.$()==b&&e.f==c&&Sb(e.H(),a))return e;e={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Ca(e,this.v);a=a.slice();var f=(a[0]+a[2])/2,g=(a[1]+a[3])/2;if(1!=this.P){var h=this.P*jc(a)/2,l=this.P*kc(a)/2;a[0]=f-h;a[1]=g-l;a[2]=f+h;a[3]=g+l}var h=b/c,l=Math.ceil(jc(a)/h),m=Math.ceil(kc(a)/h);a[0]=f-h*l/2;a[2]=f+h*l/2;a[1]=g-h*m/2;a[3]=g+h*m/2;this.s[0]=l;this.s[1]=m;f=a;g=this.s;d=d.eb.split(":").pop();e.SIZE=
|
||||||
|
g[0]+","+g[1];e.BBOX=f.join(",");e.BBOXSR=d;e.IMAGESR=d;e.DPI=90*c;d=this.i.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");e=vv(d,e);this.c=new cu(a,b,c,this.l,e,this.W,this.j);this.T=this.g;B(this.c,"change",this.o,this);return this.c};k.Rm=function(){return this.j};k.Tm=function(){return this.i};k.Um=function(a){this.c=null;this.j=a;this.u()};k.Vm=function(a){a!=this.i&&(this.i=a,this.c=null,this.u())};k.Wm=function(a){Ca(this.v,a);this.c=null;this.u()};function xv(a){Ak.call(this,{projection:a.projection,resolutions:a.resolutions});this.W=void 0!==a.crossOrigin?a.crossOrigin:null;this.s=void 0!==a.displayDpi?a.displayDpi:96;this.j=a.params||{};this.T=a.url;this.c=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;this.ia=void 0!==a.hidpi?a.hidpi:!0;this.oa=void 0!==a.metersPerUnit?a.metersPerUnit:1;this.v=void 0!==a.ratio?a.ratio:1;this.za=void 0!==a.useOverlay?a.useOverlay:!1;this.i=null;this.P=0}x(xv,Ak);k=xv.prototype;k.Ym=function(){return this.j};
|
||||||
|
k.Mc=function(a,b,c){b=Bk(this,b);c=this.ia?c:1;var d=this.i;if(d&&this.P==this.g&&d.$()==b&&d.f==c&&Sb(d.H(),a))return d;1!=this.v&&(a=a.slice(),pc(a,this.v));var e=[jc(a)/b*c,kc(a)/b*c];if(void 0!==this.T){var d=this.T,f=lc(a),g=this.oa,h=jc(a),l=kc(a),m=e[0],n=e[1],p=.0254/this.s,e={OPERATION:this.za?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol.source.ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.s,SETDISPLAYWIDTH:Math.round(e[0]),SETDISPLAYHEIGHT:Math.round(e[1]),
|
||||||
|
SETVIEWSCALE:n*h>m*l?h*g/(m*p):l*g/(n*p),SETVIEWCENTERX:f[0],SETVIEWCENTERY:f[1]};Ca(e,this.j);d=vv(d,e);d=new cu(a,b,c,this.l,d,this.W,this.c);B(d,"change",this.o,this)}else d=null;this.i=d;this.P=this.g;return d};k.Xm=function(){return this.c};k.$m=function(a){Ca(this.j,a);this.u()};k.Zm=function(a){this.i=null;this.c=a;this.u()};function yv(a){var b=a.imageExtent,c=void 0!==a.crossOrigin?a.crossOrigin:null,d=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:zc(a.projection)});this.c=new cu(b,void 0,1,this.l,a.url,c,d);this.i=a.imageSize?a.imageSize:null;B(this.c,"change",this.o,this)}x(yv,Ak);yv.prototype.Mc=function(a){return oc(a,this.c.H())?this.c:null};
|
||||||
|
yv.prototype.o=function(a){if(2==this.c.V()){var b=this.c.H(),c=this.c.a(),d,e;this.i?(d=this.i[0],e=this.i[1]):(d=c.width,e=c.height);b=Math.ceil(jc(b)/(kc(b)/e));if(b!=d){var b=Ge(b,e),f=b.canvas;b.drawImage(c,0,0,d,e,0,0,f.width,f.height);this.c.g=f}}Ak.prototype.o.call(this,a)};function zv(a){a=a||{};Ak.call(this,{attributions:a.attributions,logo:a.logo,projection:a.projection,resolutions:a.resolutions});this.oa=void 0!==a.crossOrigin?a.crossOrigin:null;this.j=a.url;this.P=void 0!==a.imageLoadFunction?a.imageLoadFunction:Gk;this.i=a.params||{};this.v=!0;Av(this);this.ia=a.serverType;this.za=void 0!==a.hidpi?a.hidpi:!0;this.c=null;this.T=[0,0];this.W=0;this.s=void 0!==a.ratio?a.ratio:1.5}x(zv,Ak);var Bv=[101,101];k=zv.prototype;
|
||||||
|
k.fn=function(a,b,c,d){if(void 0!==this.j){var e=mc(a,b,0,Bv),f={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.i.LAYERS};Ca(f,this.i,d);d=Math.floor((e[3]-a[1])/b);f[this.v?"I":"X"]=Math.floor((a[0]-e[0])/b);f[this.v?"J":"Y"]=d;return Cv(this,e,Bv,1,zc(c),f)}};k.hn=function(){return this.i};
|
||||||
|
k.Mc=function(a,b,c,d){if(void 0===this.j)return null;b=Bk(this,b);1==c||this.za&&void 0!==this.ia||(c=1);a=a.slice();var e=(a[0]+a[2])/2,f=(a[1]+a[3])/2,g=b/c,h=jc(a)/g,g=kc(a)/g,l=this.c;if(l&&this.W==this.g&&l.$()==b&&l.f==c&&Sb(l.H(),a))return l;if(1!=this.s){var l=this.s*jc(a)/2,m=this.s*kc(a)/2;a[0]=e-l;a[1]=f-m;a[2]=e+l;a[3]=f+m}e={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};Ca(e,this.i);this.T[0]=Math.ceil(h*this.s);this.T[1]=Math.ceil(g*this.s);d=Cv(this,
|
||||||
|
a,this.T,c,d,e);this.c=new cu(a,b,c,this.l,d,this.oa,this.P);this.W=this.g;B(this.c,"change",this.o,this);return this.c};k.gn=function(){return this.P};
|
||||||
|
function Cv(a,b,c,d,e,f){f[a.v?"CRS":"SRS"]=e.eb;"STYLES"in a.i||(f.STYLES="");if(1!=d)switch(a.ia){case "geoserver":d=90*d+.5|0;f.FORMAT_OPTIONS="FORMAT_OPTIONS"in f?f.FORMAT_OPTIONS+(";dpi:"+d):"dpi:"+d;break;case "mapserver":f.MAP_RESOLUTION=90*d;break;case "carmentaserver":case "qgis":f.DPI=90*d}f.WIDTH=c[0];f.HEIGHT=c[1];c=e.b;var g;a.v&&"ne"==c.substr(0,2)?g=[b[1],b[0],b[3],b[2]]:g=b;f.BBOX=g.join(",");return vv(a.j,f)}k.jn=function(){return this.j};k.kn=function(a){this.c=null;this.P=a;this.u()};
|
||||||
|
k.ln=function(a){a!=this.j&&(this.j=a,this.c=null,this.u())};k.mn=function(a){Ca(this.i,a);Av(this);this.c=null;this.u()};function Av(a){a.v=0<=xb(a.i.VERSION||"1.3.0")};function Dv(a){a=a||{};var b;void 0!==a.attributions?b=a.attributions:b=[Ev];pv.call(this,{attributions:b,cacheSize:a.cacheSize,crossOrigin:void 0!==a.crossOrigin?a.crossOrigin:"anonymous",opaque:void 0!==a.opaque?a.opaque:!0,maxZoom:void 0!==a.maxZoom?a.maxZoom:19,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileLoadFunction:a.tileLoadFunction,url:void 0!==a.url?a.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",wrapX:a.wrapX})}x(Dv,pv);var Ev=new $d({html:'© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'});(function(){var a={},b={ja:a};(function(c){if("object"===typeof a&&"undefined"!==typeof b)b.ja=c();else{var d;"undefined"!==typeof window?d=window:"undefined"!==typeof global?d=global:"undefined"!==typeof self?d=self:d=this;d.Sp=c()}})(function(){return function d(a,b,g){function h(m,p){if(!b[m]){if(!a[m]){var q="function"==typeof require&&require;if(!p&&q)return q(m,!0);if(l)return l(m,!0);q=Error("Cannot find module '"+m+"'");throw q.code="MODULE_NOT_FOUND",q;}q=b[m]={ja:{}};a[m][0].call(q.ja,function(b){var d=
|
||||||
|
a[m][1][b];return h(d?d:b)},q,q.ja,d,a,b,g)}return b[m].ja}for(var l="function"==typeof require&&require,m=0;m<g.length;m++)h(g[m]);return h}({1:[function(a,b,f){a=a("./processor");f.$i=a},{"./processor":2}],2:[function(a,b){function f(a){var b=!0;try{new ImageData(10,10)}catch(d){b=!1}return function(d){var e=d.buffers,f=d.meta,g=d.width,h=d.height,l=e.length,m=e[0].byteLength;if(d.imageOps){m=Array(l);for(d=0;d<l;++d){var D=m,H=d,ba;ba=new Uint8ClampedArray(e[d]);var A=g,Fa=h;ba=b?new ImageData(ba,
|
||||||
|
A,Fa):{data:ba,width:A,height:Fa};D[H]=ba}g=a(m,f).data}else{g=new Uint8ClampedArray(m);h=Array(l);D=Array(l);for(d=0;d<l;++d)h[d]=new Uint8ClampedArray(e[d]),D[d]=[0,0,0,0];for(e=0;e<m;e+=4){for(d=0;d<l;++d)H=h[d],D[d][0]=H[e],D[d][1]=H[e+1],D[d][2]=H[e+2],D[d][3]=H[e+3];d=a(D,f);g[e]=d[0];g[e+1]=d[1];g[e+2]=d[2];g[e+3]=d[3]}}return g.buffer}}function g(a,b){var d=Object.keys(a.lib||{}).map(function(b){return"var "+b+" = "+a.lib[b].toString()+";"}).concat(["var __minion__ = ("+f.toString()+")(",
|
||||||
|
a.operation.toString(),");",'self.addEventListener("message", function(event) {'," var buffer = __minion__(event.data);"," self.postMessage({buffer: buffer, meta: event.data.meta}, [buffer]);","});"]),d=URL.createObjectURL(new Blob(d,{type:"text/javascript"})),d=new Worker(d);d.addEventListener("message",b);return d}function h(a,b){var d=f(a.operation);return{postMessage:function(a){setTimeout(function(){b({data:{buffer:d(a),meta:a.meta}})},0)}}}function l(a){this.Re=!!a.ll;var b;0===a.threads?
|
||||||
|
b=0:this.Re?b=1:b=a.threads||1;var d=[];if(b)for(var e=0;e<b;++e)d[e]=g(a,this.ig.bind(this,e));else d[0]=h(a,this.ig.bind(this,0));this.Ld=d;this.$c=[];this.oj=a.uo||Infinity;this.Jd=0;this.Ic={};this.Se=null}var m=a("./util").Fl;l.prototype.so=function(a,b,d){this.lj({Ac:a,Xg:b,qg:d});this.fg()};l.prototype.lj=function(a){for(this.$c.push(a);this.$c.length>this.oj;)this.$c.shift().qg(null,null)};l.prototype.fg=function(){if(0===this.Jd&&0<this.$c.length){var a=this.Se=this.$c.shift(),b=a.Ac[0].width,
|
||||||
|
d=a.Ac[0].height,e=a.Ac.map(function(a){return a.data.buffer}),f=this.Ld.length;this.Jd=f;if(1===f)this.Ld[0].postMessage({buffers:e,meta:a.Xg,imageOps:this.Re,width:b,height:d},e);else for(var g=4*Math.ceil(a.Ac[0].data.length/4/f),h=0;h<f;++h){for(var l=h*g,m=[],D=0,H=e.length;D<H;++D)m.push(e[h].slice(l,l+g));this.Ld[h].postMessage({buffers:m,meta:a.Xg,imageOps:this.Re,width:b,height:d},m)}}};l.prototype.ig=function(a,b){this.Pp||(this.Ic[a]=b.data,--this.Jd,0===this.Jd&&this.pj())};l.prototype.pj=
|
||||||
|
function(){var a=this.Se,b=this.Ld.length,d,e;if(1===b)d=new Uint8ClampedArray(this.Ic[0].buffer),e=this.Ic[0].meta;else{var f=a.Ac[0].data.length;d=new Uint8ClampedArray(f);e=Array(f);for(var f=4*Math.ceil(f/4/b),g=0;g<b;++g){var h=g*f;d.set(new Uint8ClampedArray(this.Ic[g].buffer),h);e[g]=this.Ic[g].meta}}this.Se=null;this.Ic={};a.qg(null,m(d,a.Ac[0].width,a.Ac[0].height),e);this.fg()};b.ja=l},{"./util":3}],3:[function(a,b,f){var g=!0;try{new ImageData(10,10)}catch(l){g=!1}var h=document.createElement("canvas").getContext("2d");
|
||||||
|
f.Fl=function(a,b,d){if(g)return new ImageData(a,b,d);b=h.createImageData(b,d);b.data.set(a);return b}},{}]},{},[1])(1)});jl=b.ja})();function Fv(a){this.P=null;this.za=void 0!==a.operationType?a.operationType:"pixel";this.Sa=void 0!==a.threads?a.threads:1;this.c=Gv(a.sources);for(var b=0,c=this.c.length;b<c;++b)B(this.c[b],"change",this.u,this);this.i=Ge();this.ia=new Th(function(){return 1},this.u.bind(this));for(var b=Hv(this.c),c={},d=0,e=b.length;d<e;++d)c[t(b[d].layer)]=b[d];this.j=this.s=null;this.W={animate:!1,attributions:{},coordinateToPixelTransform:ch(),extent:null,focus:null,index:0,layerStates:c,layerStatesArray:b,
|
||||||
|
logos:{},pixelRatio:1,pixelToCoordinateTransform:ch(),postRenderFunctions:[],size:[0,0],skippedFeatureUids:{},tileQueue:this.ia,time:Date.now(),usedTiles:{},viewState:{rotation:0},viewHints:[],wantedTiles:{}};Ak.call(this,{});void 0!==a.operation&&this.v(a.operation,a.lib)}x(Fv,Ak);Fv.prototype.v=function(a,b){this.P=new jl.$i({operation:a,ll:"image"===this.za,uo:1,lib:b,threads:this.Sa});this.u()};function Iv(a,b,c){var d=a.s;return!d||a.g!==d.Xo||c!==d.resolution||!$b(b,d.extent)}
|
||||||
|
Fv.prototype.A=function(a,b,c,d){c=!0;for(var e,f=0,g=this.c.length;f<g;++f)if(e=this.c[f].a.ha(),"ready"!==e.V()){c=!1;break}if(!c)return null;a=a.slice();if(!Iv(this,a,b))return this.j;c=this.i.canvas;e=Math.round(jc(a)/b);f=Math.round(kc(a)/b);if(e!==c.width||f!==c.height)c.width=e,c.height=f;e=Ca({},this.W);e.viewState=Ca({},e.viewState);var f=lc(a),g=Math.round(jc(a)/b),h=Math.round(kc(a)/b);e.extent=a;e.focus=lc(a);e.size[0]=g;e.size[1]=h;g=e.viewState;g.center=f;g.projection=d;g.resolution=
|
||||||
|
b;this.j=d=new nk(a,b,1,this.l,c,this.T.bind(this,e));this.s={extent:a,resolution:b,Xo:this.g};return d};
|
||||||
|
Fv.prototype.T=function(a,b){for(var c=this.c.length,d=Array(c),e=0;e<c;++e){var f;f=this.c[e];var g=a,h=a.layerStatesArray[e];if(f.l(g,h)){var l=g.size[0],m=g.size[1];if(Jv){var n=Jv.canvas;n.width!==l||n.height!==m?Jv=Ge(l,m):Jv.clearRect(0,0,l,m)}else Jv=Ge(l,m);f.i(g,h,Jv);f=Jv.getImageData(0,0,l,m)}else f=null;if(f)d[e]=f;else return}c={};this.b(new Kv(Lv,a,c));this.P.so(d,c,this.oa.bind(this,a,b));Uh(a.tileQueue,16,16)};
|
||||||
|
Fv.prototype.oa=function(a,b,c,d,e){c?b(c):d&&(this.b(new Kv(Mv,a,e)),Iv(this,a.extent,a.viewState.resolution/a.pixelRatio)||this.i.putImageData(d,0,0),b(null))};var Jv=null;function Hv(a){return a.map(function(a){return oh(a.a)})}function Gv(a){for(var b=a.length,c=Array(b),d=0;d<b;++d){var e=d,f=a[d],g=null;f instanceof rf?(f=new F({source:f}),g=new Bl(f)):f instanceof Ak&&(f=new ej({source:f}),g=new Al(f));c[e]=g}return c}
|
||||||
|
function Kv(a,b,c){Ua.call(this,a);this.extent=b.extent;this.resolution=b.viewState.resolution/b.pixelRatio;this.data=c}x(Kv,Ua);var Lv="beforeoperations",Mv="afteroperations";var Nv={terrain:{ub:"jpg",opaque:!0},"terrain-background":{ub:"jpg",opaque:!0},"terrain-labels":{ub:"png",opaque:!1},"terrain-lines":{ub:"png",opaque:!1},"toner-background":{ub:"png",opaque:!0},toner:{ub:"png",opaque:!0},"toner-hybrid":{ub:"png",opaque:!1},"toner-labels":{ub:"png",opaque:!1},"toner-lines":{ub:"png",opaque:!1},"toner-lite":{ub:"png",opaque:!0},watercolor:{ub:"jpg",opaque:!0}},Ov={terrain:{minZoom:4,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:1,maxZoom:16}};
|
||||||
|
function Pv(a){var b=a.layer.indexOf("-"),b=-1==b?a.layer:a.layer.slice(0,b),b=Ov[b],c=Nv[a.layer];pv.call(this,{attributions:Qv,cacheSize:a.cacheSize,crossOrigin:"anonymous",maxZoom:void 0!=a.maxZoom?a.maxZoom:b.maxZoom,minZoom:void 0!=a.minZoom?a.minZoom:b.minZoom,opaque:c.opaque,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileLoadFunction:a.tileLoadFunction,url:void 0!==a.url?a.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+a.layer+"/{z}/{x}/{y}."+c.ub})}x(Pv,pv);
|
||||||
|
var Qv=[new $d({html:'Map tiles by <a href="http://stamen.com/">Stamen Design</a>, under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.'}),Ev];function Rv(a){a=a||{};X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.c=a.params||{};this.j=Jb()}x(Rv,X);Rv.prototype.v=function(){return this.c};Rv.prototype.cc=function(a){return a};
|
||||||
|
Rv.prototype.vc=function(a,b,c){var d=this.tileGrid;d||(d=this.fb(c));if(!(d.b.length<=a[0])){var e=d.Ea(a,this.j),f=$e(d.Ja(a[0]),this.o);1!=b&&(f=Ze(f,b,this.o));d={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Ca(d,this.c);var g=this.urls;g?(c=c.eb.split(":").pop(),d.SIZE=f[0]+","+f[1],d.BBOX=e.join(","),d.BBOXSR=c,d.IMAGESR=c,d.DPI=Math.round(d.DPI?d.DPI*b:90*b),a=(1==g.length?g[0]:g[xa((a[1]<<a[0])+a[2],g.length)]).replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),
|
||||||
|
a=vv(a,d)):a=void 0;return a}};Rv.prototype.A=function(a){Ca(this.c,a);this.u()};function Sv(a,b,c){We.call(this,a,2);this.l=b;this.c=c;this.g={}}x(Sv,We);Sv.prototype.$a=function(a){a=void 0!==a?t(a):-1;if(a in this.g)return this.g[a];var b=this.l,c=Ge(b[0],b[1]);c.strokeStyle="black";c.strokeRect(.5,.5,b[0]+.5,b[1]+.5);c.fillStyle="black";c.textAlign="center";c.textBaseline="middle";c.font="24px sans-serif";c.fillText(this.c,b[0]/2,b[1]/2);return this.g[a]=c.canvas};
|
||||||
|
function Tv(a){rf.call(this,{opaque:!1,projection:a.projection,tileGrid:a.tileGrid,wrapX:void 0!==a.wrapX?a.wrapX:!0})}x(Tv,rf);Tv.prototype.bc=function(a,b,c){var d=this.Fb(a,b,c);if(Re(this.a,d))return this.a.get(d);var e=$e(this.tileGrid.Ja(a));a=[a,b,c];b=(b=vf(this,a))?vf(this,b).toString():"";e=new Sv(a,e,b);this.a.set(d,e);return e};function Uv(a){this.c=null;X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,projection:zc("EPSG:3857"),reprojectionErrorThreshold:a.reprojectionErrorThreshold,state:"loading",tileLoadFunction:a.tileLoadFunction,wrapX:void 0!==a.wrapX?a.wrapX:!0});if(a.jsonp)iv(a.url,this.yh.bind(this),this.me.bind(this));else{var b=new XMLHttpRequest;b.addEventListener("load",this.pn.bind(this));b.addEventListener("error",this.nn.bind(this));b.open("GET",a.url);b.send()}}
|
||||||
|
x(Uv,X);k=Uv.prototype;k.pn=function(a){a=a.target;if(200<=a.status&&300>a.status){var b;try{b=JSON.parse(a.responseText)}catch(c){this.me();return}this.yh(b)}else this.me()};k.nn=function(){this.me()};k.Ak=function(){return this.c};
|
||||||
|
k.yh=function(a){var b=zc("EPSG:4326"),c=this.f,d;void 0!==a.bounds&&(d=qc(a.bounds,Cc(b,c)));var e=a.minzoom||0,f=a.maxzoom||22;this.tileGrid=c=qf({extent:of(c),maxZoom:f,minZoom:e});this.tileUrlFunction=Fl(a.tiles,c);if(void 0!==a.attribution&&!this.l){b=void 0!==d?d:b.H();d={};for(var g;e<=f;++e)g=e.toString(),d[g]=[gf(c,b,e)];this.qa([new $d({html:a.attribution,tileRanges:d})])}this.c=a;cf(this,"ready")};k.me=function(){cf(this,"error")};function Vv(a){rf.call(this,{projection:zc("EPSG:3857"),state:"loading"});this.s=void 0!==a.preemptive?a.preemptive:!0;this.j=Hl;this.i=void 0;this.c=a.jsonp||!1;if(a.url)if(this.c)iv(a.url,this.Bf.bind(this),this.ne.bind(this));else{var b=new XMLHttpRequest;b.addEventListener("load",this.tn.bind(this));b.addEventListener("error",this.sn.bind(this));b.open("GET",a.url);b.send()}else a.tileJSON&&this.Bf(a.tileJSON)}x(Vv,rf);k=Vv.prototype;
|
||||||
|
k.tn=function(a){a=a.target;if(200<=a.status&&300>a.status){var b;try{b=JSON.parse(a.responseText)}catch(c){this.ne();return}this.Bf(b)}else this.ne()};k.sn=function(){this.ne()};k.xk=function(){return this.i};k.Ij=function(a,b,c,d,e){this.tileGrid?(b=this.tileGrid.Zd(a,b),Wv(this.bc(b[0],b[1],b[2],1,this.f),a,c,d,e)):!0===e?Mf(function(){c.call(d,null)}):c.call(d,null)};k.ne=function(){cf(this,"error")};
|
||||||
|
k.Bf=function(a){var b=zc("EPSG:4326"),c=this.f,d;void 0!==a.bounds&&(d=qc(a.bounds,Cc(b,c)));var e=a.minzoom||0,f=a.maxzoom||22;this.tileGrid=c=qf({extent:of(c),maxZoom:f,minZoom:e});this.i=a.template;var g=a.grids;if(g){this.j=Fl(g,c);if(void 0!==a.attribution){b=void 0!==d?d:b.H();for(d={};e<=f;++e)g=e.toString(),d[g]=[gf(c,b,e)];this.qa([new $d({html:a.attribution,tileRanges:d})])}cf(this,"ready")}else cf(this,"error")};
|
||||||
|
k.bc=function(a,b,c,d,e){var f=this.Fb(a,b,c);if(Re(this.a,f))return this.a.get(f);a=[a,b,c];b=vf(this,a,e);d=this.j(b,d,e);d=new Xv(a,void 0!==d?0:4,void 0!==d?d:"",this.tileGrid.Ea(a),this.s,this.c);this.a.set(f,d);return d};k.Yf=function(a,b,c){a=this.Fb(a,b,c);Re(this.a,a)&&this.a.get(a)};function Xv(a,b,c,d,e,f){We.call(this,a,b);this.s=c;this.g=d;this.U=e;this.c=this.j=this.l=null;this.v=f}x(Xv,We);k=Xv.prototype;k.$a=function(){return null};
|
||||||
|
k.getData=function(a){if(!this.l||!this.j)return null;var b=this.l[Math.floor((1-(a[1]-this.g[1])/(this.g[3]-this.g[1]))*this.l.length)];if("string"!==typeof b)return null;b=b.charCodeAt(Math.floor((a[0]-this.g[0])/(this.g[2]-this.g[0])*b.length));93<=b&&b--;35<=b&&b--;b-=32;a=null;b in this.j&&(b=this.j[b],this.c&&b in this.c?a=this.c[b]:a=b);return a};
|
||||||
|
function Wv(a,b,c,d,e){0==a.state&&!0===e?(Pa(a,"change",function(){c.call(d,this.getData(b))},a),Yv(a)):!0===e?Mf(function(){c.call(d,this.getData(b))},a):c.call(d,a.getData(b))}k.jb=function(){return this.s};k.ae=function(){this.state=3;Xe(this)};k.zh=function(a){this.l=a.grid;this.j=a.keys;this.c=a.data;this.state=4;Xe(this)};
|
||||||
|
function Yv(a){if(0==a.state)if(a.state=1,a.v)iv(a.s,a.zh.bind(a),a.ae.bind(a));else{var b=new XMLHttpRequest;b.addEventListener("load",a.rn.bind(a));b.addEventListener("error",a.qn.bind(a));b.open("GET",a.s);b.send()}}k.rn=function(a){a=a.target;if(200<=a.status&&300>a.status){var b;try{b=JSON.parse(a.responseText)}catch(c){this.ae();return}this.zh(b)}else this.ae()};k.qn=function(){this.ae()};k.load=function(){this.U&&Yv(this)};function Zv(a){a=a||{};var b=a.params||{};X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,opaque:!("TRANSPARENT"in b?b.TRANSPARENT:1),projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileGrid:a.tileGrid,tileLoadFunction:a.tileLoadFunction,url:a.url,urls:a.urls,wrapX:void 0!==a.wrapX?a.wrapX:!0});this.v=void 0!==a.gutter?a.gutter:0;this.c=b;this.j=!0;this.A=a.serverType;this.T=void 0!==a.hidpi?a.hidpi:!0;this.P="";
|
||||||
|
$v(this);this.W=Jb();aw(this);uf(this,bw(this))}x(Zv,X);k=Zv.prototype;
|
||||||
|
k.vn=function(a,b,c,d){c=zc(c);var e=this.tileGrid;e||(e=this.fb(c));b=e.Zd(a,b);if(!(e.b.length<=b[0])){var f=e.$(b[0]),g=e.Ea(b,this.W),e=$e(e.Ja(b[0]),this.o),h=this.v;0!==h&&(e=Ye(e,h,this.o),g=Mb(g,f*h,g));h={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.c.LAYERS};Ca(h,this.c,d);d=Math.floor((g[3]-a[1])/f);h[this.j?"I":"X"]=Math.floor((a[0]-g[0])/f);h[this.j?"J":"Y"]=d;return cw(this,b,e,g,1,c,h)}};k.gf=function(){return this.v};
|
||||||
|
k.Fb=function(a,b,c){return this.P+X.prototype.Fb.call(this,a,b,c)};k.wn=function(){return this.c};
|
||||||
|
function cw(a,b,c,d,e,f,g){var h=a.urls;if(h){g.WIDTH=c[0];g.HEIGHT=c[1];g[a.j?"CRS":"SRS"]=f.eb;"STYLES"in a.c||(g.STYLES="");if(1!=e)switch(a.A){case "geoserver":c=90*e+.5|0;g.FORMAT_OPTIONS="FORMAT_OPTIONS"in g?g.FORMAT_OPTIONS+(";dpi:"+c):"dpi:"+c;break;case "mapserver":g.MAP_RESOLUTION=90*e;break;case "carmentaserver":case "qgis":g.DPI=90*e}f=f.b;a.j&&"ne"==f.substr(0,2)&&(a=d[0],d[0]=d[1],d[1]=a,a=d[2],d[2]=d[3],d[3]=a);g.BBOX=d.join(",");return vv(1==h.length?h[0]:h[xa((b[1]<<b[0])+b[2],h.length)],
|
||||||
|
g)}}k.cc=function(a){return this.T&&void 0!==this.A?a:1};function $v(a){var b=0,c=[];if(a.urls){var d,e;d=0;for(e=a.urls.length;d<e;++d)c[b++]=a.urls[d]}a.P=c.join("#")}function bw(a){var b=0,c=[],d;for(d in a.c)c[b++]=d+"-"+a.c[d];return c.join("/")}
|
||||||
|
k.vc=function(a,b,c){var d=this.tileGrid;d||(d=this.fb(c));if(!(d.b.length<=a[0])){1==b||this.T&&void 0!==this.A||(b=1);var e=d.$(a[0]),f=d.Ea(a,this.W),d=$e(d.Ja(a[0]),this.o),g=this.v;0!==g&&(d=Ye(d,g,this.o),f=Mb(f,e*g,f));1!=b&&(d=Ze(d,b,this.o));e={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};Ca(e,this.c);return cw(this,a,d,f,b,c,e)}};k.xn=function(a){Ca(this.c,a);$v(this);aw(this);uf(this,bw(this))};function aw(a){a.j=0<=xb(a.c.VERSION||"1.3.0")};function dw(a){this.l=a.matrixIds;df.call(this,{extent:a.extent,origin:a.origin,origins:a.origins,resolutions:a.resolutions,tileSize:a.tileSize,tileSizes:a.tileSizes,sizes:a.sizes})}x(dw,df);dw.prototype.j=function(){return this.l};
|
||||||
|
function ew(a,b){var c=[],d=[],e=[],f=[],g=[],h;h=zc(a.SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"));var l=h.ac(),m="ne"==h.b.substr(0,2);a.TileMatrix.sort(function(a,b){return b.ScaleDenominator-a.ScaleDenominator});a.TileMatrix.forEach(function(a){d.push(a.Identifier);var b=2.8E-4*a.ScaleDenominator/l,h=a.TileWidth,r=a.TileHeight;m?e.push([a.TopLeftCorner[1],a.TopLeftCorner[0]]):e.push(a.TopLeftCorner);c.push(b);f.push(h==r?h:[h,r]);g.push([a.MatrixWidth,-a.MatrixHeight])});
|
||||||
|
return new dw({extent:b,origins:e,resolutions:c,matrixIds:d,tileSizes:f,sizes:g})};function Z(a){function b(a){a="KVP"==d?vv(a,f):a.replace(/\{(\w+?)\}/g,function(a,b){return b.toLowerCase()in f?f[b.toLowerCase()]:a});return function(b){if(b){var c={TileMatrix:e.l[b[0]],TileCol:b[1],TileRow:-b[2]-1};Ca(c,g);b=a;return b="KVP"==d?vv(b,c):b.replace(/\{(\w+?)\}/g,function(a,b){return c[b]})}}}this.T=void 0!==a.version?a.version:"1.0.0";this.v=void 0!==a.format?a.format:"image/jpeg";this.c=void 0!==a.dimensions?a.dimensions:{};this.A=a.layer;this.j=a.matrixSet;this.P=a.style;var c=
|
||||||
|
a.urls;void 0===c&&void 0!==a.url&&(c=Il(a.url));var d=this.W=void 0!==a.requestEncoding?a.requestEncoding:"KVP",e=a.tileGrid,f={layer:this.A,style:this.P,tilematrixset:this.j};"KVP"==d&&Ca(f,{Service:"WMTS",Request:"GetTile",Version:this.T,Format:this.v});var g=this.c,h=c&&0<c.length?Gl(c.map(b)):Hl;X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,projection:a.projection,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileClass:a.tileClass,
|
||||||
|
tileGrid:e,tileLoadFunction:a.tileLoadFunction,tilePixelRatio:a.tilePixelRatio,tileUrlFunction:h,urls:c,wrapX:void 0!==a.wrapX?a.wrapX:!1});uf(this,fw(this))}x(Z,X);k=Z.prototype;k.Vj=function(){return this.c};k.yn=function(){return this.v};k.zn=function(){return this.A};k.hk=function(){return this.j};k.vk=function(){return this.W};k.An=function(){return this.P};k.Ck=function(){return this.T};function fw(a){var b=0,c=[],d;for(d in a.c)c[b++]=d+"-"+a.c[d];return c.join("/")}
|
||||||
|
k.vp=function(a){Ca(this.c,a);uf(this,fw(this))};function gw(a){a=a||{};var b=a.size,c=b[0],d=b[1],e=[],f=256;switch(void 0!==a.tierSizeCalculation?a.tierSizeCalculation:"default"){case "default":for(;c>f||d>f;)e.push([Math.ceil(c/f),Math.ceil(d/f)]),f+=f;break;case "truncated":for(;c>f||d>f;)e.push([Math.ceil(c/f),Math.ceil(d/f)]),c>>=1,d>>=1}e.push([1,1]);e.reverse();for(var f=[1],g=[0],d=1,c=e.length;d<c;d++)f.push(1<<d),g.push(e[d-1][0]*e[d-1][1]+g[d-1]);f.reverse();var b=[0,-b[1],b[0],0],b=new df({extent:b,origin:fc(b),resolutions:f}),h=a.url;
|
||||||
|
X.call(this,{attributions:a.attributions,cacheSize:a.cacheSize,crossOrigin:a.crossOrigin,logo:a.logo,reprojectionErrorThreshold:a.reprojectionErrorThreshold,tileClass:hw,tileGrid:b,tileUrlFunction:function(a){if(a){var b=a[0],c=a[1];a=-a[2]-1;return h+"TileGroup"+((c+a*e[b][0]+g[b])/256|0)+"/"+b+"-"+c+"-"+a+".jpg"}}})}x(gw,X);function hw(a,b,c,d,e){du.call(this,a,b,c,d,e);this.l={}}x(hw,du);
|
||||||
|
hw.prototype.$a=function(a){var b=void 0!==a?t(a).toString():"";if(b in this.l)return this.l[b];a=du.prototype.$a.call(this,a);if(2==this.state){if(256==a.width&&256==a.height)return this.l[b]=a;var c=Ge(256,256);c.drawImage(a,0,0);return this.l[b]=c.canvas}return a};function iw(a){a=a||{};this.a=void 0!==a.initialSize?a.initialSize:256;this.g=void 0!==a.maxSize?a.maxSize:void 0!==la?la:2048;this.b=void 0!==a.space?a.space:1;this.c=[new jw(this.a,this.b)];this.f=this.a;this.i=[new jw(this.f,this.b)]}iw.prototype.add=function(a,b,c,d,e,f){if(b+this.b>this.g||c+this.b>this.g)return null;d=kw(this,!1,a,b,c,d,f);if(!d)return null;a=kw(this,!0,a,b,c,void 0!==e?e:oa,f);return{offsetX:d.offsetX,offsetY:d.offsetY,image:d.image,Sg:a.image}};
|
||||||
|
function kw(a,b,c,d,e,f,g){var h=b?a.i:a.c,l,m,n;m=0;for(n=h.length;m<n;++m){l=h[m];if(l=l.add(c,d,e,f,g))return l;l||m!==n-1||(b?(l=Math.min(2*a.f,a.g),a.f=l):(l=Math.min(2*a.a,a.g),a.a=l),l=new jw(l,a.b),h.push(l),++n)}}function jw(a,b){this.b=b;this.a=[{x:0,y:0,width:a,height:a}];this.f={};this.g=Ge(a,a);this.c=this.g.canvas}jw.prototype.get=function(a){return this.f[a]||null};
|
||||||
|
jw.prototype.add=function(a,b,c,d,e){var f,g,h;g=0;for(h=this.a.length;g<h;++g)if(f=this.a[g],f.width>=b+this.b&&f.height>=c+this.b)return h={offsetX:f.x+this.b,offsetY:f.y+this.b,image:this.c},this.f[a]=h,d.call(e,this.g,f.x+this.b,f.y+this.b),a=g,b+=this.b,d=c+this.b,f.width-b>f.height-d?(c={x:f.x+b,y:f.y,width:f.width-b,height:f.height},b={x:f.x,y:f.y+d,width:b,height:f.height-d},lw(this,a,c,b)):(c={x:f.x+b,y:f.y,width:f.width-b,height:d},b={x:f.x,y:f.y+d,width:f.width,height:f.height-d},lw(this,
|
||||||
|
a,c,b)),h;return null};function lw(a,b,c,d){b=[b,1];0<c.width&&0<c.height&&b.push(c);0<d.width&&0<d.height&&b.push(d);a.a.splice.apply(a.a,b)};function mw(a){this.A=this.s=this.f=null;this.o=void 0!==a.fill?a.fill:null;this.ya=[0,0];this.b=a.points;this.g=void 0!==a.radius?a.radius:a.radius1;this.c=void 0!==a.radius2?a.radius2:this.g;this.l=void 0!==a.angle?a.angle:0;this.a=void 0!==a.stroke?a.stroke:null;this.S=this.Aa=this.C=null;var b=a.atlasManager,c="",d="",e=0,f=null,g,h=0;this.a&&(g=le(this.a.b),h=this.a.a,void 0===h&&(h=1),f=this.a.g,ag||(f=null),d=this.a.c,void 0===d&&(d="round"),c=this.a.f,void 0===c&&(c="round"),e=this.a.i,void 0===
|
||||||
|
e&&(e=10));var l=2*(this.g+h)+1,c={strokeStyle:g,Bd:h,size:l,lineCap:c,lineDash:f,lineJoin:d,miterLimit:e};if(void 0===b){var m=Ge(l,l);this.s=m.canvas;b=l=this.s.width;this.Ih(c,m,0,0);this.o?this.A=this.s:(m=Ge(c.size,c.size),this.A=m.canvas,this.Hh(c,m,0,0))}else l=Math.round(l),(d=!this.o)&&(m=this.Hh.bind(this,c)),e=this.a?qj(this.a):"-",f=this.o?kj(this.o):"-",this.f&&e==this.f[1]&&f==this.f[2]&&this.g==this.f[3]&&this.c==this.f[4]&&this.l==this.f[5]&&this.b==this.f[6]||(this.f=["r"+e+f+(void 0!==
|
||||||
|
this.g?this.g.toString():"-")+(void 0!==this.c?this.c.toString():"-")+(void 0!==this.l?this.l.toString():"-")+(void 0!==this.b?this.b.toString():"-"),e,f,this.g,this.c,this.l,this.b]),m=b.add(this.f[0],l,l,this.Ih.bind(this,c),m),this.s=m.image,this.ya=[m.offsetX,m.offsetY],b=m.image.width,this.A=d?m.Sg:this.s;this.C=[l/2,l/2];this.Aa=[l,l];this.S=[b,b];Eh.call(this,{opacity:1,rotateWithView:void 0!==a.rotateWithView?a.rotateWithView:!1,rotation:void 0!==a.rotation?a.rotation:0,scale:1,snapToPixel:void 0!==
|
||||||
|
a.snapToPixel?a.snapToPixel:!0})}x(mw,Eh);k=mw.prototype;k.Zb=function(){return this.C};k.Fn=function(){return this.l};k.Gn=function(){return this.o};k.pe=function(){return this.A};k.jc=function(){return this.s};k.ld=function(){return this.S};k.td=function(){return 2};k.Ia=function(){return this.ya};k.Hn=function(){return this.b};k.In=function(){return this.g};k.uk=function(){return this.c};k.Gb=function(){return this.Aa};k.Jn=function(){return this.a};k.pf=oa;k.load=oa;k.Xf=oa;
|
||||||
|
k.Ih=function(a,b,c,d){var e;b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.c!==this.g&&(this.b*=2);for(c=0;c<=this.b;c++)d=2*c*Math.PI/this.b-Math.PI/2+this.l,e=0===c%2?this.g:this.c,b.lineTo(a.size/2+e*Math.cos(d),a.size/2+e*Math.sin(d));this.o&&(b.fillStyle=ne(this.o.b),b.fill());this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.lineCap=a.lineCap,b.lineJoin=a.lineJoin,b.miterLimit=a.miterLimit,b.stroke());b.closePath()};
|
||||||
|
k.Hh=function(a,b,c,d){b.setTransform(1,0,0,1,0,0);b.translate(c,d);b.beginPath();this.c!==this.g&&(this.b*=2);var e;for(c=0;c<=this.b;c++)e=2*c*Math.PI/this.b-Math.PI/2+this.l,d=0===c%2?this.g:this.c,b.lineTo(a.size/2+d*Math.cos(e),a.size/2+d*Math.sin(e));b.fillStyle=fj;b.fill();this.a&&(b.strokeStyle=a.strokeStyle,b.lineWidth=a.Bd,a.lineDash&&b.setLineDash(a.lineDash),b.stroke());b.closePath()};u("ol.animation.bounce",function(a){var b=a.resolution,c=a.start?a.start:Date.now(),d=void 0!==a.duration?a.duration:1E3,e=a.easing?a.easing:Sd;return function(a,g){if(g.time<c)return g.animate=!0,g.viewHints[0]+=1,!0;if(g.time<c+d){var h=e((g.time-c)/d),l=b-g.viewState.resolution;g.animate=!0;g.viewState.resolution+=h*l;g.viewHints[0]+=1;return!0}return!1}});u("ol.animation.pan",Td);u("ol.animation.rotate",Ud);u("ol.animation.zoom",Vd);u("ol.Attribution",$d);$d.prototype.getHTML=$d.prototype.g;
|
||||||
|
ae.prototype.element=ae.prototype.element;u("ol.Collection",be);be.prototype.clear=be.prototype.clear;be.prototype.extend=be.prototype.qf;be.prototype.forEach=be.prototype.forEach;be.prototype.getArray=be.prototype.Gl;be.prototype.item=be.prototype.item;be.prototype.getLength=be.prototype.dc;be.prototype.insertAt=be.prototype.ee;be.prototype.pop=be.prototype.pop;be.prototype.push=be.prototype.push;be.prototype.remove=be.prototype.remove;be.prototype.removeAt=be.prototype.Rf;be.prototype.setAt=be.prototype.Zo;
|
||||||
|
u("ol.colorlike.asColorLike",ne);u("ol.coordinate.add",yb);u("ol.coordinate.createStringXY",function(a){return function(b){return Gb(b,a)}});u("ol.coordinate.format",Bb);u("ol.coordinate.rotate",Db);u("ol.coordinate.toStringHDMS",function(a,b){return a?Ab(a[1],"NS",b)+" "+Ab(a[0],"EW",b):""});u("ol.coordinate.toStringXY",Gb);u("ol.DeviceOrientation",qn);qn.prototype.getAlpha=qn.prototype.Oj;qn.prototype.getBeta=qn.prototype.Rj;qn.prototype.getGamma=qn.prototype.Yj;qn.prototype.getHeading=qn.prototype.Hl;
|
||||||
|
qn.prototype.getTracking=qn.prototype.$g;qn.prototype.setTracking=qn.prototype.rf;u("ol.easing.easeIn",Md);u("ol.easing.easeOut",Nd);u("ol.easing.inAndOut",Qd);u("ol.easing.linear",Rd);u("ol.easing.upAndDown",Sd);u("ol.extent.boundingExtent",Ib);u("ol.extent.buffer",Mb);u("ol.extent.containsCoordinate",Qb);u("ol.extent.containsExtent",Sb);u("ol.extent.containsXY",Rb);u("ol.extent.createEmpty",Jb);u("ol.extent.equals",$b);u("ol.extent.extend",ac);u("ol.extent.getBottomLeft",cc);
|
||||||
|
u("ol.extent.getBottomRight",dc);u("ol.extent.getCenter",lc);u("ol.extent.getHeight",kc);u("ol.extent.getIntersection",nc);u("ol.extent.getSize",function(a){return[a[2]-a[0],a[3]-a[1]]});u("ol.extent.getTopLeft",fc);u("ol.extent.getTopRight",ec);u("ol.extent.getWidth",jc);u("ol.extent.intersects",oc);u("ol.extent.isEmpty",ic);u("ol.extent.applyTransform",qc);u("ol.Feature",Ik);Ik.prototype.clone=Ik.prototype.clone;Ik.prototype.getGeometry=Ik.prototype.X;Ik.prototype.getId=Ik.prototype.Xa;
|
||||||
|
Ik.prototype.getGeometryName=Ik.prototype.$j;Ik.prototype.getStyle=Ik.prototype.Jl;Ik.prototype.getStyleFunction=Ik.prototype.ec;Ik.prototype.setGeometry=Ik.prototype.Ua;Ik.prototype.setStyle=Ik.prototype.sf;Ik.prototype.setId=Ik.prototype.mc;Ik.prototype.setGeometryName=Ik.prototype.Ec;u("ol.featureloader.tile",dl);u("ol.featureloader.xhr",el);u("ol.Geolocation",St);St.prototype.getAccuracy=St.prototype.Mj;St.prototype.getAccuracyGeometry=St.prototype.Nj;St.prototype.getAltitude=St.prototype.Pj;
|
||||||
|
St.prototype.getAltitudeAccuracy=St.prototype.Qj;St.prototype.getHeading=St.prototype.Ll;St.prototype.getPosition=St.prototype.Ml;St.prototype.getProjection=St.prototype.ah;St.prototype.getSpeed=St.prototype.wk;St.prototype.getTracking=St.prototype.bh;St.prototype.getTrackingOptions=St.prototype.Mg;St.prototype.setProjection=St.prototype.dh;St.prototype.setTracking=St.prototype.ge;St.prototype.setTrackingOptions=St.prototype.si;u("ol.Graticule",Yt);Yt.prototype.getMap=Yt.prototype.Pl;
|
||||||
|
Yt.prototype.getMeridians=Yt.prototype.ik;Yt.prototype.getParallels=Yt.prototype.qk;Yt.prototype.setMap=Yt.prototype.setMap;u("ol.has.DEVICE_PIXEL_RATIO",$f);u("ol.has.CANVAS",bg);u("ol.has.DEVICE_ORIENTATION",cg);u("ol.has.GEOLOCATION",dg);u("ol.has.TOUCH",eg);u("ol.has.WEBGL",Vf);cu.prototype.getImage=cu.prototype.a;cu.prototype.load=cu.prototype.load;du.prototype.getImage=du.prototype.$a;du.prototype.load=du.prototype.load;u("ol.Kinetic",Vh);u("ol.loadingstrategy.all",fl);
|
||||||
|
u("ol.loadingstrategy.bbox",function(a){return[a]});u("ol.loadingstrategy.tile",function(a){return function(b,c){var d=a.Lb(c),e=gf(a,b,d),f=[],d=[d,0,0];for(d[1]=e.ca;d[1]<=e.ea;++d[1])for(d[2]=e.fa;d[2]<=e.ga;++d[2])f.push(a.Ea(d));return f}});u("ol.Map",Q);Q.prototype.addControl=Q.prototype.uj;Q.prototype.addInteraction=Q.prototype.vj;Q.prototype.addLayer=Q.prototype.kg;Q.prototype.addOverlay=Q.prototype.lg;Q.prototype.beforeRender=Q.prototype.Wa;Q.prototype.forEachFeatureAtPixel=Q.prototype.kd;
|
||||||
|
Q.prototype.forEachLayerAtPixel=Q.prototype.Tl;Q.prototype.hasFeatureAtPixel=Q.prototype.kl;Q.prototype.getEventCoordinate=Q.prototype.Wj;Q.prototype.getEventPixel=Q.prototype.Td;Q.prototype.getTarget=Q.prototype.tf;Q.prototype.getTargetElement=Q.prototype.yc;Q.prototype.getCoordinateFromPixel=Q.prototype.Ma;Q.prototype.getControls=Q.prototype.Uj;Q.prototype.getOverlays=Q.prototype.nk;Q.prototype.getOverlayById=Q.prototype.mk;Q.prototype.getInteractions=Q.prototype.ak;Q.prototype.getLayerGroup=Q.prototype.xc;
|
||||||
|
Q.prototype.getLayers=Q.prototype.eh;Q.prototype.getPixelFromCoordinate=Q.prototype.Ga;Q.prototype.getSize=Q.prototype.Za;Q.prototype.getView=Q.prototype.aa;Q.prototype.getViewport=Q.prototype.Dk;Q.prototype.renderSync=Q.prototype.Vo;Q.prototype.render=Q.prototype.render;Q.prototype.removeControl=Q.prototype.Oo;Q.prototype.removeInteraction=Q.prototype.Po;Q.prototype.removeLayer=Q.prototype.Ro;Q.prototype.removeOverlay=Q.prototype.So;Q.prototype.setLayerGroup=Q.prototype.ji;Q.prototype.setSize=Q.prototype.Wf;
|
||||||
|
Q.prototype.setTarget=Q.prototype.fh;Q.prototype.setView=Q.prototype.kp;Q.prototype.updateSize=Q.prototype.Xc;Og.prototype.originalEvent=Og.prototype.originalEvent;Og.prototype.pixel=Og.prototype.pixel;Og.prototype.coordinate=Og.prototype.coordinate;Og.prototype.dragging=Og.prototype.dragging;Oe.prototype.map=Oe.prototype.map;Oe.prototype.frameState=Oe.prototype.frameState;ab.prototype.key=ab.prototype.key;ab.prototype.oldValue=ab.prototype.oldValue;u("ol.Object",bb);bb.prototype.get=bb.prototype.get;
|
||||||
|
bb.prototype.getKeys=bb.prototype.N;bb.prototype.getProperties=bb.prototype.O;bb.prototype.set=bb.prototype.set;bb.prototype.setProperties=bb.prototype.G;bb.prototype.unset=bb.prototype.R;u("ol.Observable",Za);u("ol.Observable.unByKey",$a);Za.prototype.changed=Za.prototype.u;Za.prototype.dispatchEvent=Za.prototype.b;Za.prototype.getRevision=Za.prototype.K;Za.prototype.on=Za.prototype.I;Za.prototype.once=Za.prototype.L;Za.prototype.un=Za.prototype.J;Za.prototype.unByKey=Za.prototype.M;
|
||||||
|
u("ol.inherits",x);u("ol.Overlay",Xm);Xm.prototype.getElement=Xm.prototype.Sd;Xm.prototype.getId=Xm.prototype.Xa;Xm.prototype.getMap=Xm.prototype.he;Xm.prototype.getOffset=Xm.prototype.Kg;Xm.prototype.getPosition=Xm.prototype.gh;Xm.prototype.getPositioning=Xm.prototype.Lg;Xm.prototype.setElement=Xm.prototype.fi;Xm.prototype.setMap=Xm.prototype.setMap;Xm.prototype.setOffset=Xm.prototype.li;Xm.prototype.setPosition=Xm.prototype.uf;Xm.prototype.setPositioning=Xm.prototype.oi;
|
||||||
|
u("ol.render.toContext",function(a,b){var c=a.canvas,d=b?b:{},e=d.pixelRatio||$f;if(d=d.size)c.width=d[0]*e,c.height=d[1]*e,c.style.width=d[0]+"px",c.style.height=d[1]+"px";c=[0,0,c.width,c.height];d=jh(ch(),e,e);return new zj(a,e,c,d,0)});u("ol.size.toSize",$e);We.prototype.getTileCoord=We.prototype.i;We.prototype.load=We.prototype.load;Kk.prototype.getFormat=Kk.prototype.Ul;Kk.prototype.setFeatures=Kk.prototype.gi;Kk.prototype.setProjection=Kk.prototype.vf;Kk.prototype.setLoader=Kk.prototype.ki;
|
||||||
|
u("ol.View",Fd);Fd.prototype.constrainCenter=Fd.prototype.Pd;Fd.prototype.constrainResolution=Fd.prototype.constrainResolution;Fd.prototype.constrainRotation=Fd.prototype.constrainRotation;Fd.prototype.getCenter=Fd.prototype.ab;Fd.prototype.calculateExtent=Fd.prototype.Kc;Fd.prototype.getMaxResolution=Fd.prototype.Vl;Fd.prototype.getMinResolution=Fd.prototype.Wl;Fd.prototype.getProjection=Fd.prototype.Xl;Fd.prototype.getResolution=Fd.prototype.$;Fd.prototype.getResolutions=Fd.prototype.Yl;
|
||||||
|
Fd.prototype.getRotation=Fd.prototype.La;Fd.prototype.getZoom=Fd.prototype.Fk;Fd.prototype.fit=Fd.prototype.cf;Fd.prototype.centerOn=Fd.prototype.Ej;Fd.prototype.rotate=Fd.prototype.rotate;Fd.prototype.setCenter=Fd.prototype.nb;Fd.prototype.setResolution=Fd.prototype.Vb;Fd.prototype.setRotation=Fd.prototype.ie;Fd.prototype.setZoom=Fd.prototype.np;u("ol.xml.getAllTextContent",Nk);u("ol.xml.parse",Rk);gm.prototype.getGL=gm.prototype.$n;gm.prototype.useProgram=gm.prototype.we;
|
||||||
|
u("ol.tilegrid.TileGrid",df);df.prototype.forEachTileCoord=df.prototype.yg;df.prototype.getMaxZoom=df.prototype.Ig;df.prototype.getMinZoom=df.prototype.Jg;df.prototype.getOrigin=df.prototype.Ia;df.prototype.getResolution=df.prototype.$;df.prototype.getResolutions=df.prototype.Kh;df.prototype.getTileCoordExtent=df.prototype.Ea;df.prototype.getTileCoordForCoordAndResolution=df.prototype.Zd;df.prototype.getTileCoordForCoordAndZ=df.prototype.qd;df.prototype.getTileSize=df.prototype.Ja;
|
||||||
|
df.prototype.getZForResolution=df.prototype.Lb;u("ol.tilegrid.createXYZ",qf);u("ol.tilegrid.WMTS",dw);dw.prototype.getMatrixIds=dw.prototype.j;u("ol.tilegrid.WMTS.createFromCapabilitiesMatrixSet",ew);u("ol.style.AtlasManager",iw);u("ol.style.Circle",rj);rj.prototype.getFill=rj.prototype.Bn;rj.prototype.getImage=rj.prototype.jc;rj.prototype.getRadius=rj.prototype.Cn;rj.prototype.getStroke=rj.prototype.Dn;u("ol.style.Fill",jj);jj.prototype.getColor=jj.prototype.g;jj.prototype.setColor=jj.prototype.f;
|
||||||
|
u("ol.style.Icon",Fh);Fh.prototype.getAnchor=Fh.prototype.Zb;Fh.prototype.getImage=Fh.prototype.jc;Fh.prototype.getOrigin=Fh.prototype.Ia;Fh.prototype.getSrc=Fh.prototype.En;Fh.prototype.getSize=Fh.prototype.Gb;Fh.prototype.load=Fh.prototype.load;u("ol.style.Image",Eh);Eh.prototype.getOpacity=Eh.prototype.qe;Eh.prototype.getRotateWithView=Eh.prototype.Xd;Eh.prototype.getRotation=Eh.prototype.re;Eh.prototype.getScale=Eh.prototype.se;Eh.prototype.getSnapToPixel=Eh.prototype.Yd;
|
||||||
|
Eh.prototype.setOpacity=Eh.prototype.te;Eh.prototype.setRotation=Eh.prototype.ue;Eh.prototype.setScale=Eh.prototype.ve;u("ol.style.RegularShape",mw);mw.prototype.getAnchor=mw.prototype.Zb;mw.prototype.getAngle=mw.prototype.Fn;mw.prototype.getFill=mw.prototype.Gn;mw.prototype.getImage=mw.prototype.jc;mw.prototype.getOrigin=mw.prototype.Ia;mw.prototype.getPoints=mw.prototype.Hn;mw.prototype.getRadius=mw.prototype.In;mw.prototype.getRadius2=mw.prototype.uk;mw.prototype.getSize=mw.prototype.Gb;
|
||||||
|
mw.prototype.getStroke=mw.prototype.Jn;u("ol.style.Stroke",pj);pj.prototype.getColor=pj.prototype.Kn;pj.prototype.getLineCap=pj.prototype.dk;pj.prototype.getLineDash=pj.prototype.Ln;pj.prototype.getLineJoin=pj.prototype.ek;pj.prototype.getMiterLimit=pj.prototype.jk;pj.prototype.getWidth=pj.prototype.Mn;pj.prototype.setColor=pj.prototype.Nn;pj.prototype.setLineCap=pj.prototype.fp;pj.prototype.setLineDash=pj.prototype.On;pj.prototype.setLineJoin=pj.prototype.gp;pj.prototype.setMiterLimit=pj.prototype.hp;
|
||||||
|
pj.prototype.setWidth=pj.prototype.lp;u("ol.style.Style",sj);sj.prototype.getGeometry=sj.prototype.X;sj.prototype.getGeometryFunction=sj.prototype.Zj;sj.prototype.getFill=sj.prototype.Pn;sj.prototype.getImage=sj.prototype.Qn;sj.prototype.getStroke=sj.prototype.Rn;sj.prototype.getText=sj.prototype.Ha;sj.prototype.getZIndex=sj.prototype.Sn;sj.prototype.setGeometry=sj.prototype.Jh;sj.prototype.setZIndex=sj.prototype.Tn;u("ol.style.Text",Fp);Fp.prototype.getFont=Fp.prototype.Xj;
|
||||||
|
Fp.prototype.getOffsetX=Fp.prototype.kk;Fp.prototype.getOffsetY=Fp.prototype.lk;Fp.prototype.getFill=Fp.prototype.Un;Fp.prototype.getRotation=Fp.prototype.Vn;Fp.prototype.getScale=Fp.prototype.Wn;Fp.prototype.getStroke=Fp.prototype.Xn;Fp.prototype.getText=Fp.prototype.Ha;Fp.prototype.getTextAlign=Fp.prototype.yk;Fp.prototype.getTextBaseline=Fp.prototype.zk;Fp.prototype.setFont=Fp.prototype.bp;Fp.prototype.setOffsetX=Fp.prototype.mi;Fp.prototype.setOffsetY=Fp.prototype.ni;Fp.prototype.setFill=Fp.prototype.ap;
|
||||||
|
Fp.prototype.setRotation=Fp.prototype.Yn;Fp.prototype.setScale=Fp.prototype.Zn;Fp.prototype.setStroke=Fp.prototype.ip;Fp.prototype.setText=Fp.prototype.pi;Fp.prototype.setTextAlign=Fp.prototype.ri;Fp.prototype.setTextBaseline=Fp.prototype.jp;u("ol.Sphere",tc);tc.prototype.geodesicArea=tc.prototype.a;tc.prototype.haversineDistance=tc.prototype.b;u("ol.source.BingMaps",nv);u("ol.source.BingMaps.TOS_ATTRIBUTION",ov);u("ol.source.CartoDB",qv);qv.prototype.getConfig=qv.prototype.Tj;
|
||||||
|
qv.prototype.updateConfig=qv.prototype.up;qv.prototype.setConfig=qv.prototype.$o;u("ol.source.Cluster",Y);Y.prototype.getSource=Y.prototype.Sa;u("ol.source.ImageArcGISRest",wv);wv.prototype.getParams=wv.prototype.Sm;wv.prototype.getImageLoadFunction=wv.prototype.Rm;wv.prototype.getUrl=wv.prototype.Tm;wv.prototype.setImageLoadFunction=wv.prototype.Um;wv.prototype.setUrl=wv.prototype.Vm;wv.prototype.updateParams=wv.prototype.Wm;u("ol.source.ImageCanvas",Hk);u("ol.source.ImageMapGuide",xv);
|
||||||
|
xv.prototype.getParams=xv.prototype.Ym;xv.prototype.getImageLoadFunction=xv.prototype.Xm;xv.prototype.updateParams=xv.prototype.$m;xv.prototype.setImageLoadFunction=xv.prototype.Zm;u("ol.source.Image",Ak);Ck.prototype.image=Ck.prototype.image;u("ol.source.ImageStatic",yv);u("ol.source.ImageVector",yl);yl.prototype.getSource=yl.prototype.an;yl.prototype.getStyle=yl.prototype.bn;yl.prototype.getStyleFunction=yl.prototype.cn;yl.prototype.setStyle=yl.prototype.xh;u("ol.source.ImageWMS",zv);
|
||||||
|
zv.prototype.getGetFeatureInfoUrl=zv.prototype.fn;zv.prototype.getParams=zv.prototype.hn;zv.prototype.getImageLoadFunction=zv.prototype.gn;zv.prototype.getUrl=zv.prototype.jn;zv.prototype.setImageLoadFunction=zv.prototype.kn;zv.prototype.setUrl=zv.prototype.ln;zv.prototype.updateParams=zv.prototype.mn;u("ol.source.OSM",Dv);u("ol.source.OSM.ATTRIBUTION",Ev);u("ol.source.Raster",Fv);Fv.prototype.setOperation=Fv.prototype.v;Kv.prototype.extent=Kv.prototype.extent;Kv.prototype.resolution=Kv.prototype.resolution;
|
||||||
|
Kv.prototype.data=Kv.prototype.data;u("ol.source.Source",af);af.prototype.getAttributions=af.prototype.wa;af.prototype.getLogo=af.prototype.ua;af.prototype.getProjection=af.prototype.xa;af.prototype.getState=af.prototype.V;af.prototype.refresh=af.prototype.ta;af.prototype.setAttributions=af.prototype.qa;u("ol.source.Stamen",Pv);u("ol.source.TileArcGISRest",Rv);Rv.prototype.getParams=Rv.prototype.v;Rv.prototype.updateParams=Rv.prototype.A;u("ol.source.TileDebug",Tv);u("ol.source.TileImage",X);
|
||||||
|
X.prototype.setRenderReprojectionEdges=X.prototype.Ab;X.prototype.setTileGridForProjection=X.prototype.Bb;u("ol.source.TileJSON",Uv);Uv.prototype.getTileJSON=Uv.prototype.Ak;u("ol.source.Tile",rf);rf.prototype.getTileGrid=rf.prototype.Na;wf.prototype.tile=wf.prototype.tile;u("ol.source.TileUTFGrid",Vv);Vv.prototype.getTemplate=Vv.prototype.xk;Vv.prototype.forDataAtCoordinateAndResolution=Vv.prototype.Ij;u("ol.source.TileWMS",Zv);Zv.prototype.getGetFeatureInfoUrl=Zv.prototype.vn;
|
||||||
|
Zv.prototype.getParams=Zv.prototype.wn;Zv.prototype.updateParams=Zv.prototype.xn;Jl.prototype.getTileLoadFunction=Jl.prototype.gb;Jl.prototype.getTileUrlFunction=Jl.prototype.hb;Jl.prototype.getUrls=Jl.prototype.ib;Jl.prototype.setTileLoadFunction=Jl.prototype.lb;Jl.prototype.setTileUrlFunction=Jl.prototype.Qa;Jl.prototype.setUrl=Jl.prototype.Va;Jl.prototype.setUrls=Jl.prototype.bb;u("ol.source.Vector",P);P.prototype.addFeature=P.prototype.sb;P.prototype.addFeatures=P.prototype.Jc;
|
||||||
|
P.prototype.clear=P.prototype.clear;P.prototype.forEachFeature=P.prototype.wg;P.prototype.forEachFeatureInExtent=P.prototype.vb;P.prototype.forEachFeatureIntersectingExtent=P.prototype.xg;P.prototype.getFeaturesCollection=P.prototype.Fg;P.prototype.getFeatures=P.prototype.oe;P.prototype.getFeaturesAtCoordinate=P.prototype.Eg;P.prototype.getFeaturesInExtent=P.prototype.ef;P.prototype.getClosestFeatureToCoordinate=P.prototype.Ag;P.prototype.getExtent=P.prototype.H;P.prototype.getFeatureById=P.prototype.Dg;
|
||||||
|
P.prototype.getFormat=P.prototype.Ch;P.prototype.getUrl=P.prototype.Dh;P.prototype.removeFeature=P.prototype.ob;vl.prototype.feature=vl.prototype.feature;u("ol.source.VectorTile",Kl);u("ol.source.WMTS",Z);Z.prototype.getDimensions=Z.prototype.Vj;Z.prototype.getFormat=Z.prototype.yn;Z.prototype.getLayer=Z.prototype.zn;Z.prototype.getMatrixSet=Z.prototype.hk;Z.prototype.getRequestEncoding=Z.prototype.vk;Z.prototype.getStyle=Z.prototype.An;Z.prototype.getVersion=Z.prototype.Ck;
|
||||||
|
Z.prototype.updateDimensions=Z.prototype.vp;
|
||||||
|
u("ol.source.WMTS.optionsFromCapabilities",function(a,b){var c=lb(a.Contents.Layer,function(a){return a.Identifier==b.layer}),d=a.Contents.TileMatrixSet,e,f;e=1<c.TileMatrixSetLink.length?"projection"in b?pb(c.TileMatrixSetLink,function(a){return lb(d,function(b){return b.Identifier==a.TileMatrixSet}).SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3")==b.projection}):pb(c.TileMatrixSetLink,function(a){return a.TileMatrixSet==b.matrixSet}):0;0>e&&(e=0);f=c.TileMatrixSetLink[e].TileMatrixSet;
|
||||||
|
var g=c.Format[0];"format"in b&&(g=b.format);e=pb(c.Style,function(a){return"style"in b?a.Title==b.style:a.isDefault});0>e&&(e=0);e=c.Style[e].Identifier;var h={};"Dimension"in c&&c.Dimension.forEach(function(a){var b=a.Identifier,c=a.Default;void 0===c&&(c=a.Value[0]);h[b]=c});var l=lb(a.Contents.TileMatrixSet,function(a){return a.Identifier==f}),m;m="projection"in b?zc(b.projection):zc(l.SupportedCRS.replace(/urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/,"$1:$3"));var n=c.WGS84BoundingBox,p,q;void 0!==n&&
|
||||||
|
(q=zc("EPSG:4326").H(),q=n[0]==q[0]&&n[2]==q[2],p=Tc(n,"EPSG:4326",m),(n=m.H())&&(Sb(n,p)||(p=void 0)));var l=ew(l,p),r=[];p=b.requestEncoding;p=void 0!==p?p:"";if("OperationsMetadata"in a&&"GetTile"in a.OperationsMetadata)for(var n=a.OperationsMetadata.GetTile.DCP.HTTP.Get,v=0,y=n.length;v<y;++v){var w=lb(n[v].Constraint,function(a){return"GetEncoding"==a.name}).AllowedValues.Value;""===p&&(p=w[0]);if("KVP"===p)gb(w,"KVP")&&r.push(n[v].href);else break}0===r.length&&(p="REST",c.ResourceURL.forEach(function(a){"tile"===
|
||||||
|
a.resourceType&&(g=a.format,r.push(a.template))}));return{urls:r,layer:b.layer,matrixSet:f,format:g,projection:m,requestEncoding:p,tileGrid:l,style:e,dimensions:h,wrapX:q}});u("ol.source.XYZ",pv);u("ol.source.Zoomify",gw);qh.prototype.vectorContext=qh.prototype.vectorContext;qh.prototype.frameState=qh.prototype.frameState;qh.prototype.context=qh.prototype.context;qh.prototype.glContext=qh.prototype.glContext;ik.prototype.get=ik.prototype.get;ik.prototype.getExtent=ik.prototype.H;
|
||||||
|
ik.prototype.getGeometry=ik.prototype.X;ik.prototype.getProperties=ik.prototype.Nm;ik.prototype.getType=ik.prototype.Y;u("ol.render.VectorContext",ph);Cm.prototype.setStyle=Cm.prototype.sd;Cm.prototype.drawGeometry=Cm.prototype.sc;Cm.prototype.drawFeature=Cm.prototype.Ye;zj.prototype.drawCircle=zj.prototype.Rd;zj.prototype.setStyle=zj.prototype.sd;zj.prototype.drawGeometry=zj.prototype.sc;zj.prototype.drawFeature=zj.prototype.Ye;u("ol.proj.common.add",dj);u("ol.proj.METERS_PER_UNIT",vc);
|
||||||
|
u("ol.proj.Projection",wc);wc.prototype.getCode=wc.prototype.Sj;wc.prototype.getExtent=wc.prototype.H;wc.prototype.getUnits=wc.prototype.xb;wc.prototype.getMetersPerUnit=wc.prototype.ac;wc.prototype.getWorldExtent=wc.prototype.Ek;wc.prototype.isGlobal=wc.prototype.pl;wc.prototype.setGlobal=wc.prototype.ep;wc.prototype.setExtent=wc.prototype.Mm;wc.prototype.setWorldExtent=wc.prototype.mp;wc.prototype.setGetPointResolution=wc.prototype.cp;wc.prototype.getPointResolution=wc.prototype.getPointResolution;
|
||||||
|
u("ol.proj.setProj4",function(a){yc=a});u("ol.proj.addEquivalentProjections",Ac);u("ol.proj.addProjection",Mc);u("ol.proj.addCoordinateTransforms",Bc);u("ol.proj.fromLonLat",function(a,b){return Sc(a,"EPSG:4326",void 0!==b?b:"EPSG:3857")});u("ol.proj.toLonLat",function(a,b){return Sc(a,void 0!==b?b:"EPSG:3857","EPSG:4326")});u("ol.proj.get",zc);u("ol.proj.equivalent",Pc);u("ol.proj.getTransform",Qc);u("ol.proj.transform",Sc);u("ol.proj.transformExtent",Tc);u("ol.layer.Heatmap",W);
|
||||||
|
W.prototype.getBlur=W.prototype.zg;W.prototype.getGradient=W.prototype.Gg;W.prototype.getRadius=W.prototype.ph;W.prototype.setBlur=W.prototype.di;W.prototype.setGradient=W.prototype.ii;W.prototype.setRadius=W.prototype.qh;u("ol.layer.Image",ej);ej.prototype.getSource=ej.prototype.ha;u("ol.layer.Layer",rh);rh.prototype.getSource=rh.prototype.ha;rh.prototype.setMap=rh.prototype.setMap;rh.prototype.setSource=rh.prototype.Fc;u("ol.layer.Base",nh);nh.prototype.getExtent=nh.prototype.H;
|
||||||
|
nh.prototype.getMaxResolution=nh.prototype.Ob;nh.prototype.getMinResolution=nh.prototype.Pb;nh.prototype.getOpacity=nh.prototype.Qb;nh.prototype.getVisible=nh.prototype.yb;nh.prototype.getZIndex=nh.prototype.Rb;nh.prototype.setExtent=nh.prototype.fc;nh.prototype.setMaxResolution=nh.prototype.nc;nh.prototype.setMinResolution=nh.prototype.oc;nh.prototype.setOpacity=nh.prototype.gc;nh.prototype.setVisible=nh.prototype.hc;nh.prototype.setZIndex=nh.prototype.ic;u("ol.layer.Group",Vi);
|
||||||
|
Vi.prototype.getLayers=Vi.prototype.Tc;Vi.prototype.setLayers=Vi.prototype.oh;u("ol.layer.Tile",F);F.prototype.getPreload=F.prototype.f;F.prototype.getSource=F.prototype.ha;F.prototype.setPreload=F.prototype.l;F.prototype.getUseInterimTilesOnError=F.prototype.c;F.prototype.setUseInterimTilesOnError=F.prototype.A;u("ol.layer.Vector",I);I.prototype.getSource=I.prototype.ha;I.prototype.getStyle=I.prototype.D;I.prototype.getStyleFunction=I.prototype.C;I.prototype.setStyle=I.prototype.l;
|
||||||
|
u("ol.layer.VectorTile",J);J.prototype.getPreload=J.prototype.f;J.prototype.getUseInterimTilesOnError=J.prototype.c;J.prototype.setPreload=J.prototype.W;J.prototype.setUseInterimTilesOnError=J.prototype.ia;u("ol.interaction.DoubleClickZoom",ai);u("ol.interaction.DoubleClickZoom.handleEvent",bi);u("ol.interaction.DragAndDrop",fu);u("ol.interaction.DragAndDrop.handleEvent",rc);iu.prototype.features=iu.prototype.features;iu.prototype.file=iu.prototype.file;iu.prototype.projection=iu.prototype.projection;
|
||||||
|
zi.prototype.coordinate=zi.prototype.coordinate;zi.prototype.mapBrowserEvent=zi.prototype.mapBrowserEvent;u("ol.interaction.DragBox",Ai);Ai.prototype.getGeometry=Ai.prototype.X;u("ol.interaction.DragPan",oi);u("ol.interaction.DragRotateAndZoom",ku);u("ol.interaction.DragRotate",si);u("ol.interaction.DragZoom",Fi);ou.prototype.feature=ou.prototype.feature;u("ol.interaction.Draw",pu);u("ol.interaction.Draw.handleEvent",ru);pu.prototype.removeLastPoint=pu.prototype.Qo;pu.prototype.finishDrawing=pu.prototype.jd;
|
||||||
|
pu.prototype.extend=pu.prototype.rm;u("ol.interaction.Draw.createRegularPolygon",function(a,b){return function(c,d){var e=c[0],f=c[1],g=Math.sqrt(Eb(e,f)),h=d?d:Dd(new Tt(e),a);Ed(h,e,g,b?b:Math.atan((f[1]-e[1])/(f[0]-e[0])));return h}});u("ol.interaction.Interaction",Xh);Xh.prototype.getActive=Xh.prototype.f;Xh.prototype.getMap=Xh.prototype.l;Xh.prototype.setActive=Xh.prototype.i;u("ol.interaction.defaults",Ui);u("ol.interaction.KeyboardPan",Gi);u("ol.interaction.KeyboardPan.handleEvent",Hi);
|
||||||
|
u("ol.interaction.KeyboardZoom",Ii);u("ol.interaction.KeyboardZoom.handleEvent",Ji);Fu.prototype.features=Fu.prototype.features;Fu.prototype.mapBrowserEvent=Fu.prototype.mapBrowserEvent;u("ol.interaction.Modify",Gu);u("ol.interaction.Modify.handleEvent",Ju);Gu.prototype.removePoint=Gu.prototype.ai;u("ol.interaction.MouseWheelZoom",Ki);u("ol.interaction.MouseWheelZoom.handleEvent",Li);Ki.prototype.setMouseAnchor=Ki.prototype.C;u("ol.interaction.PinchRotate",Mi);u("ol.interaction.PinchZoom",Qi);
|
||||||
|
u("ol.interaction.Pointer",li);u("ol.interaction.Pointer.handleEvent",mi);Tu.prototype.selected=Tu.prototype.selected;Tu.prototype.deselected=Tu.prototype.deselected;Tu.prototype.mapBrowserEvent=Tu.prototype.mapBrowserEvent;u("ol.interaction.Select",Uu);Uu.prototype.getFeatures=Uu.prototype.Bm;Uu.prototype.getLayer=Uu.prototype.Cm;u("ol.interaction.Select.handleEvent",Vu);Uu.prototype.setMap=Uu.prototype.setMap;u("ol.interaction.Snap",Xu);Xu.prototype.addFeature=Xu.prototype.sb;
|
||||||
|
Xu.prototype.removeFeature=Xu.prototype.ob;av.prototype.features=av.prototype.features;av.prototype.coordinate=av.prototype.coordinate;u("ol.interaction.Translate",bv);u("ol.geom.Circle",Tt);Tt.prototype.clone=Tt.prototype.clone;Tt.prototype.getCenter=Tt.prototype.rd;Tt.prototype.getRadius=Tt.prototype.wf;Tt.prototype.getType=Tt.prototype.Y;Tt.prototype.intersectsExtent=Tt.prototype.Ka;Tt.prototype.setCenter=Tt.prototype.jm;Tt.prototype.setCenterAndRadius=Tt.prototype.Vf;Tt.prototype.setRadius=Tt.prototype.km;
|
||||||
|
Tt.prototype.transform=Tt.prototype.kb;u("ol.geom.Geometry",Uc);Uc.prototype.getClosestPoint=Uc.prototype.wb;Uc.prototype.getExtent=Uc.prototype.H;Uc.prototype.rotate=Uc.prototype.rotate;Uc.prototype.simplify=Uc.prototype.Cb;Uc.prototype.transform=Uc.prototype.kb;u("ol.geom.GeometryCollection",Kn);Kn.prototype.clone=Kn.prototype.clone;Kn.prototype.getGeometries=Kn.prototype.ff;Kn.prototype.getType=Kn.prototype.Y;Kn.prototype.intersectsExtent=Kn.prototype.Ka;Kn.prototype.setGeometries=Kn.prototype.hi;
|
||||||
|
Kn.prototype.applyTransform=Kn.prototype.rc;Kn.prototype.translate=Kn.prototype.Sc;u("ol.geom.LinearRing",nd);nd.prototype.clone=nd.prototype.clone;nd.prototype.getArea=nd.prototype.nm;nd.prototype.getCoordinates=nd.prototype.Z;nd.prototype.getType=nd.prototype.Y;nd.prototype.setCoordinates=nd.prototype.ra;u("ol.geom.LineString",R);R.prototype.appendCoordinate=R.prototype.wj;R.prototype.clone=R.prototype.clone;R.prototype.forEachSegment=R.prototype.Lj;R.prototype.getCoordinateAtM=R.prototype.lm;
|
||||||
|
R.prototype.getCoordinates=R.prototype.Z;R.prototype.getCoordinateAt=R.prototype.Bg;R.prototype.getLength=R.prototype.mm;R.prototype.getType=R.prototype.Y;R.prototype.intersectsExtent=R.prototype.Ka;R.prototype.setCoordinates=R.prototype.ra;u("ol.geom.MultiLineString",S);S.prototype.appendLineString=S.prototype.xj;S.prototype.clone=S.prototype.clone;S.prototype.getCoordinateAtM=S.prototype.om;S.prototype.getCoordinates=S.prototype.Z;S.prototype.getLineString=S.prototype.fk;
|
||||||
|
S.prototype.getLineStrings=S.prototype.md;S.prototype.getType=S.prototype.Y;S.prototype.intersectsExtent=S.prototype.Ka;S.prototype.setCoordinates=S.prototype.ra;u("ol.geom.MultiPoint",T);T.prototype.appendPoint=T.prototype.zj;T.prototype.clone=T.prototype.clone;T.prototype.getCoordinates=T.prototype.Z;T.prototype.getPoint=T.prototype.rk;T.prototype.getPoints=T.prototype.je;T.prototype.getType=T.prototype.Y;T.prototype.intersectsExtent=T.prototype.Ka;T.prototype.setCoordinates=T.prototype.ra;
|
||||||
|
u("ol.geom.MultiPolygon",U);U.prototype.appendPolygon=U.prototype.Aj;U.prototype.clone=U.prototype.clone;U.prototype.getArea=U.prototype.pm;U.prototype.getCoordinates=U.prototype.Z;U.prototype.getInteriorPoints=U.prototype.ck;U.prototype.getPolygon=U.prototype.tk;U.prototype.getPolygons=U.prototype.Wd;U.prototype.getType=U.prototype.Y;U.prototype.intersectsExtent=U.prototype.Ka;U.prototype.setCoordinates=U.prototype.ra;u("ol.geom.Point",C);C.prototype.clone=C.prototype.clone;
|
||||||
|
C.prototype.getCoordinates=C.prototype.Z;C.prototype.getType=C.prototype.Y;C.prototype.intersectsExtent=C.prototype.Ka;C.prototype.setCoordinates=C.prototype.ra;u("ol.geom.Polygon",E);E.prototype.appendLinearRing=E.prototype.yj;E.prototype.clone=E.prototype.clone;E.prototype.getArea=E.prototype.qm;E.prototype.getCoordinates=E.prototype.Z;E.prototype.getInteriorPoint=E.prototype.bk;E.prototype.getLinearRingCount=E.prototype.gk;E.prototype.getLinearRing=E.prototype.Hg;E.prototype.getLinearRings=E.prototype.Vd;
|
||||||
|
E.prototype.getType=E.prototype.Y;E.prototype.intersectsExtent=E.prototype.Ka;E.prototype.setCoordinates=E.prototype.ra;u("ol.geom.Polygon.circular",Bd);u("ol.geom.Polygon.fromExtent",Cd);u("ol.geom.Polygon.fromCircle",Dd);u("ol.geom.SimpleGeometry",Wc);Wc.prototype.getFirstCoordinate=Wc.prototype.Ib;Wc.prototype.getLastCoordinate=Wc.prototype.Jb;Wc.prototype.getLayout=Wc.prototype.Kb;Wc.prototype.applyTransform=Wc.prototype.rc;Wc.prototype.translate=Wc.prototype.Sc;u("ol.format.EsriJSON",Dn);
|
||||||
|
Dn.prototype.readFeature=Dn.prototype.Sb;Dn.prototype.readFeatures=Dn.prototype.Fa;Dn.prototype.readGeometry=Dn.prototype.Vc;Dn.prototype.readProjection=Dn.prototype.Oa;Dn.prototype.writeGeometry=Dn.prototype.Zc;Dn.prototype.writeGeometryObject=Dn.prototype.Ke;Dn.prototype.writeFeature=Dn.prototype.Dd;Dn.prototype.writeFeatureObject=Dn.prototype.Yc;Dn.prototype.writeFeatures=Dn.prototype.Yb;Dn.prototype.writeFeaturesObject=Dn.prototype.Ie;u("ol.format.Feature",rn);u("ol.format.GeoJSON",On);
|
||||||
|
On.prototype.readFeature=On.prototype.Sb;On.prototype.readFeatures=On.prototype.Fa;On.prototype.readGeometry=On.prototype.Vc;On.prototype.readProjection=On.prototype.Oa;On.prototype.writeFeature=On.prototype.Dd;On.prototype.writeFeatureObject=On.prototype.Yc;On.prototype.writeFeatures=On.prototype.Yb;On.prototype.writeFeaturesObject=On.prototype.Ie;On.prototype.writeGeometry=On.prototype.Zc;On.prototype.writeGeometryObject=On.prototype.Ke;u("ol.format.GPX",to);to.prototype.readFeature=to.prototype.Sb;
|
||||||
|
to.prototype.readFeatures=to.prototype.Fa;to.prototype.readProjection=to.prototype.Oa;to.prototype.writeFeatures=to.prototype.Yb;to.prototype.writeFeaturesNode=to.prototype.a;u("ol.format.IGC",cp);cp.prototype.readFeature=cp.prototype.Sb;cp.prototype.readFeatures=cp.prototype.Fa;cp.prototype.readProjection=cp.prototype.Oa;u("ol.format.KML",Gp);Gp.prototype.readFeature=Gp.prototype.Sb;Gp.prototype.readFeatures=Gp.prototype.Fa;Gp.prototype.readName=Gp.prototype.Fo;Gp.prototype.readNetworkLinks=Gp.prototype.Go;
|
||||||
|
Gp.prototype.readProjection=Gp.prototype.Oa;Gp.prototype.writeFeatures=Gp.prototype.Yb;Gp.prototype.writeFeaturesNode=Gp.prototype.a;u("ol.format.MVT",vr);vr.prototype.readFeatures=vr.prototype.Fa;vr.prototype.readProjection=vr.prototype.Oa;vr.prototype.setLayers=vr.prototype.c;u("ol.format.OSMXML",Rr);Rr.prototype.readFeatures=Rr.prototype.Fa;Rr.prototype.readProjection=Rr.prototype.Oa;u("ol.format.Polyline",ps);u("ol.format.Polyline.encodeDeltas",qs);u("ol.format.Polyline.decodeDeltas",ss);
|
||||||
|
u("ol.format.Polyline.encodeFloats",rs);u("ol.format.Polyline.decodeFloats",ts);ps.prototype.readFeature=ps.prototype.Sb;ps.prototype.readFeatures=ps.prototype.Fa;ps.prototype.readGeometry=ps.prototype.Vc;ps.prototype.readProjection=ps.prototype.Oa;ps.prototype.writeGeometry=ps.prototype.Zc;u("ol.format.TopoJSON",us);us.prototype.readFeatures=us.prototype.Fa;us.prototype.readProjection=us.prototype.Oa;u("ol.format.WFS",As);As.prototype.readFeatures=As.prototype.Fa;
|
||||||
|
As.prototype.readTransactionResponse=As.prototype.o;As.prototype.readFeatureCollectionMetadata=As.prototype.l;As.prototype.writeGetFeature=As.prototype.j;As.prototype.writeTransaction=As.prototype.U;As.prototype.readProjection=As.prototype.Oa;u("ol.format.WKT",Rs);Rs.prototype.readFeature=Rs.prototype.Sb;Rs.prototype.readFeatures=Rs.prototype.Fa;Rs.prototype.readGeometry=Rs.prototype.Vc;Rs.prototype.writeFeature=Rs.prototype.Dd;Rs.prototype.writeFeatures=Rs.prototype.Yb;
|
||||||
|
Rs.prototype.writeGeometry=Rs.prototype.Zc;u("ol.format.WMSCapabilities",ht);ht.prototype.read=ht.prototype.read;u("ol.format.WMSGetFeatureInfo",Et);Et.prototype.readFeatures=Et.prototype.Fa;u("ol.format.WMTSCapabilities",Ft);Ft.prototype.read=Ft.prototype.read;u("ol.format.ogc.filter.and",xr);u("ol.format.ogc.filter.or",function(a,b){return new Er(a,b)});u("ol.format.ogc.filter.not",function(a){return new Fr(a)});u("ol.format.ogc.filter.bbox",zr);
|
||||||
|
u("ol.format.ogc.filter.equalTo",function(a,b,c){return new Ir(a,b,c)});u("ol.format.ogc.filter.notEqualTo",function(a,b,c){return new Jr(a,b,c)});u("ol.format.ogc.filter.lessThan",function(a,b){return new Kr(a,b)});u("ol.format.ogc.filter.lessThanOrEqualTo",function(a,b){return new Lr(a,b)});u("ol.format.ogc.filter.greaterThan",function(a,b){return new Mr(a,b)});u("ol.format.ogc.filter.greaterThanOrEqualTo",function(a,b){return new Nr(a,b)});u("ol.format.ogc.filter.isNull",function(a){return new Or(a)});
|
||||||
|
u("ol.format.ogc.filter.between",function(a,b,c){return new Pr(a,b,c)});u("ol.format.ogc.filter.like",function(a,b,c,d,e,f){return new Qr(a,b,c,d,e,f)});u("ol.format.ogc.filter.Filter",Br);u("ol.format.ogc.filter.And",yr);u("ol.format.ogc.filter.Or",Er);u("ol.format.ogc.filter.Not",Fr);u("ol.format.ogc.filter.Bbox",Ar);u("ol.format.ogc.filter.Comparison",Gr);u("ol.format.ogc.filter.ComparisonBinary",Hr);u("ol.format.ogc.filter.EqualTo",Ir);u("ol.format.ogc.filter.NotEqualTo",Jr);
|
||||||
|
u("ol.format.ogc.filter.LessThan",Kr);u("ol.format.ogc.filter.LessThanOrEqualTo",Lr);u("ol.format.ogc.filter.GreaterThan",Mr);u("ol.format.ogc.filter.GreaterThanOrEqualTo",Nr);u("ol.format.ogc.filter.IsNull",Or);u("ol.format.ogc.filter.IsBetween",Pr);u("ol.format.ogc.filter.IsLike",Qr);u("ol.format.GML2",jo);u("ol.format.GML3",ko);ko.prototype.writeGeometryNode=ko.prototype.s;ko.prototype.writeFeatures=ko.prototype.Yb;ko.prototype.writeFeaturesNode=ko.prototype.a;u("ol.format.GML",ko);
|
||||||
|
ko.prototype.writeFeatures=ko.prototype.Yb;ko.prototype.writeFeaturesNode=ko.prototype.a;Wn.prototype.readFeatures=Wn.prototype.Fa;u("ol.events.condition.altKeyOnly",function(a){a=a.originalEvent;return a.altKey&&!(a.metaKey||a.ctrlKey)&&!a.shiftKey});u("ol.events.condition.altShiftKeysOnly",ci);u("ol.events.condition.always",rc);u("ol.events.condition.click",function(a){return a.type==Sg});u("ol.events.condition.never",sc);u("ol.events.condition.pointerMove",ei);
|
||||||
|
u("ol.events.condition.singleClick",fi);u("ol.events.condition.doubleClick",function(a){return a.type==Tg});u("ol.events.condition.noModifierKeys",gi);u("ol.events.condition.platformModifierKeyOnly",function(a){a=a.originalEvent;return!a.altKey&&(Zf?a.metaKey:a.ctrlKey)&&!a.shiftKey});u("ol.events.condition.shiftKeyOnly",hi);u("ol.events.condition.targetNotEditable",ii);u("ol.events.condition.mouseOnly",ji);u("ol.events.condition.primaryAction",ki);Ua.prototype.type=Ua.prototype.type;
|
||||||
|
Ua.prototype.target=Ua.prototype.target;Ua.prototype.preventDefault=Ua.prototype.preventDefault;Ua.prototype.stopPropagation=Ua.prototype.stopPropagation;u("ol.control.Attribution",xf);u("ol.control.Attribution.render",yf);xf.prototype.getCollapsible=xf.prototype.$l;xf.prototype.setCollapsible=xf.prototype.cm;xf.prototype.setCollapsed=xf.prototype.bm;xf.prototype.getCollapsed=xf.prototype.Zl;u("ol.control.Control",Pe);Pe.prototype.getMap=Pe.prototype.i;Pe.prototype.setMap=Pe.prototype.setMap;
|
||||||
|
Pe.prototype.setTarget=Pe.prototype.c;u("ol.control.defaults",Df);u("ol.control.FullScreen",Ef);u("ol.control.MousePosition",Jf);u("ol.control.MousePosition.render",Kf);Jf.prototype.getCoordinateFormat=Jf.prototype.Cg;Jf.prototype.getProjection=Jf.prototype.hh;Jf.prototype.setCoordinateFormat=Jf.prototype.ei;Jf.prototype.setProjection=Jf.prototype.ih;u("ol.control.OverviewMap",an);u("ol.control.OverviewMap.render",bn);an.prototype.getCollapsible=an.prototype.fm;an.prototype.setCollapsible=an.prototype.im;
|
||||||
|
an.prototype.setCollapsed=an.prototype.hm;an.prototype.getCollapsed=an.prototype.em;an.prototype.getOverviewMap=an.prototype.pk;u("ol.control.Rotate",Af);u("ol.control.Rotate.render",Bf);u("ol.control.ScaleLine",fn);fn.prototype.getUnits=fn.prototype.xb;u("ol.control.ScaleLine.render",gn);fn.prototype.setUnits=fn.prototype.C;u("ol.control.Zoom",Cf);u("ol.control.ZoomSlider",kn);u("ol.control.ZoomSlider.render",mn);u("ol.control.ZoomToExtent",pn);u("ol.color.asArray",je);u("ol.color.asString",le);
|
||||||
|
ae.prototype.type=ae.prototype.type;ae.prototype.target=ae.prototype.target;ae.prototype.preventDefault=ae.prototype.preventDefault;ae.prototype.stopPropagation=ae.prototype.stopPropagation;bb.prototype.changed=bb.prototype.u;bb.prototype.dispatchEvent=bb.prototype.b;bb.prototype.getRevision=bb.prototype.K;bb.prototype.on=bb.prototype.I;bb.prototype.once=bb.prototype.L;bb.prototype.un=bb.prototype.J;bb.prototype.unByKey=bb.prototype.M;be.prototype.get=be.prototype.get;be.prototype.getKeys=be.prototype.N;
|
||||||
|
be.prototype.getProperties=be.prototype.O;be.prototype.set=be.prototype.set;be.prototype.setProperties=be.prototype.G;be.prototype.unset=be.prototype.R;be.prototype.changed=be.prototype.u;be.prototype.dispatchEvent=be.prototype.b;be.prototype.getRevision=be.prototype.K;be.prototype.on=be.prototype.I;be.prototype.once=be.prototype.L;be.prototype.un=be.prototype.J;be.prototype.unByKey=be.prototype.M;qn.prototype.get=qn.prototype.get;qn.prototype.getKeys=qn.prototype.N;qn.prototype.getProperties=qn.prototype.O;
|
||||||
|
qn.prototype.set=qn.prototype.set;qn.prototype.setProperties=qn.prototype.G;qn.prototype.unset=qn.prototype.R;qn.prototype.changed=qn.prototype.u;qn.prototype.dispatchEvent=qn.prototype.b;qn.prototype.getRevision=qn.prototype.K;qn.prototype.on=qn.prototype.I;qn.prototype.once=qn.prototype.L;qn.prototype.un=qn.prototype.J;qn.prototype.unByKey=qn.prototype.M;Ik.prototype.get=Ik.prototype.get;Ik.prototype.getKeys=Ik.prototype.N;Ik.prototype.getProperties=Ik.prototype.O;Ik.prototype.set=Ik.prototype.set;
|
||||||
|
Ik.prototype.setProperties=Ik.prototype.G;Ik.prototype.unset=Ik.prototype.R;Ik.prototype.changed=Ik.prototype.u;Ik.prototype.dispatchEvent=Ik.prototype.b;Ik.prototype.getRevision=Ik.prototype.K;Ik.prototype.on=Ik.prototype.I;Ik.prototype.once=Ik.prototype.L;Ik.prototype.un=Ik.prototype.J;Ik.prototype.unByKey=Ik.prototype.M;St.prototype.get=St.prototype.get;St.prototype.getKeys=St.prototype.N;St.prototype.getProperties=St.prototype.O;St.prototype.set=St.prototype.set;St.prototype.setProperties=St.prototype.G;
|
||||||
|
St.prototype.unset=St.prototype.R;St.prototype.changed=St.prototype.u;St.prototype.dispatchEvent=St.prototype.b;St.prototype.getRevision=St.prototype.K;St.prototype.on=St.prototype.I;St.prototype.once=St.prototype.L;St.prototype.un=St.prototype.J;St.prototype.unByKey=St.prototype.M;du.prototype.getTileCoord=du.prototype.i;Q.prototype.get=Q.prototype.get;Q.prototype.getKeys=Q.prototype.N;Q.prototype.getProperties=Q.prototype.O;Q.prototype.set=Q.prototype.set;Q.prototype.setProperties=Q.prototype.G;
|
||||||
|
Q.prototype.unset=Q.prototype.R;Q.prototype.changed=Q.prototype.u;Q.prototype.dispatchEvent=Q.prototype.b;Q.prototype.getRevision=Q.prototype.K;Q.prototype.on=Q.prototype.I;Q.prototype.once=Q.prototype.L;Q.prototype.un=Q.prototype.J;Q.prototype.unByKey=Q.prototype.M;Oe.prototype.type=Oe.prototype.type;Oe.prototype.target=Oe.prototype.target;Oe.prototype.preventDefault=Oe.prototype.preventDefault;Oe.prototype.stopPropagation=Oe.prototype.stopPropagation;Og.prototype.map=Og.prototype.map;
|
||||||
|
Og.prototype.frameState=Og.prototype.frameState;Og.prototype.type=Og.prototype.type;Og.prototype.target=Og.prototype.target;Og.prototype.preventDefault=Og.prototype.preventDefault;Og.prototype.stopPropagation=Og.prototype.stopPropagation;Pg.prototype.originalEvent=Pg.prototype.originalEvent;Pg.prototype.pixel=Pg.prototype.pixel;Pg.prototype.coordinate=Pg.prototype.coordinate;Pg.prototype.dragging=Pg.prototype.dragging;Pg.prototype.preventDefault=Pg.prototype.preventDefault;
|
||||||
|
Pg.prototype.stopPropagation=Pg.prototype.stopPropagation;Pg.prototype.map=Pg.prototype.map;Pg.prototype.frameState=Pg.prototype.frameState;Pg.prototype.type=Pg.prototype.type;Pg.prototype.target=Pg.prototype.target;ab.prototype.type=ab.prototype.type;ab.prototype.target=ab.prototype.target;ab.prototype.preventDefault=ab.prototype.preventDefault;ab.prototype.stopPropagation=ab.prototype.stopPropagation;Xm.prototype.get=Xm.prototype.get;Xm.prototype.getKeys=Xm.prototype.N;
|
||||||
|
Xm.prototype.getProperties=Xm.prototype.O;Xm.prototype.set=Xm.prototype.set;Xm.prototype.setProperties=Xm.prototype.G;Xm.prototype.unset=Xm.prototype.R;Xm.prototype.changed=Xm.prototype.u;Xm.prototype.dispatchEvent=Xm.prototype.b;Xm.prototype.getRevision=Xm.prototype.K;Xm.prototype.on=Xm.prototype.I;Xm.prototype.once=Xm.prototype.L;Xm.prototype.un=Xm.prototype.J;Xm.prototype.unByKey=Xm.prototype.M;Kk.prototype.getTileCoord=Kk.prototype.i;Fd.prototype.get=Fd.prototype.get;Fd.prototype.getKeys=Fd.prototype.N;
|
||||||
|
Fd.prototype.getProperties=Fd.prototype.O;Fd.prototype.set=Fd.prototype.set;Fd.prototype.setProperties=Fd.prototype.G;Fd.prototype.unset=Fd.prototype.R;Fd.prototype.changed=Fd.prototype.u;Fd.prototype.dispatchEvent=Fd.prototype.b;Fd.prototype.getRevision=Fd.prototype.K;Fd.prototype.on=Fd.prototype.I;Fd.prototype.once=Fd.prototype.L;Fd.prototype.un=Fd.prototype.J;Fd.prototype.unByKey=Fd.prototype.M;dw.prototype.forEachTileCoord=dw.prototype.yg;dw.prototype.getMaxZoom=dw.prototype.Ig;
|
||||||
|
dw.prototype.getMinZoom=dw.prototype.Jg;dw.prototype.getOrigin=dw.prototype.Ia;dw.prototype.getResolution=dw.prototype.$;dw.prototype.getResolutions=dw.prototype.Kh;dw.prototype.getTileCoordExtent=dw.prototype.Ea;dw.prototype.getTileCoordForCoordAndResolution=dw.prototype.Zd;dw.prototype.getTileCoordForCoordAndZ=dw.prototype.qd;dw.prototype.getTileSize=dw.prototype.Ja;dw.prototype.getZForResolution=dw.prototype.Lb;rj.prototype.getOpacity=rj.prototype.qe;rj.prototype.getRotateWithView=rj.prototype.Xd;
|
||||||
|
rj.prototype.getRotation=rj.prototype.re;rj.prototype.getScale=rj.prototype.se;rj.prototype.getSnapToPixel=rj.prototype.Yd;rj.prototype.setOpacity=rj.prototype.te;rj.prototype.setRotation=rj.prototype.ue;rj.prototype.setScale=rj.prototype.ve;Fh.prototype.getOpacity=Fh.prototype.qe;Fh.prototype.getRotateWithView=Fh.prototype.Xd;Fh.prototype.getRotation=Fh.prototype.re;Fh.prototype.getScale=Fh.prototype.se;Fh.prototype.getSnapToPixel=Fh.prototype.Yd;Fh.prototype.setOpacity=Fh.prototype.te;
|
||||||
|
Fh.prototype.setRotation=Fh.prototype.ue;Fh.prototype.setScale=Fh.prototype.ve;mw.prototype.getOpacity=mw.prototype.qe;mw.prototype.getRotateWithView=mw.prototype.Xd;mw.prototype.getRotation=mw.prototype.re;mw.prototype.getScale=mw.prototype.se;mw.prototype.getSnapToPixel=mw.prototype.Yd;mw.prototype.setOpacity=mw.prototype.te;mw.prototype.setRotation=mw.prototype.ue;mw.prototype.setScale=mw.prototype.ve;af.prototype.get=af.prototype.get;af.prototype.getKeys=af.prototype.N;
|
||||||
|
af.prototype.getProperties=af.prototype.O;af.prototype.set=af.prototype.set;af.prototype.setProperties=af.prototype.G;af.prototype.unset=af.prototype.R;af.prototype.changed=af.prototype.u;af.prototype.dispatchEvent=af.prototype.b;af.prototype.getRevision=af.prototype.K;af.prototype.on=af.prototype.I;af.prototype.once=af.prototype.L;af.prototype.un=af.prototype.J;af.prototype.unByKey=af.prototype.M;rf.prototype.getAttributions=rf.prototype.wa;rf.prototype.getLogo=rf.prototype.ua;
|
||||||
|
rf.prototype.getProjection=rf.prototype.xa;rf.prototype.getState=rf.prototype.V;rf.prototype.refresh=rf.prototype.ta;rf.prototype.setAttributions=rf.prototype.qa;rf.prototype.get=rf.prototype.get;rf.prototype.getKeys=rf.prototype.N;rf.prototype.getProperties=rf.prototype.O;rf.prototype.set=rf.prototype.set;rf.prototype.setProperties=rf.prototype.G;rf.prototype.unset=rf.prototype.R;rf.prototype.changed=rf.prototype.u;rf.prototype.dispatchEvent=rf.prototype.b;rf.prototype.getRevision=rf.prototype.K;
|
||||||
|
rf.prototype.on=rf.prototype.I;rf.prototype.once=rf.prototype.L;rf.prototype.un=rf.prototype.J;rf.prototype.unByKey=rf.prototype.M;Jl.prototype.getTileGrid=Jl.prototype.Na;Jl.prototype.refresh=Jl.prototype.ta;Jl.prototype.getAttributions=Jl.prototype.wa;Jl.prototype.getLogo=Jl.prototype.ua;Jl.prototype.getProjection=Jl.prototype.xa;Jl.prototype.getState=Jl.prototype.V;Jl.prototype.setAttributions=Jl.prototype.qa;Jl.prototype.get=Jl.prototype.get;Jl.prototype.getKeys=Jl.prototype.N;
|
||||||
|
Jl.prototype.getProperties=Jl.prototype.O;Jl.prototype.set=Jl.prototype.set;Jl.prototype.setProperties=Jl.prototype.G;Jl.prototype.unset=Jl.prototype.R;Jl.prototype.changed=Jl.prototype.u;Jl.prototype.dispatchEvent=Jl.prototype.b;Jl.prototype.getRevision=Jl.prototype.K;Jl.prototype.on=Jl.prototype.I;Jl.prototype.once=Jl.prototype.L;Jl.prototype.un=Jl.prototype.J;Jl.prototype.unByKey=Jl.prototype.M;X.prototype.getTileLoadFunction=X.prototype.gb;X.prototype.getTileUrlFunction=X.prototype.hb;
|
||||||
|
X.prototype.getUrls=X.prototype.ib;X.prototype.setTileLoadFunction=X.prototype.lb;X.prototype.setTileUrlFunction=X.prototype.Qa;X.prototype.setUrl=X.prototype.Va;X.prototype.setUrls=X.prototype.bb;X.prototype.getTileGrid=X.prototype.Na;X.prototype.refresh=X.prototype.ta;X.prototype.getAttributions=X.prototype.wa;X.prototype.getLogo=X.prototype.ua;X.prototype.getProjection=X.prototype.xa;X.prototype.getState=X.prototype.V;X.prototype.setAttributions=X.prototype.qa;X.prototype.get=X.prototype.get;
|
||||||
|
X.prototype.getKeys=X.prototype.N;X.prototype.getProperties=X.prototype.O;X.prototype.set=X.prototype.set;X.prototype.setProperties=X.prototype.G;X.prototype.unset=X.prototype.R;X.prototype.changed=X.prototype.u;X.prototype.dispatchEvent=X.prototype.b;X.prototype.getRevision=X.prototype.K;X.prototype.on=X.prototype.I;X.prototype.once=X.prototype.L;X.prototype.un=X.prototype.J;X.prototype.unByKey=X.prototype.M;nv.prototype.setRenderReprojectionEdges=nv.prototype.Ab;
|
||||||
|
nv.prototype.setTileGridForProjection=nv.prototype.Bb;nv.prototype.getTileLoadFunction=nv.prototype.gb;nv.prototype.getTileUrlFunction=nv.prototype.hb;nv.prototype.getUrls=nv.prototype.ib;nv.prototype.setTileLoadFunction=nv.prototype.lb;nv.prototype.setTileUrlFunction=nv.prototype.Qa;nv.prototype.setUrl=nv.prototype.Va;nv.prototype.setUrls=nv.prototype.bb;nv.prototype.getTileGrid=nv.prototype.Na;nv.prototype.refresh=nv.prototype.ta;nv.prototype.getAttributions=nv.prototype.wa;
|
||||||
|
nv.prototype.getLogo=nv.prototype.ua;nv.prototype.getProjection=nv.prototype.xa;nv.prototype.getState=nv.prototype.V;nv.prototype.setAttributions=nv.prototype.qa;nv.prototype.get=nv.prototype.get;nv.prototype.getKeys=nv.prototype.N;nv.prototype.getProperties=nv.prototype.O;nv.prototype.set=nv.prototype.set;nv.prototype.setProperties=nv.prototype.G;nv.prototype.unset=nv.prototype.R;nv.prototype.changed=nv.prototype.u;nv.prototype.dispatchEvent=nv.prototype.b;nv.prototype.getRevision=nv.prototype.K;
|
||||||
|
nv.prototype.on=nv.prototype.I;nv.prototype.once=nv.prototype.L;nv.prototype.un=nv.prototype.J;nv.prototype.unByKey=nv.prototype.M;pv.prototype.setRenderReprojectionEdges=pv.prototype.Ab;pv.prototype.setTileGridForProjection=pv.prototype.Bb;pv.prototype.getTileLoadFunction=pv.prototype.gb;pv.prototype.getTileUrlFunction=pv.prototype.hb;pv.prototype.getUrls=pv.prototype.ib;pv.prototype.setTileLoadFunction=pv.prototype.lb;pv.prototype.setTileUrlFunction=pv.prototype.Qa;pv.prototype.setUrl=pv.prototype.Va;
|
||||||
|
pv.prototype.setUrls=pv.prototype.bb;pv.prototype.getTileGrid=pv.prototype.Na;pv.prototype.refresh=pv.prototype.ta;pv.prototype.getAttributions=pv.prototype.wa;pv.prototype.getLogo=pv.prototype.ua;pv.prototype.getProjection=pv.prototype.xa;pv.prototype.getState=pv.prototype.V;pv.prototype.setAttributions=pv.prototype.qa;pv.prototype.get=pv.prototype.get;pv.prototype.getKeys=pv.prototype.N;pv.prototype.getProperties=pv.prototype.O;pv.prototype.set=pv.prototype.set;pv.prototype.setProperties=pv.prototype.G;
|
||||||
|
pv.prototype.unset=pv.prototype.R;pv.prototype.changed=pv.prototype.u;pv.prototype.dispatchEvent=pv.prototype.b;pv.prototype.getRevision=pv.prototype.K;pv.prototype.on=pv.prototype.I;pv.prototype.once=pv.prototype.L;pv.prototype.un=pv.prototype.J;pv.prototype.unByKey=pv.prototype.M;qv.prototype.setRenderReprojectionEdges=qv.prototype.Ab;qv.prototype.setTileGridForProjection=qv.prototype.Bb;qv.prototype.getTileLoadFunction=qv.prototype.gb;qv.prototype.getTileUrlFunction=qv.prototype.hb;
|
||||||
|
qv.prototype.getUrls=qv.prototype.ib;qv.prototype.setTileLoadFunction=qv.prototype.lb;qv.prototype.setTileUrlFunction=qv.prototype.Qa;qv.prototype.setUrl=qv.prototype.Va;qv.prototype.setUrls=qv.prototype.bb;qv.prototype.getTileGrid=qv.prototype.Na;qv.prototype.refresh=qv.prototype.ta;qv.prototype.getAttributions=qv.prototype.wa;qv.prototype.getLogo=qv.prototype.ua;qv.prototype.getProjection=qv.prototype.xa;qv.prototype.getState=qv.prototype.V;qv.prototype.setAttributions=qv.prototype.qa;
|
||||||
|
qv.prototype.get=qv.prototype.get;qv.prototype.getKeys=qv.prototype.N;qv.prototype.getProperties=qv.prototype.O;qv.prototype.set=qv.prototype.set;qv.prototype.setProperties=qv.prototype.G;qv.prototype.unset=qv.prototype.R;qv.prototype.changed=qv.prototype.u;qv.prototype.dispatchEvent=qv.prototype.b;qv.prototype.getRevision=qv.prototype.K;qv.prototype.on=qv.prototype.I;qv.prototype.once=qv.prototype.L;qv.prototype.un=qv.prototype.J;qv.prototype.unByKey=qv.prototype.M;P.prototype.getAttributions=P.prototype.wa;
|
||||||
|
P.prototype.getLogo=P.prototype.ua;P.prototype.getProjection=P.prototype.xa;P.prototype.getState=P.prototype.V;P.prototype.refresh=P.prototype.ta;P.prototype.setAttributions=P.prototype.qa;P.prototype.get=P.prototype.get;P.prototype.getKeys=P.prototype.N;P.prototype.getProperties=P.prototype.O;P.prototype.set=P.prototype.set;P.prototype.setProperties=P.prototype.G;P.prototype.unset=P.prototype.R;P.prototype.changed=P.prototype.u;P.prototype.dispatchEvent=P.prototype.b;P.prototype.getRevision=P.prototype.K;
|
||||||
|
P.prototype.on=P.prototype.I;P.prototype.once=P.prototype.L;P.prototype.un=P.prototype.J;P.prototype.unByKey=P.prototype.M;Y.prototype.addFeature=Y.prototype.sb;Y.prototype.addFeatures=Y.prototype.Jc;Y.prototype.clear=Y.prototype.clear;Y.prototype.forEachFeature=Y.prototype.wg;Y.prototype.forEachFeatureInExtent=Y.prototype.vb;Y.prototype.forEachFeatureIntersectingExtent=Y.prototype.xg;Y.prototype.getFeaturesCollection=Y.prototype.Fg;Y.prototype.getFeatures=Y.prototype.oe;
|
||||||
|
Y.prototype.getFeaturesAtCoordinate=Y.prototype.Eg;Y.prototype.getFeaturesInExtent=Y.prototype.ef;Y.prototype.getClosestFeatureToCoordinate=Y.prototype.Ag;Y.prototype.getExtent=Y.prototype.H;Y.prototype.getFeatureById=Y.prototype.Dg;Y.prototype.getFormat=Y.prototype.Ch;Y.prototype.getUrl=Y.prototype.Dh;Y.prototype.removeFeature=Y.prototype.ob;Y.prototype.getAttributions=Y.prototype.wa;Y.prototype.getLogo=Y.prototype.ua;Y.prototype.getProjection=Y.prototype.xa;Y.prototype.getState=Y.prototype.V;
|
||||||
|
Y.prototype.refresh=Y.prototype.ta;Y.prototype.setAttributions=Y.prototype.qa;Y.prototype.get=Y.prototype.get;Y.prototype.getKeys=Y.prototype.N;Y.prototype.getProperties=Y.prototype.O;Y.prototype.set=Y.prototype.set;Y.prototype.setProperties=Y.prototype.G;Y.prototype.unset=Y.prototype.R;Y.prototype.changed=Y.prototype.u;Y.prototype.dispatchEvent=Y.prototype.b;Y.prototype.getRevision=Y.prototype.K;Y.prototype.on=Y.prototype.I;Y.prototype.once=Y.prototype.L;Y.prototype.un=Y.prototype.J;
|
||||||
|
Y.prototype.unByKey=Y.prototype.M;Ak.prototype.getAttributions=Ak.prototype.wa;Ak.prototype.getLogo=Ak.prototype.ua;Ak.prototype.getProjection=Ak.prototype.xa;Ak.prototype.getState=Ak.prototype.V;Ak.prototype.refresh=Ak.prototype.ta;Ak.prototype.setAttributions=Ak.prototype.qa;Ak.prototype.get=Ak.prototype.get;Ak.prototype.getKeys=Ak.prototype.N;Ak.prototype.getProperties=Ak.prototype.O;Ak.prototype.set=Ak.prototype.set;Ak.prototype.setProperties=Ak.prototype.G;Ak.prototype.unset=Ak.prototype.R;
|
||||||
|
Ak.prototype.changed=Ak.prototype.u;Ak.prototype.dispatchEvent=Ak.prototype.b;Ak.prototype.getRevision=Ak.prototype.K;Ak.prototype.on=Ak.prototype.I;Ak.prototype.once=Ak.prototype.L;Ak.prototype.un=Ak.prototype.J;Ak.prototype.unByKey=Ak.prototype.M;wv.prototype.getAttributions=wv.prototype.wa;wv.prototype.getLogo=wv.prototype.ua;wv.prototype.getProjection=wv.prototype.xa;wv.prototype.getState=wv.prototype.V;wv.prototype.refresh=wv.prototype.ta;wv.prototype.setAttributions=wv.prototype.qa;
|
||||||
|
wv.prototype.get=wv.prototype.get;wv.prototype.getKeys=wv.prototype.N;wv.prototype.getProperties=wv.prototype.O;wv.prototype.set=wv.prototype.set;wv.prototype.setProperties=wv.prototype.G;wv.prototype.unset=wv.prototype.R;wv.prototype.changed=wv.prototype.u;wv.prototype.dispatchEvent=wv.prototype.b;wv.prototype.getRevision=wv.prototype.K;wv.prototype.on=wv.prototype.I;wv.prototype.once=wv.prototype.L;wv.prototype.un=wv.prototype.J;wv.prototype.unByKey=wv.prototype.M;Hk.prototype.getAttributions=Hk.prototype.wa;
|
||||||
|
Hk.prototype.getLogo=Hk.prototype.ua;Hk.prototype.getProjection=Hk.prototype.xa;Hk.prototype.getState=Hk.prototype.V;Hk.prototype.refresh=Hk.prototype.ta;Hk.prototype.setAttributions=Hk.prototype.qa;Hk.prototype.get=Hk.prototype.get;Hk.prototype.getKeys=Hk.prototype.N;Hk.prototype.getProperties=Hk.prototype.O;Hk.prototype.set=Hk.prototype.set;Hk.prototype.setProperties=Hk.prototype.G;Hk.prototype.unset=Hk.prototype.R;Hk.prototype.changed=Hk.prototype.u;Hk.prototype.dispatchEvent=Hk.prototype.b;
|
||||||
|
Hk.prototype.getRevision=Hk.prototype.K;Hk.prototype.on=Hk.prototype.I;Hk.prototype.once=Hk.prototype.L;Hk.prototype.un=Hk.prototype.J;Hk.prototype.unByKey=Hk.prototype.M;xv.prototype.getAttributions=xv.prototype.wa;xv.prototype.getLogo=xv.prototype.ua;xv.prototype.getProjection=xv.prototype.xa;xv.prototype.getState=xv.prototype.V;xv.prototype.refresh=xv.prototype.ta;xv.prototype.setAttributions=xv.prototype.qa;xv.prototype.get=xv.prototype.get;xv.prototype.getKeys=xv.prototype.N;
|
||||||
|
xv.prototype.getProperties=xv.prototype.O;xv.prototype.set=xv.prototype.set;xv.prototype.setProperties=xv.prototype.G;xv.prototype.unset=xv.prototype.R;xv.prototype.changed=xv.prototype.u;xv.prototype.dispatchEvent=xv.prototype.b;xv.prototype.getRevision=xv.prototype.K;xv.prototype.on=xv.prototype.I;xv.prototype.once=xv.prototype.L;xv.prototype.un=xv.prototype.J;xv.prototype.unByKey=xv.prototype.M;Ck.prototype.type=Ck.prototype.type;Ck.prototype.target=Ck.prototype.target;
|
||||||
|
Ck.prototype.preventDefault=Ck.prototype.preventDefault;Ck.prototype.stopPropagation=Ck.prototype.stopPropagation;yv.prototype.getAttributions=yv.prototype.wa;yv.prototype.getLogo=yv.prototype.ua;yv.prototype.getProjection=yv.prototype.xa;yv.prototype.getState=yv.prototype.V;yv.prototype.refresh=yv.prototype.ta;yv.prototype.setAttributions=yv.prototype.qa;yv.prototype.get=yv.prototype.get;yv.prototype.getKeys=yv.prototype.N;yv.prototype.getProperties=yv.prototype.O;yv.prototype.set=yv.prototype.set;
|
||||||
|
yv.prototype.setProperties=yv.prototype.G;yv.prototype.unset=yv.prototype.R;yv.prototype.changed=yv.prototype.u;yv.prototype.dispatchEvent=yv.prototype.b;yv.prototype.getRevision=yv.prototype.K;yv.prototype.on=yv.prototype.I;yv.prototype.once=yv.prototype.L;yv.prototype.un=yv.prototype.J;yv.prototype.unByKey=yv.prototype.M;yl.prototype.getAttributions=yl.prototype.wa;yl.prototype.getLogo=yl.prototype.ua;yl.prototype.getProjection=yl.prototype.xa;yl.prototype.getState=yl.prototype.V;
|
||||||
|
yl.prototype.refresh=yl.prototype.ta;yl.prototype.setAttributions=yl.prototype.qa;yl.prototype.get=yl.prototype.get;yl.prototype.getKeys=yl.prototype.N;yl.prototype.getProperties=yl.prototype.O;yl.prototype.set=yl.prototype.set;yl.prototype.setProperties=yl.prototype.G;yl.prototype.unset=yl.prototype.R;yl.prototype.changed=yl.prototype.u;yl.prototype.dispatchEvent=yl.prototype.b;yl.prototype.getRevision=yl.prototype.K;yl.prototype.on=yl.prototype.I;yl.prototype.once=yl.prototype.L;
|
||||||
|
yl.prototype.un=yl.prototype.J;yl.prototype.unByKey=yl.prototype.M;zv.prototype.getAttributions=zv.prototype.wa;zv.prototype.getLogo=zv.prototype.ua;zv.prototype.getProjection=zv.prototype.xa;zv.prototype.getState=zv.prototype.V;zv.prototype.refresh=zv.prototype.ta;zv.prototype.setAttributions=zv.prototype.qa;zv.prototype.get=zv.prototype.get;zv.prototype.getKeys=zv.prototype.N;zv.prototype.getProperties=zv.prototype.O;zv.prototype.set=zv.prototype.set;zv.prototype.setProperties=zv.prototype.G;
|
||||||
|
zv.prototype.unset=zv.prototype.R;zv.prototype.changed=zv.prototype.u;zv.prototype.dispatchEvent=zv.prototype.b;zv.prototype.getRevision=zv.prototype.K;zv.prototype.on=zv.prototype.I;zv.prototype.once=zv.prototype.L;zv.prototype.un=zv.prototype.J;zv.prototype.unByKey=zv.prototype.M;Dv.prototype.setRenderReprojectionEdges=Dv.prototype.Ab;Dv.prototype.setTileGridForProjection=Dv.prototype.Bb;Dv.prototype.getTileLoadFunction=Dv.prototype.gb;Dv.prototype.getTileUrlFunction=Dv.prototype.hb;
|
||||||
|
Dv.prototype.getUrls=Dv.prototype.ib;Dv.prototype.setTileLoadFunction=Dv.prototype.lb;Dv.prototype.setTileUrlFunction=Dv.prototype.Qa;Dv.prototype.setUrl=Dv.prototype.Va;Dv.prototype.setUrls=Dv.prototype.bb;Dv.prototype.getTileGrid=Dv.prototype.Na;Dv.prototype.refresh=Dv.prototype.ta;Dv.prototype.getAttributions=Dv.prototype.wa;Dv.prototype.getLogo=Dv.prototype.ua;Dv.prototype.getProjection=Dv.prototype.xa;Dv.prototype.getState=Dv.prototype.V;Dv.prototype.setAttributions=Dv.prototype.qa;
|
||||||
|
Dv.prototype.get=Dv.prototype.get;Dv.prototype.getKeys=Dv.prototype.N;Dv.prototype.getProperties=Dv.prototype.O;Dv.prototype.set=Dv.prototype.set;Dv.prototype.setProperties=Dv.prototype.G;Dv.prototype.unset=Dv.prototype.R;Dv.prototype.changed=Dv.prototype.u;Dv.prototype.dispatchEvent=Dv.prototype.b;Dv.prototype.getRevision=Dv.prototype.K;Dv.prototype.on=Dv.prototype.I;Dv.prototype.once=Dv.prototype.L;Dv.prototype.un=Dv.prototype.J;Dv.prototype.unByKey=Dv.prototype.M;Fv.prototype.getAttributions=Fv.prototype.wa;
|
||||||
|
Fv.prototype.getLogo=Fv.prototype.ua;Fv.prototype.getProjection=Fv.prototype.xa;Fv.prototype.getState=Fv.prototype.V;Fv.prototype.refresh=Fv.prototype.ta;Fv.prototype.setAttributions=Fv.prototype.qa;Fv.prototype.get=Fv.prototype.get;Fv.prototype.getKeys=Fv.prototype.N;Fv.prototype.getProperties=Fv.prototype.O;Fv.prototype.set=Fv.prototype.set;Fv.prototype.setProperties=Fv.prototype.G;Fv.prototype.unset=Fv.prototype.R;Fv.prototype.changed=Fv.prototype.u;Fv.prototype.dispatchEvent=Fv.prototype.b;
|
||||||
|
Fv.prototype.getRevision=Fv.prototype.K;Fv.prototype.on=Fv.prototype.I;Fv.prototype.once=Fv.prototype.L;Fv.prototype.un=Fv.prototype.J;Fv.prototype.unByKey=Fv.prototype.M;Kv.prototype.type=Kv.prototype.type;Kv.prototype.target=Kv.prototype.target;Kv.prototype.preventDefault=Kv.prototype.preventDefault;Kv.prototype.stopPropagation=Kv.prototype.stopPropagation;Pv.prototype.setRenderReprojectionEdges=Pv.prototype.Ab;Pv.prototype.setTileGridForProjection=Pv.prototype.Bb;
|
||||||
|
Pv.prototype.getTileLoadFunction=Pv.prototype.gb;Pv.prototype.getTileUrlFunction=Pv.prototype.hb;Pv.prototype.getUrls=Pv.prototype.ib;Pv.prototype.setTileLoadFunction=Pv.prototype.lb;Pv.prototype.setTileUrlFunction=Pv.prototype.Qa;Pv.prototype.setUrl=Pv.prototype.Va;Pv.prototype.setUrls=Pv.prototype.bb;Pv.prototype.getTileGrid=Pv.prototype.Na;Pv.prototype.refresh=Pv.prototype.ta;Pv.prototype.getAttributions=Pv.prototype.wa;Pv.prototype.getLogo=Pv.prototype.ua;Pv.prototype.getProjection=Pv.prototype.xa;
|
||||||
|
Pv.prototype.getState=Pv.prototype.V;Pv.prototype.setAttributions=Pv.prototype.qa;Pv.prototype.get=Pv.prototype.get;Pv.prototype.getKeys=Pv.prototype.N;Pv.prototype.getProperties=Pv.prototype.O;Pv.prototype.set=Pv.prototype.set;Pv.prototype.setProperties=Pv.prototype.G;Pv.prototype.unset=Pv.prototype.R;Pv.prototype.changed=Pv.prototype.u;Pv.prototype.dispatchEvent=Pv.prototype.b;Pv.prototype.getRevision=Pv.prototype.K;Pv.prototype.on=Pv.prototype.I;Pv.prototype.once=Pv.prototype.L;
|
||||||
|
Pv.prototype.un=Pv.prototype.J;Pv.prototype.unByKey=Pv.prototype.M;Rv.prototype.setRenderReprojectionEdges=Rv.prototype.Ab;Rv.prototype.setTileGridForProjection=Rv.prototype.Bb;Rv.prototype.getTileLoadFunction=Rv.prototype.gb;Rv.prototype.getTileUrlFunction=Rv.prototype.hb;Rv.prototype.getUrls=Rv.prototype.ib;Rv.prototype.setTileLoadFunction=Rv.prototype.lb;Rv.prototype.setTileUrlFunction=Rv.prototype.Qa;Rv.prototype.setUrl=Rv.prototype.Va;Rv.prototype.setUrls=Rv.prototype.bb;
|
||||||
|
Rv.prototype.getTileGrid=Rv.prototype.Na;Rv.prototype.refresh=Rv.prototype.ta;Rv.prototype.getAttributions=Rv.prototype.wa;Rv.prototype.getLogo=Rv.prototype.ua;Rv.prototype.getProjection=Rv.prototype.xa;Rv.prototype.getState=Rv.prototype.V;Rv.prototype.setAttributions=Rv.prototype.qa;Rv.prototype.get=Rv.prototype.get;Rv.prototype.getKeys=Rv.prototype.N;Rv.prototype.getProperties=Rv.prototype.O;Rv.prototype.set=Rv.prototype.set;Rv.prototype.setProperties=Rv.prototype.G;Rv.prototype.unset=Rv.prototype.R;
|
||||||
|
Rv.prototype.changed=Rv.prototype.u;Rv.prototype.dispatchEvent=Rv.prototype.b;Rv.prototype.getRevision=Rv.prototype.K;Rv.prototype.on=Rv.prototype.I;Rv.prototype.once=Rv.prototype.L;Rv.prototype.un=Rv.prototype.J;Rv.prototype.unByKey=Rv.prototype.M;Tv.prototype.getTileGrid=Tv.prototype.Na;Tv.prototype.refresh=Tv.prototype.ta;Tv.prototype.getAttributions=Tv.prototype.wa;Tv.prototype.getLogo=Tv.prototype.ua;Tv.prototype.getProjection=Tv.prototype.xa;Tv.prototype.getState=Tv.prototype.V;
|
||||||
|
Tv.prototype.setAttributions=Tv.prototype.qa;Tv.prototype.get=Tv.prototype.get;Tv.prototype.getKeys=Tv.prototype.N;Tv.prototype.getProperties=Tv.prototype.O;Tv.prototype.set=Tv.prototype.set;Tv.prototype.setProperties=Tv.prototype.G;Tv.prototype.unset=Tv.prototype.R;Tv.prototype.changed=Tv.prototype.u;Tv.prototype.dispatchEvent=Tv.prototype.b;Tv.prototype.getRevision=Tv.prototype.K;Tv.prototype.on=Tv.prototype.I;Tv.prototype.once=Tv.prototype.L;Tv.prototype.un=Tv.prototype.J;
|
||||||
|
Tv.prototype.unByKey=Tv.prototype.M;Uv.prototype.setRenderReprojectionEdges=Uv.prototype.Ab;Uv.prototype.setTileGridForProjection=Uv.prototype.Bb;Uv.prototype.getTileLoadFunction=Uv.prototype.gb;Uv.prototype.getTileUrlFunction=Uv.prototype.hb;Uv.prototype.getUrls=Uv.prototype.ib;Uv.prototype.setTileLoadFunction=Uv.prototype.lb;Uv.prototype.setTileUrlFunction=Uv.prototype.Qa;Uv.prototype.setUrl=Uv.prototype.Va;Uv.prototype.setUrls=Uv.prototype.bb;Uv.prototype.getTileGrid=Uv.prototype.Na;
|
||||||
|
Uv.prototype.refresh=Uv.prototype.ta;Uv.prototype.getAttributions=Uv.prototype.wa;Uv.prototype.getLogo=Uv.prototype.ua;Uv.prototype.getProjection=Uv.prototype.xa;Uv.prototype.getState=Uv.prototype.V;Uv.prototype.setAttributions=Uv.prototype.qa;Uv.prototype.get=Uv.prototype.get;Uv.prototype.getKeys=Uv.prototype.N;Uv.prototype.getProperties=Uv.prototype.O;Uv.prototype.set=Uv.prototype.set;Uv.prototype.setProperties=Uv.prototype.G;Uv.prototype.unset=Uv.prototype.R;Uv.prototype.changed=Uv.prototype.u;
|
||||||
|
Uv.prototype.dispatchEvent=Uv.prototype.b;Uv.prototype.getRevision=Uv.prototype.K;Uv.prototype.on=Uv.prototype.I;Uv.prototype.once=Uv.prototype.L;Uv.prototype.un=Uv.prototype.J;Uv.prototype.unByKey=Uv.prototype.M;wf.prototype.type=wf.prototype.type;wf.prototype.target=wf.prototype.target;wf.prototype.preventDefault=wf.prototype.preventDefault;wf.prototype.stopPropagation=wf.prototype.stopPropagation;Vv.prototype.getTileGrid=Vv.prototype.Na;Vv.prototype.refresh=Vv.prototype.ta;
|
||||||
|
Vv.prototype.getAttributions=Vv.prototype.wa;Vv.prototype.getLogo=Vv.prototype.ua;Vv.prototype.getProjection=Vv.prototype.xa;Vv.prototype.getState=Vv.prototype.V;Vv.prototype.setAttributions=Vv.prototype.qa;Vv.prototype.get=Vv.prototype.get;Vv.prototype.getKeys=Vv.prototype.N;Vv.prototype.getProperties=Vv.prototype.O;Vv.prototype.set=Vv.prototype.set;Vv.prototype.setProperties=Vv.prototype.G;Vv.prototype.unset=Vv.prototype.R;Vv.prototype.changed=Vv.prototype.u;Vv.prototype.dispatchEvent=Vv.prototype.b;
|
||||||
|
Vv.prototype.getRevision=Vv.prototype.K;Vv.prototype.on=Vv.prototype.I;Vv.prototype.once=Vv.prototype.L;Vv.prototype.un=Vv.prototype.J;Vv.prototype.unByKey=Vv.prototype.M;Zv.prototype.setRenderReprojectionEdges=Zv.prototype.Ab;Zv.prototype.setTileGridForProjection=Zv.prototype.Bb;Zv.prototype.getTileLoadFunction=Zv.prototype.gb;Zv.prototype.getTileUrlFunction=Zv.prototype.hb;Zv.prototype.getUrls=Zv.prototype.ib;Zv.prototype.setTileLoadFunction=Zv.prototype.lb;Zv.prototype.setTileUrlFunction=Zv.prototype.Qa;
|
||||||
|
Zv.prototype.setUrl=Zv.prototype.Va;Zv.prototype.setUrls=Zv.prototype.bb;Zv.prototype.getTileGrid=Zv.prototype.Na;Zv.prototype.refresh=Zv.prototype.ta;Zv.prototype.getAttributions=Zv.prototype.wa;Zv.prototype.getLogo=Zv.prototype.ua;Zv.prototype.getProjection=Zv.prototype.xa;Zv.prototype.getState=Zv.prototype.V;Zv.prototype.setAttributions=Zv.prototype.qa;Zv.prototype.get=Zv.prototype.get;Zv.prototype.getKeys=Zv.prototype.N;Zv.prototype.getProperties=Zv.prototype.O;Zv.prototype.set=Zv.prototype.set;
|
||||||
|
Zv.prototype.setProperties=Zv.prototype.G;Zv.prototype.unset=Zv.prototype.R;Zv.prototype.changed=Zv.prototype.u;Zv.prototype.dispatchEvent=Zv.prototype.b;Zv.prototype.getRevision=Zv.prototype.K;Zv.prototype.on=Zv.prototype.I;Zv.prototype.once=Zv.prototype.L;Zv.prototype.un=Zv.prototype.J;Zv.prototype.unByKey=Zv.prototype.M;vl.prototype.type=vl.prototype.type;vl.prototype.target=vl.prototype.target;vl.prototype.preventDefault=vl.prototype.preventDefault;vl.prototype.stopPropagation=vl.prototype.stopPropagation;
|
||||||
|
Kl.prototype.getTileLoadFunction=Kl.prototype.gb;Kl.prototype.getTileUrlFunction=Kl.prototype.hb;Kl.prototype.getUrls=Kl.prototype.ib;Kl.prototype.setTileLoadFunction=Kl.prototype.lb;Kl.prototype.setTileUrlFunction=Kl.prototype.Qa;Kl.prototype.setUrl=Kl.prototype.Va;Kl.prototype.setUrls=Kl.prototype.bb;Kl.prototype.getTileGrid=Kl.prototype.Na;Kl.prototype.refresh=Kl.prototype.ta;Kl.prototype.getAttributions=Kl.prototype.wa;Kl.prototype.getLogo=Kl.prototype.ua;Kl.prototype.getProjection=Kl.prototype.xa;
|
||||||
|
Kl.prototype.getState=Kl.prototype.V;Kl.prototype.setAttributions=Kl.prototype.qa;Kl.prototype.get=Kl.prototype.get;Kl.prototype.getKeys=Kl.prototype.N;Kl.prototype.getProperties=Kl.prototype.O;Kl.prototype.set=Kl.prototype.set;Kl.prototype.setProperties=Kl.prototype.G;Kl.prototype.unset=Kl.prototype.R;Kl.prototype.changed=Kl.prototype.u;Kl.prototype.dispatchEvent=Kl.prototype.b;Kl.prototype.getRevision=Kl.prototype.K;Kl.prototype.on=Kl.prototype.I;Kl.prototype.once=Kl.prototype.L;
|
||||||
|
Kl.prototype.un=Kl.prototype.J;Kl.prototype.unByKey=Kl.prototype.M;Z.prototype.setRenderReprojectionEdges=Z.prototype.Ab;Z.prototype.setTileGridForProjection=Z.prototype.Bb;Z.prototype.getTileLoadFunction=Z.prototype.gb;Z.prototype.getTileUrlFunction=Z.prototype.hb;Z.prototype.getUrls=Z.prototype.ib;Z.prototype.setTileLoadFunction=Z.prototype.lb;Z.prototype.setTileUrlFunction=Z.prototype.Qa;Z.prototype.setUrl=Z.prototype.Va;Z.prototype.setUrls=Z.prototype.bb;Z.prototype.getTileGrid=Z.prototype.Na;
|
||||||
|
Z.prototype.refresh=Z.prototype.ta;Z.prototype.getAttributions=Z.prototype.wa;Z.prototype.getLogo=Z.prototype.ua;Z.prototype.getProjection=Z.prototype.xa;Z.prototype.getState=Z.prototype.V;Z.prototype.setAttributions=Z.prototype.qa;Z.prototype.get=Z.prototype.get;Z.prototype.getKeys=Z.prototype.N;Z.prototype.getProperties=Z.prototype.O;Z.prototype.set=Z.prototype.set;Z.prototype.setProperties=Z.prototype.G;Z.prototype.unset=Z.prototype.R;Z.prototype.changed=Z.prototype.u;
|
||||||
|
Z.prototype.dispatchEvent=Z.prototype.b;Z.prototype.getRevision=Z.prototype.K;Z.prototype.on=Z.prototype.I;Z.prototype.once=Z.prototype.L;Z.prototype.un=Z.prototype.J;Z.prototype.unByKey=Z.prototype.M;gw.prototype.setRenderReprojectionEdges=gw.prototype.Ab;gw.prototype.setTileGridForProjection=gw.prototype.Bb;gw.prototype.getTileLoadFunction=gw.prototype.gb;gw.prototype.getTileUrlFunction=gw.prototype.hb;gw.prototype.getUrls=gw.prototype.ib;gw.prototype.setTileLoadFunction=gw.prototype.lb;
|
||||||
|
gw.prototype.setTileUrlFunction=gw.prototype.Qa;gw.prototype.setUrl=gw.prototype.Va;gw.prototype.setUrls=gw.prototype.bb;gw.prototype.getTileGrid=gw.prototype.Na;gw.prototype.refresh=gw.prototype.ta;gw.prototype.getAttributions=gw.prototype.wa;gw.prototype.getLogo=gw.prototype.ua;gw.prototype.getProjection=gw.prototype.xa;gw.prototype.getState=gw.prototype.V;gw.prototype.setAttributions=gw.prototype.qa;gw.prototype.get=gw.prototype.get;gw.prototype.getKeys=gw.prototype.N;
|
||||||
|
gw.prototype.getProperties=gw.prototype.O;gw.prototype.set=gw.prototype.set;gw.prototype.setProperties=gw.prototype.G;gw.prototype.unset=gw.prototype.R;gw.prototype.changed=gw.prototype.u;gw.prototype.dispatchEvent=gw.prototype.b;gw.prototype.getRevision=gw.prototype.K;gw.prototype.on=gw.prototype.I;gw.prototype.once=gw.prototype.L;gw.prototype.un=gw.prototype.J;gw.prototype.unByKey=gw.prototype.M;jv.prototype.getTileCoord=jv.prototype.i;jv.prototype.load=jv.prototype.load;vh.prototype.changed=vh.prototype.u;
|
||||||
|
vh.prototype.dispatchEvent=vh.prototype.b;vh.prototype.getRevision=vh.prototype.K;vh.prototype.on=vh.prototype.I;vh.prototype.once=vh.prototype.L;vh.prototype.un=vh.prototype.J;vh.prototype.unByKey=vh.prototype.M;Gm.prototype.changed=Gm.prototype.u;Gm.prototype.dispatchEvent=Gm.prototype.b;Gm.prototype.getRevision=Gm.prototype.K;Gm.prototype.on=Gm.prototype.I;Gm.prototype.once=Gm.prototype.L;Gm.prototype.un=Gm.prototype.J;Gm.prototype.unByKey=Gm.prototype.M;Jm.prototype.changed=Jm.prototype.u;
|
||||||
|
Jm.prototype.dispatchEvent=Jm.prototype.b;Jm.prototype.getRevision=Jm.prototype.K;Jm.prototype.on=Jm.prototype.I;Jm.prototype.once=Jm.prototype.L;Jm.prototype.un=Jm.prototype.J;Jm.prototype.unByKey=Jm.prototype.M;Pm.prototype.changed=Pm.prototype.u;Pm.prototype.dispatchEvent=Pm.prototype.b;Pm.prototype.getRevision=Pm.prototype.K;Pm.prototype.on=Pm.prototype.I;Pm.prototype.once=Pm.prototype.L;Pm.prototype.un=Pm.prototype.J;Pm.prototype.unByKey=Pm.prototype.M;Rm.prototype.changed=Rm.prototype.u;
|
||||||
|
Rm.prototype.dispatchEvent=Rm.prototype.b;Rm.prototype.getRevision=Rm.prototype.K;Rm.prototype.on=Rm.prototype.I;Rm.prototype.once=Rm.prototype.L;Rm.prototype.un=Rm.prototype.J;Rm.prototype.unByKey=Rm.prototype.M;Sl.prototype.changed=Sl.prototype.u;Sl.prototype.dispatchEvent=Sl.prototype.b;Sl.prototype.getRevision=Sl.prototype.K;Sl.prototype.on=Sl.prototype.I;Sl.prototype.once=Sl.prototype.L;Sl.prototype.un=Sl.prototype.J;Sl.prototype.unByKey=Sl.prototype.M;Tl.prototype.changed=Tl.prototype.u;
|
||||||
|
Tl.prototype.dispatchEvent=Tl.prototype.b;Tl.prototype.getRevision=Tl.prototype.K;Tl.prototype.on=Tl.prototype.I;Tl.prototype.once=Tl.prototype.L;Tl.prototype.un=Tl.prototype.J;Tl.prototype.unByKey=Tl.prototype.M;Ul.prototype.changed=Ul.prototype.u;Ul.prototype.dispatchEvent=Ul.prototype.b;Ul.prototype.getRevision=Ul.prototype.K;Ul.prototype.on=Ul.prototype.I;Ul.prototype.once=Ul.prototype.L;Ul.prototype.un=Ul.prototype.J;Ul.prototype.unByKey=Ul.prototype.M;Wl.prototype.changed=Wl.prototype.u;
|
||||||
|
Wl.prototype.dispatchEvent=Wl.prototype.b;Wl.prototype.getRevision=Wl.prototype.K;Wl.prototype.on=Wl.prototype.I;Wl.prototype.once=Wl.prototype.L;Wl.prototype.un=Wl.prototype.J;Wl.prototype.unByKey=Wl.prototype.M;Kj.prototype.changed=Kj.prototype.u;Kj.prototype.dispatchEvent=Kj.prototype.b;Kj.prototype.getRevision=Kj.prototype.K;Kj.prototype.on=Kj.prototype.I;Kj.prototype.once=Kj.prototype.L;Kj.prototype.un=Kj.prototype.J;Kj.prototype.unByKey=Kj.prototype.M;Al.prototype.changed=Al.prototype.u;
|
||||||
|
Al.prototype.dispatchEvent=Al.prototype.b;Al.prototype.getRevision=Al.prototype.K;Al.prototype.on=Al.prototype.I;Al.prototype.once=Al.prototype.L;Al.prototype.un=Al.prototype.J;Al.prototype.unByKey=Al.prototype.M;Bl.prototype.changed=Bl.prototype.u;Bl.prototype.dispatchEvent=Bl.prototype.b;Bl.prototype.getRevision=Bl.prototype.K;Bl.prototype.on=Bl.prototype.I;Bl.prototype.once=Bl.prototype.L;Bl.prototype.un=Bl.prototype.J;Bl.prototype.unByKey=Bl.prototype.M;Dl.prototype.changed=Dl.prototype.u;
|
||||||
|
Dl.prototype.dispatchEvent=Dl.prototype.b;Dl.prototype.getRevision=Dl.prototype.K;Dl.prototype.on=Dl.prototype.I;Dl.prototype.once=Dl.prototype.L;Dl.prototype.un=Dl.prototype.J;Dl.prototype.unByKey=Dl.prototype.M;Ol.prototype.changed=Ol.prototype.u;Ol.prototype.dispatchEvent=Ol.prototype.b;Ol.prototype.getRevision=Ol.prototype.K;Ol.prototype.on=Ol.prototype.I;Ol.prototype.once=Ol.prototype.L;Ol.prototype.un=Ol.prototype.J;Ol.prototype.unByKey=Ol.prototype.M;qh.prototype.type=qh.prototype.type;
|
||||||
|
qh.prototype.target=qh.prototype.target;qh.prototype.preventDefault=qh.prototype.preventDefault;qh.prototype.stopPropagation=qh.prototype.stopPropagation;Pf.prototype.type=Pf.prototype.type;Pf.prototype.target=Pf.prototype.target;Pf.prototype.preventDefault=Pf.prototype.preventDefault;Pf.prototype.stopPropagation=Pf.prototype.stopPropagation;nh.prototype.get=nh.prototype.get;nh.prototype.getKeys=nh.prototype.N;nh.prototype.getProperties=nh.prototype.O;nh.prototype.set=nh.prototype.set;
|
||||||
|
nh.prototype.setProperties=nh.prototype.G;nh.prototype.unset=nh.prototype.R;nh.prototype.changed=nh.prototype.u;nh.prototype.dispatchEvent=nh.prototype.b;nh.prototype.getRevision=nh.prototype.K;nh.prototype.on=nh.prototype.I;nh.prototype.once=nh.prototype.L;nh.prototype.un=nh.prototype.J;nh.prototype.unByKey=nh.prototype.M;rh.prototype.getExtent=rh.prototype.H;rh.prototype.getMaxResolution=rh.prototype.Ob;rh.prototype.getMinResolution=rh.prototype.Pb;rh.prototype.getOpacity=rh.prototype.Qb;
|
||||||
|
rh.prototype.getVisible=rh.prototype.yb;rh.prototype.getZIndex=rh.prototype.Rb;rh.prototype.setExtent=rh.prototype.fc;rh.prototype.setMaxResolution=rh.prototype.nc;rh.prototype.setMinResolution=rh.prototype.oc;rh.prototype.setOpacity=rh.prototype.gc;rh.prototype.setVisible=rh.prototype.hc;rh.prototype.setZIndex=rh.prototype.ic;rh.prototype.get=rh.prototype.get;rh.prototype.getKeys=rh.prototype.N;rh.prototype.getProperties=rh.prototype.O;rh.prototype.set=rh.prototype.set;
|
||||||
|
rh.prototype.setProperties=rh.prototype.G;rh.prototype.unset=rh.prototype.R;rh.prototype.changed=rh.prototype.u;rh.prototype.dispatchEvent=rh.prototype.b;rh.prototype.getRevision=rh.prototype.K;rh.prototype.on=rh.prototype.I;rh.prototype.once=rh.prototype.L;rh.prototype.un=rh.prototype.J;rh.prototype.unByKey=rh.prototype.M;I.prototype.setMap=I.prototype.setMap;I.prototype.setSource=I.prototype.Fc;I.prototype.getExtent=I.prototype.H;I.prototype.getMaxResolution=I.prototype.Ob;
|
||||||
|
I.prototype.getMinResolution=I.prototype.Pb;I.prototype.getOpacity=I.prototype.Qb;I.prototype.getVisible=I.prototype.yb;I.prototype.getZIndex=I.prototype.Rb;I.prototype.setExtent=I.prototype.fc;I.prototype.setMaxResolution=I.prototype.nc;I.prototype.setMinResolution=I.prototype.oc;I.prototype.setOpacity=I.prototype.gc;I.prototype.setVisible=I.prototype.hc;I.prototype.setZIndex=I.prototype.ic;I.prototype.get=I.prototype.get;I.prototype.getKeys=I.prototype.N;I.prototype.getProperties=I.prototype.O;
|
||||||
|
I.prototype.set=I.prototype.set;I.prototype.setProperties=I.prototype.G;I.prototype.unset=I.prototype.R;I.prototype.changed=I.prototype.u;I.prototype.dispatchEvent=I.prototype.b;I.prototype.getRevision=I.prototype.K;I.prototype.on=I.prototype.I;I.prototype.once=I.prototype.L;I.prototype.un=I.prototype.J;I.prototype.unByKey=I.prototype.M;W.prototype.getSource=W.prototype.ha;W.prototype.getStyle=W.prototype.D;W.prototype.getStyleFunction=W.prototype.C;W.prototype.setStyle=W.prototype.l;
|
||||||
|
W.prototype.setMap=W.prototype.setMap;W.prototype.setSource=W.prototype.Fc;W.prototype.getExtent=W.prototype.H;W.prototype.getMaxResolution=W.prototype.Ob;W.prototype.getMinResolution=W.prototype.Pb;W.prototype.getOpacity=W.prototype.Qb;W.prototype.getVisible=W.prototype.yb;W.prototype.getZIndex=W.prototype.Rb;W.prototype.setExtent=W.prototype.fc;W.prototype.setMaxResolution=W.prototype.nc;W.prototype.setMinResolution=W.prototype.oc;W.prototype.setOpacity=W.prototype.gc;W.prototype.setVisible=W.prototype.hc;
|
||||||
|
W.prototype.setZIndex=W.prototype.ic;W.prototype.get=W.prototype.get;W.prototype.getKeys=W.prototype.N;W.prototype.getProperties=W.prototype.O;W.prototype.set=W.prototype.set;W.prototype.setProperties=W.prototype.G;W.prototype.unset=W.prototype.R;W.prototype.changed=W.prototype.u;W.prototype.dispatchEvent=W.prototype.b;W.prototype.getRevision=W.prototype.K;W.prototype.on=W.prototype.I;W.prototype.once=W.prototype.L;W.prototype.un=W.prototype.J;W.prototype.unByKey=W.prototype.M;
|
||||||
|
ej.prototype.setMap=ej.prototype.setMap;ej.prototype.setSource=ej.prototype.Fc;ej.prototype.getExtent=ej.prototype.H;ej.prototype.getMaxResolution=ej.prototype.Ob;ej.prototype.getMinResolution=ej.prototype.Pb;ej.prototype.getOpacity=ej.prototype.Qb;ej.prototype.getVisible=ej.prototype.yb;ej.prototype.getZIndex=ej.prototype.Rb;ej.prototype.setExtent=ej.prototype.fc;ej.prototype.setMaxResolution=ej.prototype.nc;ej.prototype.setMinResolution=ej.prototype.oc;ej.prototype.setOpacity=ej.prototype.gc;
|
||||||
|
ej.prototype.setVisible=ej.prototype.hc;ej.prototype.setZIndex=ej.prototype.ic;ej.prototype.get=ej.prototype.get;ej.prototype.getKeys=ej.prototype.N;ej.prototype.getProperties=ej.prototype.O;ej.prototype.set=ej.prototype.set;ej.prototype.setProperties=ej.prototype.G;ej.prototype.unset=ej.prototype.R;ej.prototype.changed=ej.prototype.u;ej.prototype.dispatchEvent=ej.prototype.b;ej.prototype.getRevision=ej.prototype.K;ej.prototype.on=ej.prototype.I;ej.prototype.once=ej.prototype.L;ej.prototype.un=ej.prototype.J;
|
||||||
|
ej.prototype.unByKey=ej.prototype.M;Vi.prototype.getExtent=Vi.prototype.H;Vi.prototype.getMaxResolution=Vi.prototype.Ob;Vi.prototype.getMinResolution=Vi.prototype.Pb;Vi.prototype.getOpacity=Vi.prototype.Qb;Vi.prototype.getVisible=Vi.prototype.yb;Vi.prototype.getZIndex=Vi.prototype.Rb;Vi.prototype.setExtent=Vi.prototype.fc;Vi.prototype.setMaxResolution=Vi.prototype.nc;Vi.prototype.setMinResolution=Vi.prototype.oc;Vi.prototype.setOpacity=Vi.prototype.gc;Vi.prototype.setVisible=Vi.prototype.hc;
|
||||||
|
Vi.prototype.setZIndex=Vi.prototype.ic;Vi.prototype.get=Vi.prototype.get;Vi.prototype.getKeys=Vi.prototype.N;Vi.prototype.getProperties=Vi.prototype.O;Vi.prototype.set=Vi.prototype.set;Vi.prototype.setProperties=Vi.prototype.G;Vi.prototype.unset=Vi.prototype.R;Vi.prototype.changed=Vi.prototype.u;Vi.prototype.dispatchEvent=Vi.prototype.b;Vi.prototype.getRevision=Vi.prototype.K;Vi.prototype.on=Vi.prototype.I;Vi.prototype.once=Vi.prototype.L;Vi.prototype.un=Vi.prototype.J;Vi.prototype.unByKey=Vi.prototype.M;
|
||||||
|
F.prototype.setMap=F.prototype.setMap;F.prototype.setSource=F.prototype.Fc;F.prototype.getExtent=F.prototype.H;F.prototype.getMaxResolution=F.prototype.Ob;F.prototype.getMinResolution=F.prototype.Pb;F.prototype.getOpacity=F.prototype.Qb;F.prototype.getVisible=F.prototype.yb;F.prototype.getZIndex=F.prototype.Rb;F.prototype.setExtent=F.prototype.fc;F.prototype.setMaxResolution=F.prototype.nc;F.prototype.setMinResolution=F.prototype.oc;F.prototype.setOpacity=F.prototype.gc;F.prototype.setVisible=F.prototype.hc;
|
||||||
|
F.prototype.setZIndex=F.prototype.ic;F.prototype.get=F.prototype.get;F.prototype.getKeys=F.prototype.N;F.prototype.getProperties=F.prototype.O;F.prototype.set=F.prototype.set;F.prototype.setProperties=F.prototype.G;F.prototype.unset=F.prototype.R;F.prototype.changed=F.prototype.u;F.prototype.dispatchEvent=F.prototype.b;F.prototype.getRevision=F.prototype.K;F.prototype.on=F.prototype.I;F.prototype.once=F.prototype.L;F.prototype.un=F.prototype.J;F.prototype.unByKey=F.prototype.M;
|
||||||
|
J.prototype.getSource=J.prototype.ha;J.prototype.getStyle=J.prototype.D;J.prototype.getStyleFunction=J.prototype.C;J.prototype.setStyle=J.prototype.l;J.prototype.setMap=J.prototype.setMap;J.prototype.setSource=J.prototype.Fc;J.prototype.getExtent=J.prototype.H;J.prototype.getMaxResolution=J.prototype.Ob;J.prototype.getMinResolution=J.prototype.Pb;J.prototype.getOpacity=J.prototype.Qb;J.prototype.getVisible=J.prototype.yb;J.prototype.getZIndex=J.prototype.Rb;J.prototype.setExtent=J.prototype.fc;
|
||||||
|
J.prototype.setMaxResolution=J.prototype.nc;J.prototype.setMinResolution=J.prototype.oc;J.prototype.setOpacity=J.prototype.gc;J.prototype.setVisible=J.prototype.hc;J.prototype.setZIndex=J.prototype.ic;J.prototype.get=J.prototype.get;J.prototype.getKeys=J.prototype.N;J.prototype.getProperties=J.prototype.O;J.prototype.set=J.prototype.set;J.prototype.setProperties=J.prototype.G;J.prototype.unset=J.prototype.R;J.prototype.changed=J.prototype.u;J.prototype.dispatchEvent=J.prototype.b;
|
||||||
|
J.prototype.getRevision=J.prototype.K;J.prototype.on=J.prototype.I;J.prototype.once=J.prototype.L;J.prototype.un=J.prototype.J;J.prototype.unByKey=J.prototype.M;Xh.prototype.get=Xh.prototype.get;Xh.prototype.getKeys=Xh.prototype.N;Xh.prototype.getProperties=Xh.prototype.O;Xh.prototype.set=Xh.prototype.set;Xh.prototype.setProperties=Xh.prototype.G;Xh.prototype.unset=Xh.prototype.R;Xh.prototype.changed=Xh.prototype.u;Xh.prototype.dispatchEvent=Xh.prototype.b;Xh.prototype.getRevision=Xh.prototype.K;
|
||||||
|
Xh.prototype.on=Xh.prototype.I;Xh.prototype.once=Xh.prototype.L;Xh.prototype.un=Xh.prototype.J;Xh.prototype.unByKey=Xh.prototype.M;ai.prototype.getActive=ai.prototype.f;ai.prototype.getMap=ai.prototype.l;ai.prototype.setActive=ai.prototype.i;ai.prototype.get=ai.prototype.get;ai.prototype.getKeys=ai.prototype.N;ai.prototype.getProperties=ai.prototype.O;ai.prototype.set=ai.prototype.set;ai.prototype.setProperties=ai.prototype.G;ai.prototype.unset=ai.prototype.R;ai.prototype.changed=ai.prototype.u;
|
||||||
|
ai.prototype.dispatchEvent=ai.prototype.b;ai.prototype.getRevision=ai.prototype.K;ai.prototype.on=ai.prototype.I;ai.prototype.once=ai.prototype.L;ai.prototype.un=ai.prototype.J;ai.prototype.unByKey=ai.prototype.M;fu.prototype.getActive=fu.prototype.f;fu.prototype.getMap=fu.prototype.l;fu.prototype.setActive=fu.prototype.i;fu.prototype.get=fu.prototype.get;fu.prototype.getKeys=fu.prototype.N;fu.prototype.getProperties=fu.prototype.O;fu.prototype.set=fu.prototype.set;fu.prototype.setProperties=fu.prototype.G;
|
||||||
|
fu.prototype.unset=fu.prototype.R;fu.prototype.changed=fu.prototype.u;fu.prototype.dispatchEvent=fu.prototype.b;fu.prototype.getRevision=fu.prototype.K;fu.prototype.on=fu.prototype.I;fu.prototype.once=fu.prototype.L;fu.prototype.un=fu.prototype.J;fu.prototype.unByKey=fu.prototype.M;iu.prototype.type=iu.prototype.type;iu.prototype.target=iu.prototype.target;iu.prototype.preventDefault=iu.prototype.preventDefault;iu.prototype.stopPropagation=iu.prototype.stopPropagation;zi.prototype.type=zi.prototype.type;
|
||||||
|
zi.prototype.target=zi.prototype.target;zi.prototype.preventDefault=zi.prototype.preventDefault;zi.prototype.stopPropagation=zi.prototype.stopPropagation;li.prototype.getActive=li.prototype.f;li.prototype.getMap=li.prototype.l;li.prototype.setActive=li.prototype.i;li.prototype.get=li.prototype.get;li.prototype.getKeys=li.prototype.N;li.prototype.getProperties=li.prototype.O;li.prototype.set=li.prototype.set;li.prototype.setProperties=li.prototype.G;li.prototype.unset=li.prototype.R;
|
||||||
|
li.prototype.changed=li.prototype.u;li.prototype.dispatchEvent=li.prototype.b;li.prototype.getRevision=li.prototype.K;li.prototype.on=li.prototype.I;li.prototype.once=li.prototype.L;li.prototype.un=li.prototype.J;li.prototype.unByKey=li.prototype.M;Ai.prototype.getActive=Ai.prototype.f;Ai.prototype.getMap=Ai.prototype.l;Ai.prototype.setActive=Ai.prototype.i;Ai.prototype.get=Ai.prototype.get;Ai.prototype.getKeys=Ai.prototype.N;Ai.prototype.getProperties=Ai.prototype.O;Ai.prototype.set=Ai.prototype.set;
|
||||||
|
Ai.prototype.setProperties=Ai.prototype.G;Ai.prototype.unset=Ai.prototype.R;Ai.prototype.changed=Ai.prototype.u;Ai.prototype.dispatchEvent=Ai.prototype.b;Ai.prototype.getRevision=Ai.prototype.K;Ai.prototype.on=Ai.prototype.I;Ai.prototype.once=Ai.prototype.L;Ai.prototype.un=Ai.prototype.J;Ai.prototype.unByKey=Ai.prototype.M;oi.prototype.getActive=oi.prototype.f;oi.prototype.getMap=oi.prototype.l;oi.prototype.setActive=oi.prototype.i;oi.prototype.get=oi.prototype.get;oi.prototype.getKeys=oi.prototype.N;
|
||||||
|
oi.prototype.getProperties=oi.prototype.O;oi.prototype.set=oi.prototype.set;oi.prototype.setProperties=oi.prototype.G;oi.prototype.unset=oi.prototype.R;oi.prototype.changed=oi.prototype.u;oi.prototype.dispatchEvent=oi.prototype.b;oi.prototype.getRevision=oi.prototype.K;oi.prototype.on=oi.prototype.I;oi.prototype.once=oi.prototype.L;oi.prototype.un=oi.prototype.J;oi.prototype.unByKey=oi.prototype.M;ku.prototype.getActive=ku.prototype.f;ku.prototype.getMap=ku.prototype.l;ku.prototype.setActive=ku.prototype.i;
|
||||||
|
ku.prototype.get=ku.prototype.get;ku.prototype.getKeys=ku.prototype.N;ku.prototype.getProperties=ku.prototype.O;ku.prototype.set=ku.prototype.set;ku.prototype.setProperties=ku.prototype.G;ku.prototype.unset=ku.prototype.R;ku.prototype.changed=ku.prototype.u;ku.prototype.dispatchEvent=ku.prototype.b;ku.prototype.getRevision=ku.prototype.K;ku.prototype.on=ku.prototype.I;ku.prototype.once=ku.prototype.L;ku.prototype.un=ku.prototype.J;ku.prototype.unByKey=ku.prototype.M;si.prototype.getActive=si.prototype.f;
|
||||||
|
si.prototype.getMap=si.prototype.l;si.prototype.setActive=si.prototype.i;si.prototype.get=si.prototype.get;si.prototype.getKeys=si.prototype.N;si.prototype.getProperties=si.prototype.O;si.prototype.set=si.prototype.set;si.prototype.setProperties=si.prototype.G;si.prototype.unset=si.prototype.R;si.prototype.changed=si.prototype.u;si.prototype.dispatchEvent=si.prototype.b;si.prototype.getRevision=si.prototype.K;si.prototype.on=si.prototype.I;si.prototype.once=si.prototype.L;si.prototype.un=si.prototype.J;
|
||||||
|
si.prototype.unByKey=si.prototype.M;Fi.prototype.getGeometry=Fi.prototype.X;Fi.prototype.getActive=Fi.prototype.f;Fi.prototype.getMap=Fi.prototype.l;Fi.prototype.setActive=Fi.prototype.i;Fi.prototype.get=Fi.prototype.get;Fi.prototype.getKeys=Fi.prototype.N;Fi.prototype.getProperties=Fi.prototype.O;Fi.prototype.set=Fi.prototype.set;Fi.prototype.setProperties=Fi.prototype.G;Fi.prototype.unset=Fi.prototype.R;Fi.prototype.changed=Fi.prototype.u;Fi.prototype.dispatchEvent=Fi.prototype.b;
|
||||||
|
Fi.prototype.getRevision=Fi.prototype.K;Fi.prototype.on=Fi.prototype.I;Fi.prototype.once=Fi.prototype.L;Fi.prototype.un=Fi.prototype.J;Fi.prototype.unByKey=Fi.prototype.M;ou.prototype.type=ou.prototype.type;ou.prototype.target=ou.prototype.target;ou.prototype.preventDefault=ou.prototype.preventDefault;ou.prototype.stopPropagation=ou.prototype.stopPropagation;pu.prototype.getActive=pu.prototype.f;pu.prototype.getMap=pu.prototype.l;pu.prototype.setActive=pu.prototype.i;pu.prototype.get=pu.prototype.get;
|
||||||
|
pu.prototype.getKeys=pu.prototype.N;pu.prototype.getProperties=pu.prototype.O;pu.prototype.set=pu.prototype.set;pu.prototype.setProperties=pu.prototype.G;pu.prototype.unset=pu.prototype.R;pu.prototype.changed=pu.prototype.u;pu.prototype.dispatchEvent=pu.prototype.b;pu.prototype.getRevision=pu.prototype.K;pu.prototype.on=pu.prototype.I;pu.prototype.once=pu.prototype.L;pu.prototype.un=pu.prototype.J;pu.prototype.unByKey=pu.prototype.M;Gi.prototype.getActive=Gi.prototype.f;Gi.prototype.getMap=Gi.prototype.l;
|
||||||
|
Gi.prototype.setActive=Gi.prototype.i;Gi.prototype.get=Gi.prototype.get;Gi.prototype.getKeys=Gi.prototype.N;Gi.prototype.getProperties=Gi.prototype.O;Gi.prototype.set=Gi.prototype.set;Gi.prototype.setProperties=Gi.prototype.G;Gi.prototype.unset=Gi.prototype.R;Gi.prototype.changed=Gi.prototype.u;Gi.prototype.dispatchEvent=Gi.prototype.b;Gi.prototype.getRevision=Gi.prototype.K;Gi.prototype.on=Gi.prototype.I;Gi.prototype.once=Gi.prototype.L;Gi.prototype.un=Gi.prototype.J;Gi.prototype.unByKey=Gi.prototype.M;
|
||||||
|
Ii.prototype.getActive=Ii.prototype.f;Ii.prototype.getMap=Ii.prototype.l;Ii.prototype.setActive=Ii.prototype.i;Ii.prototype.get=Ii.prototype.get;Ii.prototype.getKeys=Ii.prototype.N;Ii.prototype.getProperties=Ii.prototype.O;Ii.prototype.set=Ii.prototype.set;Ii.prototype.setProperties=Ii.prototype.G;Ii.prototype.unset=Ii.prototype.R;Ii.prototype.changed=Ii.prototype.u;Ii.prototype.dispatchEvent=Ii.prototype.b;Ii.prototype.getRevision=Ii.prototype.K;Ii.prototype.on=Ii.prototype.I;Ii.prototype.once=Ii.prototype.L;
|
||||||
|
Ii.prototype.un=Ii.prototype.J;Ii.prototype.unByKey=Ii.prototype.M;Fu.prototype.type=Fu.prototype.type;Fu.prototype.target=Fu.prototype.target;Fu.prototype.preventDefault=Fu.prototype.preventDefault;Fu.prototype.stopPropagation=Fu.prototype.stopPropagation;Gu.prototype.getActive=Gu.prototype.f;Gu.prototype.getMap=Gu.prototype.l;Gu.prototype.setActive=Gu.prototype.i;Gu.prototype.get=Gu.prototype.get;Gu.prototype.getKeys=Gu.prototype.N;Gu.prototype.getProperties=Gu.prototype.O;Gu.prototype.set=Gu.prototype.set;
|
||||||
|
Gu.prototype.setProperties=Gu.prototype.G;Gu.prototype.unset=Gu.prototype.R;Gu.prototype.changed=Gu.prototype.u;Gu.prototype.dispatchEvent=Gu.prototype.b;Gu.prototype.getRevision=Gu.prototype.K;Gu.prototype.on=Gu.prototype.I;Gu.prototype.once=Gu.prototype.L;Gu.prototype.un=Gu.prototype.J;Gu.prototype.unByKey=Gu.prototype.M;Ki.prototype.getActive=Ki.prototype.f;Ki.prototype.getMap=Ki.prototype.l;Ki.prototype.setActive=Ki.prototype.i;Ki.prototype.get=Ki.prototype.get;Ki.prototype.getKeys=Ki.prototype.N;
|
||||||
|
Ki.prototype.getProperties=Ki.prototype.O;Ki.prototype.set=Ki.prototype.set;Ki.prototype.setProperties=Ki.prototype.G;Ki.prototype.unset=Ki.prototype.R;Ki.prototype.changed=Ki.prototype.u;Ki.prototype.dispatchEvent=Ki.prototype.b;Ki.prototype.getRevision=Ki.prototype.K;Ki.prototype.on=Ki.prototype.I;Ki.prototype.once=Ki.prototype.L;Ki.prototype.un=Ki.prototype.J;Ki.prototype.unByKey=Ki.prototype.M;Mi.prototype.getActive=Mi.prototype.f;Mi.prototype.getMap=Mi.prototype.l;Mi.prototype.setActive=Mi.prototype.i;
|
||||||
|
Mi.prototype.get=Mi.prototype.get;Mi.prototype.getKeys=Mi.prototype.N;Mi.prototype.getProperties=Mi.prototype.O;Mi.prototype.set=Mi.prototype.set;Mi.prototype.setProperties=Mi.prototype.G;Mi.prototype.unset=Mi.prototype.R;Mi.prototype.changed=Mi.prototype.u;Mi.prototype.dispatchEvent=Mi.prototype.b;Mi.prototype.getRevision=Mi.prototype.K;Mi.prototype.on=Mi.prototype.I;Mi.prototype.once=Mi.prototype.L;Mi.prototype.un=Mi.prototype.J;Mi.prototype.unByKey=Mi.prototype.M;Qi.prototype.getActive=Qi.prototype.f;
|
||||||
|
Qi.prototype.getMap=Qi.prototype.l;Qi.prototype.setActive=Qi.prototype.i;Qi.prototype.get=Qi.prototype.get;Qi.prototype.getKeys=Qi.prototype.N;Qi.prototype.getProperties=Qi.prototype.O;Qi.prototype.set=Qi.prototype.set;Qi.prototype.setProperties=Qi.prototype.G;Qi.prototype.unset=Qi.prototype.R;Qi.prototype.changed=Qi.prototype.u;Qi.prototype.dispatchEvent=Qi.prototype.b;Qi.prototype.getRevision=Qi.prototype.K;Qi.prototype.on=Qi.prototype.I;Qi.prototype.once=Qi.prototype.L;Qi.prototype.un=Qi.prototype.J;
|
||||||
|
Qi.prototype.unByKey=Qi.prototype.M;Tu.prototype.type=Tu.prototype.type;Tu.prototype.target=Tu.prototype.target;Tu.prototype.preventDefault=Tu.prototype.preventDefault;Tu.prototype.stopPropagation=Tu.prototype.stopPropagation;Uu.prototype.getActive=Uu.prototype.f;Uu.prototype.getMap=Uu.prototype.l;Uu.prototype.setActive=Uu.prototype.i;Uu.prototype.get=Uu.prototype.get;Uu.prototype.getKeys=Uu.prototype.N;Uu.prototype.getProperties=Uu.prototype.O;Uu.prototype.set=Uu.prototype.set;
|
||||||
|
Uu.prototype.setProperties=Uu.prototype.G;Uu.prototype.unset=Uu.prototype.R;Uu.prototype.changed=Uu.prototype.u;Uu.prototype.dispatchEvent=Uu.prototype.b;Uu.prototype.getRevision=Uu.prototype.K;Uu.prototype.on=Uu.prototype.I;Uu.prototype.once=Uu.prototype.L;Uu.prototype.un=Uu.prototype.J;Uu.prototype.unByKey=Uu.prototype.M;Xu.prototype.getActive=Xu.prototype.f;Xu.prototype.getMap=Xu.prototype.l;Xu.prototype.setActive=Xu.prototype.i;Xu.prototype.get=Xu.prototype.get;Xu.prototype.getKeys=Xu.prototype.N;
|
||||||
|
Xu.prototype.getProperties=Xu.prototype.O;Xu.prototype.set=Xu.prototype.set;Xu.prototype.setProperties=Xu.prototype.G;Xu.prototype.unset=Xu.prototype.R;Xu.prototype.changed=Xu.prototype.u;Xu.prototype.dispatchEvent=Xu.prototype.b;Xu.prototype.getRevision=Xu.prototype.K;Xu.prototype.on=Xu.prototype.I;Xu.prototype.once=Xu.prototype.L;Xu.prototype.un=Xu.prototype.J;Xu.prototype.unByKey=Xu.prototype.M;av.prototype.type=av.prototype.type;av.prototype.target=av.prototype.target;
|
||||||
|
av.prototype.preventDefault=av.prototype.preventDefault;av.prototype.stopPropagation=av.prototype.stopPropagation;bv.prototype.getActive=bv.prototype.f;bv.prototype.getMap=bv.prototype.l;bv.prototype.setActive=bv.prototype.i;bv.prototype.get=bv.prototype.get;bv.prototype.getKeys=bv.prototype.N;bv.prototype.getProperties=bv.prototype.O;bv.prototype.set=bv.prototype.set;bv.prototype.setProperties=bv.prototype.G;bv.prototype.unset=bv.prototype.R;bv.prototype.changed=bv.prototype.u;
|
||||||
|
bv.prototype.dispatchEvent=bv.prototype.b;bv.prototype.getRevision=bv.prototype.K;bv.prototype.on=bv.prototype.I;bv.prototype.once=bv.prototype.L;bv.prototype.un=bv.prototype.J;bv.prototype.unByKey=bv.prototype.M;Uc.prototype.get=Uc.prototype.get;Uc.prototype.getKeys=Uc.prototype.N;Uc.prototype.getProperties=Uc.prototype.O;Uc.prototype.set=Uc.prototype.set;Uc.prototype.setProperties=Uc.prototype.G;Uc.prototype.unset=Uc.prototype.R;Uc.prototype.changed=Uc.prototype.u;Uc.prototype.dispatchEvent=Uc.prototype.b;
|
||||||
|
Uc.prototype.getRevision=Uc.prototype.K;Uc.prototype.on=Uc.prototype.I;Uc.prototype.once=Uc.prototype.L;Uc.prototype.un=Uc.prototype.J;Uc.prototype.unByKey=Uc.prototype.M;Wc.prototype.getClosestPoint=Wc.prototype.wb;Wc.prototype.getExtent=Wc.prototype.H;Wc.prototype.rotate=Wc.prototype.rotate;Wc.prototype.simplify=Wc.prototype.Cb;Wc.prototype.transform=Wc.prototype.kb;Wc.prototype.get=Wc.prototype.get;Wc.prototype.getKeys=Wc.prototype.N;Wc.prototype.getProperties=Wc.prototype.O;Wc.prototype.set=Wc.prototype.set;
|
||||||
|
Wc.prototype.setProperties=Wc.prototype.G;Wc.prototype.unset=Wc.prototype.R;Wc.prototype.changed=Wc.prototype.u;Wc.prototype.dispatchEvent=Wc.prototype.b;Wc.prototype.getRevision=Wc.prototype.K;Wc.prototype.on=Wc.prototype.I;Wc.prototype.once=Wc.prototype.L;Wc.prototype.un=Wc.prototype.J;Wc.prototype.unByKey=Wc.prototype.M;Tt.prototype.getFirstCoordinate=Tt.prototype.Ib;Tt.prototype.getLastCoordinate=Tt.prototype.Jb;Tt.prototype.getLayout=Tt.prototype.Kb;Tt.prototype.rotate=Tt.prototype.rotate;
|
||||||
|
Tt.prototype.getClosestPoint=Tt.prototype.wb;Tt.prototype.getExtent=Tt.prototype.H;Tt.prototype.simplify=Tt.prototype.Cb;Tt.prototype.get=Tt.prototype.get;Tt.prototype.getKeys=Tt.prototype.N;Tt.prototype.getProperties=Tt.prototype.O;Tt.prototype.set=Tt.prototype.set;Tt.prototype.setProperties=Tt.prototype.G;Tt.prototype.unset=Tt.prototype.R;Tt.prototype.changed=Tt.prototype.u;Tt.prototype.dispatchEvent=Tt.prototype.b;Tt.prototype.getRevision=Tt.prototype.K;Tt.prototype.on=Tt.prototype.I;
|
||||||
|
Tt.prototype.once=Tt.prototype.L;Tt.prototype.un=Tt.prototype.J;Tt.prototype.unByKey=Tt.prototype.M;Kn.prototype.getClosestPoint=Kn.prototype.wb;Kn.prototype.getExtent=Kn.prototype.H;Kn.prototype.rotate=Kn.prototype.rotate;Kn.prototype.simplify=Kn.prototype.Cb;Kn.prototype.transform=Kn.prototype.kb;Kn.prototype.get=Kn.prototype.get;Kn.prototype.getKeys=Kn.prototype.N;Kn.prototype.getProperties=Kn.prototype.O;Kn.prototype.set=Kn.prototype.set;Kn.prototype.setProperties=Kn.prototype.G;
|
||||||
|
Kn.prototype.unset=Kn.prototype.R;Kn.prototype.changed=Kn.prototype.u;Kn.prototype.dispatchEvent=Kn.prototype.b;Kn.prototype.getRevision=Kn.prototype.K;Kn.prototype.on=Kn.prototype.I;Kn.prototype.once=Kn.prototype.L;Kn.prototype.un=Kn.prototype.J;Kn.prototype.unByKey=Kn.prototype.M;nd.prototype.getFirstCoordinate=nd.prototype.Ib;nd.prototype.getLastCoordinate=nd.prototype.Jb;nd.prototype.getLayout=nd.prototype.Kb;nd.prototype.rotate=nd.prototype.rotate;nd.prototype.getClosestPoint=nd.prototype.wb;
|
||||||
|
nd.prototype.getExtent=nd.prototype.H;nd.prototype.simplify=nd.prototype.Cb;nd.prototype.transform=nd.prototype.kb;nd.prototype.get=nd.prototype.get;nd.prototype.getKeys=nd.prototype.N;nd.prototype.getProperties=nd.prototype.O;nd.prototype.set=nd.prototype.set;nd.prototype.setProperties=nd.prototype.G;nd.prototype.unset=nd.prototype.R;nd.prototype.changed=nd.prototype.u;nd.prototype.dispatchEvent=nd.prototype.b;nd.prototype.getRevision=nd.prototype.K;nd.prototype.on=nd.prototype.I;
|
||||||
|
nd.prototype.once=nd.prototype.L;nd.prototype.un=nd.prototype.J;nd.prototype.unByKey=nd.prototype.M;R.prototype.getFirstCoordinate=R.prototype.Ib;R.prototype.getLastCoordinate=R.prototype.Jb;R.prototype.getLayout=R.prototype.Kb;R.prototype.rotate=R.prototype.rotate;R.prototype.getClosestPoint=R.prototype.wb;R.prototype.getExtent=R.prototype.H;R.prototype.simplify=R.prototype.Cb;R.prototype.transform=R.prototype.kb;R.prototype.get=R.prototype.get;R.prototype.getKeys=R.prototype.N;
|
||||||
|
R.prototype.getProperties=R.prototype.O;R.prototype.set=R.prototype.set;R.prototype.setProperties=R.prototype.G;R.prototype.unset=R.prototype.R;R.prototype.changed=R.prototype.u;R.prototype.dispatchEvent=R.prototype.b;R.prototype.getRevision=R.prototype.K;R.prototype.on=R.prototype.I;R.prototype.once=R.prototype.L;R.prototype.un=R.prototype.J;R.prototype.unByKey=R.prototype.M;S.prototype.getFirstCoordinate=S.prototype.Ib;S.prototype.getLastCoordinate=S.prototype.Jb;S.prototype.getLayout=S.prototype.Kb;
|
||||||
|
S.prototype.rotate=S.prototype.rotate;S.prototype.getClosestPoint=S.prototype.wb;S.prototype.getExtent=S.prototype.H;S.prototype.simplify=S.prototype.Cb;S.prototype.transform=S.prototype.kb;S.prototype.get=S.prototype.get;S.prototype.getKeys=S.prototype.N;S.prototype.getProperties=S.prototype.O;S.prototype.set=S.prototype.set;S.prototype.setProperties=S.prototype.G;S.prototype.unset=S.prototype.R;S.prototype.changed=S.prototype.u;S.prototype.dispatchEvent=S.prototype.b;S.prototype.getRevision=S.prototype.K;
|
||||||
|
S.prototype.on=S.prototype.I;S.prototype.once=S.prototype.L;S.prototype.un=S.prototype.J;S.prototype.unByKey=S.prototype.M;T.prototype.getFirstCoordinate=T.prototype.Ib;T.prototype.getLastCoordinate=T.prototype.Jb;T.prototype.getLayout=T.prototype.Kb;T.prototype.rotate=T.prototype.rotate;T.prototype.getClosestPoint=T.prototype.wb;T.prototype.getExtent=T.prototype.H;T.prototype.simplify=T.prototype.Cb;T.prototype.transform=T.prototype.kb;T.prototype.get=T.prototype.get;T.prototype.getKeys=T.prototype.N;
|
||||||
|
T.prototype.getProperties=T.prototype.O;T.prototype.set=T.prototype.set;T.prototype.setProperties=T.prototype.G;T.prototype.unset=T.prototype.R;T.prototype.changed=T.prototype.u;T.prototype.dispatchEvent=T.prototype.b;T.prototype.getRevision=T.prototype.K;T.prototype.on=T.prototype.I;T.prototype.once=T.prototype.L;T.prototype.un=T.prototype.J;T.prototype.unByKey=T.prototype.M;U.prototype.getFirstCoordinate=U.prototype.Ib;U.prototype.getLastCoordinate=U.prototype.Jb;U.prototype.getLayout=U.prototype.Kb;
|
||||||
|
U.prototype.rotate=U.prototype.rotate;U.prototype.getClosestPoint=U.prototype.wb;U.prototype.getExtent=U.prototype.H;U.prototype.simplify=U.prototype.Cb;U.prototype.transform=U.prototype.kb;U.prototype.get=U.prototype.get;U.prototype.getKeys=U.prototype.N;U.prototype.getProperties=U.prototype.O;U.prototype.set=U.prototype.set;U.prototype.setProperties=U.prototype.G;U.prototype.unset=U.prototype.R;U.prototype.changed=U.prototype.u;U.prototype.dispatchEvent=U.prototype.b;U.prototype.getRevision=U.prototype.K;
|
||||||
|
U.prototype.on=U.prototype.I;U.prototype.once=U.prototype.L;U.prototype.un=U.prototype.J;U.prototype.unByKey=U.prototype.M;C.prototype.getFirstCoordinate=C.prototype.Ib;C.prototype.getLastCoordinate=C.prototype.Jb;C.prototype.getLayout=C.prototype.Kb;C.prototype.rotate=C.prototype.rotate;C.prototype.getClosestPoint=C.prototype.wb;C.prototype.getExtent=C.prototype.H;C.prototype.simplify=C.prototype.Cb;C.prototype.transform=C.prototype.kb;C.prototype.get=C.prototype.get;C.prototype.getKeys=C.prototype.N;
|
||||||
|
C.prototype.getProperties=C.prototype.O;C.prototype.set=C.prototype.set;C.prototype.setProperties=C.prototype.G;C.prototype.unset=C.prototype.R;C.prototype.changed=C.prototype.u;C.prototype.dispatchEvent=C.prototype.b;C.prototype.getRevision=C.prototype.K;C.prototype.on=C.prototype.I;C.prototype.once=C.prototype.L;C.prototype.un=C.prototype.J;C.prototype.unByKey=C.prototype.M;E.prototype.getFirstCoordinate=E.prototype.Ib;E.prototype.getLastCoordinate=E.prototype.Jb;E.prototype.getLayout=E.prototype.Kb;
|
||||||
|
E.prototype.rotate=E.prototype.rotate;E.prototype.getClosestPoint=E.prototype.wb;E.prototype.getExtent=E.prototype.H;E.prototype.simplify=E.prototype.Cb;E.prototype.transform=E.prototype.kb;E.prototype.get=E.prototype.get;E.prototype.getKeys=E.prototype.N;E.prototype.getProperties=E.prototype.O;E.prototype.set=E.prototype.set;E.prototype.setProperties=E.prototype.G;E.prototype.unset=E.prototype.R;E.prototype.changed=E.prototype.u;E.prototype.dispatchEvent=E.prototype.b;E.prototype.getRevision=E.prototype.K;
|
||||||
|
E.prototype.on=E.prototype.I;E.prototype.once=E.prototype.L;E.prototype.un=E.prototype.J;E.prototype.unByKey=E.prototype.M;jo.prototype.readFeatures=jo.prototype.Fa;ko.prototype.readFeatures=ko.prototype.Fa;ko.prototype.readFeatures=ko.prototype.Fa;Pe.prototype.get=Pe.prototype.get;Pe.prototype.getKeys=Pe.prototype.N;Pe.prototype.getProperties=Pe.prototype.O;Pe.prototype.set=Pe.prototype.set;Pe.prototype.setProperties=Pe.prototype.G;Pe.prototype.unset=Pe.prototype.R;Pe.prototype.changed=Pe.prototype.u;
|
||||||
|
Pe.prototype.dispatchEvent=Pe.prototype.b;Pe.prototype.getRevision=Pe.prototype.K;Pe.prototype.on=Pe.prototype.I;Pe.prototype.once=Pe.prototype.L;Pe.prototype.un=Pe.prototype.J;Pe.prototype.unByKey=Pe.prototype.M;xf.prototype.getMap=xf.prototype.i;xf.prototype.setMap=xf.prototype.setMap;xf.prototype.setTarget=xf.prototype.c;xf.prototype.get=xf.prototype.get;xf.prototype.getKeys=xf.prototype.N;xf.prototype.getProperties=xf.prototype.O;xf.prototype.set=xf.prototype.set;xf.prototype.setProperties=xf.prototype.G;
|
||||||
|
xf.prototype.unset=xf.prototype.R;xf.prototype.changed=xf.prototype.u;xf.prototype.dispatchEvent=xf.prototype.b;xf.prototype.getRevision=xf.prototype.K;xf.prototype.on=xf.prototype.I;xf.prototype.once=xf.prototype.L;xf.prototype.un=xf.prototype.J;xf.prototype.unByKey=xf.prototype.M;Ef.prototype.getMap=Ef.prototype.i;Ef.prototype.setMap=Ef.prototype.setMap;Ef.prototype.setTarget=Ef.prototype.c;Ef.prototype.get=Ef.prototype.get;Ef.prototype.getKeys=Ef.prototype.N;Ef.prototype.getProperties=Ef.prototype.O;
|
||||||
|
Ef.prototype.set=Ef.prototype.set;Ef.prototype.setProperties=Ef.prototype.G;Ef.prototype.unset=Ef.prototype.R;Ef.prototype.changed=Ef.prototype.u;Ef.prototype.dispatchEvent=Ef.prototype.b;Ef.prototype.getRevision=Ef.prototype.K;Ef.prototype.on=Ef.prototype.I;Ef.prototype.once=Ef.prototype.L;Ef.prototype.un=Ef.prototype.J;Ef.prototype.unByKey=Ef.prototype.M;Jf.prototype.getMap=Jf.prototype.i;Jf.prototype.setMap=Jf.prototype.setMap;Jf.prototype.setTarget=Jf.prototype.c;Jf.prototype.get=Jf.prototype.get;
|
||||||
|
Jf.prototype.getKeys=Jf.prototype.N;Jf.prototype.getProperties=Jf.prototype.O;Jf.prototype.set=Jf.prototype.set;Jf.prototype.setProperties=Jf.prototype.G;Jf.prototype.unset=Jf.prototype.R;Jf.prototype.changed=Jf.prototype.u;Jf.prototype.dispatchEvent=Jf.prototype.b;Jf.prototype.getRevision=Jf.prototype.K;Jf.prototype.on=Jf.prototype.I;Jf.prototype.once=Jf.prototype.L;Jf.prototype.un=Jf.prototype.J;Jf.prototype.unByKey=Jf.prototype.M;an.prototype.getMap=an.prototype.i;an.prototype.setMap=an.prototype.setMap;
|
||||||
|
an.prototype.setTarget=an.prototype.c;an.prototype.get=an.prototype.get;an.prototype.getKeys=an.prototype.N;an.prototype.getProperties=an.prototype.O;an.prototype.set=an.prototype.set;an.prototype.setProperties=an.prototype.G;an.prototype.unset=an.prototype.R;an.prototype.changed=an.prototype.u;an.prototype.dispatchEvent=an.prototype.b;an.prototype.getRevision=an.prototype.K;an.prototype.on=an.prototype.I;an.prototype.once=an.prototype.L;an.prototype.un=an.prototype.J;an.prototype.unByKey=an.prototype.M;
|
||||||
|
Af.prototype.getMap=Af.prototype.i;Af.prototype.setMap=Af.prototype.setMap;Af.prototype.setTarget=Af.prototype.c;Af.prototype.get=Af.prototype.get;Af.prototype.getKeys=Af.prototype.N;Af.prototype.getProperties=Af.prototype.O;Af.prototype.set=Af.prototype.set;Af.prototype.setProperties=Af.prototype.G;Af.prototype.unset=Af.prototype.R;Af.prototype.changed=Af.prototype.u;Af.prototype.dispatchEvent=Af.prototype.b;Af.prototype.getRevision=Af.prototype.K;Af.prototype.on=Af.prototype.I;
|
||||||
|
Af.prototype.once=Af.prototype.L;Af.prototype.un=Af.prototype.J;Af.prototype.unByKey=Af.prototype.M;fn.prototype.getMap=fn.prototype.i;fn.prototype.setMap=fn.prototype.setMap;fn.prototype.setTarget=fn.prototype.c;fn.prototype.get=fn.prototype.get;fn.prototype.getKeys=fn.prototype.N;fn.prototype.getProperties=fn.prototype.O;fn.prototype.set=fn.prototype.set;fn.prototype.setProperties=fn.prototype.G;fn.prototype.unset=fn.prototype.R;fn.prototype.changed=fn.prototype.u;fn.prototype.dispatchEvent=fn.prototype.b;
|
||||||
|
fn.prototype.getRevision=fn.prototype.K;fn.prototype.on=fn.prototype.I;fn.prototype.once=fn.prototype.L;fn.prototype.un=fn.prototype.J;fn.prototype.unByKey=fn.prototype.M;Cf.prototype.getMap=Cf.prototype.i;Cf.prototype.setMap=Cf.prototype.setMap;Cf.prototype.setTarget=Cf.prototype.c;Cf.prototype.get=Cf.prototype.get;Cf.prototype.getKeys=Cf.prototype.N;Cf.prototype.getProperties=Cf.prototype.O;Cf.prototype.set=Cf.prototype.set;Cf.prototype.setProperties=Cf.prototype.G;Cf.prototype.unset=Cf.prototype.R;
|
||||||
|
Cf.prototype.changed=Cf.prototype.u;Cf.prototype.dispatchEvent=Cf.prototype.b;Cf.prototype.getRevision=Cf.prototype.K;Cf.prototype.on=Cf.prototype.I;Cf.prototype.once=Cf.prototype.L;Cf.prototype.un=Cf.prototype.J;Cf.prototype.unByKey=Cf.prototype.M;kn.prototype.getMap=kn.prototype.i;kn.prototype.setMap=kn.prototype.setMap;kn.prototype.setTarget=kn.prototype.c;kn.prototype.get=kn.prototype.get;kn.prototype.getKeys=kn.prototype.N;kn.prototype.getProperties=kn.prototype.O;kn.prototype.set=kn.prototype.set;
|
||||||
|
kn.prototype.setProperties=kn.prototype.G;kn.prototype.unset=kn.prototype.R;kn.prototype.changed=kn.prototype.u;kn.prototype.dispatchEvent=kn.prototype.b;kn.prototype.getRevision=kn.prototype.K;kn.prototype.on=kn.prototype.I;kn.prototype.once=kn.prototype.L;kn.prototype.un=kn.prototype.J;kn.prototype.unByKey=kn.prototype.M;pn.prototype.getMap=pn.prototype.i;pn.prototype.setMap=pn.prototype.setMap;pn.prototype.setTarget=pn.prototype.c;pn.prototype.get=pn.prototype.get;pn.prototype.getKeys=pn.prototype.N;
|
||||||
|
pn.prototype.getProperties=pn.prototype.O;pn.prototype.set=pn.prototype.set;pn.prototype.setProperties=pn.prototype.G;pn.prototype.unset=pn.prototype.R;pn.prototype.changed=pn.prototype.u;pn.prototype.dispatchEvent=pn.prototype.b;pn.prototype.getRevision=pn.prototype.K;pn.prototype.on=pn.prototype.I;pn.prototype.once=pn.prototype.L;pn.prototype.un=pn.prototype.J;pn.prototype.unByKey=pn.prototype.M;
|
||||||
|
return OPENLAYERS.ol;
|
||||||
|
}));
|
||||||
|
|
||||||
16
doc/faq.md
16
doc/faq.md
@@ -161,6 +161,22 @@ var swissCoord = ol.proj.transform([8.23, 46.86], 'EPSG:4326', 'EPSG:21781');
|
|||||||
|
|
||||||
## Why is the order of a coordinate [lon,lat], and not [lat,lon]?
|
## Why is the order of a coordinate [lon,lat], and not [lat,lon]?
|
||||||
|
|
||||||
|
Because of two different and incompatible conventions. Latitude and longitude
|
||||||
|
are normally given in that order. Maps are 2D representations/projections
|
||||||
|
of the earth's surface, with coordinates expressed in the `x,y` grid of the
|
||||||
|
[Cartesian system](https://en.wikipedia.org/wiki/Cartesian_coordinate_system).
|
||||||
|
As they are by convention drawn with west on the left and north at the top,
|
||||||
|
this means that `x` represents longitude, and `y` latitude. As stated above,
|
||||||
|
OpenLayers is designed to handle all projections, but the default view is in
|
||||||
|
projected Cartesian coordinates. It would make no sense to have duplicate
|
||||||
|
functions to handle coordinates in both the Cartesian `x,y` and `lat,lon`
|
||||||
|
systems, so the degrees of latitude and longitude should be entered as though
|
||||||
|
they were Cartesian, in other words, they are `lon,lat`.
|
||||||
|
|
||||||
|
If you have difficulty remembering which way round it is, use the language code
|
||||||
|
for English, `en`, as a mnemonic: East before North.
|
||||||
|
|
||||||
|
#### A practical example
|
||||||
So you want to center your map on a certain place on the earth and obviously you
|
So you want to center your map on a certain place on the earth and obviously you
|
||||||
need to have its coordinates for this. Let's assume you want your map centered
|
need to have its coordinates for this. Let's assume you want your map centered
|
||||||
on Schladming, a beautiful place in Austria. Head over to the wikipedia
|
on Schladming, a beautiful place in Austria. Head over to the wikipedia
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ If you're eager to get your first OpenLayers 3 map on a page, dive into the [qui
|
|||||||
|
|
||||||
For a more in-depth overview of OpenLayers 3 core concepts, check out the [tutorials](tutorials/).
|
For a more in-depth overview of OpenLayers 3 core concepts, check out the [tutorials](tutorials/).
|
||||||
|
|
||||||
Make sure to also check out the [OpenLayers 3 workshop](../../../ol3-workshop/).
|
Make sure to also check out the [OpenLayers 3 workshop](/workshop/).
|
||||||
|
|
||||||
Find additional reference material in the [API docs](../apidoc).
|
Find additional reference material in the [API docs](../apidoc).
|
||||||
|
|
||||||
|
|||||||
@@ -31,11 +31,11 @@ Below you'll find a complete working example. Create a new file, copy in the co
|
|||||||
target: 'map',
|
target: 'map',
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
view: new ol.View({
|
view: new ol.View({
|
||||||
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
|
center: ol.proj.fromLonLat([37.41, 8.82]),
|
||||||
zoom: 4
|
zoom: 4
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
@@ -85,17 +85,17 @@ The map in the application is contained in a [`<div>` HTML element](http://en.wi
|
|||||||
target: 'map',
|
target: 'map',
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
view: new ol.View({
|
view: new ol.View({
|
||||||
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
|
center: ol.proj.fromLonLat([37.41, 8.82]),
|
||||||
zoom: 4
|
zoom: 4
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
With this JavaScript code, a map object is created with a MapQuest Open Aerial layer zoomed on the African East coast. Let's break this down:
|
With this JavaScript code, a map object is created with an OSM layer zoomed on the African East coast. Let's break this down:
|
||||||
|
|
||||||
The following line creates an OpenLayers `Map` object. Just by itself, this does nothing since there's no layers or interaction attached to it.
|
The following line creates an OpenLayers `Map` object. Just by itself, this does nothing since there's no layers or interaction attached to it.
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ The `layers: [ ... ]` array is used to define the list of layers available in th
|
|||||||
```js
|
```js
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
@@ -125,9 +125,9 @@ The next part of the `Map` object is the `View`. The view allow to specify the c
|
|||||||
|
|
||||||
```js
|
```js
|
||||||
view: new ol.View({
|
view: new ol.View({
|
||||||
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
|
center: ol.proj.fromLonLat([37.41, 8.82]),
|
||||||
zoom: 4
|
zoom: 4
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
You will notice that the `center` specified is in lat/lon coordinates (EPSG:4326). Since the only layer we use is in Spherical Mercator projection (EPSG:3857), we can reproject them on the fly to be able to zoom the map on the right coordinates.
|
You will notice that the `center` specified is in lon/lat coordinates (EPSG:4326). Since the only layer we use is in Spherical Mercator projection (EPSG:3857), we can reproject them on the fly to be able to zoom the map on the right coordinates.
|
||||||
|
|||||||
@@ -160,16 +160,15 @@ The minimum config file looks like this:
|
|||||||
"closure_entry_point": "app",
|
"closure_entry_point": "app",
|
||||||
"externs": [
|
"externs": [
|
||||||
"node_modules/openlayers/externs/bingmaps.js",
|
"node_modules/openlayers/externs/bingmaps.js",
|
||||||
|
"node_modules/openlayers/externs/cartodb.js",
|
||||||
"node_modules/openlayers/externs/closure-compiler.js",
|
"node_modules/openlayers/externs/closure-compiler.js",
|
||||||
|
"node_modules/openlayers/externs/esrijson.js",
|
||||||
"node_modules/openlayers/externs/geojson.js",
|
"node_modules/openlayers/externs/geojson.js",
|
||||||
"node_modules/openlayers/externs/proj4js.js",
|
"node_modules/openlayers/externs/proj4js.js",
|
||||||
"node_modules/openlayers/externs/tilejson.js",
|
"node_modules/openlayers/externs/tilejson.js",
|
||||||
"node_modules/openlayers/externs/topojson.js"
|
"node_modules/openlayers/externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
|
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false",
|
"goog.DEBUG=false",
|
||||||
"ol.ENABLE_DOM=false",
|
"ol.ENABLE_DOM=false",
|
||||||
"ol.ENABLE_WEBGL=false"
|
"ol.ENABLE_WEBGL=false"
|
||||||
@@ -178,9 +177,6 @@ The minimum config file looks like this:
|
|||||||
"node_modules/openlayers/externs/olx.js",
|
"node_modules/openlayers/externs/olx.js",
|
||||||
"node_modules/openlayers/externs/oli.js"
|
"node_modules/openlayers/externs/oli.js"
|
||||||
],
|
],
|
||||||
"jscomp_off": [
|
|
||||||
"unknownDefines"
|
|
||||||
],
|
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
"api", "observable"
|
"api", "observable"
|
||||||
],
|
],
|
||||||
@@ -216,16 +212,15 @@ Here is a version of `config.json` with more compilation checks enabled:
|
|||||||
"closure_entry_point": "app",
|
"closure_entry_point": "app",
|
||||||
"externs": [
|
"externs": [
|
||||||
"node_modules/openlayers/externs/bingmaps.js",
|
"node_modules/openlayers/externs/bingmaps.js",
|
||||||
|
"node_modules/openlayers/externs/cartodb.js",
|
||||||
"node_modules/openlayers/externs/closure-compiler.js",
|
"node_modules/openlayers/externs/closure-compiler.js",
|
||||||
|
"node_modules/openlayers/externs/esrijson.js",
|
||||||
"node_modules/openlayers/externs/geojson.js",
|
"node_modules/openlayers/externs/geojson.js",
|
||||||
"node_modules/openlayers/externs/proj4js.js",
|
"node_modules/openlayers/externs/proj4js.js",
|
||||||
"node_modules/openlayers/externs/tilejson.js",
|
"node_modules/openlayers/externs/tilejson.js",
|
||||||
"node_modules/openlayers/externs/topojson.js"
|
"node_modules/openlayers/externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
|
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false",
|
"goog.DEBUG=false",
|
||||||
"ol.ENABLE_DOM=false",
|
"ol.ENABLE_DOM=false",
|
||||||
"ol.ENABLE_WEBGL=false"
|
"ol.ENABLE_WEBGL=false"
|
||||||
@@ -235,42 +230,12 @@ Here is a version of `config.json` with more compilation checks enabled:
|
|||||||
"node_modules/openlayers/externs/oli.js"
|
"node_modules/openlayers/externs/oli.js"
|
||||||
],
|
],
|
||||||
"jscomp_error": [
|
"jscomp_error": [
|
||||||
"accessControls",
|
"*"
|
||||||
"ambiguousFunctionDecl",
|
|
||||||
"checkEventfulObjectDisposal",
|
|
||||||
"checkRegExp",
|
|
||||||
"checkStructDictInheritance",
|
|
||||||
"checkTypes",
|
|
||||||
"checkVars",
|
|
||||||
"const",
|
|
||||||
"constantProperty",
|
|
||||||
"deprecated",
|
|
||||||
"duplicateMessage",
|
|
||||||
"es3",
|
|
||||||
"es5Strict",
|
|
||||||
"externsValidation",
|
|
||||||
"fileoverviewTags",
|
|
||||||
"globalThis",
|
|
||||||
"internetExplorerChecks",
|
|
||||||
"invalidCasts",
|
|
||||||
"misplacedTypeAnnotation",
|
|
||||||
"missingGetCssName",
|
|
||||||
"missingProperties",
|
|
||||||
"missingProvide",
|
|
||||||
"missingRequire",
|
|
||||||
"missingReturn",
|
|
||||||
"newCheckTypes",
|
|
||||||
"nonStandardJsDocs",
|
|
||||||
"suspiciousCode",
|
|
||||||
"strictModuleDepCheck",
|
|
||||||
"typeInvalidation",
|
|
||||||
"undefinedNames",
|
|
||||||
"undefinedVars",
|
|
||||||
"uselessCode",
|
|
||||||
"visibility"
|
|
||||||
],
|
],
|
||||||
"jscomp_off": [
|
"jscomp_off": [
|
||||||
"unknownDefines"
|
"unknownDefines",
|
||||||
|
"lintChecks",
|
||||||
|
"analyzerChecks"
|
||||||
],
|
],
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
"api", "observable"
|
"api", "observable"
|
||||||
@@ -313,7 +278,7 @@ directory:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Note that the page includes a `script` tag referencing the `app.js` file,
|
Note that the page includes a `script` tag referencing the `app.js` file,
|
||||||
which is the file resuted from the compilation.
|
which is the file resulting from the compilation.
|
||||||
|
|
||||||
You are done!
|
You are done!
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ This particular tutorial explains how to create custom builds of OpenLayers 3.
|
|||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
OpenLayers 3's build tools use Node and Java, so you need to have Node and Java installed on your machine. You can run `node --version` and `java -version` to test that Node and Java are installed, respectively.
|
OpenLayers 3's build tools use Node and Java, so you need to have Node and Java installed on your machine. You can run `node --version` and `java -version` to test that Node and Java are installed, respectively. See [developing guide](https://github.com/openlayers/ol3/blob/master/DEVELOPING.md) for minimum version numbers required.
|
||||||
|
|
||||||
## Download OpenLayers
|
## Download OpenLayers
|
||||||
|
|
||||||
@@ -60,19 +60,12 @@ Creating a custom build requires writing a build configuration file. The format
|
|||||||
"externs/topojson.js"
|
"externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.array.ASSUME_NATIVE_FUNCTIONS=true",
|
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"jscomp_off": [
|
|
||||||
"unknownDefines"
|
|
||||||
],
|
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
"api", "observable"
|
"api", "observable"
|
||||||
],
|
],
|
||||||
"compilation_level": "ADVANCED_OPTIMIZATIONS",
|
"compilation_level": "ADVANCED",
|
||||||
"use_types_for_optimization": true,
|
|
||||||
"manage_closure_dependencies": true
|
"manage_closure_dependencies": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -180,7 +173,7 @@ The Closure documentation explains that "externs" are for external names used in
|
|||||||
|
|
||||||
### Other compiler options
|
### Other compiler options
|
||||||
|
|
||||||
There are a couple of other compiler options in the config file above. `manage_closure_dependencies` should always be used. `use_types_for_optimization` should be used for better compression rates.
|
There are a couple of other compiler options in the config file above. `manage_closure_dependencies` should always be used.
|
||||||
|
|
||||||
You can specify any of the other compiler options here as needed, such as the renaming reports, output manifest, or source maps. There is a full list of available options in [closure-util](https://github.com/openlayers/closure-util/blob/master/compiler-options.txt).
|
You can specify any of the other compiler options here as needed, such as the renaming reports, output manifest, or source maps. There is a full list of available options in [closure-util](https://github.com/openlayers/closure-util/blob/master/compiler-options.txt).
|
||||||
|
|
||||||
@@ -194,16 +187,19 @@ Now let's try a more complicated example: [`heatmaps-earthquakes`](http://openla
|
|||||||
{
|
{
|
||||||
"exports": [
|
"exports": [
|
||||||
"ol.layer.Heatmap",
|
"ol.layer.Heatmap",
|
||||||
"ol.source.KML",
|
"ol.source.Vector",
|
||||||
|
"ol.format.KML",
|
||||||
"ol.layer.Heatmap#getSource",
|
"ol.layer.Heatmap#getSource",
|
||||||
"ol.source.KML#on",
|
"ol.source.Vector#on",
|
||||||
"ol.source.VectorEvent#feature",
|
"ol.source.VectorEvent#feature",
|
||||||
"ol.Feature#get",
|
"ol.Feature#get",
|
||||||
"ol.Feature#set",
|
"ol.Feature#set",
|
||||||
"ol.layer.Tile",
|
"ol.layer.Tile",
|
||||||
"ol.source.Stamen",
|
"ol.source.Stamen",
|
||||||
"ol.Map",
|
"ol.Map",
|
||||||
"ol.View"
|
"ol.View",
|
||||||
|
"ol.layer.Heatmap#setRadius",
|
||||||
|
"ol.layer.Heatmap#setBlur"
|
||||||
],
|
],
|
||||||
"compile": {
|
"compile": {
|
||||||
"externs": [
|
"externs": [
|
||||||
@@ -215,11 +211,9 @@ Now let's try a more complicated example: [`heatmaps-earthquakes`](http://openla
|
|||||||
"ol.ENABLE_WEBGL=false",
|
"ol.ENABLE_WEBGL=false",
|
||||||
"ol.ENABLE_PROJ4JS=false",
|
"ol.ENABLE_PROJ4JS=false",
|
||||||
"ol.ENABLE_IMAGE=false",
|
"ol.ENABLE_IMAGE=false",
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"compilation_level": "ADVANCED_OPTIMIZATIONS",
|
"compilation_level": "ADVANCED",
|
||||||
"use_types_for_optimization": true,
|
|
||||||
"manage_closure_dependencies": true
|
"manage_closure_dependencies": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -229,6 +223,10 @@ The exports are given here in the order in which they occur in the `heatmaps-ear
|
|||||||
|
|
||||||
As this example uses a vector layer it is necessary to remove `"ol.ENABLE_VECTOR=false"` in the `define` section of the configuration.
|
As this example uses a vector layer it is necessary to remove `"ol.ENABLE_VECTOR=false"` in the `define` section of the configuration.
|
||||||
|
|
||||||
|
## Maintaining the code
|
||||||
|
|
||||||
|
If you installed OpenLayers from the Node package, you can use `npm` to upgrade to the latest version. If you cloned the Github repo, simply pulling in the latest code may not be enough, as some of the packages used, for example, the compiler, may need upgrading too. Do this by using `npm install` rather than `npm update`.
|
||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
This tutorial should have given you the information you need to create custom builds, i.e. builds tailored to your application. See the [tasks readme](https://github.com/openlayers/ol3/tree/master/tasks/readme.md) for more information on the build scripts and the properties you can use in the build configuration file.
|
This tutorial should have given you the information you need to create custom builds, i.e. builds tailored to your application. See the [tasks readme](https://github.com/openlayers/ol3/tree/master/tasks/readme.md) for more information on the build scripts and the properties you can use in the build configuration file.
|
||||||
|
|||||||
@@ -10,3 +10,4 @@ layout: doc.hbs
|
|||||||
* [Create Custom Builds](custom-builds.html)
|
* [Create Custom Builds](custom-builds.html)
|
||||||
* [Bundle Application and OpenLayers using Browserify](browserify.html)
|
* [Bundle Application and OpenLayers using Browserify](browserify.html)
|
||||||
* [Compile Application and OpenLayers together](closure.html)
|
* [Compile Application and OpenLayers together](closure.html)
|
||||||
|
* [Raster Reprojection](raster-reprojection.html)
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Although Closure library functions are widely used within OL3, none of them are
|
|||||||
Unlike in, say, Node, where a module's exports are fixed in the source, with Closure Compiler, exports can be defined at compile time. This makes it easy to create builds that are customized to the needs of a particular site or application: a __custom build__ only exports those properties and methods needed by the site or application. As the full build is large, and will probably become larger as new features are added to the API, it's recommended that sites create a custom build for production software.
|
Unlike in, say, Node, where a module's exports are fixed in the source, with Closure Compiler, exports can be defined at compile time. This makes it easy to create builds that are customized to the needs of a particular site or application: a __custom build__ only exports those properties and methods needed by the site or application. As the full build is large, and will probably become larger as new features are added to the API, it's recommended that sites create a custom build for production software.
|
||||||
|
|
||||||
## Renderers and Browser Support
|
## Renderers and Browser Support
|
||||||
The library currently includes three renderers: Canvas, DOM, and WebGL. All three support raster data from tile/image servers, but only the Canvas renderer currently supports vector data. This means that only those browsers that [support Canvas](http://caniuse.com/canvas) can handle vector data. In particular, this excludes Internet Explorer versions before 9, though there is some support for those in the DOM renderer. Clearly, the WebGL renderer can only be used on those devices and browsers supporting WebGL.
|
The library currently includes three renderers: Canvas, DOM, and WebGL. All three support both raster data from tile/image servers, and vector data; WebGL however only supports Point vectors and does not support labels. Clearly only those browsers that [support Canvas](http://caniuse.com/canvas) can use the Canvas renderer. Equally, the WebGL renderer can only be used on those devices and [browsers](http://caniuse.com/webgl) that support WebGL. Internet Explorer versions before 9 are not supported at all.
|
||||||
|
|
||||||
The library is intended for use on both desktop/laptop and mobile devices.
|
The library is intended for use on both desktop/laptop and mobile devices.
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
BIN
doc/tutorials/raster-reprojection-resources/how-it-works.jpg
Normal file
BIN
doc/tutorials/raster-reprojection-resources/how-it-works.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
132
doc/tutorials/raster-reprojection.md
Normal file
132
doc/tutorials/raster-reprojection.md
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
---
|
||||||
|
title: Raster Reprojection
|
||||||
|
layout: doc.hbs
|
||||||
|
---
|
||||||
|
|
||||||
|
# Raster Reprojection
|
||||||
|
|
||||||
|
OpenLayers 3 has an ability to display raster data from WMS, WMTS, static images and many other sources in a different coordinate system than delivered from the server.
|
||||||
|
Transformation of the map projections of the image happens directly in a web browser.
|
||||||
|
The view in any Proj4js supported coordinate reference system is possible and previously incompatible layers can now be combined and overlaid.
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
The API usage is very simple. Just specify proper projection (using [EPSG](http://epsg.io) code) on `ol.View`:
|
||||||
|
``` javascript
|
||||||
|
var map = new ol.Map({
|
||||||
|
target: 'map',
|
||||||
|
view: new ol.View({
|
||||||
|
projection: 'EPSG:3857', //HERE IS THE VIEW PROJECTION
|
||||||
|
center: [0, 0],
|
||||||
|
zoom: 2
|
||||||
|
}),
|
||||||
|
layers: [
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.TileWMS({
|
||||||
|
projection: 'EPSG:4326', //HERE IS THE DATA SOURCE PROJECTION
|
||||||
|
url: 'http://demo.boundlessgeo.com/geoserver/wms',
|
||||||
|
params: {
|
||||||
|
'LAYERS': 'ne:NE1_HR_LC_SR_W_DR'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
]
|
||||||
|
});
|
||||||
|
```
|
||||||
|
If a source (based on `ol.source.TileImage` or `ol.source.Image`) has a projection different from the current `ol.View`’s projection then the reprojection happens automatically under the hood.
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
- [Raster reprojection demo](http://openlayers.org/en/master/examples/reprojection.html)
|
||||||
|
- [OpenStreetMap to WGS84 reprojection](http://openlayers.org/en/master/examples/reprojection-wgs84.html)
|
||||||
|
- [Reprojection with EPSG.io database search](http://openlayers.org/en/master/examples/reprojection-by-code.html)
|
||||||
|
- [Image reprojection](http://openlayers.org/en/master/examples/reprojection-image.html)
|
||||||
|
|
||||||
|
### Custom projection
|
||||||
|
The easiest way to use a custom projection is to add the [Proj4js](http://proj4js.org/) library to your project and then define the projection using a proj4 definition string.
|
||||||
|
Following example shows definition of a [British National Grid](http://epsg.io/27700):
|
||||||
|
|
||||||
|
``` html
|
||||||
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.14/proj4.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
``` javascript
|
||||||
|
proj4.defs('EPSG:27700', '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 ' +
|
||||||
|
'+x_0=400000 +y_0=-100000 +ellps=airy ' +
|
||||||
|
'+towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 ' +
|
||||||
|
'+units=m +no_defs');
|
||||||
|
var proj27700 = ol.proj.get('EPSG:27700');
|
||||||
|
proj27700.setExtent([0, 0, 700000, 1300000]);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Change of the view projection
|
||||||
|
To switch the projection used to display the map you have to set a new `ol.View` with selected projection on the `ol.Map`:
|
||||||
|
``` javascript
|
||||||
|
map.setView(new ol.View({
|
||||||
|
projection: 'EPSG:27700',
|
||||||
|
center: [400000, 650000],
|
||||||
|
zoom: 4
|
||||||
|
}));
|
||||||
|
```
|
||||||
|
|
||||||
|
## TileGrid and Extents
|
||||||
|
When reprojection is needed, new tiles (in the target projection) are under the hood created from the original source tiles.
|
||||||
|
The TileGrid of the reprojected tiles is by default internally constructed using `ol.tilegrid.getForProjection(projection)`.
|
||||||
|
The projection should have extent defined (see above) for this to work properly.
|
||||||
|
|
||||||
|
Alternatively, a custom target TileGrid can be constructed manually and set on the source instance using `ol.source.TileImage#setTileGridForProjection(projection, tilegrid)`.
|
||||||
|
This TileGrid will then be used when reprojecting to the specified projection instead of creating the default one.
|
||||||
|
In certain cases, this can be used to optimize performance (by tweaking tile sizes) or visual quality (by specifying resolutions).
|
||||||
|
|
||||||
|
# How it works
|
||||||
|
|
||||||
|
The reprojection process is based on triangles -- the target raster is divided into a limited number of triangles with vertices transformed using `ol.proj` capabilities ([proj4js](http://proj4js.org/) is usually utilized to define custom transformations).
|
||||||
|
The reprojection of pixels inside the triangle is approximated with an affine transformation (with rendering hardware-accelerated by the canvas 2d context):
|
||||||
|
|
||||||
|
<img src="raster-reprojection-resources/how-it-works.jpg" alt="How it works" width="600" />
|
||||||
|
|
||||||
|
This way we can support a wide range of projections from proj4js (or even custom transformation functions) on almost any hardware (with canvas 2d support) with a relatively small number of actual transformation calculations.
|
||||||
|
|
||||||
|
The precision of the reprojection is then limited by the number of triangles.
|
||||||
|
|
||||||
|
The reprojection process preserves transparency on the raster data supplied from the source (png or gif) and the gaps and no-data pixels generated by reprojection are automatically transparent.
|
||||||
|
|
||||||
|
###Dynamic triangulation
|
||||||
|
|
||||||
|
The above image above shows a noticeable error (especially on the edges) when the original image (left; EPSG:27700) is transformed with only a limited number of triangles (right; EPSG:3857).
|
||||||
|
The error can be minimized by increasing the number of triangles used.
|
||||||
|
|
||||||
|
Since some transformations require a more detail triangulation network, the dynamic triangulation process automatically measures reprojection error and iteratively subdivides to meet a specific error threshold:
|
||||||
|
|
||||||
|
<img src="raster-reprojection-resources/iterative-triangulation.png" alt="Iterative triangulation" width="600" />
|
||||||
|
|
||||||
|
For debugging, rendering of the reprojection edges can be enabled by `ol.source.TileImage#setRenderReprojectionEdges(true)`.
|
||||||
|
|
||||||
|
# Advanced
|
||||||
|
|
||||||
|
### Disabling reprojection
|
||||||
|
In case you are creating a custom build of OpenLayers and do not need the reprojection code, you can reduce the build size by setting `ol.ENABLE_RASTER_REPROJECTION` to `false`, which completely disables the reprojection support.
|
||||||
|
See [Custom builds](custom-builds.html#defines) tutorial on how to do this.
|
||||||
|
|
||||||
|
### Triangulation precision threshold
|
||||||
|
The default [triangulation error threshold](#dynamic-triangulation) in pixels is given by `ol.DEFAULT_RASTER_REPROJECTION_ERROR_THRESHOLD` (0.5 pixel).
|
||||||
|
In case a different threshold needs to be defined for different sources, the `reprojectionErrorThreshold` option can be passed when constructing the tile image source.
|
||||||
|
|
||||||
|
###Limiting visibility of reprojected map by extent
|
||||||
|
|
||||||
|
The reprojection algorithm uses inverse transformation (from *view projection* to *data projection*).
|
||||||
|
For certain coordinate systems this can result in a "double occurrence" of the source data on a map.
|
||||||
|
For example, when reprojecting a map of Switzerland from EPSG:21781 to EPSG:3857, it is displayed twice: once at the proper place in Europe, but also in the Pacific Ocean near New Zealand, on the opposite side of the globe.
|
||||||
|
|
||||||
|
<img src="raster-reprojection-resources/double-occurrence.jpg" alt="Double occurrence of a reprojected map" width="600" />
|
||||||
|
|
||||||
|
Although this is mathematically correct behavior of the inverse transformation, visibility of the layer on multiple places is not expected by users.
|
||||||
|
A possible general solution would be to calculate the forward transformation for every vertex as well - but this would significantly decrease performance (especially for computationally expensive transformations).
|
||||||
|
|
||||||
|
Therefore a recommended workaround is to define a proper visibility extent on the `ol.layer.Tile` in the view projection.
|
||||||
|
Setting such a limit is demonstrated in the [reprojection demo example](http://openlayers.org/en/master/examples/reprojection.html).
|
||||||
|
|
||||||
|
### Resolution calculation
|
||||||
|
When determining source tiles to load, the ideal source resolution needs to be calculated.
|
||||||
|
The `ol.reproj.calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution)` function calculates the ideal value in order to achieve pixel mapping as close as possible to 1:1 during reprojection, which is then used to select proper zoom level from the source.
|
||||||
|
|
||||||
|
It is, however, generally not practical to use the same source zoom level for the whole target zoom level -- different projections can have significantly different resolutions in different parts of the world (e.g. polar regions in EPSG:3857 vs EPSG:4326) and enforcing a single resolution for the whole zoom level would result in some tiles being scaled up/down, possibly requiring a huge number of source tiles to be loaded.
|
||||||
|
Therefore, the resolution mapping is calculated separately for each reprojected tile (in the middle of the tile extent).
|
||||||
16
examples/.eslintrc
Normal file
16
examples/.eslintrc
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"globals": {
|
||||||
|
"$": false,
|
||||||
|
"arc": false,
|
||||||
|
"common": false,
|
||||||
|
"createMapboxStreetsV6Style": false,
|
||||||
|
"d3": false,
|
||||||
|
"jsPDF": false,
|
||||||
|
"jsts": false,
|
||||||
|
"topojson": false,
|
||||||
|
"turf": false
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"no-unused-vars": [2, {"varsIgnorePattern": "^map"}]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,3 +14,6 @@ a.skiplink:focus {
|
|||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
padding: 0.3em;
|
padding: 0.3em;
|
||||||
}
|
}
|
||||||
|
#map:focus {
|
||||||
|
outline: #4A74A8 solid 0.15em;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Accessibility example
|
title: Accessible Map
|
||||||
shortdesc: Example of an accessible map.
|
shortdesc: Example of an accessible map.
|
||||||
docs: >
|
docs: >
|
||||||
This page's `map` element has its `tabindex` attribute set to `"0"`, that makes it focusable. To focus the map element you can either navigate to it using the "tab" key or use the skip link. When the `map` element is focused the + and - keys can be used to zoom in and out and the arrow keys can be used to pan.
|
This page's `map` element has its `tabindex` attribute set to `"0"`, that makes it focusable. To focus the map element you can either navigate to it using the "tab" key or use the skip link. When the `map` element is focused the + and - keys can be used to zoom in and out and the arrow keys can be used to pan.
|
||||||
@@ -10,11 +10,7 @@ docs: >
|
|||||||
|
|
||||||
tags: "accessibility, tabindex"
|
tags: "accessibility, tabindex"
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<a class="skiplink" href="#map">Go to map</a>
|
||||||
<div class="span12">
|
<div id="map" class="map" tabindex="0"></div>
|
||||||
<a class="skiplink" href="#map">Go to map</a>
|
<button id="zoom-out">Zoom out</button>
|
||||||
<div id="map" class="map" tabindex="0"></div>
|
<button id="zoom-in">Zoom in</button>
|
||||||
<button id="zoom-out">Zoom out</button>
|
|
||||||
<button id="zoom-in">Zoom in</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,27 +1,19 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Animation example
|
title: View Animation
|
||||||
shortdesc: Demonstrates animated pan, zoom, and rotation.
|
shortdesc: Demonstrates animated pan, zoom, and rotation.
|
||||||
docs: >
|
docs: >
|
||||||
This example shows how to use the beforeRender function on the Map to run one
|
This example shows how to use the beforeRender function on the Map to run one
|
||||||
or more animations.
|
or more animations.
|
||||||
tags: "animation"
|
tags: "animation"
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div id="map" class="map"></div>
|
||||||
<div class="span12">
|
<button id="rotate-left" title="Rotate clockwise">↻</button>
|
||||||
<div id="map" class="map"></div>
|
<button id="rotate-right" title="Rotate counterclockwise">↺</button>
|
||||||
</div>
|
<button id="rotate-around-rome">Rotate around Rome</button>
|
||||||
</div>
|
<button id="pan-to-london">Pan to London</button>
|
||||||
<div class="row-fluid">
|
<button id="elastic-to-moscow">Elastic to Moscow</button>
|
||||||
<div class="span12">
|
<button id="bounce-to-istanbul">Bounce to Istanbul</button>
|
||||||
<button id="rotate-left"><i class="icon-arrow-left"></i></button>
|
<button id="spin-to-rome">Spin to Rome</button>
|
||||||
<button id="rotate-right"><i class="icon-arrow-right"></i></button>
|
<button id="fly-to-bern">Fly to Bern</button>
|
||||||
<button id="rotate-around-rome">Rotate around Rome</button>
|
<button id="spiral-to-madrid">Spiral to Madrid</button>
|
||||||
<button id="pan-to-london">Pan to London</button>
|
|
||||||
<button id="elastic-to-moscow">Elastic to Moscow</button>
|
|
||||||
<button id="bounce-to-istanbul">Bounce to Istanbul</button>
|
|
||||||
<button id="spin-to-rome">Spin to Rome</button>
|
|
||||||
<button id="fly-to-bern">Fly to Bern</button>
|
|
||||||
<button id="spiral-to-madrid">Spiral to Madrid</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
11
examples/arcgis-image.html
Normal file
11
examples/arcgis-image.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
layout: example.html
|
||||||
|
title: Image ArcGIS MapServer
|
||||||
|
shortdesc: Example of an image ArcGIS layer.
|
||||||
|
docs: >
|
||||||
|
This example shows how to use a dynamic ArcGIS REST MapService.
|
||||||
|
This source type supports Map and Image Services. For dyamic ArcGIS
|
||||||
|
services.
|
||||||
|
tags: arcgis, image, dynamiclayer"
|
||||||
|
---
|
||||||
|
<div id="map" class="map"></div>
|
||||||
30
examples/arcgis-image.js
Normal file
30
examples/arcgis-image.js
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.layer.Image');
|
||||||
|
goog.require('ol.source.OSM');
|
||||||
|
goog.require('ol.source.ImageArcGISRest');
|
||||||
|
|
||||||
|
var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
|
||||||
|
'Specialty/ESRI_StateCityHighway_USA/MapServer';
|
||||||
|
|
||||||
|
var layers = [
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.OSM()
|
||||||
|
}),
|
||||||
|
new ol.layer.Image({
|
||||||
|
source: new ol.source.ImageArcGISRest({
|
||||||
|
ratio: 1,
|
||||||
|
params: {},
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
})
|
||||||
|
];
|
||||||
|
var map = new ol.Map({
|
||||||
|
layers: layers,
|
||||||
|
target: 'map',
|
||||||
|
view: new ol.View({
|
||||||
|
center: [-10997148, 4569099],
|
||||||
|
zoom: 4
|
||||||
|
})
|
||||||
|
});
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Tiled ArcGIS MapServer example
|
title: Tiled ArcGIS MapServer
|
||||||
shortdesc: Example of a tiled ArcGIS layer.
|
shortdesc: Example of a tiled ArcGIS layer.
|
||||||
docs: >
|
docs: >
|
||||||
This example shows how to use an ArcGIS REST MapService as tiles.
|
This example shows how to use an ArcGIS REST MapService as tiles.
|
||||||
@@ -9,8 +9,4 @@ docs: >
|
|||||||
<code>ol.source.XYZ</code> instead.
|
<code>ol.source.XYZ</code> instead.
|
||||||
tags: arcgis, tile, tilelayer"
|
tags: arcgis, tile, tilelayer"
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div id="map" class="map"></div>
|
||||||
<div class="span12">
|
|
||||||
<div id="map" class="map"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.TileArcGISRest');
|
goog.require('ol.source.TileArcGISRest');
|
||||||
|
|
||||||
var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
|
var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
|
||||||
@@ -9,7 +9,7 @@ var url = 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/' +
|
|||||||
|
|
||||||
var layers = [
|
var layers = [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
}),
|
}),
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
extent: [-13884991, 2870341, -7455066, 6338219],
|
extent: [-13884991, 2870341, -7455066, 6338219],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Attributions example
|
title: Attributions
|
||||||
shortdesc: Example of a attributions visibily change on map resize, to collapse them on small maps.
|
shortdesc: Example of a attributions visibily change on map resize, to collapse them on small maps.
|
||||||
docs: >
|
docs: >
|
||||||
When the map gets too small because of a resize, the attribution will be collapsed.
|
When the map gets too small because of a resize, the attribution will be collapsed.
|
||||||
@@ -8,8 +8,4 @@ docs: >
|
|||||||
of the map gets smaller than 600 pixels.
|
of the map gets smaller than 600 pixels.
|
||||||
tags: "attributions, openstreetmap"
|
tags: "attributions, openstreetmap"
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div id="map" class="map"></div>
|
||||||
<div class="span12">
|
|
||||||
<div id="map" class="map"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ var map = new ol.Map({
|
|||||||
source: new ol.source.OSM()
|
source: new ol.source.OSM()
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
controls: ol.control.defaults({ attribution: false }).extend([attribution]),
|
controls: ol.control.defaults({attribution: false}).extend([attribution]),
|
||||||
renderer: common.getRendererFromQueryString(),
|
renderer: common.getRendererFromQueryString(),
|
||||||
target: 'map',
|
target: 'map',
|
||||||
view: new ol.View({
|
view: new ol.View({
|
||||||
|
|||||||
@@ -1,20 +1,18 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Bing Maps example
|
title: Bing Maps
|
||||||
shortdesc: Example of a Bing Maps layer.
|
shortdesc: Example of a Bing Maps layer.
|
||||||
docs: >
|
docs: >
|
||||||
<p>When the Bing Maps tile service doesn't have tiles for a given resolution and region it returns "placeholder" tiles indicating that. Zoom the map beyond level 19 to see the "placeholder" tiles. If you want OpenLayers to display stretched tiles in place of "placeholder" tiles beyond zoom level 19 then set <code>maxZoom</code> to <code>19</code> in the options passed to <code>ol.source.BingMaps</code>.</p>
|
<p>When the Bing Maps tile service doesn't have tiles for a given resolution and region it returns "placeholder" tiles indicating that. Zoom the map beyond level 19 to see the "placeholder" tiles. If you want OpenLayers to display stretched tiles in place of "placeholder" tiles beyond zoom level 19 then set <code>maxZoom</code> to <code>19</code> in the options passed to <code>ol.source.BingMaps</code>.</p>
|
||||||
tags: "bing, bing-maps"
|
tags: "bing, bing-maps"
|
||||||
|
cloak:
|
||||||
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div id="map" class="map"></div>
|
||||||
<div class="span12">
|
<select id="layer-select">
|
||||||
<div id="map" class="map"></div>
|
<option value="Aerial">Aerial</option>
|
||||||
<select id="layer-select">
|
<option value="AerialWithLabels" selected>Aerial with labels</option>
|
||||||
<option value="Aerial">Aerial</option>
|
<option value="Road">Road</option>
|
||||||
<option value="AerialWithLabels" selected>Aerial with labels</option>
|
<option value="collinsBart">Collins Bart</option>
|
||||||
<option value="Road">Road</option>
|
<option value="ordnanceSurvey">Ordnance Survey</option>
|
||||||
<option value="collinsBart">Collins Bart</option>
|
</select>
|
||||||
<option value="ordnanceSurvey">Ordnance Survey</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ for (i = 0, ii = styles.length; i < ii; ++i) {
|
|||||||
visible: false,
|
visible: false,
|
||||||
preload: Infinity,
|
preload: Infinity,
|
||||||
source: new ol.source.BingMaps({
|
source: new ol.source.BingMaps({
|
||||||
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3',
|
key: 'AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF',
|
||||||
imagerySet: styles[i]
|
imagerySet: styles[i]
|
||||||
// use maxZoom 19 to see stretched tiles instead of the BingMaps
|
// use maxZoom 19 to see stretched tiles instead of the BingMaps
|
||||||
// "no photos at this zoom level" tiles
|
// "no photos at this zoom level" tiles
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Blend modes example
|
title: Blend Modes
|
||||||
shortdesc: Shows how to change the canvas compositing / blending mode in post- and precompose eventhandlers.
|
shortdesc: Shows how to change the canvas compositing / blending mode in post- and precompose eventhandlers.
|
||||||
docs: >
|
docs: >
|
||||||
<p>This example shows how to change the canvas compositing / blending mode in
|
<p>This example shows how to change the canvas compositing / blending mode in
|
||||||
@@ -20,57 +20,49 @@ docs: >
|
|||||||
checkboxes.</p>
|
checkboxes.</p>
|
||||||
tags: "blendmode, blend-mode, blend mode, blendingmode, blending-mode, blending mode, composition, compositing, canvas, vector"
|
tags: "blendmode, blend-mode, blend mode, blendingmode, blending-mode, blending mode, composition, compositing, canvas, vector"
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div id="map" class="map"></div>
|
||||||
<div class="span12">
|
<form class="form-horizontal">
|
||||||
<div id="map" class="map"></div>
|
<label>
|
||||||
</div>
|
<select id="blend-mode" class="form-control">
|
||||||
</div>
|
<option value="source-over">source-over (default)</option>
|
||||||
<div class="row-fluid">
|
<option>source-in</option>
|
||||||
<div class="span12">
|
<option>source-out</option>
|
||||||
<form class="form-horizontal">
|
<option>source-atop</option>
|
||||||
<label>
|
<option>destination-over</option>
|
||||||
<select id="blend-mode" class="form-control">
|
<option>destination-in</option>
|
||||||
<option value="source-over">source-over (default)</option>
|
<option>destination-out</option>
|
||||||
<option>source-in</option>
|
<option>destination-atop</option>
|
||||||
<option>source-out</option>
|
<option>lighter</option>
|
||||||
<option>source-atop</option>
|
<option>copy</option>
|
||||||
<option>destination-over</option>
|
<option>xor</option>
|
||||||
<option>destination-in</option>
|
<option>multiply</option>
|
||||||
<option>destination-out</option>
|
<option>screen</option>
|
||||||
<option>destination-atop</option>
|
<option>overlay</option>
|
||||||
<option>lighter</option>
|
<option>darken</option>
|
||||||
<option>copy</option>
|
<option>lighten</option>
|
||||||
<option>xor</option>
|
<option>color-dodge</option>
|
||||||
<option>multiply</option>
|
<option>color-burn</option>
|
||||||
<option>screen</option>
|
<option>hard-light</option>
|
||||||
<option>overlay</option>
|
<option>soft-light</option>
|
||||||
<option>darken</option>
|
<option selected>difference</option>
|
||||||
<option>lighten</option>
|
<option>exclusion</option>
|
||||||
<option>color-dodge</option>
|
<option>hue</option>
|
||||||
<option>color-burn</option>
|
<option>saturation</option>
|
||||||
<option>hard-light</option>
|
<option>color</option>
|
||||||
<option>soft-light</option>
|
<option>luminosity</option>
|
||||||
<option selected>difference</option>
|
</select>
|
||||||
<option>exclusion</option>
|
Canvas compositing / blending mode
|
||||||
<option>hue</option>
|
</label>
|
||||||
<option>saturation</option>
|
<label>
|
||||||
<option>color</option>
|
<input type="checkbox" id="affect-red" checked>
|
||||||
<option>luminosity</option>
|
Red circle affected
|
||||||
</select>
|
</label>
|
||||||
Canvas compositing / blending mode
|
<label>
|
||||||
</label>
|
<input type="checkbox" id="affect-green" checked>
|
||||||
<label>
|
Green circle affected
|
||||||
<input type="checkbox" id="affect-red" checked>
|
</label>
|
||||||
Red circle affected
|
<label>
|
||||||
</label>
|
<input type="checkbox" id="affect-blue" checked>
|
||||||
<label>
|
Blue circle affected
|
||||||
<input type="checkbox" id="affect-green" checked>
|
</label>
|
||||||
Green circle affected
|
</form>
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" id="affect-blue" checked>
|
|
||||||
Blue circle affected
|
|
||||||
</label>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -85,8 +85,13 @@ var map = new ol.Map({
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Get the form elements and bind the listeners
|
||||||
|
var select = document.getElementById('blend-mode');
|
||||||
|
var affectRed = document.getElementById('affect-red');
|
||||||
|
var affectGreen = document.getElementById('affect-green');
|
||||||
|
var affectBlue = document.getElementById('affect-blue');
|
||||||
|
|
||||||
|
|
||||||
// Various helper methods and event handlers
|
|
||||||
/**
|
/**
|
||||||
* This method sets the globalCompositeOperation to the value of the select
|
* This method sets the globalCompositeOperation to the value of the select
|
||||||
* field and it is bound to the precompose event of the layers.
|
* field and it is bound to the precompose event of the layers.
|
||||||
@@ -154,12 +159,6 @@ var affectLayerClicked = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Get the form elements and bind the listeners
|
|
||||||
var select = document.getElementById('blend-mode');
|
|
||||||
var affectRed = document.getElementById('affect-red');
|
|
||||||
var affectGreen = document.getElementById('affect-green');
|
|
||||||
var affectBlue = document.getElementById('affect-blue');
|
|
||||||
|
|
||||||
// Rerender map when blend mode changes
|
// Rerender map when blend mode changes
|
||||||
select.addEventListener('change', function() {
|
select.addEventListener('change', function() {
|
||||||
map.render();
|
map.render();
|
||||||
|
|||||||
4
examples/box-selection.css
Normal file
4
examples/box-selection.css
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
.ol-dragbox {
|
||||||
|
background-color: rgba(255,255,255,0.4);
|
||||||
|
border-color: rgba(100,150,0,1);
|
||||||
|
}
|
||||||
@@ -1,20 +1,12 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Box selection example
|
title: Box Selection
|
||||||
shortdesc: Using a DragBox interaction to select features.
|
shortdesc: Using a DragBox interaction to select features.
|
||||||
docs: >
|
docs: >
|
||||||
<p>This example shows how to use a <code>DragBox</code> interaction to select features. Selected features are added
|
<p>This example shows how to use a <code>DragBox</code> interaction to select features. Selected features are added
|
||||||
to the feature overlay of a select interaction (<code>ol.interaction.Select</code>) for highlighting.</p>
|
to the feature overlay of a select interaction (<code>ol.interaction.Select</code>) for highlighting.</p>
|
||||||
<p>Use <code>SHIFT+drag</code> to draw boxes.</p>
|
<p>Use <code>Ctrl+Drag</code> (<code>Command+Drag</code> on Mac) to draw boxes.</p>
|
||||||
tags: "DragBox, feature, selection, box"
|
tags: "DragBox, feature, selection, box"
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div id="map" class="map"></div>
|
||||||
<div class="span12">
|
<div id="info">No countries selected</div>
|
||||||
<div id="map" class="map"></div>
|
|
||||||
</div>
|
|
||||||
<div class="span4 offset4 pull-right">
|
|
||||||
<div id="info" class="alert alert-success">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ goog.require('ol.layer.Tile');
|
|||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
goog.require('ol.source.OSM');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
goog.require('ol.style.Stroke');
|
|
||||||
goog.require('ol.style.Style');
|
|
||||||
|
|
||||||
|
|
||||||
var vectorSource = new ol.source.Vector({
|
var vectorSource = new ol.source.Vector({
|
||||||
@@ -43,19 +41,14 @@ var selectedFeatures = select.getFeatures();
|
|||||||
|
|
||||||
// a DragBox interaction used to select features by drawing boxes
|
// a DragBox interaction used to select features by drawing boxes
|
||||||
var dragBox = new ol.interaction.DragBox({
|
var dragBox = new ol.interaction.DragBox({
|
||||||
condition: ol.events.condition.shiftKeyOnly,
|
condition: ol.events.condition.platformModifierKeyOnly
|
||||||
style: new ol.style.Style({
|
|
||||||
stroke: new ol.style.Stroke({
|
|
||||||
color: [0, 0, 255, 1]
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
||||||
map.addInteraction(dragBox);
|
map.addInteraction(dragBox);
|
||||||
|
|
||||||
var infoBox = document.getElementById('info');
|
var infoBox = document.getElementById('info');
|
||||||
|
|
||||||
dragBox.on('boxend', function(e) {
|
dragBox.on('boxend', function() {
|
||||||
// features that intersect the box are added to the collection of
|
// features that intersect the box are added to the collection of
|
||||||
// selected features, and their names are displayed in the "info"
|
// selected features, and their names are displayed in the "info"
|
||||||
// div
|
// div
|
||||||
@@ -71,7 +64,7 @@ dragBox.on('boxend', function(e) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// clear selection when drawing a new box and when clicking on the map
|
// clear selection when drawing a new box and when clicking on the map
|
||||||
dragBox.on('boxstart', function(e) {
|
dragBox.on('boxstart', function() {
|
||||||
selectedFeatures.clear();
|
selectedFeatures.clear();
|
||||||
infoBox.innerHTML = ' ';
|
infoBox.innerHTML = ' ';
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
#reset-brightness {
|
|
||||||
min-width: 138px;
|
|
||||||
}
|
|
||||||
#reset-contrast {
|
|
||||||
min-width: 120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
---
|
|
||||||
template: example.html
|
|
||||||
title: Brightness/contrast example
|
|
||||||
shortdesc: Example of brightness/contrast control on the client (WebGL only).
|
|
||||||
docs: >
|
|
||||||
This example shows how to control brightness/contrast on the client,
|
|
||||||
the example is limited to WebGL.
|
|
||||||
tags: "brightness, contrast, webgl"
|
|
||||||
---
|
|
||||||
<div class="row-fluid">
|
|
||||||
<div class="span12">
|
|
||||||
<div id="map" class="map"></div>
|
|
||||||
<div id="no-webgl" class="alert alert-error" style="display: none">
|
|
||||||
This example requires a browser that supports <a href="http://get.webgl.org/">WebGL</a>.
|
|
||||||
</div>
|
|
||||||
<div class="btn-group">
|
|
||||||
<button id="increase-brightness"><i class="icon-plus"></i></button>
|
|
||||||
<button id="reset-brightness">Brightness</button>
|
|
||||||
<button id="decrease-brightness"><i class="icon-minus"></i></button>
|
|
||||||
</div>
|
|
||||||
<div class="btn-group">
|
|
||||||
<button id="increase-contrast"><i class="icon-plus"></i></button>
|
|
||||||
<button id="reset-contrast">Contrast</button>
|
|
||||||
<button id="decrease-contrast"><i class="icon-minus"></i></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
goog.require('ol.Map');
|
|
||||||
goog.require('ol.View');
|
|
||||||
goog.require('ol.has');
|
|
||||||
goog.require('ol.layer.Tile');
|
|
||||||
goog.require('ol.source.MapQuest');
|
|
||||||
|
|
||||||
|
|
||||||
function setResetBrightnessButtonHTML() {
|
|
||||||
resetBrightness.innerHTML = 'Brightness (' +
|
|
||||||
layer.getBrightness().toFixed(3) + ')';
|
|
||||||
}
|
|
||||||
|
|
||||||
function setResetContrastButtonHTML() {
|
|
||||||
resetContrast.innerHTML = 'Contrast (' + layer.getContrast().toFixed(3) + ')';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ol.has.WEBGL) {
|
|
||||||
var info = document.getElementById('no-webgl');
|
|
||||||
/**
|
|
||||||
* display error message
|
|
||||||
*/
|
|
||||||
info.style.display = '';
|
|
||||||
} else {
|
|
||||||
var layer = new ol.layer.Tile({
|
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
|
||||||
});
|
|
||||||
|
|
||||||
var map = new ol.Map({
|
|
||||||
layers: [layer],
|
|
||||||
renderer: 'webgl',
|
|
||||||
target: 'map',
|
|
||||||
view: new ol.View({
|
|
||||||
center: [0, 0],
|
|
||||||
zoom: 2
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
var increaseBrightness = document.getElementById('increase-brightness');
|
|
||||||
var resetBrightness = document.getElementById('reset-brightness');
|
|
||||||
var decreaseBrightness = document.getElementById('decrease-brightness');
|
|
||||||
|
|
||||||
setResetBrightnessButtonHTML();
|
|
||||||
|
|
||||||
increaseBrightness.addEventListener('click', function() {
|
|
||||||
layer.setBrightness(Math.min(layer.getBrightness() + 0.125, 1));
|
|
||||||
setResetBrightnessButtonHTML();
|
|
||||||
}, false);
|
|
||||||
resetBrightness.addEventListener('click', function() {
|
|
||||||
layer.setBrightness(0);
|
|
||||||
setResetBrightnessButtonHTML();
|
|
||||||
}, false);
|
|
||||||
decreaseBrightness.addEventListener('click', function() {
|
|
||||||
layer.setBrightness(Math.max(layer.getBrightness() - 0.125, -1));
|
|
||||||
setResetBrightnessButtonHTML();
|
|
||||||
}, false);
|
|
||||||
|
|
||||||
var increaseContrast = document.getElementById('increase-contrast');
|
|
||||||
var resetContrast = document.getElementById('reset-contrast');
|
|
||||||
var decreaseContrast = document.getElementById('decrease-contrast');
|
|
||||||
|
|
||||||
setResetContrastButtonHTML();
|
|
||||||
|
|
||||||
increaseContrast.addEventListener('click', function() {
|
|
||||||
layer.setContrast(layer.getContrast() + 0.125);
|
|
||||||
setResetContrastButtonHTML();
|
|
||||||
}, false);
|
|
||||||
resetContrast.addEventListener('click', function() {
|
|
||||||
layer.setContrast(1);
|
|
||||||
setResetContrastButtonHTML();
|
|
||||||
}, false);
|
|
||||||
decreaseContrast.addEventListener('click', function() {
|
|
||||||
layer.setContrast(Math.max(layer.getContrast() - 0.125, 0));
|
|
||||||
setResetContrastButtonHTML();
|
|
||||||
}, false);
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
.tooltip-inner {
|
.tooltip-inner {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
---
|
---
|
||||||
template: example.html
|
layout: example.html
|
||||||
title: Custom tooltips example
|
title: Custom Tooltips
|
||||||
shortdesc: This example shows how to customize the buttons tooltips with Bootstrap.
|
shortdesc: This example shows how to customize the buttons tooltips with Bootstrap.
|
||||||
docs: >
|
docs: >
|
||||||
This example shows how to customize the buttons tooltips with <a href="http://getbootstrap.com/javascript/#tooltips">Bootstrap</a>.
|
This example shows how to customize the buttons tooltips with <a href="http://getbootstrap.com/javascript/#tooltips">Bootstrap</a>.
|
||||||
tags: "custom, tooltip"
|
tags: "custom, tooltip"
|
||||||
|
resources:
|
||||||
|
- https://code.jquery.com/jquery-2.2.3.min.js
|
||||||
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
|
||||||
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div id="map" class="map"></div>
|
||||||
<div class="span12">
|
|
||||||
<div id="map" class="map"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user