Compare commits
1172 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
394c338ff8 | ||
|
|
a112dd83e2 | ||
|
|
c6aef2a7da | ||
|
|
0b3eed5500 | ||
|
|
b98a28857d | ||
|
|
a14a348246 | ||
|
|
ffefda132a | ||
|
|
92cc26596d | ||
|
|
7de3951236 | ||
|
|
3fc2b9798e | ||
|
|
2e7b8dbbca | ||
|
|
3e2c7071f8 | ||
|
|
853fbee1e2 | ||
|
|
e301ea4bc1 | ||
|
|
457de34485 | ||
|
|
65d03bfbfb | ||
|
|
9b46b86680 | ||
|
|
b7c84b269c | ||
|
|
395793b921 | ||
|
|
2d65ffb8ab | ||
|
|
379c092cf4 | ||
|
|
8992ee8e73 | ||
|
|
f490302959 | ||
|
|
1c73dc9088 | ||
|
|
3fcb0641e4 | ||
|
|
8d1a26dd5b | ||
|
|
9074bd9783 | ||
|
|
985dda28eb | ||
|
|
8dac85ad92 | ||
|
|
bd635ed01f | ||
|
|
243f1061df | ||
|
|
9eadf1505a | ||
|
|
8e95d94f3e | ||
|
|
cf7bed7887 | ||
|
|
17ebe82577 | ||
|
|
79ded2aa75 | ||
|
|
7e940e618e | ||
|
|
eed52552a9 | ||
|
|
208ea171c3 | ||
|
|
fe75924941 | ||
|
|
c1daf6f49f | ||
|
|
bee94d0d4f | ||
|
|
92e2b72f55 | ||
|
|
ba4aac72f3 | ||
|
|
684a551273 | ||
|
|
22add7e431 | ||
|
|
1439f14cf3 | ||
|
|
92e83aebe0 | ||
|
|
5d461fa0e7 | ||
|
|
3b4e368a00 | ||
|
|
e62cc6ac47 | ||
|
|
c81709bed3 | ||
|
|
0f9a1830b8 | ||
|
|
7206c0f2f1 | ||
|
|
f9a595ed5b | ||
|
|
f164ad7598 | ||
|
|
e6ba9973f9 | ||
|
|
f0ca265ad1 | ||
|
|
ef07dc6eff | ||
|
|
2de2575ead | ||
|
|
fd2cc91482 | ||
|
|
ce50714b85 | ||
|
|
1c45321e32 | ||
|
|
02daf761f0 | ||
|
|
4c098e0419 | ||
|
|
ede6fc6e01 | ||
|
|
2fb5e544c2 | ||
|
|
522398d064 | ||
|
|
d4ad9ad616 | ||
|
|
793ec85b9d | ||
|
|
ca7fbc25de | ||
|
|
2489dee519 | ||
|
|
784be4099e | ||
|
|
d61bdfb20a | ||
|
|
3959e9b76f | ||
|
|
0ffc39e70f | ||
|
|
05d91e8825 | ||
|
|
400818635a | ||
|
|
790bfe5a52 | ||
|
|
be422ff9ec | ||
|
|
bdd177dc1d | ||
|
|
a5a9ed69eb | ||
|
|
c3b66743fe | ||
|
|
3dd21af721 | ||
|
|
87a1df8eb3 | ||
|
|
8425b6d40b | ||
|
|
2032632dc6 | ||
|
|
f8a2352eff | ||
|
|
be1bec3aa8 | ||
|
|
f799a4b371 | ||
|
|
8cabff9b7d | ||
|
|
f25fd07a5e | ||
|
|
f3c8465e6c | ||
|
|
35bb349ece | ||
|
|
846a0e5f76 | ||
|
|
c0d21aa5b4 | ||
|
|
0db12e8590 | ||
|
|
833d061bc7 | ||
|
|
1973a038d3 | ||
|
|
e8d3fb15ed | ||
|
|
a9e34c0f92 | ||
|
|
a27d0da8a5 | ||
|
|
9d276982b5 | ||
|
|
3afb42828f | ||
|
|
9cbbdc9242 | ||
|
|
0b3c320540 | ||
|
|
9e4d80b459 | ||
|
|
ef468b3b06 | ||
|
|
5643d3ec77 | ||
|
|
85d4fb6ac4 | ||
|
|
bd015eabe4 | ||
|
|
510083fbfc | ||
|
|
73c8059a0a | ||
|
|
4fffa190c3 | ||
|
|
395b486cd8 | ||
|
|
59b0f9a658 | ||
|
|
e0d05f7491 | ||
|
|
4a4872bbe5 | ||
|
|
a70c6f916b | ||
|
|
274b7285f3 | ||
|
|
4e7e0e5324 | ||
|
|
004cf15222 | ||
|
|
2da724cad4 | ||
|
|
d4a5b2f48e | ||
|
|
4887adce4f | ||
|
|
d02cf1e7a9 | ||
|
|
c40e1bc29b | ||
|
|
279e10abe8 | ||
|
|
4778efb772 | ||
|
|
508750712a | ||
|
|
f73ee14e3c | ||
|
|
de910916e6 | ||
|
|
7b2bdbc064 | ||
|
|
7b62f13eb6 | ||
|
|
b906fd5348 | ||
|
|
18ac300ed1 | ||
|
|
58a8e7d352 | ||
|
|
30ed4a29c8 | ||
|
|
9d80116bf0 | ||
|
|
370c0c0846 | ||
|
|
a4f69f32d7 | ||
|
|
274593feef | ||
|
|
12cc5db0a8 | ||
|
|
4b68df73a8 | ||
|
|
bac39d3996 | ||
|
|
a9c54e0c02 | ||
|
|
c0efa21d7f | ||
|
|
ce3346a477 | ||
|
|
fbb585c5d8 | ||
|
|
41a0c6ed39 | ||
|
|
6e0ff4c4c2 | ||
|
|
568f0c81bb | ||
|
|
789aeb1c64 | ||
|
|
7ea7610892 | ||
|
|
3a1bbc4248 | ||
|
|
ddbe0516d2 | ||
|
|
7d29b35e75 | ||
|
|
dd2e9c9ac9 | ||
|
|
c203f6a841 | ||
|
|
ed5dbd1293 | ||
|
|
29990abc7e | ||
|
|
123605f21b | ||
|
|
907a65ab83 | ||
|
|
3c7e9f6870 | ||
|
|
9db3231bc5 | ||
|
|
fe35c05860 | ||
|
|
9fe4ae2b96 | ||
|
|
f222711bd8 | ||
|
|
feb7713225 | ||
|
|
4373f1bd54 | ||
|
|
9f23e96976 | ||
|
|
fa80967a1e | ||
|
|
02ff448d33 | ||
|
|
b1593124ba | ||
|
|
4460147291 | ||
|
|
b47dc998a3 | ||
|
|
f5cbfdff04 | ||
|
|
295abebcec | ||
|
|
12e81e5487 | ||
|
|
1b8310a6fe | ||
|
|
bbf91b3477 | ||
|
|
e631913c8f | ||
|
|
4c8b583e30 | ||
|
|
97d403784d | ||
|
|
9da581cb8f | ||
|
|
c0e375412f | ||
|
|
e07596846d | ||
|
|
8d9398a965 | ||
|
|
424f3e5577 | ||
|
|
6b883afa35 | ||
|
|
aab8a7c4eb | ||
|
|
8ae6ffefc0 | ||
|
|
f07f78fbd7 | ||
|
|
035885c25d | ||
|
|
e8205a8293 | ||
|
|
386e215b47 | ||
|
|
684af3503c | ||
|
|
2e88cc7daf | ||
|
|
4f51149ff1 | ||
|
|
9827937faf | ||
|
|
db6fa60937 | ||
|
|
62403c5780 | ||
|
|
71a2f1b9af | ||
|
|
eba48454dc | ||
|
|
a1e06297ab | ||
|
|
e0adcc0175 | ||
|
|
2a539ea7a4 | ||
|
|
257e54645c | ||
|
|
35e7addb5e | ||
|
|
8e1b084906 | ||
|
|
24e9751f40 | ||
|
|
458b35d5d6 | ||
|
|
c6880e5d23 | ||
|
|
5134c13f5b | ||
|
|
5d22542a38 | ||
|
|
23d5bb5889 | ||
|
|
a7f348f4a5 | ||
|
|
9d7479fb65 | ||
|
|
66f7d3c370 | ||
|
|
9a3131084b | ||
|
|
0b3db7c564 | ||
|
|
ba36e05bd6 | ||
|
|
c452caa513 | ||
|
|
cc5b02a40f | ||
|
|
8e381c1b2a | ||
|
|
adbfb7a355 | ||
|
|
395f3bcbcf | ||
|
|
a53f4b3401 | ||
|
|
ce0cb1392d | ||
|
|
c398f1cacb | ||
|
|
0c9abf5257 | ||
|
|
30c4e5c635 | ||
|
|
0e8845230d | ||
|
|
f1ebcae72a | ||
|
|
571a583e10 | ||
|
|
909253a48f | ||
|
|
f7a02ba6af | ||
|
|
cb1b3a09b3 | ||
|
|
ffe3565166 | ||
|
|
4261523720 | ||
|
|
54531ba325 | ||
|
|
a4762fd127 | ||
|
|
52afa50eec | ||
|
|
81a5d669c6 | ||
|
|
2a64dd091f | ||
|
|
4d6feb39df | ||
|
|
fc75492b95 | ||
|
|
b25ce40781 | ||
|
|
afea011ebd | ||
|
|
69bf9254a5 | ||
|
|
795cee876e | ||
|
|
bf275b0740 | ||
|
|
e18d41b5e0 | ||
|
|
e0015b3d4e | ||
|
|
55ab5704d4 | ||
|
|
6f5ed17fc5 | ||
|
|
f50f1f401c | ||
|
|
ab7e3f268e | ||
|
|
fc62fc77e9 | ||
|
|
87295a0c73 | ||
|
|
3c6ffe2c10 | ||
|
|
95ce473dcb | ||
|
|
f01a1e760f | ||
|
|
07cb28e660 | ||
|
|
18101ad0e2 | ||
|
|
3d46a0bfaa | ||
|
|
98fbfe4b67 | ||
|
|
bb5d79e9f2 | ||
|
|
aba8c2c8d1 | ||
|
|
01baf48870 | ||
|
|
8719b79b5e | ||
|
|
e78bc45b65 | ||
|
|
5c9f2841e7 | ||
|
|
ce4e6d49f5 | ||
|
|
9150fa2a60 | ||
|
|
e39199f97a | ||
|
|
4227f8034b | ||
|
|
ab9e386892 | ||
|
|
692c2f0e62 | ||
|
|
f956119265 | ||
|
|
958f0eacdc | ||
|
|
5455aca87b | ||
|
|
05f996f7c6 | ||
|
|
91cb0f612b | ||
|
|
9eb6785abc | ||
|
|
bc68cce4f2 | ||
|
|
674e0c3e4d | ||
|
|
82b181f137 | ||
|
|
7da5a5ae92 | ||
|
|
b6acbf7c93 | ||
|
|
f059eb6686 | ||
|
|
3d57ea45cb | ||
|
|
105d2601a6 | ||
|
|
1df679a916 | ||
|
|
efdf9961b3 | ||
|
|
1bb572310d | ||
|
|
e2d96082f9 | ||
|
|
cd8fafbead | ||
|
|
eed59c5611 | ||
|
|
6d815c3e15 | ||
|
|
63f04b1777 | ||
|
|
c5a1f9c230 | ||
|
|
28971ec527 | ||
|
|
bfcfb61eff | ||
|
|
02911ae275 | ||
|
|
8f501e0de8 | ||
|
|
e1b2358f44 | ||
|
|
c1dd410208 | ||
|
|
89b96193de | ||
|
|
2196b88962 | ||
|
|
c8d7d65226 | ||
|
|
7e800483de | ||
|
|
95d247d332 | ||
|
|
8548a6f898 | ||
|
|
a575749793 | ||
|
|
3157ccb2f2 | ||
|
|
d0302ba92a | ||
|
|
6d67ba539c | ||
|
|
f8f2cd11d5 | ||
|
|
29230d48b3 | ||
|
|
0713e680e1 | ||
|
|
8e31b65a87 | ||
|
|
17c4dbe391 | ||
|
|
2685dd1bd9 | ||
|
|
d4c1b2e838 | ||
|
|
e637bfb35e | ||
|
|
8a0f18de56 | ||
|
|
ba78506b2e | ||
|
|
3665e21341 | ||
|
|
53a7aad431 | ||
|
|
6ab0de303d | ||
|
|
831593ddbd | ||
|
|
cc7bd013c3 | ||
|
|
34d5cc228e | ||
|
|
1d585f8924 | ||
|
|
51e84e10f2 | ||
|
|
878ca6471d | ||
|
|
2d8a19a94e | ||
|
|
2b21cb0104 | ||
|
|
5732cde025 | ||
|
|
ba97ee4674 | ||
|
|
810ed63b9f | ||
|
|
393cf31046 | ||
|
|
d259ab893e | ||
|
|
57af1a9b24 | ||
|
|
a64e3c1d3e | ||
|
|
79d8660ded | ||
|
|
5e1f8d8f07 | ||
|
|
bdd50f4aaa | ||
|
|
bb49639370 | ||
|
|
3630a043fe | ||
|
|
e8582b297b | ||
|
|
3be90d4d8d | ||
|
|
2289d557d8 | ||
|
|
fa4f29e0ac | ||
|
|
218978aea3 | ||
|
|
7552763be3 | ||
|
|
4d61ae9a50 | ||
|
|
c75581d026 | ||
|
|
2f7533ccb2 | ||
|
|
13e512f437 | ||
|
|
1464da64a6 | ||
|
|
f959dd7d77 | ||
|
|
fe67b047f4 | ||
|
|
1aa7a6d4e1 | ||
|
|
d68b498a2c | ||
|
|
24e0967052 | ||
|
|
9671e8a5bd | ||
|
|
a60aee329c | ||
|
|
343d2c032d | ||
|
|
7d4c7b7982 | ||
|
|
130052c935 | ||
|
|
8957e618a5 | ||
|
|
c49fbf9070 | ||
|
|
d840bba905 | ||
|
|
ccf15b8be3 | ||
|
|
d7180fd1e8 | ||
|
|
2845f50ff7 | ||
|
|
39e06151c5 | ||
|
|
460ea4e809 | ||
|
|
6910c471bf | ||
|
|
89e377cb48 | ||
|
|
250bb2f2be | ||
|
|
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 | ||
|
|
06fd92353b | ||
|
|
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 | ||
|
|
8395bea72d | ||
|
|
ac17a2f2a7 | ||
|
|
a365f185cc | ||
|
|
7e7d8ac4e2 | ||
|
|
345763fcd3 | ||
|
|
b46cc5a241 |
@@ -3,7 +3,7 @@ sudo: false
|
|||||||
language: node_js
|
language: node_js
|
||||||
|
|
||||||
node_js:
|
node_js:
|
||||||
- "4"
|
- "6"
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ include:
|
|||||||
### Follow OpenLayers 3's coding style
|
### Follow OpenLayers 3's coding style
|
||||||
|
|
||||||
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](https://google.github.io/styleguide/javascriptguide.xml).
|
||||||
This is checked using [ESLint](http://eslint.org/), you
|
This is checked using [ESLint](http://eslint.org/), 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:
|
||||||
|
|||||||
@@ -11,14 +11,6 @@ The Travis CI hook is enabled on the Github repository. This means every pull re
|
|||||||
is run through a full test suite to ensure it compiles and passes the tests. Failing
|
is run through a full test suite to ensure it compiles and passes the tests. Failing
|
||||||
pull requests will not be merged.
|
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
|
### Development dependencies
|
||||||
|
|
||||||
The minimum requirements are:
|
The minimum requirements are:
|
||||||
|
|||||||
20
Makefile
20
Makefile
@@ -2,7 +2,7 @@ OS := $(shell uname)
|
|||||||
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
||||||
|
|
||||||
SRC_GLSL := $(shell find src -type f -name '*.glsl')
|
SRC_GLSL := $(shell find src -type f -name '*.glsl')
|
||||||
SRC_SHADER_JS := $(patsubst %.glsl,%shader.js,$(SRC_GLSL))
|
SRC_SHADER_JS := $(patsubst %shader.glsl,%shader.js,$(SRC_GLSL))
|
||||||
SRC_JS := $(filter-out $(SRC_SHADER_JS),$(shell find src -name '*.js'))
|
SRC_JS := $(filter-out $(SRC_SHADER_JS),$(shell find src -name '*.js'))
|
||||||
SRC_JSDOC = $(shell find src -type f -name '*.jsdoc')
|
SRC_JSDOC = $(shell find src -type f -name '*.jsdoc')
|
||||||
|
|
||||||
@@ -119,8 +119,7 @@ examples: $(BUILD_EXAMPLES)
|
|||||||
install: build/timestamps/node-modules-timestamp
|
install: build/timestamps/node-modules-timestamp
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: build/timestamps/eslint-timestamp \
|
lint: build/timestamps/eslint-timestamp
|
||||||
build/timestamps/check-requires-timestamp
|
|
||||||
|
|
||||||
.PHONY: npm-install
|
.PHONY: npm-install
|
||||||
npm-install: build/timestamps/node-modules-timestamp
|
npm-install: build/timestamps/node-modules-timestamp
|
||||||
@@ -181,14 +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 --local-to-remote-url-access=true --ssl-protocol=any --ignore-ssl-errors=true bin/check-example.js $<
|
node tasks/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 $@
|
@touch $@
|
||||||
|
|
||||||
build/compiled-examples/all.js: $(EXAMPLES_JS)
|
build/compiled-examples/all.js: $(EXAMPLES_JS)
|
||||||
@@ -219,7 +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 $@
|
@touch $@
|
||||||
|
|
||||||
$(BUILD_HOSTED_EXAMPLES_JS): $(BUILD_HOSTED)/examples/%.js: build/examples/%.js
|
$(BUILD_HOSTED_EXAMPLES_JS): $(BUILD_HOSTED)/examples/%.js: build/examples/%.js
|
||||||
@@ -260,7 +252,7 @@ build/timestamps/eslint-timestamp: $(SRC_JS) $(SPEC_JS) $(SPEC_RENDERING_JS) \
|
|||||||
build/timestamps/node-modules-timestamp
|
build/timestamps/node-modules-timestamp
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@echo "Running eslint..."
|
@echo "Running eslint..."
|
||||||
@./node_modules/.bin/eslint $?
|
@./node_modules/.bin/eslint --quiet tasks test test_rendering src examples
|
||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
build/timestamps/node-modules-timestamp: package.json
|
build/timestamps/node-modules-timestamp: package.json
|
||||||
@@ -306,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 build/timestamps/node-modules-timestamp
|
%shader.js: %shader.glsl src/ol/webgl/shader.mustache bin/pyglslunit.py build/timestamps/node-modules-timestamp
|
||||||
@python bin/pyglslunit.py --input $< | ./node_modules/.bin/mustache - src/ol/webgl/shader.mustache > $@
|
@python bin/pyglslunit.py --input $< | ./node_modules/.bin/mustache - src/ol/webgl/shader.mustache > $@
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
[](https://coveralls.io/r/openlayers/ol3?branch=master)
|
[](https://coveralls.io/r/openlayers/ol3?branch=master)
|
||||||
[](http://osgeo.org/)
|
[](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. It can display map tiles, vector data and markers loaded from any source on any web page. OpenLayers has been developed to further the use of geographic information of all kinds. It is completely free, Open Source JavaScript, released under the 2-clause BSD License (also known as the FreeBSD).
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
@@ -12,9 +12,13 @@
|
|||||||
- Install with npm: `npm install openlayers`
|
- Install with npm: `npm install openlayers`
|
||||||
- Clone the repo: `git clone git@github.com:openlayers/ol3.git`
|
- Clone the repo: `git clone git@github.com:openlayers/ol3.git`
|
||||||
|
|
||||||
|
## Supported Browsers
|
||||||
|
|
||||||
|
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, Firefox, Safari and Edge. For older browsers and platforms like Internet Explorer (down to version 9) and Android 4.x, [polyfills](http://polyfill.io) for `requestAnimationFrame` and `Element.prototype.classList` are required, and using the KML format requires a polyfill for `URL`.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
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/).
|
Check out the [hosted examples](http://openlayers.org/en/latest/examples/), the [workshop](http://openlayers.org/workshop/) or the [API documentation](http://openlayers.org/en/latest/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,5 +1,163 @@
|
|||||||
## Upgrade notes
|
## Upgrade notes
|
||||||
|
|
||||||
|
### v3.18.0
|
||||||
|
|
||||||
|
#### Changes in the way assertions are handled
|
||||||
|
|
||||||
|
Previously, minified builds of the library did not have any assertions. This caused applications to fail silently or with cryptic stack traces. Starting with this release, developers get notified of many runtime errors through the new `ol.AssertionError`. This error has a `code` property. The meaning of the code can be found on http://openlayers.org/en/latest/doc/errors/. There are additional console assertion checks in debug mode when the `goog.DEBUG` compiler flag is `true`. As this is `true` by default, it is recommended that those creating custom builds set this to `false` so these assertions are stripped.'
|
||||||
|
|
||||||
|
#### Removal of `ol.ENABLE_NAMED_COLORS`
|
||||||
|
|
||||||
|
This option was previously needed to use named colors with the WebGL renderer but is no longer needed.
|
||||||
|
|
||||||
|
#### KML format now uses URL()
|
||||||
|
|
||||||
|
The URL constructor is supported by all modern browsers, but not by older ones, such as IE. To use the KML format in such older browsers, a URL polyfill will have to be loaded before use.
|
||||||
|
|
||||||
|
#### Changes only relevant to those who compile their applications together with the Closure Compiler
|
||||||
|
|
||||||
|
A number of internal types have been renamed. This will not affect those who use the API provided by the library, but if you are compiling your application together with OpenLayers and using type names, you'll need to do the following:
|
||||||
|
|
||||||
|
* rename `ol.CollectionEventType` to `ol.Collection.EventType`
|
||||||
|
* rename `ol.CollectionEvent` to `ol.Collection.Event`
|
||||||
|
* rename `ol.ViewHint` to `ol.View.Hint`
|
||||||
|
* rename `ol.ViewProperty` to `ol.View.Property`
|
||||||
|
* rename `ol.render.webgl.imagereplay.shader.Default.Locations` to `ol.render.webgl.imagereplay.defaultshader.Locations`
|
||||||
|
* rename `ol.render.webgl.imagereplay.shader.DefaultFragment` to `ol.render.webgl.imagereplay.defaultshader.Fragment`
|
||||||
|
* rename `ol.render.webgl.imagereplay.shader.DefaultVertex` to `ol.render.webgl.imagereplay.defaultshader.Vertex`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.Default.Locations` to `ol.renderer.webgl.defaultmapshader.Locations`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.Default.Locations` to `ol.renderer.webgl.defaultmapshader.Locations`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.DefaultFragment` to `ol.renderer.webgl.defaultmapshader.Fragment`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.DefaultVertex` to `ol.renderer.webgl.defaultmapshader.Vertex`
|
||||||
|
* rename `ol.renderer.webgl.tilelayer.shader.Fragment` to `ol.renderer.webgl.tilelayershader.Fragment`
|
||||||
|
* rename `ol.renderer.webgl.tilelayer.shader.Locations` to `ol.renderer.webgl.tilelayershader.Locations`
|
||||||
|
* rename `ol.renderer.webgl.tilelayer.shader.Vertex` to `ol.renderer.webgl.tilelayershader.Vertex`
|
||||||
|
* rename `ol.webgl.WebGLContextEventType` to `ol.webgl.ContextEventType`
|
||||||
|
* rename `ol.webgl.shader.Fragment` to `ol.webgl.Fragment`
|
||||||
|
* rename `ol.webgl.shader.Vertex` to `ol.webgl.Vertex`
|
||||||
|
|
||||||
|
### 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
|
### v3.14.0
|
||||||
|
|
||||||
#### Internet Explorer 9 support
|
#### Internet Explorer 9 support
|
||||||
|
|||||||
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))
|
||||||
170
changelog/v3.18.0.md
Normal file
170
changelog/v3.18.0.md
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
# v3.18.0
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.18.0 release includes features and fixes from almost 120 pull requests since the v3.17.1 release. Most of the changes are bug fixes and continuing removal of the dependency on Closure Library. New features include:
|
||||||
|
|
||||||
|
* Addition of `Intersects` and `Within` filters to `ol.format.ogc.filter` [#5668](https://github.com/openlayers/ol3/pull/5668)
|
||||||
|
* New `overlaps` option for `ol.source.Vector` and `ol.source.VectorTile` to improve rendering performance for polygon topologies [#5196](https://github.com/openlayers/ol3/pull/5196)
|
||||||
|
* New `rotateWithView` option for `ol.style.Text` to control appearance of text on rotated views [#5050](https://github.com/openlayers/ol3/pull/5050)
|
||||||
|
* Add a `#scale()` method to `ol.geom.Geometry` and subclasses [#5685](https://github.com/openlayers/ol3/pull/5685)
|
||||||
|
* Parse `id` of features in `ol.format.MVT` [#5613](https://github.com/openlayers/ol3/pull/5613)
|
||||||
|
|
||||||
|
## Upgrade notes
|
||||||
|
|
||||||
|
#### Changes in the way assertions are handled
|
||||||
|
|
||||||
|
Previously, minified builds of the library did not have any assertions. This caused applications to fail silently or with cryptic stack traces. Starting with this release, developers get notified of many runtime errors through the new `ol.AssertionError`. This error has a `code` property. The meaning of the code can be found on http://openlayers.org/en/latest/doc/errors/. There are additional console assertion checks in debug mode when the `goog.DEBUG` compiler flag is `true`. As this is `true` by default, it is recommended that those creating custom builds set this to `false` so these assertions are stripped.'
|
||||||
|
|
||||||
|
#### Removal of `ol.ENABLE_NAMED_COLORS`
|
||||||
|
|
||||||
|
This option was previously needed to use named colors with the WebGL renderer but is no longer needed.
|
||||||
|
|
||||||
|
#### KML format now uses URL()
|
||||||
|
|
||||||
|
The URL constructor is supported by all modern browsers, but not by older ones, such as IE. To use the KML format in such older browsers, a URL polyfill will have to be loaded before use.
|
||||||
|
|
||||||
|
#### Changes only relevant to those who compile their applications together with the Closure Compiler
|
||||||
|
|
||||||
|
A number of internal types have been renamed. This will not affect those who use the API provided by the library, but if you are compiling your application together with OpenLayers and using type names, you'll need to do the following:
|
||||||
|
|
||||||
|
* rename `ol.CollectionEventType` to `ol.Collection.EventType`
|
||||||
|
* rename `ol.CollectionEvent` to `ol.Collection.Event`
|
||||||
|
* rename `ol.ViewHint` to `ol.View.Hint`
|
||||||
|
* rename `ol.ViewProperty` to `ol.View.Property`
|
||||||
|
* rename `ol.render.webgl.imagereplay.shader.Default.Locations` to `ol.render.webgl.imagereplay.defaultshader.Locations`
|
||||||
|
* rename `ol.render.webgl.imagereplay.shader.DefaultFragment` to `ol.render.webgl.imagereplay.defaultshader.Fragment`
|
||||||
|
* rename `ol.render.webgl.imagereplay.shader.DefaultVertex` to `ol.render.webgl.imagereplay.defaultshader.Vertex`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.Default.Locations` to `ol.renderer.webgl.defaultmapshader.Locations`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.Default.Locations` to `ol.renderer.webgl.defaultmapshader.Locations`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.DefaultFragment` to `ol.renderer.webgl.defaultmapshader.Fragment`
|
||||||
|
* rename `ol.renderer.webgl.map.shader.DefaultVertex` to `ol.renderer.webgl.defaultmapshader.Vertex`
|
||||||
|
* rename `ol.renderer.webgl.tilelayer.shader.Fragment` to `ol.renderer.webgl.tilelayershader.Fragment`
|
||||||
|
* rename `ol.renderer.webgl.tilelayer.shader.Locations` to `ol.renderer.webgl.tilelayershader.Locations`
|
||||||
|
* rename `ol.renderer.webgl.tilelayer.shader.Vertex` to `ol.renderer.webgl.tilelayershader.Vertex`
|
||||||
|
* rename `ol.webgl.WebGLContextEventType` to `ol.webgl.ContextEventType`
|
||||||
|
* rename `ol.webgl.shader.Fragment` to `ol.webgl.Fragment`
|
||||||
|
* rename `ol.webgl.shader.Vertex` to `ol.webgl.Vertex`
|
||||||
|
|
||||||
|
## Full list of changes
|
||||||
|
|
||||||
|
* [#5782](https://github.com/openlayers/ol3/pull/5782) - Compare URLs in an IE compatible way ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5778](https://github.com/openlayers/ol3/pull/5778) - Use Mapzen instead of openstreetmap.us tiles ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5774](https://github.com/openlayers/ol3/pull/5774) - Update glob to version 7.0.6 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5708](https://github.com/openlayers/ol3/pull/5708) - Remove unnecessary closePath() instructions ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5196](https://github.com/openlayers/ol3/pull/5196) - Batch polygon and circle fills and strokes ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5768](https://github.com/openlayers/ol3/pull/5768) - Enable extent clipping for vector layers ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#4753](https://github.com/openlayers/ol3/pull/4753) - Export ol.geom.Geometry#containsCoordinate function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5050](https://github.com/openlayers/ol3/pull/5050) - Add rotateWithView option to ol.style.Text ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5767](https://github.com/openlayers/ol3/pull/5767) - Accept feature without geometry in ol.interaction.Modify ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5334](https://github.com/openlayers/ol3/pull/5334) - Load the examples resources with HTTPS ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5766](https://github.com/openlayers/ol3/pull/5766) - Use HTTPS to access tiles at tileserver.maptiler.com in examples ([@klokantech](https://github.com/klokantech))
|
||||||
|
* [#5765](https://github.com/openlayers/ol3/pull/5765) - Force a map render when the view is not updated ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5724](https://github.com/openlayers/ol3/pull/5724) - Fix clipping of the tile layer extent on HiDPI devices ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5764](https://github.com/openlayers/ol3/pull/5764) - Remove unnecessary map.render() calls ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#5763](https://github.com/openlayers/ol3/pull/5763) - Fix assert namespace ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5616](https://github.com/openlayers/ol3/pull/5616) - Fix event type and documentation of ol.events.condition.mouseOnly ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5755](https://github.com/openlayers/ol3/pull/5755) - Increase the size of the map in ol.layer.Tile rendering tests ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5757](https://github.com/openlayers/ol3/pull/5757) - Add ol.source.Cluster#setDistance function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5752](https://github.com/openlayers/ol3/pull/5752) - Set proper replay canvas size and offset for rotated view ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5754](https://github.com/openlayers/ol3/pull/5754) - Update istanbul to version 0.4.5 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5727](https://github.com/openlayers/ol3/pull/5727) - Add missing goog require ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5273](https://github.com/openlayers/ol3/pull/5273) - Take the pixelRatio into account when computing the gutter ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5753](https://github.com/openlayers/ol3/pull/5753) - Update proj4 to version 2.3.15 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5741](https://github.com/openlayers/ol3/pull/5741) - Point to the English workshop ([@bartvde](https://github.com/bartvde))
|
||||||
|
* [#5721](https://github.com/openlayers/ol3/pull/5721) - Update metalsmith to version 2.2.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5733](https://github.com/openlayers/ol3/pull/5733) - Fix #5730 - Ignore null/undef. values in uri.appendParams ([@adube](https://github.com/adube))
|
||||||
|
* [#5736](https://github.com/openlayers/ol3/pull/5736) - Show `resultType` attribute in docs ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5735](https://github.com/openlayers/ol3/pull/5735) - Update eslint to version 3.3.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5731](https://github.com/openlayers/ol3/pull/5731) - Added a pixelRatio adjust to the canvasTileLayer 'forEachLayerAtPixel… ([@Benjaki2](https://github.com/Benjaki2))
|
||||||
|
* [#5732](https://github.com/openlayers/ol3/pull/5732) - Add missing curly braces in type annotations ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5728](https://github.com/openlayers/ol3/pull/5728) - Update closure-util to version 1.15.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5717](https://github.com/openlayers/ol3/pull/5717) - Update phantomjs-prebuilt to version 2.1.12 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5725](https://github.com/openlayers/ol3/pull/5725) - Remove tilerange assert from tilegrid/wmts ([@probins](https://github.com/probins))
|
||||||
|
* [#5723](https://github.com/openlayers/ol3/pull/5723) - Update eslint to version 3.3.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5702](https://github.com/openlayers/ol3/pull/5702) - Add rule to identify missing requires ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5670](https://github.com/openlayers/ol3/pull/5670) - Added image data value to 'forEachLayerAtPixel' method callback ([@Benjaki2](https://github.com/Benjaki2))
|
||||||
|
* [#5720](https://github.com/openlayers/ol3/pull/5720) - Fix typo in tilegrid/wmts ([@probins](https://github.com/probins))
|
||||||
|
* [#5715](https://github.com/openlayers/ol3/pull/5715) - Create a check-example task for smarter example checking with PhantomJS ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5714](https://github.com/openlayers/ol3/pull/5714) - Add FAQ entry about renderBuffer ([@tsauerwein](https://github.com/tsauerwein))
|
||||||
|
* [#5713](https://github.com/openlayers/ol3/pull/5713) - Check examples with http protocol instead of file ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5689](https://github.com/openlayers/ol3/pull/5689) - Fix cursor change in translate interaction ([@pgiraud](https://github.com/pgiraud))
|
||||||
|
* [#5165](https://github.com/openlayers/ol3/pull/5165) - Remove goog.addSingletonGetter function ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5701](https://github.com/openlayers/ol3/pull/5701) - Update phantomjs-prebuilt to version 2.1.11 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5698](https://github.com/openlayers/ol3/pull/5698) - Custom rule to identify unused goog.require() calls ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5699](https://github.com/openlayers/ol3/pull/5699) - Update mocha to version 3.0.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5697](https://github.com/openlayers/ol3/pull/5697) - Re-enable ESLint config ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5693](https://github.com/openlayers/ol3/pull/5693) - Reorganize files so they are named like their default export ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5694](https://github.com/openlayers/ol3/pull/5694) - layer.Base in Map not required ([@probins](https://github.com/probins))
|
||||||
|
* [#5695](https://github.com/openlayers/ol3/pull/5695) - Remove unneeded requires in renderers ([@probins](https://github.com/probins))
|
||||||
|
* [#5692](https://github.com/openlayers/ol3/pull/5692) - Small text fix ([@bngsudheer](https://github.com/bngsudheer))
|
||||||
|
* [#5682](https://github.com/openlayers/ol3/pull/5682) - Update mocha to version 3.0.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5619](https://github.com/openlayers/ol3/pull/5619) - Remove goog.asserts.* ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5685](https://github.com/openlayers/ol3/pull/5685) - Add a method to scale geometries ([@tschaub](https://github.com/tschaub))
|
||||||
|
* [#5674](https://github.com/openlayers/ol3/pull/5674) - Support fractional zoom levels in ol.View#getZoom and #setZoom ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5681](https://github.com/openlayers/ol3/pull/5681) - Remove extra goog.require ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5680](https://github.com/openlayers/ol3/pull/5680) - Update phantomjs-prebuilt to version 2.1.10 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5668](https://github.com/openlayers/ol3/pull/5668) - Added Intersects and Within filters into ol.format.wfs ([@cpsTinK](https://github.com/cpsTinK))
|
||||||
|
* [#5675](https://github.com/openlayers/ol3/pull/5675) - Remove unused goog.provide ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5673](https://github.com/openlayers/ol3/pull/5673) - Add missing semicolon ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5587](https://github.com/openlayers/ol3/pull/5587) - Lazily create KML style defaults ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5599](https://github.com/openlayers/ol3/pull/5599) - Allow subpixel center on view ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5630](https://github.com/openlayers/ol3/pull/5630) - chore(build): guard against unterminated scripts ([@tlvince](https://github.com/tlvince))
|
||||||
|
* [#5669](https://github.com/openlayers/ol3/pull/5669) - Fix Github links to specific lines on jsdoc pages ([@dtreiter](https://github.com/dtreiter))
|
||||||
|
* [#5667](https://github.com/openlayers/ol3/pull/5667) - Do not return undefined from ol.proj.get ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5665](https://github.com/openlayers/ol3/pull/5665) - Update eslint to version 3.2.2 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5632](https://github.com/openlayers/ol3/pull/5632) - Improve docs for the ol.LoadingStrategy type ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5641](https://github.com/openlayers/ol3/pull/5641) - De-randomize the listener map property ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5664](https://github.com/openlayers/ol3/pull/5664) - Update eslint to version 3.2.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5658](https://github.com/openlayers/ol3/pull/5658) - Update marked to version 0.3.6 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5657](https://github.com/openlayers/ol3/pull/5657) - Update phantomjs-prebuilt to version 2.1.9 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5652](https://github.com/openlayers/ol3/pull/5652) - Make XHR work for file:// urls ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5653](https://github.com/openlayers/ol3/pull/5653) - Fix namespace in filter docs ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5651](https://github.com/openlayers/ol3/pull/5651) - Update coveralls to version 2.11.12 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5649](https://github.com/openlayers/ol3/pull/5649) - Fix DateTime parsing with non-Zulu times ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5648](https://github.com/openlayers/ol3/pull/5648) - Update sinon to version 1.17.5 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5646](https://github.com/openlayers/ol3/pull/5646) - Update phantomjs-prebuilt to version 2.1.8 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5644](https://github.com/openlayers/ol3/pull/5644) - Update browserify to version 13.1.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5640](https://github.com/openlayers/ol3/pull/5640) - Add example for usage of HERE Map Tile API ([@chrismayer](https://github.com/chrismayer))
|
||||||
|
* [#5579](https://github.com/openlayers/ol3/pull/5579) - Update jquery to version 3.1.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5636](https://github.com/openlayers/ol3/pull/5636) - Update clean-css to version 3.4.19 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5634](https://github.com/openlayers/ol3/pull/5634) - Update async to version 2.0.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5622](https://github.com/openlayers/ol3/pull/5622) - Update TileWMS.coordKeyPrefix_ on setUrls ([@rrutkows](https://github.com/rrutkows))
|
||||||
|
* [#5611](https://github.com/openlayers/ol3/pull/5611) - Fix broken link to Google JavaScript Style Guide ([@ischas](https://github.com/ischas))
|
||||||
|
* [#5620](https://github.com/openlayers/ol3/pull/5620) - Replace goog.getUid with ol.getUid ([@probins](https://github.com/probins))
|
||||||
|
* [#5614](https://github.com/openlayers/ol3/pull/5614) - Replace goog.abstractMethod ([@probins](https://github.com/probins))
|
||||||
|
* [#5613](https://github.com/openlayers/ol3/pull/5613) - Parse MVT id property ([@drnextgis](https://github.com/drnextgis))
|
||||||
|
* [#5612](https://github.com/openlayers/ol3/pull/5612) - Update vector-tile to version 1.3.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5609](https://github.com/openlayers/ol3/pull/5609) - Update eslint to version 3.1.1 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5605](https://github.com/openlayers/ol3/pull/5605) - Remove goog.isObject not in assertions ([@probins](https://github.com/probins))
|
||||||
|
* [#5603](https://github.com/openlayers/ol3/pull/5603) - Update eslint to version 3.1.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5597](https://github.com/openlayers/ol3/pull/5597) - Avoid unnecessary getImageData calls in hit detection ([@schmidtk](https://github.com/schmidtk))
|
||||||
|
* [#5429](https://github.com/openlayers/ol3/pull/5429) - Remove enums from tests ([@probins](https://github.com/probins))
|
||||||
|
* [#5516](https://github.com/openlayers/ol3/pull/5516) - Remove goog.Uri from KML format ([@probins](https://github.com/probins))
|
||||||
|
* [#5598](https://github.com/openlayers/ol3/pull/5598) - Clarify that default source.Vector loader only handles features ([@probins](https://github.com/probins))
|
||||||
|
* [#5595](https://github.com/openlayers/ol3/pull/5595) - Use tile keys instead of coord keys ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5594](https://github.com/openlayers/ol3/pull/5594) - Add renderBuffer option for ol.source.ImageVector ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5592](https://github.com/openlayers/ol3/pull/5592) - Update coveralls to version 2.11.11 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#5593](https://github.com/openlayers/ol3/pull/5593) - Update async to version 2.0.0 🚀 ([@openlayers](https://github.com/openlayers))
|
||||||
|
* [#4194](https://github.com/openlayers/ol3/pull/4194) - Remove usage of goog.color and closure named colors ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#5583](https://github.com/openlayers/ol3/pull/5583) - Fix dead link for change event in API docs ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5560](https://github.com/openlayers/ol3/pull/5560) - Get rid of goog.isArrayLike ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5573](https://github.com/openlayers/ol3/pull/5573) - Determine ol.global in a way that works in more environments ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5558](https://github.com/openlayers/ol3/pull/5558) - Remove goog.Uri from tests ([@probins](https://github.com/probins))
|
||||||
|
* [#5578](https://github.com/openlayers/ol3/pull/5578) - Add polyfills to copy/paste code ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5577](https://github.com/openlayers/ol3/pull/5577) - Fix olx.source.OSMOptions#url default value documentation ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5576](https://github.com/openlayers/ol3/pull/5576) - Use the word "documentation" ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5575](https://github.com/openlayers/ol3/pull/5575) - Add a bit more info about the library to the README ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5574](https://github.com/openlayers/ol3/pull/5574) - Add paragraph about supported browsers and polyfills ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5570](https://github.com/openlayers/ol3/pull/5570) - Upgrade JSTS in example to 1.2.0 ([@bjornharrtell](https://github.com/bjornharrtell))
|
||||||
|
* [#5566](https://github.com/openlayers/ol3/pull/5566) - Fix ol.style.Image#getAnchor documentation ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5546](https://github.com/openlayers/ol3/pull/5546) - Remove useless target argument from ol.Event and subclass constructors ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5565](https://github.com/openlayers/ol3/pull/5565) - Reinsert goog.provide for enums in olx.js ([@probins](https://github.com/probins))
|
||||||
|
* [#5561](https://github.com/openlayers/ol3/pull/5561) - Add unit tests for ol.View.createCenterConstraint ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5563](https://github.com/openlayers/ol3/pull/5563) - Return if a vertex was removed in ol.interaction.Modify#removeVertex_ ([@fredj](https://github.com/fredj))
|
||||||
|
* [#5533](https://github.com/openlayers/ol3/pull/5533) - Make sure reprojected tiles are recreated on updateParams ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5534](https://github.com/openlayers/ol3/pull/5534) - Fix ScaleLine control documentation ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5541](https://github.com/openlayers/ol3/pull/5541) - Replace goog.isNumber ([@probins](https://github.com/probins))
|
||||||
|
* [#5552](https://github.com/openlayers/ol3/pull/5552) - Replace goog.webgl. ([@probins](https://github.com/probins))
|
||||||
|
* [#5550](https://github.com/openlayers/ol3/pull/5550) - Remove use of ol.vec.Mat4 calls remaining after #5482 ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5507](https://github.com/openlayers/ol3/pull/5507) - Remove use of goog.vec.* ([@ahocevar](https://github.com/ahocevar))
|
||||||
10
changelog/v3.18.1.md
Normal file
10
changelog/v3.18.1.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# v3.18.1
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.18.1 release is a patch release that addresses two regressions in the v3.18.0 release. See the [v3.18.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.18.0) for details on upgrading from v3.17.x.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#5798](https://github.com/openlayers/ol3/pull/5798) - Move to 90° along the circle, not 0° ([@ahocevar](https://github.com/ahocevar))
|
||||||
|
* [#5790](https://github.com/openlayers/ol3/pull/5790) - Fix vector tile rotation on HiDPI devices ([@ahocevar](https://github.com/ahocevar))
|
||||||
9
changelog/v3.18.2.md
Normal file
9
changelog/v3.18.2.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# v3.18.2
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The v3.18.2 release is a patch release that addresses a regression in the v3.18.1 release. See the [v3.18.0 release notes](https://github.com/openlayers/ol3/releases/tag/v3.18.0) for details on upgrading from v3.17.x.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* [#5828](https://github.com/openlayers/ol3/pull/5828) - Always close polygon rings ([@ahocevar](https://github.com/ahocevar))
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"library_url": "https://github.com/google/closure-library/archive/5b25e65.zip"
|
|
||||||
}
|
|
||||||
@@ -12,11 +12,11 @@
|
|||||||
],
|
],
|
||||||
"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/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,17 +24,14 @@
|
|||||||
"externs/topojson.js"
|
"externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"jscomp_error": [
|
"jscomp_error": [
|
||||||
"*"
|
"*"
|
||||||
],
|
],
|
||||||
"jscomp_off": [
|
"jscomp_off": [
|
||||||
"useOfGoogBase",
|
|
||||||
"unnecessaryCasts",
|
|
||||||
"lintChecks",
|
"lintChecks",
|
||||||
|
"analyzerChecks",
|
||||||
"missingProvide",
|
"missingProvide",
|
||||||
"unknownDefines"
|
"unknownDefines"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -13,29 +13,25 @@
|
|||||||
"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/jspdf.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"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"jscomp_error": [
|
"jscomp_error": [
|
||||||
"*"
|
"*"
|
||||||
],
|
],
|
||||||
"jscomp_off": [
|
"jscomp_off": [
|
||||||
"useOfGoogBase",
|
"lintChecks",
|
||||||
"unnecessaryCasts",
|
"analyzerChecks"
|
||||||
"lintChecks"
|
|
||||||
],
|
],
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
"api", "observable"
|
"api", "observable"
|
||||||
|
|||||||
@@ -5,32 +5,42 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
<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="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/font-awesome/4.4.0/css/font-awesome.min.css" type="text/css">
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.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="./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.local }}}
|
{{{ extraHead.local }}}
|
||||||
{{{ css.tag }}}
|
{{{ css.tag }}}
|
||||||
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,requestAnimationFrame"></script>
|
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch,requestAnimationFrame,Element.prototype.classList,URL"></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>
|
||||||
|
|
||||||
<header class="navbar" role="navigation">
|
<header class="navbar" role="navigation">
|
||||||
<div class="container" id="navbar-inner-container">
|
<div class="container">
|
||||||
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png"> OpenLayers 3 Examples</a>
|
<div class="display-table pull-left" id="navbar-logo-container">
|
||||||
|
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png"> OpenLayers Examples</a>
|
||||||
|
</div>
|
||||||
|
<!-- menu items that get hidden below 768px width -->
|
||||||
|
<nav class='collapse navbar-collapse navbar-responsive-collapse'>
|
||||||
<ul class="nav navbar-nav pull-right">
|
<ul class="nav navbar-nav pull-right">
|
||||||
<li><a href="../doc">Docs</a></li>
|
<li><a href="../doc">Docs</a></li>
|
||||||
<li><a class="active" href="index.html">Examples</a></li>
|
<li><a class="active" href="index.html">Examples</a></li>
|
||||||
<li><a href="../apidoc">API</a></li>
|
<li><a href="../apidoc">API</a></li>
|
||||||
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
|
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|
||||||
|
<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>
|
||||||
@@ -51,7 +61,7 @@
|
|||||||
<a id="copy-button"><i class="fa fa-clipboard"></i> Copy</a>
|
<a id="copy-button"><i class="fa fa-clipboard"></i> Copy</a>
|
||||||
<a id="jsfiddle-button"><i class="fa fa-jsfiddle"></i> Edit</a>
|
<a id="jsfiddle-button"><i class="fa fa-jsfiddle"></i> Edit</a>
|
||||||
</div>
|
</div>
|
||||||
<form method="POST" id="jsfiddle-form" target="_blank" action="http://jsfiddle.net/api/post/library/pure/">
|
<form method="POST" id="jsfiddle-form" target="_blank" action="https://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>
|
||||||
@@ -63,6 +73,8 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>{{ title }}</title>
|
<title>{{ title }}</title>
|
||||||
<link rel="stylesheet" href="http://openlayers.org/en/v{{ olVersion }}/css/ol.css" type="text/css">
|
<link rel="stylesheet" href="http://openlayers.org/en/v{{ olVersion }}/css/ol.css" type="text/css">
|
||||||
|
<!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->
|
||||||
|
<script src="http://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script>
|
||||||
<script src="http://openlayers.org/en/v{{ olVersion }}/build/ol.js"></script>{{#if extraHead.remote}}
|
<script src="http://openlayers.org/en/v{{ olVersion }}/build/ol.js"></script>{{#if extraHead.remote}}
|
||||||
{{ indent extraHead.remote spaces=4 }}{{/if}}{{#if css.source}}
|
{{ indent extraHead.remote spaces=4 }}{{/if}}{{#if css.source}}
|
||||||
<style>
|
<style>
|
||||||
@@ -80,4 +92,30 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -39,3 +39,26 @@ Interactions for [vector features](ol.Feature.html)
|
|||||||
[ol.Geolocation](ol.Geolocation.html)<br>
|
[ol.Geolocation](ol.Geolocation.html)<br>
|
||||||
[ol.Overlay](ol.Overlay.html)<br></td>
|
[ol.Overlay](ol.Overlay.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,6 +11,7 @@ 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;
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,10 +89,6 @@ 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);
|
olxTypeNames.push(doclet.longname);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -113,7 +113,8 @@ function generate(title, docs, filename, resolveLinks) {
|
|||||||
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),
|
||||||
@@ -327,11 +328,6 @@ exports.publish = function(taffyData, opts, tutorials) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 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
|
||||||
@@ -439,13 +435,10 @@ 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
|
||||||
|
|||||||
@@ -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\//);
|
|
||||||
if (masterSearch && masterSearch.length) {
|
|
||||||
var branch = masterSearch[1];
|
|
||||||
srcLinks.each(function(i, el) {
|
srcLinks.each(function(i, el) {
|
||||||
var textParts = el.innerHTML.trim().split(', ');
|
var textParts = el.innerHTML.trim().split(', ');
|
||||||
var link = 'https://github.com/openlayers/ol3/blob/' + branch +
|
var link = 'https://github.com/openlayers/ol3/blob/v' + currentVersion + '/' +
|
||||||
textParts[0];
|
textParts[0];
|
||||||
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
|
el.innerHTML = '<a href="' + link + '">' + textParts[0] + '</a>, ' +
|
||||||
'<a href="' + link + textParts[1].replace('line ', '#l') + '">' +
|
'<a href="' + link + textParts[1].replace('line ', '#L') + '">' +
|
||||||
textParts[1] + '</a>';
|
textParts[1] + '</a>';
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
// show/hide unstable items
|
// show/hide unstable items
|
||||||
var links = $('a[href^="ol."]');
|
var links = $('a[href^="ol."]');
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@import url(http://fonts.googleapis.com/css?family=Quattrocento+Sans:400,400italic,700);
|
@import url(https://fonts.googleapis.com/css?family=Quattrocento+Sans:400,400italic,700);
|
||||||
.navbar-inverse {
|
.navbar-inverse {
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
@@ -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,6 +40,10 @@
|
|||||||
<?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 ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 } ?>
|
||||||
|
|||||||
@@ -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,22 +15,14 @@
|
|||||||
"externs/topojson.js"
|
"externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"goog.dom.ASSUME_STANDARDS_MODE=true",
|
|
||||||
"goog.json.USE_NATIVE_JSON=true",
|
|
||||||
"goog.DEBUG=false"
|
"goog.DEBUG=false"
|
||||||
],
|
],
|
||||||
"jscomp_error": [
|
"jscomp_error": [
|
||||||
"*"
|
"*"
|
||||||
],
|
],
|
||||||
"jscomp_off": [
|
"jscomp_off": [
|
||||||
"useOfGoogBase",
|
"lintChecks",
|
||||||
"lintChecks"
|
"analyzerChecks"
|
||||||
],
|
|
||||||
"hide_warnings_for": [
|
|
||||||
"node_modules/closure-util"
|
|
||||||
],
|
|
||||||
"jscomp_warning": [
|
|
||||||
"unnecessaryCasts"
|
|
||||||
],
|
],
|
||||||
"extra_annotation_name": [
|
"extra_annotation_name": [
|
||||||
"api", "observable"
|
"api", "observable"
|
||||||
|
|||||||
226
doc/errors/index.md
Normal file
226
doc/errors/index.md
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
---
|
||||||
|
title: Errors
|
||||||
|
layout: doc.hbs
|
||||||
|
---
|
||||||
|
|
||||||
|
# Errors
|
||||||
|
|
||||||
|
### 1
|
||||||
|
|
||||||
|
The view center is not defined.
|
||||||
|
|
||||||
|
### 2
|
||||||
|
|
||||||
|
The view resolution is not defined.
|
||||||
|
|
||||||
|
### 3
|
||||||
|
|
||||||
|
The view rotation is not defined.
|
||||||
|
|
||||||
|
### 4
|
||||||
|
|
||||||
|
`image` and `src` cannot be provided at the same time.
|
||||||
|
|
||||||
|
### 5
|
||||||
|
|
||||||
|
`imgSize` must be set when `image` is provided.
|
||||||
|
|
||||||
|
### 6
|
||||||
|
|
||||||
|
A defined and non-empty `src` or `image` must be provided.
|
||||||
|
|
||||||
|
### 7
|
||||||
|
|
||||||
|
`format` must be set when `url` is set.
|
||||||
|
|
||||||
|
### 8
|
||||||
|
|
||||||
|
Unknown `serverType` configured.
|
||||||
|
|
||||||
|
### 9
|
||||||
|
|
||||||
|
`url` must be configured or set using `#setUrl()`.
|
||||||
|
|
||||||
|
### 10
|
||||||
|
|
||||||
|
The default `geometryFunction` can only handle `ol.geom.Point` geometries.
|
||||||
|
|
||||||
|
### 11
|
||||||
|
|
||||||
|
`options.featureTypes` should be an Array.
|
||||||
|
|
||||||
|
### 12
|
||||||
|
|
||||||
|
`options.geometryName` must also be provided when `options.bbox` is set.
|
||||||
|
|
||||||
|
### 13
|
||||||
|
|
||||||
|
Invalid corner. Valid corners are `top-left`, `top-right`, `bottom-right` and `bottom-left`.
|
||||||
|
|
||||||
|
### 14
|
||||||
|
|
||||||
|
Invalid color. Valid colors are all [CSS colors](https://developer.mozilla.org/en-US/docs/Web/CSS/color).
|
||||||
|
|
||||||
|
### 15
|
||||||
|
|
||||||
|
Tried to get a value for a key that does not exist in the cache.
|
||||||
|
|
||||||
|
### 16
|
||||||
|
|
||||||
|
Tried to set a value for a key that is used already.
|
||||||
|
|
||||||
|
### 17
|
||||||
|
|
||||||
|
`resolutions` must be sorted in descending order.
|
||||||
|
|
||||||
|
### 18
|
||||||
|
|
||||||
|
Either `origin` or `origins` must be configured, never both.
|
||||||
|
|
||||||
|
### 19
|
||||||
|
|
||||||
|
Number of `tileSizes` and `resolutions` must be equal.
|
||||||
|
|
||||||
|
### 20
|
||||||
|
|
||||||
|
Number of `origins` and `resolutions` must be equal.
|
||||||
|
|
||||||
|
### 22
|
||||||
|
|
||||||
|
Either `tileSize` or `tileSizes` must be configured, never both.
|
||||||
|
|
||||||
|
### 23
|
||||||
|
|
||||||
|
The passed `ol.TileCoord`s must all have the same `z` value.
|
||||||
|
|
||||||
|
### 24
|
||||||
|
|
||||||
|
Invalid extent or geometry provided as `geometry`.
|
||||||
|
|
||||||
|
### 25
|
||||||
|
|
||||||
|
Cannot fit empty extent provided as `geometry`.
|
||||||
|
|
||||||
|
### 26
|
||||||
|
|
||||||
|
Features for `deletes` must have an id set by the feature reader or `ol.Feature#setId()`.
|
||||||
|
|
||||||
|
### 27
|
||||||
|
|
||||||
|
Features for `updates` must have an id set by the feature reader or `ol.Feature#setId()`.
|
||||||
|
|
||||||
|
### 28
|
||||||
|
|
||||||
|
`renderMode` must be `'image'`, `'hybrid'` or `'vector'`.
|
||||||
|
|
||||||
|
### 29
|
||||||
|
|
||||||
|
`x` must be greater than `0`.
|
||||||
|
|
||||||
|
### 30
|
||||||
|
|
||||||
|
The passed `feature` was already added to the source.
|
||||||
|
|
||||||
|
### 31
|
||||||
|
|
||||||
|
Tried to enqueue an `element` that was already added to the queue.
|
||||||
|
|
||||||
|
### 32
|
||||||
|
|
||||||
|
Transformation matrix cannot be inverted.
|
||||||
|
|
||||||
|
### 33
|
||||||
|
|
||||||
|
Invalid `units`. `'degrees'`, `'imperial'`, `'nautical'`, `'metric'` or `'us'` required.
|
||||||
|
|
||||||
|
### 34
|
||||||
|
|
||||||
|
Invalid geometry layout. Must be `XY`, `XYZ`, `XYM` or `XYZM`.
|
||||||
|
|
||||||
|
### 35
|
||||||
|
|
||||||
|
Unknown GeoJSON object type. Expected `"Feature"` or `"FeatureCollection"`.
|
||||||
|
|
||||||
|
### 36
|
||||||
|
|
||||||
|
Unknown SRS type. Expected `"name"` or `"EPSG"`.
|
||||||
|
|
||||||
|
### 37
|
||||||
|
|
||||||
|
Unknown geometry type found. Expected `'Point'`, `'LineString'`, `'Polygon'` or `'GeometryCollection'`.
|
||||||
|
|
||||||
|
### 38
|
||||||
|
|
||||||
|
`styleMapValue` has an unknown type.
|
||||||
|
|
||||||
|
### 39
|
||||||
|
|
||||||
|
Unknown geometry type found. Expected `'GeometryCollection'`, `'MultiPoint'`, `'MultiLineString'` or `'MultiPolygon'`.
|
||||||
|
|
||||||
|
### 40
|
||||||
|
|
||||||
|
Expected `feature` to have a geometry.
|
||||||
|
|
||||||
|
### 41
|
||||||
|
|
||||||
|
Expected an `ol.style.Style` or an array of `ol.style.Style`.
|
||||||
|
|
||||||
|
### 42
|
||||||
|
|
||||||
|
Expected an `ol.Feature`, but got an `ol.RenderFeature`.
|
||||||
|
|
||||||
|
### 43
|
||||||
|
|
||||||
|
Expected `layers` to be an array or an `ol.Collection`.
|
||||||
|
|
||||||
|
### 44
|
||||||
|
|
||||||
|
`logo.href` should be a string.
|
||||||
|
|
||||||
|
### 45
|
||||||
|
|
||||||
|
`logo.src` should be a string.
|
||||||
|
|
||||||
|
### 46
|
||||||
|
|
||||||
|
Incorrect format for `renderer` option.
|
||||||
|
|
||||||
|
### 47
|
||||||
|
|
||||||
|
Expected `controls` to be an array or an `ol.Collection`.
|
||||||
|
|
||||||
|
### 48
|
||||||
|
|
||||||
|
Expected `interactions` to be an array or an `ol.Collection`.
|
||||||
|
|
||||||
|
### 49
|
||||||
|
|
||||||
|
Expected `overlays` to be an array or an `ol.Collection`.
|
||||||
|
|
||||||
|
### 50
|
||||||
|
|
||||||
|
Cannot determine Rest Service from url.
|
||||||
|
|
||||||
|
### 51
|
||||||
|
|
||||||
|
Either `url` or `tileJSON` options must be provided.
|
||||||
|
|
||||||
|
### 52
|
||||||
|
|
||||||
|
Unknown `serverType` configured.
|
||||||
|
|
||||||
|
### 53
|
||||||
|
|
||||||
|
Unknown `tierSizeCalculation` configured.
|
||||||
|
|
||||||
|
### 54
|
||||||
|
|
||||||
|
Hex color should have 3 or 6 digits.
|
||||||
|
|
||||||
|
### 55
|
||||||
|
|
||||||
|
The `{-y}` placeholder requires a tile grid with extent.
|
||||||
|
|
||||||
|
### 56
|
||||||
|
|
||||||
|
`mapBrowserEvent` must originate from a pointer event.
|
||||||
35
doc/faq.md
35
doc/faq.md
@@ -20,6 +20,7 @@ Table of contents:
|
|||||||
* [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-)
|
* [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-)
|
||||||
* [Why aren't there any features in my source?](#why-aren-t-there-any-features-in-my-source-)
|
* [Why aren't there any features in my source?](#why-aren-t-there-any-features-in-my-source-)
|
||||||
* [How do I force a re-render of the map?](#how-do-i-force-a-re-render-of-the-map-)
|
* [How do I force a re-render of the map?](#how-do-i-force-a-re-render-of-the-map-)
|
||||||
|
* [Why are my features not found?](#why-are-my-features-not-found-)
|
||||||
* [How do I create a custom build of OpenLayers?](#how-do-i-create-a-custom-build-of-openlayers-)
|
* [How do I create a custom build of OpenLayers?](#how-do-i-create-a-custom-build-of-openlayers-)
|
||||||
* [Do I need to write my own code using Closure library?](#do-i-need-to-write-my-own-code-using-closure-library-)
|
* [Do I need to write my own code using Closure library?](#do-i-need-to-write-my-own-code-using-closure-library-)
|
||||||
* [Do I need to compress my code with Closure compiler?](#do-i-need-to-compress-my-code-with-closure-compiler-)
|
* [Do I need to compress my code with Closure compiler?](#do-i-need-to-compress-my-code-with-closure-compiler-)
|
||||||
@@ -161,6 +162,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
|
||||||
@@ -300,6 +317,24 @@ map.render();
|
|||||||
map.renderSync();
|
map.renderSync();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Why are my features not found?
|
||||||
|
|
||||||
|
You are using `ol.Map#forEachFeatureAtPixel` or `ol.Map#hasFeatureAtPixel`, but
|
||||||
|
it sometimes does not work for large icons or labels? The *hit detection* only
|
||||||
|
checks features that are within a certain distance of the given position. For large
|
||||||
|
icons, the actual geometry of a feature might be too far away and is not considered.
|
||||||
|
|
||||||
|
In this case, set the `renderBuffer` property of `ol.layer.Vector` (the default
|
||||||
|
value is 100px):
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var vectorLayer = new ol.layer.Vector({
|
||||||
|
...
|
||||||
|
renderBuffer: 200
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
The recommended value is the size of the largest symbol, line width or label.
|
||||||
|
|
||||||
## How do I create a custom build of OpenLayers?
|
## How do I create a custom build of OpenLayers?
|
||||||
|
|
||||||
|
|||||||
@@ -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](/workshop/).
|
Make sure to also check out the [OpenLayers 3 workshop](/workshop/en/).
|
||||||
|
|
||||||
Find additional reference material in the [API docs](../apidoc).
|
Find additional reference material in the [API docs](../apidoc).
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ 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({
|
||||||
@@ -60,6 +60,12 @@ To include a map a web page you will need 3 things:
|
|||||||
|
|
||||||
The first part is to include the JavaScript library. For the purpose of this tutorial, here we simply point to the openlayers.org website to get the whole library. In a production environment, we would build a custom version of the library including only the module needed for our application.
|
The first part is to include the JavaScript library. For the purpose of this tutorial, here we simply point to the openlayers.org website to get the whole library. In a production environment, we would build a custom version of the library including only the module needed for our application.
|
||||||
|
|
||||||
|
**Optional:** If the application is intended to run on old platforms like Internet Explorer or Android 4.x, another script needs to be included before OpenLayers:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<script src="http://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### `<div>` to contain the map
|
### `<div>` to contain the map
|
||||||
|
|
||||||
@@ -85,7 +91,7 @@ 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({
|
||||||
@@ -95,7 +101,7 @@ The map in the application is contained in a [`<div>` HTML element](http://en.wi
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
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,14 +120,14 @@ 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()
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
Layers in OpenLayers 3 are defined with a type (Image, Tile or Vector) which contains a source. The source is the protocol used to get the map tiles. You can consult the list of [available layer sources here](/en/{{ latest }}/apidoc/ol.source.html)
|
Layers in OpenLayers 3 are defined with a type (Image, Tile or Vector) which contains a source. The source is the protocol used to get the map tiles. You can consult the list of [available layer sources here](/en/{{ latest }}/apidoc/ol.source.html)
|
||||||
|
|
||||||
The next part of the `Map` object is the `View`. The view allow to specify the center, resolution, and rotation of the map. The simplest way to define a view is to define a center point and a zoom level. Note that zoom level 0 is zoomed out.
|
The next part of the `Map` object is the `View`. The view allows to specify the center, resolution, and rotation of the map. The simplest way to define a view is to define a center point and a zoom level. Note that zoom level 0 is zoomed out.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
view: new ol.View({
|
view: new ol.View({
|
||||||
|
|||||||
@@ -160,15 +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.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"
|
||||||
@@ -177,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"
|
||||||
],
|
],
|
||||||
@@ -215,15 +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.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"
|
||||||
@@ -233,41 +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",
|
|
||||||
"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"
|
||||||
|
|||||||
@@ -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,17 +60,12 @@ Creating a custom build requires writing a build configuration file. The format
|
|||||||
"externs/topojson.js"
|
"externs/topojson.js"
|
||||||
],
|
],
|
||||||
"define": [
|
"define": [
|
||||||
"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",
|
||||||
"manage_closure_dependencies": true
|
"manage_closure_dependencies": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -192,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": [
|
||||||
@@ -213,10 +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",
|
||||||
"manage_closure_dependencies": true
|
"manage_closure_dependencies": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -226,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.
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ 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.
|
||||||
|
|
||||||
|
OpenLayers runs on all modern browsers that support [HTML5](https://html.spec.whatwg.org/multipage/) and [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/). This includes Chrome, Firefox, Safari and Edge. For older browsers and platforms like Internet Explorer (down to version 9) and Android 4.x, [polyfills](http://polyfill.io) for `requestAnimationFrame` and `Element.prototype.classList` are required, and using the KML format requires a polyfill for `URL`.
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ The easiest way to use a custom projection is to add the [Proj4js](http://proj4j
|
|||||||
Following example shows definition of a [British National Grid](http://epsg.io/27700):
|
Following example shows definition of a [British National Grid](http://epsg.io/27700):
|
||||||
|
|
||||||
``` html
|
``` html
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.12/proj4.js"></script>
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.14/proj4.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
``` javascript
|
``` javascript
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"globals": {
|
"globals": {
|
||||||
"FastClick": false,
|
|
||||||
"$": false,
|
"$": false,
|
||||||
"arc": false,
|
"arc": false,
|
||||||
"common": false,
|
"common": false,
|
||||||
|
|||||||
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,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],
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ 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:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<select id="layer-select">
|
<select id="layer-select">
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ 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:
|
resources:
|
||||||
- https://code.jquery.com/jquery-1.11.2.min.js
|
- https://code.jquery.com/jquery-2.2.3.min.js
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
|
|||||||
26
examples/cartodb.html
Normal file
26
examples/cartodb.html
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
layout: example.html
|
||||||
|
title: CartoDB source example
|
||||||
|
shortdesc: Example of a cartodb map.
|
||||||
|
docs: >
|
||||||
|
A simple example with an anonymous cartodb map
|
||||||
|
tags: "simple, openstreetmap, attribution"
|
||||||
|
---
|
||||||
|
<div class="row-fluid">
|
||||||
|
<div class="span12">
|
||||||
|
<div id="map" class="map"></div>
|
||||||
|
<div>
|
||||||
|
<form class="form-horizontal">
|
||||||
|
<label>
|
||||||
|
Show countries larger than
|
||||||
|
<select id="country-area" class="form-control">
|
||||||
|
<option value="0" default>0 ㎢</option>
|
||||||
|
<option value="5000">5000 ㎢</option>
|
||||||
|
<option value="10000">10000 ㎢</option>
|
||||||
|
<option value="50000">50000 ㎢</option>
|
||||||
|
<option value="100000">100000 ㎢</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
48
examples/cartodb.js
Normal file
48
examples/cartodb.js
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.source.CartoDB');
|
||||||
|
goog.require('ol.source.OSM');
|
||||||
|
|
||||||
|
var mapConfig = {
|
||||||
|
'layers': [{
|
||||||
|
'type': 'cartodb',
|
||||||
|
'options': {
|
||||||
|
'cartocss_version': '2.1.1',
|
||||||
|
'cartocss': '#layer { polygon-fill: #F00; }',
|
||||||
|
'sql': 'select * from european_countries_e where area > 0'
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
|
||||||
|
var cartoDBSource = new ol.source.CartoDB({
|
||||||
|
account: 'documentation',
|
||||||
|
config: mapConfig
|
||||||
|
});
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
layers: [
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.OSM()
|
||||||
|
}),
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: cartoDBSource
|
||||||
|
})
|
||||||
|
],
|
||||||
|
target: 'map',
|
||||||
|
view: new ol.View({
|
||||||
|
center: [0, 0],
|
||||||
|
zoom: 2
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
function setArea(n) {
|
||||||
|
mapConfig.layers[0].options.sql =
|
||||||
|
'select * from european_countries_e where area > ' + n;
|
||||||
|
cartoDBSource.setConfig(mapConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
document.getElementById('country-area').addEventListener('change', function() {
|
||||||
|
setArea(this.value);
|
||||||
|
});
|
||||||
@@ -2,8 +2,6 @@ goog.require('ol.Map');
|
|||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
goog.require('ol.control');
|
goog.require('ol.control');
|
||||||
goog.require('ol.format.GeoJSON');
|
goog.require('ol.format.GeoJSON');
|
||||||
goog.require('ol.geom.Point');
|
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
|
||||||
goog.require('ol.layer.Tile');
|
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');
|
||||||
|
|||||||
@@ -7,3 +7,7 @@ docs: >
|
|||||||
tags: "cluster, vector"
|
tags: "cluster, vector"
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
|
<form>
|
||||||
|
<label>cluster distance</label>
|
||||||
|
<input id="distance" type="range" min="0" max="100" step="1" value="40"/>
|
||||||
|
</form>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ goog.require('ol.geom.Point');
|
|||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
goog.require('ol.source.Cluster');
|
goog.require('ol.source.Cluster');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
goog.require('ol.style.Circle');
|
goog.require('ol.style.Circle');
|
||||||
goog.require('ol.style.Fill');
|
goog.require('ol.style.Fill');
|
||||||
@@ -14,6 +14,8 @@ goog.require('ol.style.Style');
|
|||||||
goog.require('ol.style.Text');
|
goog.require('ol.style.Text');
|
||||||
|
|
||||||
|
|
||||||
|
var distance = document.getElementById('distance');
|
||||||
|
|
||||||
var count = 20000;
|
var count = 20000;
|
||||||
var features = new Array(count);
|
var features = new Array(count);
|
||||||
var e = 4500000;
|
var e = 4500000;
|
||||||
@@ -27,7 +29,7 @@ var source = new ol.source.Vector({
|
|||||||
});
|
});
|
||||||
|
|
||||||
var clusterSource = new ol.source.Cluster({
|
var clusterSource = new ol.source.Cluster({
|
||||||
distance: 40,
|
distance: parseInt(distance.value, 10),
|
||||||
source: source
|
source: source
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -62,7 +64,7 @@ var clusters = new ol.layer.Vector({
|
|||||||
});
|
});
|
||||||
|
|
||||||
var raster = new ol.layer.Tile({
|
var raster = new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
});
|
});
|
||||||
|
|
||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
@@ -74,3 +76,7 @@ var map = new ol.Map({
|
|||||||
zoom: 2
|
zoom: 2
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
distance.addEventListener('input', function() {
|
||||||
|
clusterSource.setDistance(parseInt(distance.value, 10));
|
||||||
|
});
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ var twoPi = 2 * Math.PI;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert an RGB pixel into an HCL pixel.
|
* Convert an RGB pixel into an HCL pixel.
|
||||||
* @param {ol.raster.Pixel} pixel A pixel in RGB space.
|
* @param {Array.<number>} pixel A pixel in RGB space.
|
||||||
* @return {ol.raster.Pixel} A pixel in HCL space.
|
* @return {Array.<number>} A pixel in HCL space.
|
||||||
*/
|
*/
|
||||||
function rgb2hcl(pixel) {
|
function rgb2hcl(pixel) {
|
||||||
var red = rgb2xyz(pixel[0]);
|
var red = rgb2xyz(pixel[0]);
|
||||||
@@ -57,8 +57,8 @@ function rgb2hcl(pixel) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert an HCL pixel into an RGB pixel.
|
* Convert an HCL pixel into an RGB pixel.
|
||||||
* @param {ol.raster.Pixel} pixel A pixel in HCL space.
|
* @param {Array.<number>} pixel A pixel in HCL space.
|
||||||
* @return {ol.raster.Pixel} A pixel in RGB space.
|
* @return {Array.<number>} A pixel in RGB space.
|
||||||
*/
|
*/
|
||||||
function hcl2rgb(pixel) {
|
function hcl2rgb(pixel) {
|
||||||
var h = pixel[0];
|
var h = pixel[0];
|
||||||
|
|||||||
9
examples/custom-icon.html
Normal file
9
examples/custom-icon.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
layout: example.html
|
||||||
|
title: Custom Icon
|
||||||
|
shortdesc: Example using a custom attribution icon object
|
||||||
|
docs: >
|
||||||
|
This example creates a custom element for the attribution icon
|
||||||
|
tags: "icon, element"
|
||||||
|
---
|
||||||
|
<div id="map" class="map"><div id="popup"></div></div>
|
||||||
27
examples/custom-icon.js
Normal file
27
examples/custom-icon.js
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.source.OSM');
|
||||||
|
|
||||||
|
var logoElement = document.createElement('a');
|
||||||
|
logoElement.href = 'http://www.osgeo.org/';
|
||||||
|
logoElement.target = '_blank';
|
||||||
|
|
||||||
|
var logoImage = document.createElement('img');
|
||||||
|
logoImage.src = 'https://www.osgeo.org/sites/all/themes/osgeo/logo.png';
|
||||||
|
|
||||||
|
logoElement.appendChild(logoImage);
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
layers: [
|
||||||
|
new ol.layer.Tile({
|
||||||
|
source: new ol.source.OSM()
|
||||||
|
})
|
||||||
|
],
|
||||||
|
target: 'map',
|
||||||
|
view: new ol.View({
|
||||||
|
center: [0, 0],
|
||||||
|
zoom: 2
|
||||||
|
}),
|
||||||
|
logo: logoElement
|
||||||
|
});
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
goog.require('ol');
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
@@ -149,7 +150,7 @@ var map = new ol.Map({
|
|||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.TileJSON({
|
source: new ol.source.TileJSON({
|
||||||
url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.json'
|
url: 'https://api.tiles.mapbox.com/v3/mapbox.geography-class.json?secure'
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
new ol.layer.Vector({
|
new ol.layer.Vector({
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ docs: >
|
|||||||
<p>The example loads TopoJSON geometries and uses d3 (<code>d3.geo.path</code>) to render these geometries to a canvas element that is then used as the image of an ol3 image layer.</p>
|
<p>The example loads TopoJSON geometries and uses d3 (<code>d3.geo.path</code>) to render these geometries to a canvas element that is then used as the image of an ol3 image layer.</p>
|
||||||
tags: "d3"
|
tags: "d3"
|
||||||
resources:
|
resources:
|
||||||
- http://d3js.org/d3.v3.min.js
|
- https://d3js.org/d3.v3.min.js
|
||||||
- http://d3js.org/topojson.v1.min.js
|
- https://d3js.org/topojson.v1.min.js
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,43 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
|
|
||||||
<sld:NamedLayer>
|
|
||||||
<sld:Name>countries</sld:Name>
|
|
||||||
<sld:UserStyle>
|
|
||||||
<sld:Name>countries</sld:Name>
|
|
||||||
<sld:Title>A sample style for countries</sld:Title>
|
|
||||||
<sld:IsDefault>1</sld:IsDefault>
|
|
||||||
<sld:Abstract>A sample style for countries</sld:Abstract>
|
|
||||||
<sld:FeatureTypeStyle>
|
|
||||||
<sld:Name>name</sld:Name>
|
|
||||||
<sld:Rule>
|
|
||||||
<sld:Name>Sample</sld:Name>
|
|
||||||
<sld:Title>Sample</sld:Title>
|
|
||||||
<sld:PolygonSymbolizer>
|
|
||||||
<sld:Fill>
|
|
||||||
<sld:CssParameter name="fill">#ff0000</sld:CssParameter>
|
|
||||||
<sld:CssParameter name="fill-opacity">0.6</sld:CssParameter>
|
|
||||||
</sld:Fill>
|
|
||||||
<sld:Stroke>
|
|
||||||
<sld:CssParameter name="stroke">#00FF00</sld:CssParameter>
|
|
||||||
<sld:CssParameter name="stroke-opacity">0.5</sld:CssParameter>
|
|
||||||
<sld:CssParameter name="stroke-width">4</sld:CssParameter>
|
|
||||||
</sld:Stroke>
|
|
||||||
</sld:PolygonSymbolizer>
|
|
||||||
</sld:Rule>
|
|
||||||
<sld:Rule>
|
|
||||||
<sld:MaxScaleDenominator>20000000</sld:MaxScaleDenominator>
|
|
||||||
<sld:TextSymbolizer>
|
|
||||||
<sld:Label>
|
|
||||||
<ogc:PropertyName>name</ogc:PropertyName>
|
|
||||||
</sld:Label>
|
|
||||||
<sld:Font>
|
|
||||||
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
|
|
||||||
<sld:CssParameter name="font-size">10</sld:CssParameter>
|
|
||||||
<sld:CssParameter name="font-style">Normal</sld:CssParameter>
|
|
||||||
</sld:Font>
|
|
||||||
</sld:TextSymbolizer>
|
|
||||||
</sld:Rule>
|
|
||||||
</sld:FeatureTypeStyle>
|
|
||||||
</sld:UserStyle>
|
|
||||||
</sld:NamedLayer>
|
|
||||||
</sld:StyledLayerDescriptor>
|
|
||||||
@@ -6,7 +6,7 @@ docs: >
|
|||||||
Example of using the drag-and-drop interaction with a ol.source.ImageVector. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to an image on the client.
|
Example of using the drag-and-drop interaction with a ol.source.ImageVector. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. Each file is rendered to an image on the client.
|
||||||
tags: "drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, vector, image"
|
tags: "drag-and-drop-image-vector, gpx, geojson, igc, kml, topojson, vector, image"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<div id="info"> </div>
|
<div id="info"> </div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ docs: >
|
|||||||
Example of using the drag-and-drop interaction. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. There is no projection transform support, so this will only work with data in EPSG:4326 and EPSG:3857.
|
Example of using the drag-and-drop interaction. Drag and drop GPX, GeoJSON, IGC, KML, or TopoJSON files on to the map. There is no projection transform support, so this will only work with data in EPSG:4326 and EPSG:3857.
|
||||||
tags: "drag-and-drop, gpx, geojson, igc, kml, topojson"
|
tags: "drag-and-drop, gpx, geojson, igc, kml, topojson"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<div id="info"> </div>
|
<div id="info"> </div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ goog.require('ol.View');
|
|||||||
goog.require('ol.interaction');
|
goog.require('ol.interaction');
|
||||||
goog.require('ol.interaction.DragRotateAndZoom');
|
goog.require('ol.interaction.DragRotateAndZoom');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
|
|
||||||
|
|
||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
@@ -12,7 +12,7 @@ var map = new ol.Map({
|
|||||||
]),
|
]),
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
renderer: common.getRendererFromQueryString(),
|
renderer: common.getRendererFromQueryString(),
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ goog.require('ol.interaction.Draw');
|
|||||||
goog.require('ol.interaction.Modify');
|
goog.require('ol.interaction.Modify');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
goog.require('ol.style.Circle');
|
goog.require('ol.style.Circle');
|
||||||
goog.require('ol.style.Fill');
|
goog.require('ol.style.Fill');
|
||||||
@@ -14,7 +14,7 @@ goog.require('ol.style.Stroke');
|
|||||||
goog.require('ol.style.Style');
|
goog.require('ol.style.Style');
|
||||||
|
|
||||||
var raster = new ol.layer.Tile({
|
var raster = new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
});
|
});
|
||||||
|
|
||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ goog.require('ol.geom.Polygon');
|
|||||||
goog.require('ol.interaction.Draw');
|
goog.require('ol.interaction.Draw');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
goog.require('ol.style.Circle');
|
goog.require('ol.style.Circle');
|
||||||
goog.require('ol.style.Fill');
|
goog.require('ol.style.Fill');
|
||||||
@@ -12,7 +12,7 @@ goog.require('ol.style.Stroke');
|
|||||||
goog.require('ol.style.Style');
|
goog.require('ol.style.Style');
|
||||||
|
|
||||||
var raster = new ol.layer.Tile({
|
var raster = new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
});
|
});
|
||||||
|
|
||||||
var source = new ol.source.Vector({wrapX: false});
|
var source = new ol.source.Vector({wrapX: false});
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
goog.require('ol.Feature');
|
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
goog.require('ol.geom.MultiPoint');
|
goog.require('ol.geom.MultiPoint');
|
||||||
goog.require('ol.geom.Point');
|
goog.require('ol.geom.Point');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.style.Circle');
|
goog.require('ol.style.Circle');
|
||||||
goog.require('ol.style.Fill');
|
goog.require('ol.style.Fill');
|
||||||
goog.require('ol.style.Stroke');
|
goog.require('ol.style.Stroke');
|
||||||
@@ -14,7 +13,7 @@ goog.require('ol.style.Style');
|
|||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
renderer: common.getRendererFromQueryString(),
|
renderer: common.getRendererFromQueryString(),
|
||||||
@@ -25,11 +24,13 @@ var map = new ol.Map({
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
var imageStyle = new ol.style.Circle({
|
var imageStyle = new ol.style.Style({
|
||||||
|
image: new ol.style.Circle({
|
||||||
radius: 5,
|
radius: 5,
|
||||||
snapToPixel: false,
|
snapToPixel: false,
|
||||||
fill: new ol.style.Fill({color: 'yellow'}),
|
fill: new ol.style.Fill({color: 'yellow'}),
|
||||||
stroke: new ol.style.Stroke({color: 'red', width: 1})
|
stroke: new ol.style.Stroke({color: 'red', width: 1})
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
var headInnerImageStyle = new ol.style.Style({
|
var headInnerImageStyle = new ol.style.Style({
|
||||||
@@ -40,10 +41,12 @@ var headInnerImageStyle = new ol.style.Style({
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
var headOuterImageStyle = new ol.style.Circle({
|
var headOuterImageStyle = new ol.style.Style({
|
||||||
|
image: new ol.style.Circle({
|
||||||
radius: 5,
|
radius: 5,
|
||||||
snapToPixel: false,
|
snapToPixel: false,
|
||||||
fill: new ol.style.Fill({color: 'black'})
|
fill: new ol.style.Fill({color: 'black'})
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
var n = 200;
|
var n = 200;
|
||||||
@@ -63,16 +66,16 @@ map.on('postcompose', function(event) {
|
|||||||
var y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r);
|
var y = (R + r) * Math.sin(t) + p * Math.sin((R + r) * t / r);
|
||||||
coordinates.push([x, y]);
|
coordinates.push([x, y]);
|
||||||
}
|
}
|
||||||
vectorContext.setImageStyle(imageStyle);
|
vectorContext.setStyle(imageStyle);
|
||||||
vectorContext.drawMultiPointGeometry(
|
vectorContext.drawGeometry(new ol.geom.MultiPoint(coordinates));
|
||||||
new ol.geom.MultiPoint(coordinates), null);
|
|
||||||
|
|
||||||
var headPoint = new ol.geom.Point(coordinates[coordinates.length - 1]);
|
var headPoint = new ol.geom.Point(coordinates[coordinates.length - 1]);
|
||||||
var headFeature = new ol.Feature(headPoint);
|
|
||||||
vectorContext.drawFeature(headFeature, headInnerImageStyle);
|
|
||||||
|
|
||||||
vectorContext.setImageStyle(headOuterImageStyle);
|
vectorContext.setStyle(headOuterImageStyle);
|
||||||
vectorContext.drawMultiPointGeometry(headPoint, null);
|
vectorContext.drawGeometry(headPoint);
|
||||||
|
|
||||||
|
vectorContext.setStyle(headInnerImageStyle);
|
||||||
|
vectorContext.drawGeometry(headPoint);
|
||||||
|
|
||||||
map.render();
|
map.render();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
}
|
}
|
||||||
.tooltip.in {
|
.tooltip.in {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
filter: alpha(opacity=100);
|
|
||||||
}
|
}
|
||||||
.tooltip.top .tooltip-arrow {
|
.tooltip.top .tooltip-arrow {
|
||||||
border-top-color: white;
|
border-top-color: white;
|
||||||
|
|||||||
@@ -13,6 +13,12 @@ goog.require('ol.style.Stroke');
|
|||||||
goog.require('ol.style.Style');
|
goog.require('ol.style.Style');
|
||||||
|
|
||||||
|
|
||||||
|
var symbol = [[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]];
|
||||||
|
var scale;
|
||||||
|
var scaleFunction = function(coordinate) {
|
||||||
|
return [coordinate[0] * scale, coordinate[1] * scale];
|
||||||
|
};
|
||||||
|
|
||||||
var styleCache = {};
|
var styleCache = {};
|
||||||
var styleFunction = function(feature) {
|
var styleFunction = function(feature) {
|
||||||
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
|
// 2012_Earthquakes_Mag5.kml stores the magnitude of each earthquake in a
|
||||||
@@ -21,22 +27,23 @@ var styleFunction = function(feature) {
|
|||||||
var name = feature.get('name');
|
var name = feature.get('name');
|
||||||
var magnitude = parseFloat(name.substr(2));
|
var magnitude = parseFloat(name.substr(2));
|
||||||
var size = parseInt(10 + 40 * (magnitude - 5), 10);
|
var size = parseInt(10 + 40 * (magnitude - 5), 10);
|
||||||
|
scale = size / 10;
|
||||||
var style = styleCache[size];
|
var style = styleCache[size];
|
||||||
if (!style) {
|
if (!style) {
|
||||||
var canvas =
|
var canvas =
|
||||||
/** @type {HTMLCanvasElement} */ (document.createElement('canvas'));
|
/** @type {HTMLCanvasElement} */ (document.createElement('canvas'));
|
||||||
var render = ol.render.toContext(
|
var vectorContext = ol.render.toContext(
|
||||||
/** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d')),
|
/** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d')),
|
||||||
{size: [size + 2, size + 2], pixelRatio: size / 10});
|
{size: [size, size], pixelRatio: 1});
|
||||||
render.setFillStrokeStyle(
|
vectorContext.setStyle(new ol.style.Style({
|
||||||
new ol.style.Fill({color: 'rgba(255, 153, 0, 0.4)'}),
|
fill: new ol.style.Fill({color: 'rgba(255, 153, 0, 0.4)'}),
|
||||||
new ol.style.Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 1}));
|
stroke: new ol.style.Stroke({color: 'rgba(255, 204, 0, 0.2)', width: 2})
|
||||||
render.drawPolygonGeometry(new ol.geom.Polygon(
|
}));
|
||||||
[[[0, 0], [4, 2], [6, 0], [10, 5], [6, 3], [4, 5], [0, 0]]]));
|
vectorContext.drawGeometry(new ol.geom.Polygon([symbol.map(scaleFunction)]));
|
||||||
style = new ol.style.Style({
|
style = new ol.style.Style({
|
||||||
image: new ol.style.Icon({
|
image: new ol.style.Icon({
|
||||||
img: canvas,
|
img: canvas,
|
||||||
imgSize: [canvas.width, canvas.height],
|
imgSize: [size, size],
|
||||||
rotation: 1.2
|
rotation: 1.2
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ docs: >
|
|||||||
Example of exporting a map as a PDF using the <a href="https://github.com/MrRio/jsPDF" target="_blank">jsPDF</a> library.
|
Example of exporting a map as a PDF using the <a href="https://github.com/MrRio/jsPDF" target="_blank">jsPDF</a> library.
|
||||||
tags: "export, pdf, openstreetmap"
|
tags: "export, pdf, openstreetmap"
|
||||||
resources:
|
resources:
|
||||||
- http://mrrio.github.io/jsPDF/dist/jspdf.min.js
|
- https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js
|
||||||
---
|
---
|
||||||
<div class="row-fluid">
|
<div class="row-fluid">
|
||||||
<div class="span12">
|
<div class="span12">
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// NOCOMPILE
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
goog.require('ol.control');
|
goog.require('ol.control');
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ goog.require('ol.source.OSM');
|
|||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
goog.require('ol.style.Circle');
|
goog.require('ol.style.Circle');
|
||||||
goog.require('ol.style.Stroke');
|
goog.require('ol.style.Stroke');
|
||||||
|
goog.require('ol.style.Style');
|
||||||
|
|
||||||
|
|
||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
@@ -67,17 +68,19 @@ function flash(feature) {
|
|||||||
var radius = ol.easing.easeOut(elapsedRatio) * 25 + 5;
|
var radius = ol.easing.easeOut(elapsedRatio) * 25 + 5;
|
||||||
var opacity = ol.easing.easeOut(1 - elapsedRatio);
|
var opacity = ol.easing.easeOut(1 - elapsedRatio);
|
||||||
|
|
||||||
var flashStyle = new ol.style.Circle({
|
var style = new ol.style.Style({
|
||||||
|
image: new ol.style.Circle({
|
||||||
radius: radius,
|
radius: radius,
|
||||||
snapToPixel: false,
|
snapToPixel: false,
|
||||||
stroke: new ol.style.Stroke({
|
stroke: new ol.style.Stroke({
|
||||||
color: 'rgba(255, 0, 0, ' + opacity + ')',
|
color: 'rgba(255, 0, 0, ' + opacity + ')',
|
||||||
width: 1
|
width: 0.25 + opacity
|
||||||
|
})
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
vectorContext.setImageStyle(flashStyle);
|
vectorContext.setStyle(style);
|
||||||
vectorContext.drawPointGeometry(flashGeom, null);
|
vectorContext.drawGeometry(flashGeom);
|
||||||
if (elapsed > duration) {
|
if (elapsed > duration) {
|
||||||
ol.Observable.unByKey(listenerKey);
|
ol.Observable.unByKey(listenerKey);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
// NOCOMPILE
|
// NOCOMPILE
|
||||||
goog.require('ol.Attribution');
|
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
@@ -27,12 +26,11 @@ var map = new ol.Map({
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
var defaultStroke = new ol.style.Stroke({
|
var style = new ol.style.Style({
|
||||||
|
stroke: new ol.style.Stroke({
|
||||||
color: '#EAE911',
|
color: '#EAE911',
|
||||||
width: 2
|
width: 2
|
||||||
});
|
})
|
||||||
var defaultStyle = new ol.style.Style({
|
|
||||||
stroke: defaultStroke
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var flightsSource;
|
var flightsSource;
|
||||||
@@ -47,14 +45,13 @@ var pointsPerMs = 0.1;
|
|||||||
var animateFlights = function(event) {
|
var animateFlights = function(event) {
|
||||||
var vectorContext = event.vectorContext;
|
var vectorContext = event.vectorContext;
|
||||||
var frameState = event.frameState;
|
var frameState = event.frameState;
|
||||||
vectorContext.setFillStrokeStyle(null, defaultStroke);
|
vectorContext.setStyle(style);
|
||||||
|
|
||||||
var features = flightsSource.getFeatures();
|
var features = flightsSource.getFeatures();
|
||||||
for (var i = 0; i < features.length; i++) {
|
for (var i = 0; i < features.length; i++) {
|
||||||
var feature = features[i];
|
var feature = features[i];
|
||||||
if (!feature.get('finished')) {
|
if (!feature.get('finished')) {
|
||||||
// only draw the lines for which the animation has not
|
// only draw the lines for which the animation has not finished yet
|
||||||
// finished yet
|
|
||||||
var coords = feature.getGeometry().getCoordinates();
|
var coords = feature.getGeometry().getCoordinates();
|
||||||
var elapsedTime = frameState.time - feature.get('start');
|
var elapsedTime = frameState.time - feature.get('start');
|
||||||
var elapsedPoints = elapsedTime * pointsPerMs;
|
var elapsedPoints = elapsedTime * pointsPerMs;
|
||||||
@@ -67,19 +64,17 @@ var animateFlights = function(event) {
|
|||||||
var currentLine = new ol.geom.LineString(coords.slice(0, maxIndex));
|
var currentLine = new ol.geom.LineString(coords.slice(0, maxIndex));
|
||||||
|
|
||||||
// directly draw the line with the vector context
|
// directly draw the line with the vector context
|
||||||
vectorContext.drawLineStringGeometry(currentLine, feature);
|
vectorContext.drawGeometry(currentLine);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// tell OL3 to continue the postcompose animation
|
// tell OL3 to continue the animation
|
||||||
map.render();
|
map.render();
|
||||||
};
|
};
|
||||||
|
|
||||||
flightsSource = new ol.source.Vector({
|
flightsSource = new ol.source.Vector({
|
||||||
wrapX: false,
|
wrapX: false,
|
||||||
attributions: [new ol.Attribution({
|
attributions: 'Flight data by ' +
|
||||||
html: 'Flight data by ' +
|
'<a href="http://openflights.org/data.html">OpenFlights</a>,',
|
||||||
'<a href="http://openflights.org/data.html">OpenFlights</a>,'
|
|
||||||
})],
|
|
||||||
loader: function() {
|
loader: function() {
|
||||||
var url = 'data/openflights/flights.json';
|
var url = 'data/openflights/flights.json';
|
||||||
fetch(url).then(function(response) {
|
fetch(url).then(function(response) {
|
||||||
@@ -121,7 +116,7 @@ var flightsLayer = new ol.layer.Vector({
|
|||||||
// if the animation is still active for a feature, do not
|
// if the animation is still active for a feature, do not
|
||||||
// render the feature with the layer style
|
// render the feature with the layer style
|
||||||
if (feature.get('finished')) {
|
if (feature.get('finished')) {
|
||||||
return defaultStyle;
|
return style;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ var map = new ol.Map({
|
|||||||
});
|
});
|
||||||
|
|
||||||
function makeFractal(depth) {
|
function makeFractal(depth) {
|
||||||
var geometry = /** @type {ol.geom.LineString} */ (triangle.clone());
|
var geometry = triangle.clone();
|
||||||
var graph = coordsToGraph(geometry.getCoordinates());
|
var graph = coordsToGraph(geometry.getCoordinates());
|
||||||
for (var i = 0; i < depth; ++i) {
|
for (var i = 0; i < depth; ++i) {
|
||||||
var node = graph;
|
var node = graph;
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ docs: >
|
|||||||
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
|
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
|
||||||
tags: "full-screen, drag, rotate, zoom, bing, bing-maps"
|
tags: "full-screen, drag, rotate, zoom, bing, bing-maps"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ docs: >
|
|||||||
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
|
<p>If there is no button on the map, your browser does not support the <a href="http://caniuse.com/#feat=fullscreen">Full Screen API</a>.</p>
|
||||||
tags: "full-screen, bing, bing-maps"
|
tags: "full-screen, bing, bing-maps"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ tags: "fullscreen, geolocation, orientation, mobile"
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
<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="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.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="../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">
|
||||||
<title>Mobile Geolocation Tracking with Orientation</title>
|
<title>Mobile Geolocation Tracking with Orientation</title>
|
||||||
@@ -44,7 +44,7 @@ tags: "fullscreen, geolocation, orientation, mobile"
|
|||||||
<button id="geolocate">Geolocate Me!</button>
|
<button id="geolocate">Geolocate Me!</button>
|
||||||
<button id="simulate">Simulate</button>
|
<button id="simulate">Simulate</button>
|
||||||
</div>
|
</div>
|
||||||
<script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
|
<script src="http://code.jquery.com/jquery-2.2.3.min.js" type="text/javascript"></script>
|
||||||
<script src="./resources/common.js" type="text/javascript"></script>
|
<script src="./resources/common.js" type="text/javascript"></script>
|
||||||
<script src="loader.js?id=geolocation-orientation" type="text/javascript"></script>
|
<script src="loader.js?id=geolocation-orientation" type="text/javascript"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ docs: >
|
|||||||
`ol.format.WMSGetFeatureInfo` format object, which allows features returned
|
`ol.format.WMSGetFeatureInfo` format object, which allows features returned
|
||||||
by a single WMS GetFeatureInfo request that asks for more than one layer
|
by a single WMS GetFeatureInfo request that asks for more than one layer
|
||||||
to be read by layer name.
|
to be read by layer name.
|
||||||
resources:
|
|
||||||
- https://code.jquery.com/jquery-1.11.2.min.js
|
|
||||||
---
|
---
|
||||||
<table id="info">
|
<table id="info">
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -1,24 +1,23 @@
|
|||||||
goog.require('ol.format.WMSGetFeatureInfo');
|
goog.require('ol.format.WMSGetFeatureInfo');
|
||||||
|
|
||||||
$.ajax({
|
fetch('data/wmsgetfeatureinfo/osm-restaurant-hotel.xml').then(function(response) {
|
||||||
url: './data/wmsgetfeatureinfo/osm-restaurant-hotel.xml',
|
return response.text();
|
||||||
success: function(response) {
|
}).then(function(response) {
|
||||||
|
|
||||||
// this is the standard way to read the features
|
// this is the standard way to read the features
|
||||||
var allFeatures = new ol.format.WMSGetFeatureInfo().readFeatures(response);
|
var allFeatures = new ol.format.WMSGetFeatureInfo().readFeatures(response);
|
||||||
$('#all').html(allFeatures.length.toString());
|
document.getElementById('all').innerText = allFeatures.length.toString();
|
||||||
|
|
||||||
// when specifying the 'layers' options, only the features of those
|
// when specifying the 'layers' options, only the features of those
|
||||||
// layers are returned by the format
|
// layers are returned by the format
|
||||||
var hotelFeatures = new ol.format.WMSGetFeatureInfo({
|
var hotelFeatures = new ol.format.WMSGetFeatureInfo({
|
||||||
layers: ['hotel']
|
layers: ['hotel']
|
||||||
}).readFeatures(response);
|
}).readFeatures(response);
|
||||||
$('#hotel').html(hotelFeatures.length.toString());
|
document.getElementById('hotel').innerText = hotelFeatures.length.toString();
|
||||||
|
|
||||||
var restaurantFeatures = new ol.format.WMSGetFeatureInfo({
|
var restaurantFeatures = new ol.format.WMSGetFeatureInfo({
|
||||||
layers: ['restaurant']
|
layers: ['restaurant']
|
||||||
}).readFeatures(response);
|
}).readFeatures(response);
|
||||||
$('#restaurant').html(restaurantFeatures.length.toString());
|
document.getElementById('restaurant').innerText = restaurantFeatures.length.toString();
|
||||||
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ docs: >
|
|||||||
Example of using the GPX source.
|
Example of using the GPX source.
|
||||||
tags: "GPX"
|
tags: "GPX"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<div id="info"> </div>
|
<div id="info"> </div>
|
||||||
|
|||||||
21
examples/here-maps.html
Normal file
21
examples/here-maps.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
layout: example.html
|
||||||
|
title: HERE Map Tile API
|
||||||
|
shortdesc: Example of a map with map tiles from HERE.
|
||||||
|
docs: >
|
||||||
|
<p><a href="https://developer.here.com/rest-apis/documentation/enterprise-map-tile">HERE Map Tile API</a> used with <code>ol.source.XYZ</code>.</p>
|
||||||
|
<p>Be sure to respect the <a href="https://legal.here.com/en/terms/serviceterms/us/">HERE Service Terms</a> when using their tile API.</p>
|
||||||
|
tags: "here, here-maps, here-tile-api"
|
||||||
|
cloak:
|
||||||
|
a2qhegvZZFIuJDkkqjhQ: Your HERE Maps appId from https://developer.here.com/
|
||||||
|
lPJ3iaFLJDhD8fIAyU582A: Your HERE Maps appCode from https://developer.here.com/
|
||||||
|
---
|
||||||
|
<div id="map" class="map"></div>
|
||||||
|
<select id="layer-select">
|
||||||
|
<option value="normal.day" selected>Normal Day</option>
|
||||||
|
<option value="normal.day.transit">Normal Day Transit</option>
|
||||||
|
<option value="pedestrian.day">Pedestrian Day</option>
|
||||||
|
<option value="terrain.day">Terrain Day</option>
|
||||||
|
<option value="satellite.day">Satellite Day</option>
|
||||||
|
<option value="hybrid.day">Hybrid Day</option>
|
||||||
|
</select>
|
||||||
100
examples/here-maps.js
Normal file
100
examples/here-maps.js
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
goog.require('ol.Map');
|
||||||
|
goog.require('ol.View');
|
||||||
|
goog.require('ol.layer.Tile');
|
||||||
|
goog.require('ol.source.XYZ');
|
||||||
|
|
||||||
|
var appId = 'a2qhegvZZFIuJDkkqjhQ';
|
||||||
|
var appCode = 'lPJ3iaFLJDhD8fIAyU582A';
|
||||||
|
var hereLayers = [
|
||||||
|
{
|
||||||
|
base: 'base',
|
||||||
|
type: 'maptile',
|
||||||
|
scheme: 'normal.day',
|
||||||
|
app_id: appId,
|
||||||
|
app_code: appCode
|
||||||
|
},
|
||||||
|
{
|
||||||
|
base: 'base',
|
||||||
|
type: 'maptile',
|
||||||
|
scheme: 'normal.day.transit',
|
||||||
|
app_id: appId,
|
||||||
|
app_code: appCode
|
||||||
|
},
|
||||||
|
{
|
||||||
|
base: 'base',
|
||||||
|
type: 'maptile',
|
||||||
|
scheme: 'pedestrian.day',
|
||||||
|
app_id: appId,
|
||||||
|
app_code: appCode
|
||||||
|
},
|
||||||
|
{
|
||||||
|
base: 'aerial',
|
||||||
|
type: 'maptile',
|
||||||
|
scheme: 'terrain.day',
|
||||||
|
app_id: appId,
|
||||||
|
app_code: appCode
|
||||||
|
},
|
||||||
|
{
|
||||||
|
base: 'aerial',
|
||||||
|
type: 'maptile',
|
||||||
|
scheme: 'satellite.day',
|
||||||
|
app_id: appId,
|
||||||
|
app_code: appCode
|
||||||
|
},
|
||||||
|
{
|
||||||
|
base: 'aerial',
|
||||||
|
type: 'maptile',
|
||||||
|
scheme: 'hybrid.day',
|
||||||
|
app_id: appId,
|
||||||
|
app_code: appCode
|
||||||
|
}
|
||||||
|
];
|
||||||
|
var urlTpl = 'https://{1-4}.{base}.maps.cit.api.here.com' +
|
||||||
|
'/{type}/2.1/maptile/newest/{scheme}/{z}/{x}/{y}/256/png' +
|
||||||
|
'?app_id={app_id}&app_code={app_code}';
|
||||||
|
var layers = [];
|
||||||
|
var i, ii;
|
||||||
|
for (i = 0, ii = hereLayers.length; i < ii; ++i) {
|
||||||
|
var layerDesc = hereLayers[i];
|
||||||
|
layers.push(new ol.layer.Tile({
|
||||||
|
visible: false,
|
||||||
|
preload: Infinity,
|
||||||
|
source: new ol.source.XYZ({
|
||||||
|
url: createUrl(urlTpl, layerDesc),
|
||||||
|
attributions: 'Map Tiles © 2016 ' +
|
||||||
|
'<a href="http://developer.here.com">HERE</a>'
|
||||||
|
})
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
layers: layers,
|
||||||
|
renderer: common.getRendererFromQueryString(),
|
||||||
|
// Improve user experience by loading tiles while dragging/zooming. Will make
|
||||||
|
// zooming choppy on mobile or slow devices.
|
||||||
|
loadTilesWhileInteracting: true,
|
||||||
|
target: 'map',
|
||||||
|
view: new ol.View({
|
||||||
|
center: [921371.9389, 6358337.7609],
|
||||||
|
zoom: 10
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
function createUrl(tpl, layerDesc) {
|
||||||
|
return tpl
|
||||||
|
.replace('{base}', layerDesc.base)
|
||||||
|
.replace('{type}', layerDesc.type)
|
||||||
|
.replace('{scheme}', layerDesc.scheme)
|
||||||
|
.replace('{app_id}', layerDesc.app_id)
|
||||||
|
.replace('{app_code}', layerDesc.app_code);
|
||||||
|
}
|
||||||
|
|
||||||
|
var select = document.getElementById('layer-select');
|
||||||
|
function onChange() {
|
||||||
|
var scheme = select.value;
|
||||||
|
for (var i = 0, ii = layers.length; i < ii; ++i) {
|
||||||
|
layers[i].setVisible(hereLayers[i].scheme === scheme);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
select.addEventListener('change', onChange);
|
||||||
|
onChange();
|
||||||
@@ -55,7 +55,7 @@ var vectorLayer = new ol.layer.Vector({
|
|||||||
|
|
||||||
var rasterLayer = new ol.layer.Tile({
|
var rasterLayer = new ol.layer.Tile({
|
||||||
source: new ol.source.TileJSON({
|
source: new ol.source.TileJSON({
|
||||||
url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.json',
|
url: 'https://api.tiles.mapbox.com/v3/mapbox.geography-class.json?secure',
|
||||||
crossOrigin: ''
|
crossOrigin: ''
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ docs: >
|
|||||||
Example using an icon to symbolize a point.
|
Example using an icon to symbolize a point.
|
||||||
tags: "vector, style, icon, marker, popup"
|
tags: "vector, style, icon, marker, popup"
|
||||||
resources:
|
resources:
|
||||||
- https://code.jquery.com/jquery-1.11.2.min.js
|
- https://code.jquery.com/jquery-2.2.3.min.js
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
|
||||||
---
|
---
|
||||||
<div id="map" class="map"><div id="popup"></div></div>
|
<div id="map" class="map"><div id="popup"></div></div>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ var vectorLayer = new ol.layer.Vector({
|
|||||||
|
|
||||||
var rasterLayer = new ol.layer.Tile({
|
var rasterLayer = new ol.layer.Tile({
|
||||||
source: new ol.source.TileJSON({
|
source: new ol.source.TileJSON({
|
||||||
url: 'http://api.tiles.mapbox.com/v3/mapbox.geography-class.json',
|
url: 'https://api.tiles.mapbox.com/v3/mapbox.geography-class.json?secure',
|
||||||
crossOrigin: ''
|
crossOrigin: ''
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
@@ -59,7 +59,8 @@ var element = document.getElementById('popup');
|
|||||||
var popup = new ol.Overlay({
|
var popup = new ol.Overlay({
|
||||||
element: element,
|
element: element,
|
||||||
positioning: 'bottom-center',
|
positioning: 'bottom-center',
|
||||||
stopEvent: false
|
stopEvent: false,
|
||||||
|
offset: [0, -50]
|
||||||
});
|
});
|
||||||
map.addOverlay(popup);
|
map.addOverlay(popup);
|
||||||
|
|
||||||
@@ -70,7 +71,8 @@ map.on('click', function(evt) {
|
|||||||
return feature;
|
return feature;
|
||||||
});
|
});
|
||||||
if (feature) {
|
if (feature) {
|
||||||
popup.setPosition(evt.coordinate);
|
var coordinates = feature.getGeometry().getCoordinates();
|
||||||
|
popup.setPosition(coordinates);
|
||||||
$(element).popover({
|
$(element).popover({
|
||||||
'placement': 'top',
|
'placement': 'top',
|
||||||
'html': true,
|
'html': true,
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
goog.require('ol.Attribution');
|
|
||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
@@ -86,10 +85,7 @@ var map = new ol.Map({
|
|||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.OSM({
|
source: new ol.source.OSM({
|
||||||
attributions: [
|
attributions: [
|
||||||
new ol.Attribution({
|
'All maps © <a href="http://www.opencyclemap.org/">OpenCycleMap</a>',
|
||||||
html: 'All maps © ' +
|
|
||||||
'<a href="http://www.opencyclemap.org/">OpenCycleMap</a>'
|
|
||||||
}),
|
|
||||||
ol.source.OSM.ATTRIBUTION
|
ol.source.OSM.ATTRIBUTION
|
||||||
],
|
],
|
||||||
url: 'http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png'
|
url: 'http://{a-c}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png'
|
||||||
@@ -155,27 +151,26 @@ map.on('click', function(evt) {
|
|||||||
displaySnap(evt.coordinate);
|
displaySnap(evt.coordinate);
|
||||||
});
|
});
|
||||||
|
|
||||||
var imageStyle = new ol.style.Circle({
|
var stroke = new ol.style.Stroke({
|
||||||
|
color: 'rgba(255,0,0,0.9)',
|
||||||
|
width: 1
|
||||||
|
});
|
||||||
|
var style = new ol.style.Style({
|
||||||
|
stroke: stroke,
|
||||||
|
image: new ol.style.Circle({
|
||||||
radius: 5,
|
radius: 5,
|
||||||
fill: null,
|
fill: null,
|
||||||
stroke: new ol.style.Stroke({
|
stroke: stroke
|
||||||
color: 'rgba(255,0,0,0.9)',
|
|
||||||
width: 1
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
var strokeStyle = new ol.style.Stroke({
|
|
||||||
color: 'rgba(255,0,0,0.9)',
|
|
||||||
width: 1
|
|
||||||
});
|
|
||||||
map.on('postcompose', function(evt) {
|
map.on('postcompose', function(evt) {
|
||||||
var vectorContext = evt.vectorContext;
|
var vectorContext = evt.vectorContext;
|
||||||
|
vectorContext.setStyle(style);
|
||||||
if (point !== null) {
|
if (point !== null) {
|
||||||
vectorContext.setImageStyle(imageStyle);
|
vectorContext.drawGeometry(point);
|
||||||
vectorContext.drawPointGeometry(point);
|
|
||||||
}
|
}
|
||||||
if (line !== null) {
|
if (line !== null) {
|
||||||
vectorContext.setFillStrokeStyle(null, strokeStyle);
|
vectorContext.drawGeometry(line);
|
||||||
vectorContext.drawLineStringGeometry(line);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -187,8 +182,7 @@ var featureOverlay = new ol.layer.Vector({
|
|||||||
radius: 5,
|
radius: 5,
|
||||||
fill: new ol.style.Fill({
|
fill: new ol.style.Fill({
|
||||||
color: 'rgba(255,0,0,0.9)'
|
color: 'rgba(255,0,0,0.9)'
|
||||||
}),
|
})
|
||||||
stroke: null
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ docs: >
|
|||||||
In this example, the <code>postcompose</code> listener applies a filter to the image data.</p>
|
In this example, the <code>postcompose</code> listener applies a filter to the image data.</p>
|
||||||
tags: "filter, image manipulation"
|
tags: "filter, image manipulation"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<select id="kernel" name="kernel">
|
<select id="kernel" name="kernel">
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ goog.require('ol.layer.Image');
|
|||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
goog.require('ol.source.ImageVector');
|
goog.require('ol.source.ImageVector');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
goog.require('ol.style.Fill');
|
goog.require('ol.style.Fill');
|
||||||
goog.require('ol.style.Stroke');
|
goog.require('ol.style.Stroke');
|
||||||
@@ -15,7 +15,7 @@ goog.require('ol.style.Style');
|
|||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
}),
|
}),
|
||||||
new ol.layer.Image({
|
new ol.layer.Image({
|
||||||
source: new ol.source.ImageVector({
|
source: new ol.source.ImageVector({
|
||||||
|
|||||||
@@ -4,16 +4,13 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
<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="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.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="../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">
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
padding-top: 70px;
|
padding-top: 70px;
|
||||||
}
|
}
|
||||||
.navbar-form {
|
|
||||||
margin-top: 12px;
|
|
||||||
}
|
|
||||||
input.search-query {
|
input.search-query {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
@@ -186,17 +183,22 @@
|
|||||||
|
|
||||||
<header class="navbar navbar-fixed-top" role="navigation">
|
<header class="navbar navbar-fixed-top" role="navigation">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
<div class="display-table pull-left">
|
||||||
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png"> OpenLayers 3 Examples</a>
|
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png"> OpenLayers 3 Examples</a>
|
||||||
<form class="navbar-form navbar-left search-form" role="search">
|
<form class="navbar-form" role="search">
|
||||||
<input name="q" type="text" id="keywords" class="search-query" placeholder="Search" autofocus>
|
<input name="q" type="text" id="keywords" class="search-query" placeholder="Search" autofocus>
|
||||||
<span id="count"></span>
|
<span id="count"></span>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
|
<!-- menu items that get hidden below 768px width -->
|
||||||
|
<nav class='collapse navbar-collapse navbar-responsive-collapse'>
|
||||||
<ul class="nav navbar-nav pull-right">
|
<ul class="nav navbar-nav pull-right">
|
||||||
<li><a href="../doc">Docs</a></li>
|
<li><a href="../doc">Docs</a></li>
|
||||||
<li><a class="active" href="index.html">Examples</a></li>
|
<li><a class="active" href="index.html">Examples</a></li>
|
||||||
<li><a href="../apidoc">API</a></li>
|
<li><a href="../apidoc">API</a></li>
|
||||||
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
|
<li><a href="https://github.com/openlayers/ol3">Code</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ docs: >
|
|||||||
with OpenLayers 3.
|
with OpenLayers 3.
|
||||||
tags: "vector, jsts, buffer"
|
tags: "vector, jsts, buffer"
|
||||||
resources:
|
resources:
|
||||||
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.17.0/javascript.util.min.js
|
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/1.2.0/jsts.min.js
|
||||||
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/lib/0.17.0/jsts.min.js
|
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
// NOCOMPILE
|
// NOCOMPILE
|
||||||
// this example uses JSTS for which we don't have an externs file.
|
// this example uses JSTS for which we don't have an externs file.
|
||||||
goog.require('ol.Feature');
|
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.View');
|
goog.require('ol.View');
|
||||||
goog.require('ol.format.GeoJSON');
|
goog.require('ol.format.GeoJSON');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.layer.Vector');
|
goog.require('ol.layer.Vector');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.Vector');
|
goog.require('ol.source.Vector');
|
||||||
|
|
||||||
|
|
||||||
@@ -18,7 +17,7 @@ fetch('data/geojson/roads-seoul.geojson').then(function(response) {
|
|||||||
var format = new ol.format.GeoJSON();
|
var format = new ol.format.GeoJSON();
|
||||||
var features = format.readFeatures(json, {featureProjection: 'EPSG:3857'});
|
var features = format.readFeatures(json, {featureProjection: 'EPSG:3857'});
|
||||||
|
|
||||||
var parser = new jsts.io.olParser();
|
var parser = new jsts.io.OL3Parser();
|
||||||
|
|
||||||
for (var i = 0; i < features.length; i++) {
|
for (var i = 0; i < features.length; i++) {
|
||||||
var feature = features[i];
|
var feature = features[i];
|
||||||
@@ -39,9 +38,7 @@ var vectorLayer = new ol.layer.Vector({
|
|||||||
});
|
});
|
||||||
|
|
||||||
var rasterLayer = new ol.layer.Tile({
|
var rasterLayer = new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({
|
source: new ol.source.OSM()
|
||||||
layer: 'osm'
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
}
|
}
|
||||||
.tooltip.in {
|
.tooltip.in {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
filter: alpha(opacity=100);
|
|
||||||
}
|
}
|
||||||
.tooltip.top .tooltip-arrow {
|
.tooltip.top .tooltip-arrow {
|
||||||
border-top-color: white;
|
border-top-color: white;
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ docs: >
|
|||||||
This example parses a KML file and renders the features as a vector layer. The layer is given a <code>style</code> that renders earthquake locations with a size relative to their magnitude.
|
This example parses a KML file and renders the features as a vector layer. The layer is given a <code>style</code> that renders earthquake locations with a size relative to their magnitude.
|
||||||
tags: "KML, vector, style, tooltip"
|
tags: "KML, vector, style, tooltip"
|
||||||
resources:
|
resources:
|
||||||
- https://code.jquery.com/jquery-1.11.2.min.js
|
- https://code.jquery.com/jquery-2.2.3.min.js
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
|
||||||
---
|
---
|
||||||
<div id="map" class="map"><div id="info"></div></div>
|
<div id="map" class="map"><div id="info"></div></div>
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ docs: >
|
|||||||
yellow with an opacity calculated based on the current offset to local noon.
|
yellow with an opacity calculated based on the current offset to local noon.
|
||||||
tags: "KML, vector, style"
|
tags: "KML, vector, style"
|
||||||
resources:
|
resources:
|
||||||
- https://code.jquery.com/jquery-1.11.2.min.js
|
- https://code.jquery.com/jquery-2.2.3.min.js
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
|
||||||
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js
|
- https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
|
||||||
---
|
---
|
||||||
<div id="map" class="map"><div id="info"></div></div>
|
<div id="map" class="map"><div id="info"></div></div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ docs: >
|
|||||||
This example uses the <code>ol.format.KML</code> to parse KML for rendering with a vector source.
|
This example uses the <code>ol.format.KML</code> to parse KML for rendering with a vector source.
|
||||||
tags: "KML"
|
tags: "KML"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<div id="info"> </div>
|
<div id="info"> </div>
|
||||||
|
|||||||
@@ -4,13 +4,12 @@ title: Limited Layer Extent
|
|||||||
shortdesc: Restricting layer rendering to a limited extent.
|
shortdesc: Restricting layer rendering to a limited extent.
|
||||||
docs: >
|
docs: >
|
||||||
This example uses the <code>layer.setExtent()</code> method to
|
This example uses the <code>layer.setExtent()</code> method to
|
||||||
modify the extent of the overlay layer. Use the controls below
|
modify the extent of the overlay layer. Use the controls above
|
||||||
to limit rendering based on an extent.
|
to limit rendering based on an extent (approximate country bounds).
|
||||||
tags: "extent, tilejson"
|
tags: "extent, tilejson"
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<button type="button" class="btn btn-default" id="northwest">northwest</button>
|
<button type="button" class="btn btn-default" id="India">India</button>
|
||||||
<button type="button" class="btn btn-default" id="northeast">northeast</button>
|
<button type="button" class="btn btn-default" id="Argentina">Argentina</button>
|
||||||
<button type="button" class="btn btn-default" id="southeast">southeast</button>
|
<button type="button" class="btn btn-default" id="Nigeria">Nigeria</button>
|
||||||
<button type="button" class="btn btn-default" id="southwest">southwest</button>
|
<button type="button" class="btn btn-default" id="Sweden">Sweden</button>
|
||||||
<button type="button" class="btn btn-default" id="world">world</button>
|
|
||||||
|
|||||||
@@ -9,26 +9,23 @@ function transform(extent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var extents = {
|
var extents = {
|
||||||
northwest: transform([-180, 0, 0, 85]),
|
India: transform([68.17665, 7.96553, 97.40256, 35.49401]),
|
||||||
northeast: transform([0, 0, 180, 85]),
|
Argentina: transform([-73.41544, -55.25, -53.62835, -21.83231]),
|
||||||
southeast: transform([0, -85, 180, 0]),
|
Nigeria: transform([2.6917, 4.24059, 14.57718, 13.86592]),
|
||||||
southwest: transform([-180, -85, 0, 0]),
|
Sweden: transform([11.02737, 55.36174, 23.90338, 69.10625])
|
||||||
world: transform([-180, -85, 180, 85])
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var base = new ol.layer.Tile({
|
var base = new ol.layer.Tile({
|
||||||
source: new ol.source.TileJSON({
|
source: new ol.source.TileJSON({
|
||||||
url: 'http://api.tiles.mapbox.com/v3/' +
|
url: 'https://api.tiles.mapbox.com/v3/mapbox.world-light.json?secure',
|
||||||
'mapbox.world-black.json',
|
|
||||||
crossOrigin: 'anonymous'
|
crossOrigin: 'anonymous'
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
var overlay = new ol.layer.Tile({
|
var overlay = new ol.layer.Tile({
|
||||||
extent: extents.northwest,
|
extent: extents.India,
|
||||||
source: new ol.source.TileJSON({
|
source: new ol.source.TileJSON({
|
||||||
url: 'http://api.tiles.mapbox.com/v3/' +
|
url: 'https://api.tiles.mapbox.com/v3/mapbox.world-black.json?secure',
|
||||||
'mapbox.world-glass.json',
|
|
||||||
crossOrigin: 'anonymous'
|
crossOrigin: 'anonymous'
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ docs: >
|
|||||||
Example of a map with layer group.
|
Example of a map with layer group.
|
||||||
tags: "tilejson, input, bind, group, layergroup"
|
tags: "tilejson, input, bind, group, layergroup"
|
||||||
resources:
|
resources:
|
||||||
- https://code.jquery.com/jquery-1.11.2.min.js
|
- https://code.jquery.com/jquery-2.2.3.min.js
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<div id="layertree">
|
<div id="layertree">
|
||||||
<h5>Click on layer nodes below to change their properties.</h5>
|
<h5>Click on layer nodes below to change their properties.</h5>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span>OpenAerial layer</span>
|
<li><span>OSM layer</span>
|
||||||
<fieldset id="layer0">
|
<fieldset id="layer0">
|
||||||
<label class="checkbox" for="visible0">
|
<label class="checkbox" for="visible0">
|
||||||
<input id="visible0" class="visible" type="checkbox"/>visibility
|
<input id="visible0" class="visible" type="checkbox"/>visibility
|
||||||
|
|||||||
@@ -3,26 +3,24 @@ goog.require('ol.View');
|
|||||||
goog.require('ol.layer.Group');
|
goog.require('ol.layer.Group');
|
||||||
goog.require('ol.layer.Tile');
|
goog.require('ol.layer.Tile');
|
||||||
goog.require('ol.proj');
|
goog.require('ol.proj');
|
||||||
goog.require('ol.source.MapQuest');
|
goog.require('ol.source.OSM');
|
||||||
goog.require('ol.source.TileJSON');
|
goog.require('ol.source.TileJSON');
|
||||||
|
|
||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.MapQuest({layer: 'sat'})
|
source: new ol.source.OSM()
|
||||||
}), new ol.layer.Group({
|
}), new ol.layer.Group({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.TileJSON({
|
source: new ol.source.TileJSON({
|
||||||
url: 'http://api.tiles.mapbox.com/v3/' +
|
url: 'https://api.tiles.mapbox.com/v3/mapbox.20110804-hoa-foodinsecurity-3month.json?secure',
|
||||||
'mapbox.20110804-hoa-foodinsecurity-3month.json',
|
|
||||||
crossOrigin: 'anonymous'
|
crossOrigin: 'anonymous'
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
new ol.layer.Tile({
|
new ol.layer.Tile({
|
||||||
source: new ol.source.TileJSON({
|
source: new ol.source.TileJSON({
|
||||||
url: 'http://api.tiles.mapbox.com/v3/' +
|
url: 'https://api.tiles.mapbox.com/v3/mapbox.world-borders-light.json?secure',
|
||||||
'mapbox.world-borders-light.json',
|
|
||||||
crossOrigin: 'anonymous'
|
crossOrigin: 'anonymous'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ docs: >
|
|||||||
<p>Move around the map to see the effect. Use the ↑ up and ↓ down arrow keys to adjust the spyglass size.</p>
|
<p>Move around the map to see the effect. Use the ↑ up and ↓ down arrow keys to adjust the spyglass size.</p>
|
||||||
tags: "spy, image manipulation"
|
tags: "spy, image manipulation"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ docs: >
|
|||||||
Example of a Layer swipe map.
|
Example of a Layer swipe map.
|
||||||
tags: "swipe, openstreetmap"
|
tags: "swipe, openstreetmap"
|
||||||
cloak:
|
cloak:
|
||||||
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://bingmapsportal.com/ here
|
AkGbxXx6tDWf1swIhPJyoAVp06H0s0gDTYslNWWHZ6RoPqMpB9ld5FY1WutX8UoF: Your Bing Maps Key from http://www.bingmapsportal.com/ here
|
||||||
---
|
---
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
<input id="swipe" type="range" style="width: 100%">
|
<input id="swipe" type="range" style="width: 100%">
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
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');
|
||||||
|
|
||||||
var source = new ol.source.MapQuest({layer: 'sat'});
|
var source = new ol.source.OSM();
|
||||||
|
|
||||||
var layer = new ol.layer.Tile();
|
var layer = new ol.layer.Tile();
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user