Compare commits
865 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
346cd562ee | ||
|
|
ba88081eba | ||
|
|
2a3b21cfd9 | ||
|
|
785954f722 | ||
|
|
b8b3dcc066 | ||
|
|
76c4c2f85c | ||
|
|
65bbee4c8b | ||
|
|
10b56a4543 | ||
|
|
42a094d730 | ||
|
|
680ce960e1 | ||
|
|
77959efcff | ||
|
|
dc988cba60 | ||
|
|
5f747cbf1b | ||
|
|
2b025e2266 | ||
|
|
71ac0b18a9 | ||
|
|
3cf4dbfcc6 | ||
|
|
1732ed5a04 | ||
|
|
59c95dbe90 | ||
|
|
711afac80f | ||
|
|
43def3194f | ||
|
|
caf11a71f2 | ||
|
|
53c2be0c7a | ||
|
|
caaf8cb86f | ||
|
|
219dacb232 | ||
|
|
9ab201642c | ||
|
|
6d608c361a | ||
|
|
6a797e84ff | ||
|
|
c12b41f8c6 | ||
|
|
aaad5b4977 | ||
|
|
c2e756da05 | ||
|
|
467e13fa2d | ||
|
|
e0a46dd178 | ||
|
|
aeb3e5b271 | ||
|
|
f34cb17ffa | ||
|
|
5dfa82c27e | ||
|
|
e55cca1e7d | ||
|
|
d197864f5a | ||
|
|
4d5d428a96 | ||
|
|
0091bfa106 | ||
|
|
765d2cdc9f | ||
|
|
1de22f77dc | ||
|
|
f2b4555e1f | ||
|
|
3f69066d79 | ||
|
|
1a00e20b1b | ||
|
|
c90b8c2a12 | ||
|
|
6f57a272d0 | ||
|
|
1cdd040c96 | ||
|
|
1df9189d7f | ||
|
|
071a02556e | ||
|
|
f8c0d284de | ||
|
|
b50749e1ea | ||
|
|
e239eb338f | ||
|
|
1674620943 | ||
|
|
6ceb03f86b | ||
|
|
ba20c6333b | ||
|
|
2adac0b3e7 | ||
|
|
0a530725c6 | ||
|
|
391e38a973 | ||
|
|
7f1728f8d4 | ||
|
|
d3fdda6efc | ||
|
|
1ed51d02e3 | ||
|
|
8f12177593 | ||
|
|
f82619d6d0 | ||
|
|
453a723005 | ||
|
|
e8da3929d5 | ||
|
|
1f1951f3cc | ||
|
|
208f125158 | ||
|
|
df632dbaa9 | ||
|
|
b11daa8344 | ||
|
|
0130ce71ba | ||
|
|
3a42a0859c | ||
|
|
0593c352af | ||
|
|
724d141d3a | ||
|
|
deb6c093a8 | ||
|
|
0b21d1a6fc | ||
|
|
d1395d005c | ||
|
|
cd2f0f60d6 | ||
|
|
f58603bddf | ||
|
|
1740f02737 | ||
|
|
0cd3e39fe8 | ||
|
|
d5c895aa8b | ||
|
|
9810250fb4 | ||
|
|
8a2f74fbe8 | ||
|
|
0801b9e0be | ||
|
|
fc8ba24d3f | ||
|
|
e0a018fa1e | ||
|
|
3746ba99cf | ||
|
|
d294b87358 | ||
|
|
29b21da608 | ||
|
|
0787aa3439 | ||
|
|
41fea9905a | ||
|
|
7cd7a4d111 | ||
|
|
a06ad4940c | ||
|
|
6ff7747d98 | ||
|
|
e4816faadf | ||
|
|
f0c164802f | ||
|
|
ae409f40d5 | ||
|
|
7e142080a1 | ||
|
|
1a0f398f1f | ||
|
|
648ee4f4a4 | ||
|
|
3d72490241 | ||
|
|
df4ef724b6 | ||
|
|
d2d041e54a | ||
|
|
94fd57f690 | ||
|
|
939aa565b5 | ||
|
|
1035ba7bf2 | ||
|
|
041836c645 | ||
|
|
a85099a36b | ||
|
|
cddfc11125 | ||
|
|
d387702644 | ||
|
|
49a4bf4248 | ||
|
|
1e90ffacec | ||
|
|
43ca764293 | ||
|
|
fb11aad1d1 | ||
|
|
f7adeac774 | ||
|
|
076d6425cb | ||
|
|
2809784247 | ||
|
|
ee9c9bcefb | ||
|
|
e37039d85e | ||
|
|
9362e33be9 | ||
|
|
aea9479c12 | ||
|
|
6b24760299 | ||
|
|
594a921598 | ||
|
|
2005c82dd2 | ||
|
|
6252404d5b | ||
|
|
316b4a1bb7 | ||
|
|
7ec19645e9 | ||
|
|
b43e5929f2 | ||
|
|
f8585962b4 | ||
|
|
43b9f70077 | ||
|
|
6e7558e954 | ||
|
|
2768884044 | ||
|
|
af4e5ca7cf | ||
|
|
9285b283c0 | ||
|
|
9163558511 | ||
|
|
80753eb909 | ||
|
|
3e860d2c61 | ||
|
|
3ce80fbfb1 | ||
|
|
8aebed1cd6 | ||
|
|
90395c2355 | ||
|
|
50f90cdf61 | ||
|
|
04f2174052 | ||
|
|
0f15d38ae7 | ||
|
|
667f9a58f3 | ||
|
|
2f4d31c8f4 | ||
|
|
ad3f248825 | ||
|
|
c2c8cdab29 | ||
|
|
e828231449 | ||
|
|
dded939a07 | ||
|
|
945f686f8a | ||
|
|
2c6e80a601 | ||
|
|
da41515944 | ||
|
|
15c9fe7867 | ||
|
|
6d1cc3ba88 | ||
|
|
db15bb0942 | ||
|
|
94da8dd0e2 | ||
|
|
02b2be5b40 | ||
|
|
7672fe3b16 | ||
|
|
04c2359d49 | ||
|
|
f15ac14d2a | ||
|
|
177190403f | ||
|
|
12786e4352 | ||
|
|
d308288eed | ||
|
|
d6aced3e43 | ||
|
|
720993431c | ||
|
|
69dfbb9e54 | ||
|
|
23473a8346 | ||
|
|
414f6e0384 | ||
|
|
96e99e481e | ||
|
|
f5e8e3e009 | ||
|
|
61dedbbe6d | ||
|
|
f3f138b9bc | ||
|
|
b8addb4c24 | ||
|
|
8be23b799d | ||
|
|
84dda90bfc | ||
|
|
a92c992e1a | ||
|
|
c0903e6fc1 | ||
|
|
8d9fe7f688 | ||
|
|
144c2f9f15 | ||
|
|
4a066670c2 | ||
|
|
3781a6881d | ||
|
|
9d4821aafc | ||
|
|
38aa620afa | ||
|
|
ddae414ddc | ||
|
|
d3a82b0586 | ||
|
|
83763a73d9 | ||
|
|
07349de59b | ||
|
|
909869b8b9 | ||
|
|
942a0976be | ||
|
|
3397796ff2 | ||
|
|
9586c7cbc7 | ||
|
|
18570841d8 | ||
|
|
bafb9e4a8c | ||
|
|
4cb5dc695b | ||
|
|
4ca75e2aab | ||
|
|
56f623337b | ||
|
|
3f79edba67 | ||
|
|
2799f0c824 | ||
|
|
cbd6aabea2 | ||
|
|
5c737b21ae | ||
|
|
0f9485a806 | ||
|
|
bb544114ee | ||
|
|
c7813bbf45 | ||
|
|
e30293d07f | ||
|
|
b26d81fd7e | ||
|
|
d3e34f95c9 | ||
|
|
16faf064de | ||
|
|
be4afde507 | ||
|
|
2b8cee3e44 | ||
|
|
682fe47914 | ||
|
|
b1309578b4 | ||
|
|
ecaec7bbfa | ||
|
|
b4fced865d | ||
|
|
9b12b30100 | ||
|
|
9ac00667b4 | ||
|
|
452d5454cb | ||
|
|
4aff3d0631 | ||
|
|
2f151a7832 | ||
|
|
25cf54193a | ||
|
|
ae87cad7ef | ||
|
|
b6846d6b3d | ||
|
|
d62dd67942 | ||
|
|
2517b838b6 | ||
|
|
9fc8475586 | ||
|
|
023ad3c531 | ||
|
|
26f1cba808 | ||
|
|
76dda0c422 | ||
|
|
31ac0eb406 | ||
|
|
c5a9d5b0bc | ||
|
|
7dbe38358a | ||
|
|
accdc79c05 | ||
|
|
7056eb8536 | ||
|
|
88cde255f8 | ||
|
|
47b68ed96d | ||
|
|
d6b99a5a25 | ||
|
|
a2c7eb80fd | ||
|
|
6f1f85b729 | ||
|
|
2034e3f63b | ||
|
|
8b26e53067 | ||
|
|
40ee806c27 | ||
|
|
831505c425 | ||
|
|
b49f2448c7 | ||
|
|
513e11d263 | ||
|
|
01923ddbb2 | ||
|
|
313b00b8f3 | ||
|
|
5abcaebabc | ||
|
|
a685e85c10 | ||
|
|
9cbe9926b4 | ||
|
|
efea43d008 | ||
|
|
0bbbd33bb1 | ||
|
|
4da372d515 | ||
|
|
7d5a81d40f | ||
|
|
f8b0eb9648 | ||
|
|
df7c89baeb | ||
|
|
497aef7309 | ||
|
|
73a48eb3d4 | ||
|
|
63f583e148 | ||
|
|
54fa2bdc94 | ||
|
|
8c69380ef6 | ||
|
|
fa7a92b565 | ||
|
|
3d9b1af105 | ||
|
|
f58cd03f3b | ||
|
|
2e41302fc3 | ||
|
|
6ce56329dd | ||
|
|
368fb2c6e8 | ||
|
|
280741f8d1 | ||
|
|
d4d45001f6 | ||
|
|
f8d3c8e140 | ||
|
|
1ee0c50c8a | ||
|
|
2752541ff1 | ||
|
|
39951a792d | ||
|
|
2d68f1506c | ||
|
|
05c0b77a52 | ||
|
|
5bfd82a9bf | ||
|
|
4fbd7f2acd | ||
|
|
60c5d016a6 | ||
|
|
7eee6ba07a | ||
|
|
d8ee6acefa | ||
|
|
a4212abbb2 | ||
|
|
2f51785968 | ||
|
|
ca9ac8e950 | ||
|
|
80399f09df | ||
|
|
047f7ecf04 | ||
|
|
277ecca881 | ||
|
|
9cf7c71df8 | ||
|
|
55b300082a | ||
|
|
922e3824fb | ||
|
|
3b747f4d2d | ||
|
|
ce3988cfbb | ||
|
|
8f6f4de433 | ||
|
|
d37e04e8f3 | ||
|
|
a6223abdce | ||
|
|
e9baa2cfc4 | ||
|
|
3ba789eae6 | ||
|
|
02d5d21d0d | ||
|
|
be12573883 | ||
|
|
8cfb4e9384 | ||
|
|
d9698dcb06 | ||
|
|
708557afef | ||
|
|
9c5227850f | ||
|
|
49ee4bbd1c | ||
|
|
75947a6759 | ||
|
|
7d1b90c7d2 | ||
|
|
557e2c9029 | ||
|
|
3b208864bc | ||
|
|
32dea69f5e | ||
|
|
7d36b893d3 | ||
|
|
5ee1fd50fa | ||
|
|
681941b537 | ||
|
|
7c5ff5422d | ||
|
|
c9068526e7 | ||
|
|
9fd4807920 | ||
|
|
16bd9a5450 | ||
|
|
ada7e404b1 | ||
|
|
1c10bbf94c | ||
|
|
1da2db83da | ||
|
|
10c8371b38 | ||
|
|
5c5fc3f892 | ||
|
|
82cfa54584 | ||
|
|
69c6db0bc7 | ||
|
|
9b447ef3ed | ||
|
|
821a08ea79 | ||
|
|
a31453b55f | ||
|
|
5b43b9f151 | ||
|
|
bf6ecd7667 | ||
|
|
725687c987 | ||
|
|
fca3bed6dc | ||
|
|
fd0d6ff6f6 | ||
|
|
aa39a8a508 | ||
|
|
c472910aae | ||
|
|
7ff974be2c | ||
|
|
c414bd5923 | ||
|
|
57bd015972 | ||
|
|
abeb6490e0 | ||
|
|
85407a45f2 | ||
|
|
399e2587bb | ||
|
|
edfbb35c03 | ||
|
|
016436ae18 | ||
|
|
34323c0618 | ||
|
|
0ac94c93ff | ||
|
|
7525c57688 | ||
|
|
a4aaab5e32 | ||
|
|
e873949b31 | ||
|
|
adfc174af3 | ||
|
|
d44ba929ab | ||
|
|
20125ae96c | ||
|
|
0994362bfe | ||
|
|
45f2324a4e | ||
|
|
9c6e14b050 | ||
|
|
8b83371272 | ||
|
|
25ade66017 | ||
|
|
f3fb88905e | ||
|
|
e740e7577a | ||
|
|
d062904cc1 | ||
|
|
cd169ede0d | ||
|
|
bd655b325d | ||
|
|
7f32ba4216 | ||
|
|
109f16f717 | ||
|
|
b3127f86be | ||
|
|
e25d053ba6 | ||
|
|
3029a07c1a | ||
|
|
978b039ddc | ||
|
|
65066a0505 | ||
|
|
43bc3020a1 | ||
|
|
5f63575106 | ||
|
|
9c52e0d6d9 | ||
|
|
77dbf2fdb0 | ||
|
|
ad399246a3 | ||
|
|
23be1ac56d | ||
|
|
600d156d01 | ||
|
|
40227db7be | ||
|
|
54cdaddf3a | ||
|
|
5a62d403c0 | ||
|
|
eade74384a | ||
|
|
31c392b63c | ||
|
|
7cb85fa975 | ||
|
|
f8396d8f35 | ||
|
|
4d26ab751d | ||
|
|
f819ed137b | ||
|
|
91d31b57ec | ||
|
|
1fbefcab64 | ||
|
|
b2bcbcbc04 | ||
|
|
960b433a2c | ||
|
|
d777a6319b | ||
|
|
5910e4d207 | ||
|
|
340a446b51 | ||
|
|
124fccf127 | ||
|
|
74417a05d0 | ||
|
|
3ffd7683d5 | ||
|
|
457cbc9d9b | ||
|
|
7912c5d711 | ||
|
|
7d77d05a57 | ||
|
|
028caa4664 | ||
|
|
90403421af | ||
|
|
fe0ac80ba4 | ||
|
|
ba53b5e8aa | ||
|
|
abc3279752 | ||
|
|
84c689d456 | ||
|
|
693d1b24c6 | ||
|
|
cdaca7b0ff | ||
|
|
3ccfc2ea61 | ||
|
|
b351eaef29 | ||
|
|
14eb3fde14 | ||
|
|
f29e6ac397 | ||
|
|
79674363e6 | ||
|
|
0ce7402d61 | ||
|
|
00474dc038 | ||
|
|
8d054a404a | ||
|
|
143bf731b6 | ||
|
|
d4bbbcb690 | ||
|
|
f9f2f981f1 | ||
|
|
8b45011cd5 | ||
|
|
39c31e62a3 | ||
|
|
5b00231d7a | ||
|
|
3c52757f3f | ||
|
|
e6e9801a74 | ||
|
|
b5e2b9fe6f | ||
|
|
83e252bed9 | ||
|
|
b0b248d8e6 | ||
|
|
0364beb312 | ||
|
|
fc5aafe9fe | ||
|
|
968d8d6698 | ||
|
|
3c500e0b4b | ||
|
|
81bab31efb | ||
|
|
058f81c0fa | ||
|
|
6b851d812d | ||
|
|
ef4936de4a | ||
|
|
b6746d3432 | ||
|
|
3c05e09189 | ||
|
|
9b2dc88151 | ||
|
|
5e7afbb393 | ||
|
|
f6e6878909 | ||
|
|
e49c691a22 | ||
|
|
bd0f3556b6 | ||
|
|
82675d0bee | ||
|
|
895bfcea8e | ||
|
|
a6861f5f49 | ||
|
|
e32b3b5957 | ||
|
|
e3f13051f6 | ||
|
|
c8747d87a4 | ||
|
|
225e02244e | ||
|
|
ea616e7751 | ||
|
|
ba698258c0 | ||
|
|
1f50a2b3e6 | ||
|
|
9b64ea4969 | ||
|
|
52b30ead65 | ||
|
|
203cb12501 | ||
|
|
60e907fb48 | ||
|
|
71328530fe | ||
|
|
a5f5c06af3 | ||
|
|
f825a08bcf | ||
|
|
ccfacc5ee6 | ||
|
|
f2aaaa19e1 | ||
|
|
5ac94426e1 | ||
|
|
e3b21b9994 | ||
|
|
f34d024b22 | ||
|
|
f515b84322 | ||
|
|
d6e8ecea5e | ||
|
|
c691e7ca7a | ||
|
|
37221edbf0 | ||
|
|
ae14df9dca | ||
|
|
281873f22a | ||
|
|
8510169c69 | ||
|
|
e2c0d59332 | ||
|
|
99245b47f7 | ||
|
|
eee7b0126b | ||
|
|
404c1bda0a | ||
|
|
8fdc4cc9fc | ||
|
|
ad1dec58ec | ||
|
|
42b8340ea1 | ||
|
|
595009726f | ||
|
|
4025ddc364 | ||
|
|
5b8b470568 | ||
|
|
3c02bd15fb | ||
|
|
5fdac622ef | ||
|
|
25c1754052 | ||
|
|
a30f8859aa | ||
|
|
5435379e70 | ||
|
|
9eeacc585f | ||
|
|
20a347b0c9 | ||
|
|
6b851720d9 | ||
|
|
d12537b975 | ||
|
|
ee3ebbff76 | ||
|
|
411bc8ac61 | ||
|
|
bb4f887545 | ||
|
|
db04052b7a | ||
|
|
9daa556da1 | ||
|
|
c29fdaf714 | ||
|
|
2d79baf54d | ||
|
|
8e9e0ae848 | ||
|
|
badc350746 | ||
|
|
50293200d7 | ||
|
|
b2b3d6b05c | ||
|
|
34fefe3103 | ||
|
|
27dadef8ef | ||
|
|
f456c56ddd | ||
|
|
bdb80d3368 | ||
|
|
b039e17015 | ||
|
|
bd9635f6ef | ||
|
|
a0e72c7d42 | ||
|
|
bb77fbe703 | ||
|
|
0c47890bdd | ||
|
|
2d974c6f1f | ||
|
|
d95b2bc2ae | ||
|
|
0ada02f12a | ||
|
|
786bb608b9 | ||
|
|
2342ec90aa | ||
|
|
7a05b671d8 | ||
|
|
ea9517ffd5 | ||
|
|
d84c64b3e7 | ||
|
|
017d2e4802 | ||
|
|
3b36477fc3 | ||
|
|
1baa8be269 | ||
|
|
158b54156a | ||
|
|
5752bd0028 | ||
|
|
3f98094d9d | ||
|
|
b56a7c0fa3 | ||
|
|
b7aa6c6513 | ||
|
|
1605741a92 | ||
|
|
a18da7d55a | ||
|
|
68cf960028 | ||
|
|
94c6afd65d | ||
|
|
321166849b | ||
|
|
26cc0a3ded | ||
|
|
fffcf4415c | ||
|
|
07cb678271 | ||
|
|
315cfa1033 | ||
|
|
38349d8c37 | ||
|
|
adce78e19e | ||
|
|
eb0fcdb588 | ||
|
|
161c5b0105 | ||
|
|
8ab1589f9a | ||
|
|
95533e2425 | ||
|
|
a94dff2c06 | ||
|
|
fc75fc691b | ||
|
|
b9aceb23ac | ||
|
|
f382ddf230 | ||
|
|
dbdaa73cf2 | ||
|
|
f3cd1d8dfd | ||
|
|
e5944682df | ||
|
|
147a86c867 | ||
|
|
2d08811485 | ||
|
|
fc19e3e12e | ||
|
|
a5fc8bdd25 | ||
|
|
7f8b2d2e1f | ||
|
|
80a00fce47 | ||
|
|
ee8ed5193c | ||
|
|
cc7d825a13 | ||
|
|
fd4e0f14cc | ||
|
|
85e1f11adb | ||
|
|
47c4e1a165 | ||
|
|
0bff75a067 | ||
|
|
ab81deb242 | ||
|
|
654073cd3d | ||
|
|
a354e842ab | ||
|
|
1eeea2aa4d | ||
|
|
2f92e48e93 | ||
|
|
c5b42c49d5 | ||
|
|
03d47e49ed | ||
|
|
abbfb5c653 | ||
|
|
a78c163a4f | ||
|
|
a4178d05ef | ||
|
|
dbf9048d8f | ||
|
|
824ad48488 | ||
|
|
8cd9eabe68 | ||
|
|
a50a4efeca | ||
|
|
d49be1393e | ||
|
|
a991bb21d6 | ||
|
|
df848d6673 | ||
|
|
68ce6de0ca | ||
|
|
141fe5fe49 | ||
|
|
57baa15cc3 | ||
|
|
64138bb94f | ||
|
|
62188502e9 | ||
|
|
fe86d2e7f7 | ||
|
|
69ae9d7180 | ||
|
|
adc83ba484 | ||
|
|
4012280ad4 | ||
|
|
e48c85a689 | ||
|
|
c74faaa7ca | ||
|
|
236b6832fb | ||
|
|
93b92d3990 | ||
|
|
a36ab978e7 | ||
|
|
55fb62c551 | ||
|
|
c74b9c1d55 | ||
|
|
a56ca57ac6 | ||
|
|
1aadd51c57 | ||
|
|
a1391a2083 | ||
|
|
5adf0be4a3 | ||
|
|
4c71ddb3c7 | ||
|
|
efe15402cc | ||
|
|
b3586bed8d | ||
|
|
1e332f52d6 | ||
|
|
c0f44f6d9d | ||
|
|
efe0dd7fbf | ||
|
|
219629458b | ||
|
|
b13feb0046 | ||
|
|
df293d8a2e | ||
|
|
6cfa2b22a7 | ||
|
|
8346bb7454 | ||
|
|
40486a0ecc | ||
|
|
d8efa569d9 | ||
|
|
adfb3dd229 | ||
|
|
3c0be4e611 | ||
|
|
2eb07aa081 | ||
|
|
affbf59b77 | ||
|
|
d12ef20b12 | ||
|
|
5a6502572f | ||
|
|
d7adf0b4f3 | ||
|
|
f7551623e7 | ||
|
|
6f22f1b7ac | ||
|
|
6cdfbe3116 | ||
|
|
704845e37a | ||
|
|
fd9219f035 | ||
|
|
f3786f9cff | ||
|
|
436633b990 | ||
|
|
a89ae25134 | ||
|
|
2769953204 | ||
|
|
14ead39440 | ||
|
|
39261af940 | ||
|
|
9ec623380a | ||
|
|
28104527b0 | ||
|
|
b50bc1febf | ||
|
|
c046c2a1ba | ||
|
|
bbe0a66d07 | ||
|
|
d8b290966b | ||
|
|
0edb39c8ab | ||
|
|
f0ffb48633 | ||
|
|
171195a836 | ||
|
|
45cf296ed4 | ||
|
|
b377bbac59 | ||
|
|
2767ddfdc7 | ||
|
|
cd85e30d08 | ||
|
|
139fcd7bae | ||
|
|
2a04415264 | ||
|
|
515eca797f | ||
|
|
0b0d5c63da | ||
|
|
1ad3e8fe37 | ||
|
|
e5d7b30c31 | ||
|
|
1b745dc7b7 | ||
|
|
f8c5a79242 | ||
|
|
9061e93c59 | ||
|
|
b04728d907 | ||
|
|
154827c5d5 | ||
|
|
f1d03702b2 | ||
|
|
23f9110f1f | ||
|
|
d3e221bd10 | ||
|
|
e3e6a28e18 | ||
|
|
f3089efd19 | ||
|
|
2cfc2fd369 | ||
|
|
c860aed960 | ||
|
|
83972b00a5 | ||
|
|
cf58ee9bf1 | ||
|
|
e5493d1288 | ||
|
|
f77b6be8e9 | ||
|
|
1c5cc6ea7f | ||
|
|
b7c49e1007 | ||
|
|
e1e34e5636 | ||
|
|
d46471d763 | ||
|
|
dae843a98d | ||
|
|
85d836d909 | ||
|
|
323eb3f251 | ||
|
|
5d2cf66380 | ||
|
|
2e60961700 | ||
|
|
c1ffb0a2a9 | ||
|
|
8f7b52f266 | ||
|
|
bcefb07cf2 | ||
|
|
52c75e32ee | ||
|
|
60c8360330 | ||
|
|
b8c9125602 | ||
|
|
71555002a8 | ||
|
|
5d029f4256 | ||
|
|
6fa4fa59d6 | ||
|
|
b4ce8e4b3d | ||
|
|
4cdab30201 | ||
|
|
47c58d8a34 | ||
|
|
5124c98fb5 | ||
|
|
aecb7e1789 | ||
|
|
0a126b620c | ||
|
|
9ed3540edf | ||
|
|
4589345fac | ||
|
|
e52cabcb31 | ||
|
|
6f32d1a15b | ||
|
|
95533bef66 | ||
|
|
4adab51768 | ||
|
|
b813937991 | ||
|
|
87a3510c83 | ||
|
|
d6190a0cd7 | ||
|
|
8991dc9718 | ||
|
|
65b306891b | ||
|
|
b4e0d4c188 | ||
|
|
1309cf9b69 | ||
|
|
023bb638b2 | ||
|
|
d885771d8d | ||
|
|
7713015b26 | ||
|
|
fe8fcfbc7e | ||
|
|
3f4ba0af5f | ||
|
|
1e4ab17513 | ||
|
|
5f058e877f | ||
|
|
9ce36da349 | ||
|
|
b7b15eb7f0 | ||
|
|
1a5cf52b61 | ||
|
|
f6046c023c | ||
|
|
c4e5a7467e | ||
|
|
9ee5edf19c | ||
|
|
792e7e54f1 | ||
|
|
45e0926896 | ||
|
|
069187859d | ||
|
|
d855f5ba0a | ||
|
|
2f4aa5aa05 | ||
|
|
bd7328675a | ||
|
|
7c6755d3ec | ||
|
|
524b4c99d5 | ||
|
|
e79add2e77 | ||
|
|
fd962caa1c | ||
|
|
414d1556a7 | ||
|
|
a02c1713a4 | ||
|
|
ba431421a1 | ||
|
|
a4abd990df | ||
|
|
df89b0718a | ||
|
|
942a219c30 | ||
|
|
788f932550 | ||
|
|
c969afcddc | ||
|
|
9b2b921f7b | ||
|
|
092441017d | ||
|
|
5e71e6ce80 | ||
|
|
cf15af43e3 | ||
|
|
a8bd0c5dd7 | ||
|
|
ad4e192ee9 | ||
|
|
6a39b9f412 | ||
|
|
f140ff368d | ||
|
|
e1e5e54d74 | ||
|
|
9a28af76ca | ||
|
|
7f05bf1d7e | ||
|
|
84e9d7c72e | ||
|
|
672a462b1e | ||
|
|
c707b4c746 | ||
|
|
44bea898b8 | ||
|
|
a235dc906f | ||
|
|
f5272bb391 | ||
|
|
6530119918 | ||
|
|
11f1f5b25c | ||
|
|
600205f4d9 | ||
|
|
1da14a6d97 | ||
|
|
7d5efd0348 | ||
|
|
6ffda39b14 | ||
|
|
353a00af89 | ||
|
|
b9f08c6a2a | ||
|
|
322a51d822 | ||
|
|
49c4a75777 | ||
|
|
778e867c79 | ||
|
|
4f26f145ae | ||
|
|
9c994138ad | ||
|
|
603f489708 | ||
|
|
2e5054d11c | ||
|
|
64190b7109 | ||
|
|
9e259c471d | ||
|
|
505f88031b | ||
|
|
0f6ee28c19 | ||
|
|
2fd022d215 | ||
|
|
2792ba701a | ||
|
|
e1fedca22e | ||
|
|
5a90203aa0 | ||
|
|
edd23dbf6a | ||
|
|
16849a3611 | ||
|
|
de104d6e22 | ||
|
|
5f40b5b66b | ||
|
|
6ca865375e | ||
|
|
61c48ce09f | ||
|
|
fb59d7a65b | ||
|
|
ec495bfcec | ||
|
|
6f4d2e34a9 | ||
|
|
aa7b6350ec | ||
|
|
0224e2b3c5 | ||
|
|
540b1793e7 | ||
|
|
f2d0b11d24 | ||
|
|
384920734f | ||
|
|
7e3e0e54ca | ||
|
|
c49d2e0115 | ||
|
|
d0ab8dce38 | ||
|
|
f78d0d4cfa | ||
|
|
7b4a73f3b9 | ||
|
|
60e85e7d89 | ||
|
|
2096a1d0db | ||
|
|
41fd1d4222 | ||
|
|
b1f80a5998 | ||
|
|
19ca2c25c6 | ||
|
|
84d2c3a42e | ||
|
|
88fbd6e35d | ||
|
|
33ef64c912 | ||
|
|
ed7788ca37 | ||
|
|
623c887579 | ||
|
|
f2b7dfc26c | ||
|
|
349e602ee5 | ||
|
|
9cb10efe4b | ||
|
|
871a283601 | ||
|
|
d1a609e0a3 | ||
|
|
e0c5529878 | ||
|
|
186d5466f4 | ||
|
|
dc9e0a6bc4 | ||
|
|
b74dd515d5 | ||
|
|
1ee1ea6a1a | ||
|
|
fe0f91cb29 | ||
|
|
5d6721192d | ||
|
|
d0a8043edc | ||
|
|
f3f0403cec | ||
|
|
84a88616a8 | ||
|
|
4055a08043 | ||
|
|
afec93ae62 | ||
|
|
e7d6bc055a | ||
|
|
97f6171b4c | ||
|
|
e2f8d96763 | ||
|
|
ce97cee6a6 | ||
|
|
0ec0491ef6 | ||
|
|
a09b6c91c9 | ||
|
|
3871f7785a | ||
|
|
160f1bc286 | ||
|
|
c0d04ea077 | ||
|
|
da0838dde2 | ||
|
|
1da43d90af | ||
|
|
9ddd7e4751 | ||
|
|
538315f682 | ||
|
|
b8db6bf087 | ||
|
|
42228ed87d | ||
|
|
707afeab06 | ||
|
|
7a7414447f | ||
|
|
fb28071dd1 | ||
|
|
6b39353ccb | ||
|
|
6f6e9a2af1 | ||
|
|
bc3e348b0d | ||
|
|
60600d3108 | ||
|
|
1b9cad6b8d | ||
|
|
9c16cc4200 | ||
|
|
c9b638f5fd | ||
|
|
f3b79c57f7 | ||
|
|
769a14d0dc | ||
|
|
e18d485d01 | ||
|
|
853fc77f2a | ||
|
|
c678354aec | ||
|
|
1f06f7c2ac | ||
|
|
9c085e37de | ||
|
|
a6896ed531 | ||
|
|
9304ee25af | ||
|
|
f0f21d583a | ||
|
|
54d50af2c3 | ||
|
|
9f84494b02 | ||
|
|
e18a23c877 | ||
|
|
cb78019825 | ||
|
|
352d77e2ec | ||
|
|
a978467726 | ||
|
|
ddeb091871 | ||
|
|
bc60c8ec32 | ||
|
|
6da2e4cef4 | ||
|
|
001add5a28 | ||
|
|
8c4c70e9f0 | ||
|
|
0c300d651f | ||
|
|
b072dc5968 | ||
|
|
52e286b03c | ||
|
|
7dcc720029 | ||
|
|
770407f1ba | ||
|
|
53cb47cab9 | ||
|
|
5ba08b7291 | ||
|
|
43e67b73c2 | ||
|
|
4ed9f27cd1 | ||
|
|
bde6caf082 |
36
.circleci/config.yml
Normal file
36
.circleci/config.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
version: 2
|
||||
jobs:
|
||||
build:
|
||||
docker:
|
||||
- image: circleci/node:10-browsers
|
||||
|
||||
working_directory: ~/repo
|
||||
|
||||
steps:
|
||||
- checkout
|
||||
|
||||
- restore_cache:
|
||||
keys:
|
||||
- v1-dependencies-{{ checksum "package.json" }}
|
||||
- v1-dependencies-
|
||||
|
||||
- run:
|
||||
name: Install Dependencies
|
||||
command: npm install
|
||||
|
||||
- save_cache:
|
||||
paths:
|
||||
- node_modules
|
||||
key: v1-dependencies-{{ checksum "package.json" }}
|
||||
|
||||
- run:
|
||||
name: Run Tests
|
||||
command: npm test
|
||||
|
||||
- run:
|
||||
name: Build Examples
|
||||
command: npm run build-examples
|
||||
|
||||
- store_artifacts:
|
||||
path: build/examples
|
||||
destination: examples
|
||||
11
.github/ISSUE_TEMPLATE.md
vendored
11
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,8 +1,9 @@
|
||||
<!--
|
||||
Thank you for your interest in making OpenLayers better!
|
||||
|
||||
To keep this project manageable for maintainers, we ask you to please check all boxes below before submitting an issue.
|
||||
If you are reporting a bug, please link to an example that reproduces the problem. This will make it easier for people who may want to help you debug.
|
||||
|
||||
- [ ] I am submitting a bug or feature request, not a usage question. Go to https://stackoverflow.com/questions/tagged/openlayers for questions.
|
||||
- [ ] I have searched GitHub to see if a similar bug or feature request has already been reported.
|
||||
- [ ] I have verified that the issue is present in the latest version of OpenLayers (see 'LATEST' on https://openlayers.org/).
|
||||
- [ ] If reporting a bug, I have created a [CodePen](https://codepen.io) or prepared a stack trace (using the latest version and unminified code, so e.g. `ol-debug.js`, not `ol.js`) that shows the issue.
|
||||
If you have a usage question, you might want to try Stack Overflow first: https://stackoverflow.com/questions/tagged/openlayers
|
||||
|
||||
Thanks
|
||||
-->
|
||||
|
||||
15
.github/PULL_REQUEST_TEMPLATE.md
vendored
15
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,8 +1,13 @@
|
||||
<!--
|
||||
Thank you for your interest in making OpenLayers better!
|
||||
|
||||
In order to get your proposed changes merged into the master branch, we ask you to please make sure the following boxes are checked *before* submitting your pull request.
|
||||
Before submitting a pull request, it is best to open an issue describing the bug you are fixing or the feature you are proposing to add.
|
||||
|
||||
- [ ] This pull request addresses an issue that has been marked with the 'Pull request accepted' label & I have added the link to that issue.
|
||||
- [ ] It contains one or more small, incremental, logically separate commits, with no merge commits.
|
||||
- [ ] I have used clear commit messages.
|
||||
- [ ] Existing tests pass for me locally & I have added or updated tests for new or changed functionality.
|
||||
Here are some other tips that make pull requests easier to review:
|
||||
|
||||
* Commits in the branch are small and logically separated (with no unnecessary merge commits).
|
||||
* Commit messages are clear.
|
||||
* Existing tests pass, new functionality is covered by new tests, and fixes have regression tests.
|
||||
|
||||
Thanks
|
||||
-->
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,4 +2,3 @@
|
||||
/coverage/
|
||||
/dist/
|
||||
node_modules/
|
||||
src/index.js
|
||||
|
||||
17
.travis.yml
17
.travis.yml
@@ -1,17 +0,0 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- '8'
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
after_success:
|
||||
- cat coverage/lcov.info | coveralls
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
addons:
|
||||
hosts:
|
||||
- travis.dev
|
||||
jwt:
|
||||
# This is the encrypted SAUCE_ACCESS_KEY
|
||||
secure: bb2Ibzu9RLe6ZlIG7JVcuH7IoLMxa/i3LTM7t8mbsPjVOGs5ycyJ7M9MbvqB/F2EzbeV4XB2c9ufI4TkaLYceY5kdWjfZVN8iasr+GFqKMv1uR4i6bpu8KmHJ+blxwfY1QOQ/cGwEx+fbeycMtpTc3Y3GyXaPlCQLhbZvesMg88=
|
||||
@@ -30,7 +30,7 @@ To run the examples you first need to start the dev server:
|
||||
|
||||
$ npm run serve-examples
|
||||
|
||||
Then, load <http://localhost:5000/> in your browser.
|
||||
Then, load <http://localhost:8080/> in your browser.
|
||||
|
||||
## Running tests
|
||||
|
||||
|
||||
48
README.md
48
README.md
@@ -1,23 +1,45 @@
|
||||
# OpenLayers
|
||||
|
||||
[](http://travis-ci.org/#!/openlayers/openlayers)
|
||||
[](https://greenkeeper.io/)
|
||||
[](https://coveralls.io/github/openlayers/openlayers?branch=master)
|
||||
[](http://osgeo.org/)
|
||||
[](https://www.jsdelivr.com/package/npm/openlayers)
|
||||
|
||||
[OpenLayers](https://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
|
||||
|
||||
Use one of the following methods to use OpenLayers in your project:
|
||||
Install the [`ol` package](https://www.npmjs.com/package/ol):
|
||||
|
||||
* For use with webpack, Rollup, Browserify, or other module bundlers, install the [`ol` package](https://www.npmjs.com/package/ol):
|
||||
```
|
||||
npm install ol
|
||||
```
|
||||
```
|
||||
npm install ol
|
||||
```
|
||||
|
||||
* If you just want to add a `<script>` tag to test things out, you can link directly to one of the full builds from [cdnjs](https://cdnjs.com/libraries/openlayers) (not recommended for production)
|
||||
Import just what you need for your application:
|
||||
|
||||
```js
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import XYZ from 'ol/source/XYZ';
|
||||
|
||||
new Map({
|
||||
target: 'map',
|
||||
layers: [
|
||||
new TileLayer({
|
||||
source: new XYZ({
|
||||
url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png'
|
||||
})
|
||||
})
|
||||
],
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
})
|
||||
});
|
||||
```
|
||||
|
||||
See the following examples for more detail on bundling OpenLayers with your application:
|
||||
|
||||
* Using [Rollup](https://github.com/openlayers/ol-rollup)
|
||||
* Using [Webpack](https://github.com/openlayers/ol-webpack)
|
||||
* Using [Parcel](https://github.com/openlayers/ol-parcel)
|
||||
* Using [Browserify](https://github.com/openlayers/ol-browserify)
|
||||
|
||||
## Supported Browsers
|
||||
|
||||
@@ -39,3 +61,5 @@ Please see our guide on [contributing](CONTRIBUTING.md) if you're interested in
|
||||
|
||||
- Need help? Find it on [Stack Overflow using the tag 'openlayers'](http://stackoverflow.com/questions/tagged/openlayers)
|
||||
- Follow [@openlayers](https://twitter.com/openlayers) on Twitter
|
||||
|
||||
[](https://travis-ci.org/openlayers/openlayers)
|
||||
|
||||
@@ -1,5 +1,35 @@
|
||||
## Upgrade notes
|
||||
|
||||
### Next version
|
||||
|
||||
### v5.3.0
|
||||
|
||||
#### The `getUid` function returns string
|
||||
|
||||
The `getUid` function from the `ol/util` module now returns a string instead of a number.
|
||||
|
||||
#### Attributions are not collapsible for `ol/source/OSM`
|
||||
|
||||
When a map contains a layer from a `ol/source/OSM` source, the `ol/control/Attribution` control will be shown with the `collapsible: false` behavior.
|
||||
|
||||
To get the previous behavior, configure the `ol/control/Attribution` control with `collapsible: true`.
|
||||
|
||||
### v5.2.0
|
||||
|
||||
#### Removal of the `snapToPixel` option for `ol/style/Image` subclasses
|
||||
|
||||
The `snapToPixel` option has been removed, and the `getSnapToPixel` and `setSnapToPixel` methods are deprecated.
|
||||
|
||||
The renderer now snaps to integer pixels when no interaction or animation is running to get crisp rendering. During interaction or animation, it does not snap to integer pixels to avoid jitter.
|
||||
|
||||
When rendering with the Immediate API, symbols will no longer be snapped to integer pixels. To get crisp images, set `context.imageSmoothingEnabled = false` before rendering with the Immediate API, and `context.imageSmoothingEnabled = true` afterwards.
|
||||
|
||||
### v5.1.0
|
||||
|
||||
#### Geometry constructor and `setCoordinates` no longer accept `null` coordinates
|
||||
|
||||
Geometries (`ol/geom/*`) now need to be constructed with valid coordinates (center for `ol/geom/Circle`) as first constructor argument. The same applies to the `setCoordinates()` (`setCenter()` for `ol/geom/Circle`) method.
|
||||
|
||||
### v5.0.0
|
||||
|
||||
#### Renamed `ol/source/TileUTFGrid` to `ol/source/UTFGrid`
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 5.0.2
|
||||
|
||||
The v5.0.1 release updates the package readme with new example projects.
|
||||
The v5.0.2 release updates the package readme with new example projects.
|
||||
|
||||
## Fixes
|
||||
|
||||
|
||||
9
changelog/v5.0.3.md
Normal file
9
changelog/v5.0.3.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 5.0.3
|
||||
|
||||
The v5.0.3 fixes a regression in the vector tile renderer and improves the built examples and release package.
|
||||
|
||||
## Fixes
|
||||
|
||||
* [#8364](https://github.com/openlayers/openlayers/pull/8364) - Make examples work in IE11 ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8363](https://github.com/openlayers/openlayers/pull/8363) - Autogenerate src/ol/package.json ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8371](https://github.com/openlayers/openlayers/pull/8371) - Skip rendering when there is no replay group ([@ahocevar](https://github.com/ahocevar))
|
||||
64
changelog/v5.1.0.md
Normal file
64
changelog/v5.1.0.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# v5.1.0
|
||||
|
||||
The 5.1 release adds a few new features a handful of fixes. You should be able to upgrade without any additional work. See the one note below regarding `null` geometry coordinates.
|
||||
|
||||
We're working toward type checking with TypeScript. This will complete our move away from using the Closure Compiler for type checking and compilation. We're excited about the improved experience for application developers and will highlight some of the benefit in upcoming releases.
|
||||
|
||||
### Upgrade Notes
|
||||
|
||||
#### Geometry constructor and `setCoordinates` no longer accept `null` coordinates
|
||||
|
||||
Geometries (`ol/geom/*`) now need to be constructed with valid coordinates (center for `ol/geom/Circle`) as first constructor argument. The same applies to the `setCoordinates()` (`setCenter() for `ol/geom/Circle`) method.
|
||||
|
||||
### New Features and Fixes
|
||||
|
||||
* [#8409](https://github.com/openlayers/openlayers/pull/8409) - Add abstract translate to ol/geom/Geometry ([@pjeweb](https://github.com/pjeweb))
|
||||
* [#8405](https://github.com/openlayers/openlayers/pull/8405) - Minor type fixes ([@tschaub](https://github.com/tschaub))
|
||||
* [#8401](https://github.com/openlayers/openlayers/pull/8401) - Make webpack's css loader work ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8403](https://github.com/openlayers/openlayers/pull/8403) - Markdown links ([@tschaub](https://github.com/tschaub))
|
||||
* [#8402](https://github.com/openlayers/openlayers/pull/8402) - Type fixes from the typescript checks ([@fredj](https://github.com/fredj))
|
||||
* [#8400](https://github.com/openlayers/openlayers/pull/8400) - ESLint config update ([@tschaub](https://github.com/tschaub))
|
||||
* [#8399](https://github.com/openlayers/openlayers/pull/8399) - Copy ol.css to build dir when building package ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8397](https://github.com/openlayers/openlayers/pull/8397) - Update rollup ([@tschaub](https://github.com/tschaub))
|
||||
* [#8385](https://github.com/openlayers/openlayers/pull/8385) - Use class syntax ([@openlayers](https://github.com/openlayers))
|
||||
* [#8383](https://github.com/openlayers/openlayers/pull/8383) - style/Icon: Add `setAnchor()` method ([@Turbo87](https://github.com/Turbo87))
|
||||
* [#8368](https://github.com/openlayers/openlayers/pull/8368) - Make render listeners work with image render mode ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8376](https://github.com/openlayers/openlayers/pull/8376) - copy ZM values to polygon in makeRegular ([@virtualcitySYSTEMS](https://github.com/virtualcitySYSTEMS))
|
||||
* [#8372](https://github.com/openlayers/openlayers/pull/8372) - Release v5.0.3 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8364](https://github.com/openlayers/openlayers/pull/8364) - Make examples work in IE11 ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8363](https://github.com/openlayers/openlayers/pull/8363) - Autogenerate src/ol/package.json ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8371](https://github.com/openlayers/openlayers/pull/8371) - Skip rendering when there is no replay group ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8362](https://github.com/openlayers/openlayers/pull/8362) - Smart flat coordinates ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8352](https://github.com/openlayers/openlayers/pull/8352) - Set `sideEffects` to `false` instead of `"false"` ([@tschaub](https://github.com/tschaub))
|
||||
* [#8351](https://github.com/openlayers/openlayers/pull/8351) - Fix typo in release notes ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8350](https://github.com/openlayers/openlayers/pull/8350) - Updates for v5.0.2 ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8349](https://github.com/openlayers/openlayers/pull/8349) - Release v5.0.1 ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8343](https://github.com/openlayers/openlayers/pull/8343) - Starter projects ([@tschaub](https://github.com/tschaub))
|
||||
* [#8347](https://github.com/openlayers/openlayers/pull/8347) - Fix typos in release notes ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8346](https://github.com/openlayers/openlayers/pull/8346) - Release v5.0.1 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8342](https://github.com/openlayers/openlayers/pull/8342) - Fix links and description in quickstart tutorial ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8344](https://github.com/openlayers/openlayers/pull/8344) - Updated issue and pr templates ([@tschaub](https://github.com/tschaub))
|
||||
* [#8341](https://github.com/openlayers/openlayers/pull/8341) - Set sideEffects: false flag ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8333](https://github.com/openlayers/openlayers/pull/8333) - Fix wrong return type for readHref function ([@openlayers](https://github.com/openlayers))
|
||||
* [#8329](https://github.com/openlayers/openlayers/pull/8329) - Better jsdoc typing ([@fredj](https://github.com/fredj))
|
||||
* [#8319](https://github.com/openlayers/openlayers/pull/8319) - Remove reference to setProj4 function in documentation ([@fredj](https://github.com/fredj))
|
||||
|
||||
|
||||
<details>
|
||||
<summary>Dependency Updates</summary>
|
||||
|
||||
* [#8410](https://github.com/openlayers/openlayers/pull/8410) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8408](https://github.com/openlayers/openlayers/pull/8408) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8386](https://github.com/openlayers/openlayers/pull/8386) - Update fs-extra to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8382](https://github.com/openlayers/openlayers/pull/8382) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8373](https://github.com/openlayers/openlayers/pull/8373) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8355](https://github.com/openlayers/openlayers/pull/8355) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8354](https://github.com/openlayers/openlayers/pull/8354) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8348](https://github.com/openlayers/openlayers/pull/8348) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8338](https://github.com/openlayers/openlayers/pull/8338) - Update recast to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8332](https://github.com/openlayers/openlayers/pull/8332) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8326](https://github.com/openlayers/openlayers/pull/8326) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8321](https://github.com/openlayers/openlayers/pull/8321) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8318](https://github.com/openlayers/openlayers/pull/8318) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
|
||||
</details>
|
||||
3
changelog/v5.1.1.md
Normal file
3
changelog/v5.1.1.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# 5.1.1
|
||||
|
||||
The 5.1.1 release is a patch to include the readme in the package. See the [5.1.0 notes](https://github.com/openlayers/openlayers/releases/tag/v5.1.0) for detail on the 5.1 release.
|
||||
5
changelog/v5.1.2.md
Normal file
5
changelog/v5.1.2.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 5.1.2
|
||||
|
||||
The 5.1.2 release is a patch to fix the API docs. See the [5.1.0 notes](https://github.com/openlayers/openlayers/releases/tag/v5.1.0) for detail on the 5.1 release.
|
||||
|
||||
* [#8413](https://github.com/openlayers/openlayers/pull/8413) - Remove extra curly in type ([@tschaub](https://github.com/tschaub))
|
||||
6
changelog/v5.1.3.md
Normal file
6
changelog/v5.1.3.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# 5.1.3
|
||||
|
||||
The 5.1.3 release is a patch to fix the API docs and the legacy full build. See the [5.1.0 notes](https://github.com/openlayers/openlayers/releases/tag/v5.1.0) for detail on the 5.1 release.
|
||||
|
||||
* [#8417](https://github.com/openlayers/openlayers/pull/8417) - Minor doc updates ([@tschaub](https://github.com/tschaub))
|
||||
* [#8418](https://github.com/openlayers/openlayers/pull/8418) - Set api annotation on classdesc, not constructor ([@ahocevar](https://github.com/ahocevar))
|
||||
86
changelog/v5.2.0.md
Normal file
86
changelog/v5.2.0.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# v5.2.0
|
||||
|
||||
The 5.2 release adds a few new features a handful of fixes, including regressions that were reported after the 5.1 release. You should be able to upgrade without any additional work. See the one note below regarding `snapToPixel` on `ol/style/Image` and subclasses.
|
||||
|
||||
We're still working toward type checking with TypeScript. Until that is complete, we apologize for some flwas in the online API documentation. We're excited about the improved experience for application developers when the effort is finished, and will highlight some of the benefit in upcoming releases.
|
||||
|
||||
### Upgrade Notes
|
||||
|
||||
#### Removal of the `snapToPixel` option for `ol/style/Image` subclasses
|
||||
|
||||
The `snapToPixel` option has been removed, and the `getSnapToPixel` and `setSnapToPixel` methods are deprecated.
|
||||
|
||||
The renderer now snaps to integer pixels when no interaction or animation is running to get crisp rendering. During interaction or animation, it does not snap to integer pixels to avoid jitter.
|
||||
|
||||
When rendering with the Immediate API, symbols will no longer be snapped to integer pixels. To get crisp images, set `context.imageSmoothingEnabled = false` before rendering with the Immediate API, and `context.imageSmoothingEnabled = true` afterwards.
|
||||
|
||||
### New Features and Fixes
|
||||
|
||||
* [#8511](https://github.com/openlayers/openlayers/pull/8511) - Update IGN API key ([@openlayers](https://github.com/openlayers))
|
||||
* [#8547](https://github.com/openlayers/openlayers/pull/8547) - Fix port number in developing doc ([@pgiraud](https://github.com/pgiraud))
|
||||
* [#8546](https://github.com/openlayers/openlayers/pull/8546) - Update projection FAQ for v5 ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8481](https://github.com/openlayers/openlayers/pull/8481) - Expose some internal functions ([@gberaudo](https://github.com/gberaudo))
|
||||
* [#8510](https://github.com/openlayers/openlayers/pull/8510) - Fix WMTS URLs with dimensions ([@gberaudo](https://github.com/gberaudo))
|
||||
* [#8524](https://github.com/openlayers/openlayers/pull/8524) - Fix compatiblity with XHTML content type ([@NeoRaider](https://github.com/NeoRaider))
|
||||
* [#8532](https://github.com/openlayers/openlayers/pull/8532) - Add 'rendercomplete' event ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8529](https://github.com/openlayers/openlayers/pull/8529) - Update link to base class in docs ([@TDesjardins](https://github.com/TDesjardins))
|
||||
* [#8528](https://github.com/openlayers/openlayers/pull/8528) - Update link to base class in docs ([@TDesjardins](https://github.com/TDesjardins))
|
||||
* [#8525](https://github.com/openlayers/openlayers/pull/8525) - Re-export Projection from ol/proj for convenience ([@tschaub](https://github.com/tschaub))
|
||||
* [#8499](https://github.com/openlayers/openlayers/pull/8499) - Round center in viewState to pixels ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8520](https://github.com/openlayers/openlayers/pull/8520) - Remove redundant if block ([@openlayers](https://github.com/openlayers))
|
||||
* [#8515](https://github.com/openlayers/openlayers/pull/8515) - More convenient select and sketch layer management ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8503](https://github.com/openlayers/openlayers/pull/8503) - Avoid block scope issues in transpiled code ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8490](https://github.com/openlayers/openlayers/pull/8490) - WMTS getCapabilities readCoodinates more than one whitespace delimiter ([@MarquesDeAzevedo](https://github.com/MarquesDeAzevedo))
|
||||
* [#8489](https://github.com/openlayers/openlayers/pull/8489) - Use .prototype. only where necessary ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8478](https://github.com/openlayers/openlayers/pull/8478) - Check font availability with multiple font weights ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8483](https://github.com/openlayers/openlayers/pull/8483) - Don't create Polygon with null coordinates ([@fredj](https://github.com/fredj))
|
||||
* [#8471](https://github.com/openlayers/openlayers/pull/8471) - Add getUrl and getImageExtent to ImageStatic API ([@samuel-girard](https://github.com/samuel-girard))
|
||||
* [#8470](https://github.com/openlayers/openlayers/pull/8470) - Update Tile loading API docs ([@scroach](https://github.com/scroach))
|
||||
* [#8477](https://github.com/openlayers/openlayers/pull/8477) - Expose original getGutter ([@gberaudo](https://github.com/gberaudo))
|
||||
* [#8466](https://github.com/openlayers/openlayers/pull/8466) - Add onFocusOnly option to interaction defaults ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8465](https://github.com/openlayers/openlayers/pull/8465) - Do not prevent default on pointermove ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8461](https://github.com/openlayers/openlayers/pull/8461) - Fix double backtick typo ([@lionralfs](https://github.com/lionralfs))
|
||||
* [#8452](https://github.com/openlayers/openlayers/pull/8452) - Remove extra translate function in Geometry, add missing api tag ([@fredj](https://github.com/fredj))
|
||||
* [#8451](https://github.com/openlayers/openlayers/pull/8451) - Remove unimplemented functions ([@fredj](https://github.com/fredj))
|
||||
* [#8450](https://github.com/openlayers/openlayers/pull/8450) - Mark properties of ReadOptions and WriteOptions as optional ([@fredj](https://github.com/fredj))
|
||||
* [#8443](https://github.com/openlayers/openlayers/pull/8443) - Explicit void ([@tschaub](https://github.com/tschaub))
|
||||
* [#8437](https://github.com/openlayers/openlayers/pull/8437) - Avoid shadowing EventTarget ([@tschaub](https://github.com/tschaub))
|
||||
* [#8439](https://github.com/openlayers/openlayers/pull/8439) - Fewer dots in types ([@tschaub](https://github.com/tschaub))
|
||||
* [#8441](https://github.com/openlayers/openlayers/pull/8441) - Fix loaded script for the example-verbatim examples ([@fredj](https://github.com/fredj))
|
||||
* [#8435](https://github.com/openlayers/openlayers/pull/8435) - Call setCoordinates on the point instance ([@fredj](https://github.com/fredj))
|
||||
* [#8428](https://github.com/openlayers/openlayers/pull/8428) - Type name on same line as type ([@tschaub](https://github.com/tschaub))
|
||||
* [#8422](https://github.com/openlayers/openlayers/pull/8422) - Improve JSDoc such that `ng build --prod` with angular/cli 6.0.8 succeeds again ([@jkoelewijn](https://github.com/jkoelewijn))
|
||||
* [#8396](https://github.com/openlayers/openlayers/pull/8396) - Fix ol.interaction.Draw~createRegularPolygon ([@iamplex](https://github.com/iamplex))
|
||||
* [#8420](https://github.com/openlayers/openlayers/pull/8420) - Keep function names when building examples ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8419](https://github.com/openlayers/openlayers/pull/8419) - Release v5.1.3 ([@tschaub](https://github.com/tschaub))
|
||||
* [#8417](https://github.com/openlayers/openlayers/pull/8417) - Minor doc updates ([@tschaub](https://github.com/tschaub))
|
||||
* [#8418](https://github.com/openlayers/openlayers/pull/8418) - Set api annotation on classdesc, not constructor ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8414](https://github.com/openlayers/openlayers/pull/8414) - Updates for 5.1.2 ([@tschaub](https://github.com/tschaub))
|
||||
* [#8413](https://github.com/openlayers/openlayers/pull/8413) - Remove extra curly in type ([@tschaub](https://github.com/tschaub))
|
||||
* [#8412](https://github.com/openlayers/openlayers/pull/8412) - Changes for 5.1.1. ([@tschaub](https://github.com/tschaub))
|
||||
|
||||
|
||||
<details>
|
||||
<summary>Dependency Updates</summary>
|
||||
|
||||
* [#8543](https://github.com/openlayers/openlayers/pull/8543) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8541](https://github.com/openlayers/openlayers/pull/8541) - Update proj4 to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8542](https://github.com/openlayers/openlayers/pull/8542) - Update rollup-plugin-commonjs to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8533](https://github.com/openlayers/openlayers/pull/8533) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8530](https://github.com/openlayers/openlayers/pull/8530) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8522](https://github.com/openlayers/openlayers/pull/8522) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8505](https://github.com/openlayers/openlayers/pull/8505) - Update karma to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8501](https://github.com/openlayers/openlayers/pull/8501) - Update rollup-plugin-commonjs to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8495](https://github.com/openlayers/openlayers/pull/8495) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8493](https://github.com/openlayers/openlayers/pull/8493) - Update clean-css-cli to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8491](https://github.com/openlayers/openlayers/pull/8491) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8486](https://github.com/openlayers/openlayers/pull/8486) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8476](https://github.com/openlayers/openlayers/pull/8476) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8475](https://github.com/openlayers/openlayers/pull/8475) - Update clean-css-cli to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8469](https://github.com/openlayers/openlayers/pull/8469) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8453](https://github.com/openlayers/openlayers/pull/8453) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8447](https://github.com/openlayers/openlayers/pull/8447) - Update rollup-plugin-commonjs to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8426](https://github.com/openlayers/openlayers/pull/8426) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
|
||||
|
||||
</details>
|
||||
217
changelog/v5.3.0.md
Normal file
217
changelog/v5.3.0.md
Normal file
@@ -0,0 +1,217 @@
|
||||
# v5.3.0
|
||||
|
||||
We're continuing to work toward more complete type checking with TypeScript – based on JSDoc annotations in the source. The 5.3 release includes a number of bug fixes related to the type checking effort. In addition the release comes with a handful of new features and improved API reference docs.
|
||||
|
||||
### Upgrade Notes
|
||||
|
||||
#### The `getUid` function returns string
|
||||
|
||||
The `getUid` function from the `ol/util` module now returns a string instead of a number.
|
||||
|
||||
#### Attributions are not collapsible for `ol/source/OSM`
|
||||
|
||||
When a map contains a layer from a `ol/source/OSM` source, the `ol/control/Attribution` control will be shown with the `collapsible: false` behavior.
|
||||
|
||||
To get the previous behavior, configure the `ol/control/Attribution` control with `collapsible: true`.
|
||||
|
||||
### New Features and Fixes
|
||||
|
||||
* [#8642](https://github.com/openlayers/openlayers/pull/8642) - Fixes for optional key passing, issue #8067 for tile sources ([@dimin](https://github.com/dimin))
|
||||
* [#8885](https://github.com/openlayers/openlayers/pull/8885) - Move GeolocationProperty into Geolocation ([@fredj](https://github.com/fredj))
|
||||
* [#8881](https://github.com/openlayers/openlayers/pull/8881) - Remove custom styles in drag-and-drop examples ([@fredj](https://github.com/fredj))
|
||||
* [#8877](https://github.com/openlayers/openlayers/pull/8877) - Create context in vector tile layer constructor ([@tschaub](https://github.com/tschaub))
|
||||
* [#8883](https://github.com/openlayers/openlayers/pull/8883) - New test runner ([@tschaub](https://github.com/tschaub))
|
||||
* [#8882](https://github.com/openlayers/openlayers/pull/8882) - Import simplification ([@fredj](https://github.com/fredj))
|
||||
* [#8858](https://github.com/openlayers/openlayers/pull/8858) - Add condition for viewParams and TypeScript related option ([@webgeodatavore](https://github.com/webgeodatavore))
|
||||
* [#8879](https://github.com/openlayers/openlayers/pull/8879) - Build with CircleCI ([@openlayers](https://github.com/openlayers))
|
||||
* [#8878](https://github.com/openlayers/openlayers/pull/8878) - Avoid logging 404 warnings ([@tschaub](https://github.com/tschaub))
|
||||
* [#8876](https://github.com/openlayers/openlayers/pull/8876) - Remove RenderType enum from vector tile layer ([@tschaub](https://github.com/tschaub))
|
||||
* [#8874](https://github.com/openlayers/openlayers/pull/8874) - Remove unnecessary type casts in canvas layer renderer ([@tschaub](https://github.com/tschaub))
|
||||
* [#8869](https://github.com/openlayers/openlayers/pull/8869) - Fix more types for TypeScript ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8868](https://github.com/openlayers/openlayers/pull/8868) - Throw when calling abstract methods; fix abstract return types ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8862](https://github.com/openlayers/openlayers/pull/8862) - Legacy build and apidoc improvements ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8867](https://github.com/openlayers/openlayers/pull/8867) - Fix example builder ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8852](https://github.com/openlayers/openlayers/pull/8852) - Improve link handling in API docs ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8853](https://github.com/openlayers/openlayers/pull/8853) - Make rendercomplete work with vector sources without loader ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8851](https://github.com/openlayers/openlayers/pull/8851) - Use typescript types for RBush ([@fredj](https://github.com/fredj))
|
||||
* [#8850](https://github.com/openlayers/openlayers/pull/8850) - Remove old TODO in ol/Graticule ([@fredj](https://github.com/fredj))
|
||||
* [#8847](https://github.com/openlayers/openlayers/pull/8847) - Fix API docs ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8845](https://github.com/openlayers/openlayers/pull/8845) - Remove RenderType enum from vector layer ([@tschaub](https://github.com/tschaub))
|
||||
* [#8843](https://github.com/openlayers/openlayers/pull/8843) - Fix ts typing for fullscreen button ([@tonio](https://github.com/tonio))
|
||||
* [#8841](https://github.com/openlayers/openlayers/pull/8841) - Use super.method instead of prototype.method.call ([@fredj](https://github.com/fredj))
|
||||
* [#8842](https://github.com/openlayers/openlayers/pull/8842) - Change target type from Element to HTMLElement ([@fredj](https://github.com/fredj))
|
||||
* [#8840](https://github.com/openlayers/openlayers/pull/8840) - Remove unneeded code in VectorTile renderer ([@elemoine](https://github.com/elemoine))
|
||||
* [#8844](https://github.com/openlayers/openlayers/pull/8844) - Set crossOrigin to anonymous in mapbox-streets-v6-style ([@elemoine](https://github.com/elemoine))
|
||||
* [#8776](https://github.com/openlayers/openlayers/pull/8776) - Use setTimeout without the window namespace ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8837](https://github.com/openlayers/openlayers/pull/8837) - Re-export MousePosition from ol/control ([@fredj](https://github.com/fredj))
|
||||
* [#8832](https://github.com/openlayers/openlayers/pull/8832) - Remove source foreachfeatureatcoordinate from ol/renderer/webgl/ImageLayer ([@fredj](https://github.com/fredj))
|
||||
* [#8833](https://github.com/openlayers/openlayers/pull/8833) - Fix wrong filename in type annotation ([@fredj](https://github.com/fredj))
|
||||
* [#8827](https://github.com/openlayers/openlayers/pull/8827) - Removed unused forEachFeatureAtCoordinate from ol/source/Source ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8830](https://github.com/openlayers/openlayers/pull/8830) - Type annotation fixes in ol/control/ ([@fredj](https://github.com/fredj))
|
||||
* [#8829](https://github.com/openlayers/openlayers/pull/8829) - Change getUid return type from number to string ([@fredj](https://github.com/fredj))
|
||||
* [#8825](https://github.com/openlayers/openlayers/pull/8825) - Fix TypeScript errors ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8828](https://github.com/openlayers/openlayers/pull/8828) - Re-export VectorTile from ol/source ([@elemoine](https://github.com/elemoine))
|
||||
* [#8806](https://github.com/openlayers/openlayers/pull/8806) - Preserve button class name list in full screen control on toggle ([@notnotse](https://github.com/notnotse))
|
||||
* [#8817](https://github.com/openlayers/openlayers/pull/8817) - Clarify format option for ol/source/WMTS ([@romanzoller](https://github.com/romanzoller))
|
||||
* [#8824](https://github.com/openlayers/openlayers/pull/8824) - Fix TypeScript errors in ol/format/GML ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8820](https://github.com/openlayers/openlayers/pull/8820) - Polygon intersectsExtent failure - Issue #8795 ([@hmdavidjunior](https://github.com/hmdavidjunior))
|
||||
* [#8519](https://github.com/openlayers/openlayers/pull/8519) - GML Format Improvements #8516 #8517 #8518 ([@NielsCharlier](https://github.com/NielsCharlier))
|
||||
* [#8711](https://github.com/openlayers/openlayers/pull/8711) - Fix TypeScript errors in ol/format/GML ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8818](https://github.com/openlayers/openlayers/pull/8818) - Fix the way zoom comes from ([@cs09g](https://github.com/cs09g))
|
||||
* [#8804](https://github.com/openlayers/openlayers/pull/8804) - Add possibility to disable collapsible attributions from Source ([@notnotse](https://github.com/notnotse))
|
||||
* [#8787](https://github.com/openlayers/openlayers/pull/8787) - Replace instanceof checks with other logic ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8808](https://github.com/openlayers/openlayers/pull/8808) - Fix format and version properties in ol/source/WMTS Options typedef ([@fredj](https://github.com/fredj))
|
||||
* [#8812](https://github.com/openlayers/openlayers/pull/8812) - Update snap.js ([@rosedo](https://github.com/rosedo))
|
||||
* [#8809](https://github.com/openlayers/openlayers/pull/8809) - Configurable interval options ([@notnotse](https://github.com/notnotse))
|
||||
* [#8798](https://github.com/openlayers/openlayers/pull/8798) - Use unpkg.com instead of rawgit.com ([@fredj](https://github.com/fredj))
|
||||
* [#8805](https://github.com/openlayers/openlayers/pull/8805) - Do not draw image with width or height < 0.5 ([@notnotse](https://github.com/notnotse))
|
||||
* [#8803](https://github.com/openlayers/openlayers/pull/8803) - Handle zoom slider position with floating point numbers ([@notnotse](https://github.com/notnotse))
|
||||
* [#8789](https://github.com/openlayers/openlayers/pull/8789) - Spelling and indentation fixes ([@fredj](https://github.com/fredj))
|
||||
* [#8782](https://github.com/openlayers/openlayers/pull/8782) - Fix getSimplifiedGeometry definition ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8783](https://github.com/openlayers/openlayers/pull/8783) - Fix missing method declaration ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8781](https://github.com/openlayers/openlayers/pull/8781) - Fix type check errors ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8779](https://github.com/openlayers/openlayers/pull/8779) - Fix additional type check errors ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8753](https://github.com/openlayers/openlayers/pull/8753) - Fix type check in ol/PluggableMap.js ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8762](https://github.com/openlayers/openlayers/pull/8762) - Fix type errors from interaction event handlers ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8763](https://github.com/openlayers/openlayers/pull/8763) - Fix type check for ol/events ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8774](https://github.com/openlayers/openlayers/pull/8774) - Fix type check errors in ol/renderer/webgl ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8768](https://github.com/openlayers/openlayers/pull/8768) - Fix type check errors in ol/interaction/Select ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8764](https://github.com/openlayers/openlayers/pull/8764) - Fix TypeScript errors in ol/interaction/Draw ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8767](https://github.com/openlayers/openlayers/pull/8767) - Fix type check errors in ol/interaction/Modify ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8773](https://github.com/openlayers/openlayers/pull/8773) - Fix type check errors in ol/renderer/canvas ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8769](https://github.com/openlayers/openlayers/pull/8769) - Fix type check errors in ol/render/canvas ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8770](https://github.com/openlayers/openlayers/pull/8770) - Fix type check errors in ol/render/webgl ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8765](https://github.com/openlayers/openlayers/pull/8765) - Simplify logic for fixed tile url functions ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8766](https://github.com/openlayers/openlayers/pull/8766) - Use FeatureLike typedef ([@fredj](https://github.com/fredj))
|
||||
* [#8739](https://github.com/openlayers/openlayers/pull/8739) - Fix TypeScript errors in ol/format/WMSGetFeatureInfo ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8666](https://github.com/openlayers/openlayers/pull/8666) - Fix condition TypeScript errors ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8757](https://github.com/openlayers/openlayers/pull/8757) - Use typeof to simplify JSDoc class types ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8759](https://github.com/openlayers/openlayers/pull/8759) - Use es6 class inheritance in examples ([@fredj](https://github.com/fredj))
|
||||
* [#8761](https://github.com/openlayers/openlayers/pull/8761) - Allow returning RenderFeature in ol/format/Feature ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8758](https://github.com/openlayers/openlayers/pull/8758) - Fix TS error and prevent extra string conversion ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8736](https://github.com/openlayers/openlayers/pull/8736) - Typescript misc fixes ([@fredj](https://github.com/fredj))
|
||||
* [#8741](https://github.com/openlayers/openlayers/pull/8741) - Fix TypeScript errors in ol/geom/* ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8707](https://github.com/openlayers/openlayers/pull/8707) - Fix TypeScript errors in ol/format/Feature ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8754](https://github.com/openlayers/openlayers/pull/8754) - Fix type check in ol/math ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8747](https://github.com/openlayers/openlayers/pull/8747) - Update doc/faq.md ([@fredj](https://github.com/fredj))
|
||||
* [#8744](https://github.com/openlayers/openlayers/pull/8744) - Fix type checks in VectorTileSource ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8740](https://github.com/openlayers/openlayers/pull/8740) - Increase linestring textalign test tolerance to be Firefox compliant. ([@benVigie](https://github.com/benVigie))
|
||||
* [#8738](https://github.com/openlayers/openlayers/pull/8738) - Cast to parent type to fix TS errors ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8737](https://github.com/openlayers/openlayers/pull/8737) - Flag optional param to fix TS error ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8742](https://github.com/openlayers/openlayers/pull/8742) - Fix type checks in Vector source ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8743](https://github.com/openlayers/openlayers/pull/8743) - Fix type check in Raster source ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8733](https://github.com/openlayers/openlayers/pull/8733) - Fix TypeScript errors in ol/format/WFS ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8735](https://github.com/openlayers/openlayers/pull/8735) - Fix TypeScript errors in ol/format/WKT ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8730](https://github.com/openlayers/openlayers/pull/8730) - Fix TypeScript errors in ol/format/KML ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8732](https://github.com/openlayers/openlayers/pull/8732) - Fix type check in ol/source/Tile ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8731](https://github.com/openlayers/openlayers/pull/8731) - Dispatch a GeolocationError in Geolocation ([@fredj](https://github.com/fredj))
|
||||
* [#8729](https://github.com/openlayers/openlayers/pull/8729) - Move functions out of the PointerEvent class ([@fredj](https://github.com/fredj))
|
||||
* [#8724](https://github.com/openlayers/openlayers/pull/8724) - Typescript misc fixes ([@fredj](https://github.com/fredj))
|
||||
* [#8717](https://github.com/openlayers/openlayers/pull/8717) - Fix type checks in TileArcGISRest ([@fredj](https://github.com/fredj))
|
||||
* [#8718](https://github.com/openlayers/openlayers/pull/8718) - Fix TypeScript errors in ol/format/GPX ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8706](https://github.com/openlayers/openlayers/pull/8706) - Use EsriJSON types from @types/arcgis-rest-api ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8709](https://github.com/openlayers/openlayers/pull/8709) - Fix TypeScript errors in ol/format/GeoJSON ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8708](https://github.com/openlayers/openlayers/pull/8708) - Fix type checks in ImageCanvas source ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8710](https://github.com/openlayers/openlayers/pull/8710) - Fix type checks in ImageArcGISRest ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8698](https://github.com/openlayers/openlayers/pull/8698) - Fix zoom slider events ([@intouch-smartwater](https://github.com/intouch-smartwater))
|
||||
* [#8697](https://github.com/openlayers/openlayers/pull/8697) - Remove unused properties from Cluster and Image options ([@fredj](https://github.com/fredj))
|
||||
* [#8688](https://github.com/openlayers/openlayers/pull/8688) - Fix PointerEventHandler event type ([@fredj](https://github.com/fredj))
|
||||
* [#8686](https://github.com/openlayers/openlayers/pull/8686) - Remove extra imports in jsdoc ([@fredj](https://github.com/fredj))
|
||||
* [#8681](https://github.com/openlayers/openlayers/pull/8681) - Check the type of the source before using it ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8691](https://github.com/openlayers/openlayers/pull/8691) - Fix assertion error documentation URL ([@romanzoller](https://github.com/romanzoller))
|
||||
* [#8692](https://github.com/openlayers/openlayers/pull/8692) - Type check fixes for Cluster source ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8677](https://github.com/openlayers/openlayers/pull/8677) - Type check fixes for VectorSource ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8684](https://github.com/openlayers/openlayers/pull/8684) - Define BingMapsImageryMetadataResponse type ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8690](https://github.com/openlayers/openlayers/pull/8690) - Fix type checks in CartoDB ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8693](https://github.com/openlayers/openlayers/pull/8693) - Fix type check errors for Image source ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8672](https://github.com/openlayers/openlayers/pull/8672) - Fix source type in Raster source ([@fredj](https://github.com/fredj))
|
||||
* [#8665](https://github.com/openlayers/openlayers/pull/8665) - Fix type check errors in RBush ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8680](https://github.com/openlayers/openlayers/pull/8680) - TypeScript fixes for ol/events ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8678](https://github.com/openlayers/openlayers/pull/8678) - Ensure image is Image or Video before settings src ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8676](https://github.com/openlayers/openlayers/pull/8676) - Cast tileGrid to WMTSTileGrid for type check ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8679](https://github.com/openlayers/openlayers/pull/8679) - Type check fixes in Triangulation ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8657](https://github.com/openlayers/openlayers/pull/8657) - Typescript fixes ([@fgravin](https://github.com/fgravin))
|
||||
* [#8671](https://github.com/openlayers/openlayers/pull/8671) - Fix typescript in FeatureLoader ([@fgravin](https://github.com/fgravin))
|
||||
* [#8675](https://github.com/openlayers/openlayers/pull/8675) - Get width as number from number|Size ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8654](https://github.com/openlayers/openlayers/pull/8654) - Remove extra imports in jsdoc ([@fredj](https://github.com/fredj))
|
||||
* [#8655](https://github.com/openlayers/openlayers/pull/8655) - Remove webkit specific properties from Touch ([@fredj](https://github.com/fredj))
|
||||
* [#8663](https://github.com/openlayers/openlayers/pull/8663) - Add vendor-specific TS declarations for the Fullscreen API. ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8658](https://github.com/openlayers/openlayers/pull/8658) - Don't define functions in the prototype ([@fredj](https://github.com/fredj))
|
||||
* [#8662](https://github.com/openlayers/openlayers/pull/8662) - Explicitly define type of 'this' ([@wallw-bits](https://github.com/wallw-bits))
|
||||
* [#8664](https://github.com/openlayers/openlayers/pull/8664) - Add native Event to ListenerFunction signature. ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8668](https://github.com/openlayers/openlayers/pull/8668) - Add missing 'module' annotation ([@fredj](https://github.com/fredj))
|
||||
* [#8643](https://github.com/openlayers/openlayers/pull/8643) - Fix style TypeScript errors ([@schmidtk](https://github.com/schmidtk))
|
||||
* [#8638](https://github.com/openlayers/openlayers/pull/8638) - Fix event type in hasListener check ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8618](https://github.com/openlayers/openlayers/pull/8618) - Use TopoJSON types from @types/topojson ([@fredj](https://github.com/fredj))
|
||||
* [#8619](https://github.com/openlayers/openlayers/pull/8619) - Remove wrong Geometry type in KML format ([@fredj](https://github.com/fredj))
|
||||
* [#8627](https://github.com/openlayers/openlayers/pull/8627) - Fix several type imports ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8629](https://github.com/openlayers/openlayers/pull/8629) - Enable circle primitive in draw-shapes example ([@megawac](https://github.com/megawac))
|
||||
* [#8626](https://github.com/openlayers/openlayers/pull/8626) - Better type annotations / type casts ([@marcjansen](https://github.com/marcjansen))
|
||||
* [#8622](https://github.com/openlayers/openlayers/pull/8622) - Remove unused method ([@tschaub](https://github.com/tschaub))
|
||||
* [#8615](https://github.com/openlayers/openlayers/pull/8615) - Use GeoJSON types from @types/geojson ([@tschaub](https://github.com/tschaub))
|
||||
* [#8609](https://github.com/openlayers/openlayers/pull/8609) - Remove extra imports in jsdoc ([@fredj](https://github.com/fredj))
|
||||
* [#8613](https://github.com/openlayers/openlayers/pull/8613) - Lazily detect tainted canvas ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8610](https://github.com/openlayers/openlayers/pull/8610) - Sensible touch behavior of the MousePosition control ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8602](https://github.com/openlayers/openlayers/pull/8602) - Add missing map property in ol/layer/Layer constructor options ([@fredj](https://github.com/fredj))
|
||||
* [#8607](https://github.com/openlayers/openlayers/pull/8607) - Listener return is boolean or void ([@tschaub](https://github.com/tschaub))
|
||||
* [#8595](https://github.com/openlayers/openlayers/pull/8595) - Optional arguments and typedef properties ([@tschaub](https://github.com/tschaub))
|
||||
* [#8594](https://github.com/openlayers/openlayers/pull/8594) - Remove extra imports in jsdoc ([@fredj](https://github.com/fredj))
|
||||
* [#8596](https://github.com/openlayers/openlayers/pull/8596) - Add types for the UTFGrid and TileJSON JSON responses ([@tschaub](https://github.com/tschaub))
|
||||
* [#8591](https://github.com/openlayers/openlayers/pull/8591) - Add missing properties in TextState typedef ([@fredj](https://github.com/fredj))
|
||||
* [#8590](https://github.com/openlayers/openlayers/pull/8590) - Don't import ourselves ([@fredj](https://github.com/fredj))
|
||||
* [#8586](https://github.com/openlayers/openlayers/pull/8586) - Cast 'originalEvent' in interactions ([@fredj](https://github.com/fredj))
|
||||
* [#8588](https://github.com/openlayers/openlayers/pull/8588) - Rework createXYZ ([@tschaub](https://github.com/tschaub))
|
||||
* [#8587](https://github.com/openlayers/openlayers/pull/8587) - Add a statement to trigger TypeScript checking ([@tschaub](https://github.com/tschaub))
|
||||
* [#8345](https://github.com/openlayers/openlayers/pull/8345) - TypeScript (1/n) ([@tschaub](https://github.com/tschaub))
|
||||
* [#8579](https://github.com/openlayers/openlayers/pull/8579) - Better type annotation ([@marcjansen](https://github.com/marcjansen))
|
||||
* [#8580](https://github.com/openlayers/openlayers/pull/8580) - Cast POINTER_ID before comparison ([@marcjansen](https://github.com/marcjansen))
|
||||
* [#8574](https://github.com/openlayers/openlayers/pull/8574) - Rename Extent to ExtentInteraction ([@fredj](https://github.com/fredj))
|
||||
* [#8577](https://github.com/openlayers/openlayers/pull/8577) - Remove geojson.js extern inclusion in tasks/generate-info ([@fredj](https://github.com/fredj))
|
||||
* [#8573](https://github.com/openlayers/openlayers/pull/8573) - Fix freehand polygon drawing ([@fredj](https://github.com/fredj))
|
||||
* [#8572](https://github.com/openlayers/openlayers/pull/8572) - typescript misc fixes ([@fredj](https://github.com/fredj))
|
||||
* [#8569](https://github.com/openlayers/openlayers/pull/8569) - Make proj~get simpler and faster ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8567](https://github.com/openlayers/openlayers/pull/8567) - Use 'Element' type instead of 'Node' ([@fredj](https://github.com/fredj))
|
||||
* [#8558](https://github.com/openlayers/openlayers/pull/8558) - Fix default zIndex value and documentation for layer options ([@fredj](https://github.com/fredj))
|
||||
* [#8555](https://github.com/openlayers/openlayers/pull/8555) - Do not minify examples that inject code into workers ([@ahocevar](https://github.com/ahocevar))
|
||||
* [#8557](https://github.com/openlayers/openlayers/pull/8557) - Fix typo in release notes ([@ahocevar](https://github.com/ahocevar))
|
||||
|
||||
|
||||
<details>
|
||||
<summary>Dependency Updates</summary>
|
||||
|
||||
* [#8884](https://github.com/openlayers/openlayers/pull/8884) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8880](https://github.com/openlayers/openlayers/pull/8880) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8872](https://github.com/openlayers/openlayers/pull/8872) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8860](https://github.com/openlayers/openlayers/pull/8860) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8855](https://github.com/openlayers/openlayers/pull/8855) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8838](https://github.com/openlayers/openlayers/pull/8838) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8834](https://github.com/openlayers/openlayers/pull/8834) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8799](https://github.com/openlayers/openlayers/pull/8799) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8796](https://github.com/openlayers/openlayers/pull/8796) - Update rollup-plugin-commonjs to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8793](https://github.com/openlayers/openlayers/pull/8793) - Update rollup-plugin-buble to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8794](https://github.com/openlayers/openlayers/pull/8794) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8788](https://github.com/openlayers/openlayers/pull/8788) - Update front-matter to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8785](https://github.com/openlayers/openlayers/pull/8785) - chore(package): update rollup to version 0.66.4 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8719](https://github.com/openlayers/openlayers/pull/8719) - Update marked to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8714](https://github.com/openlayers/openlayers/pull/8714) - chore(package): update webpack to version 4.20.2 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8703](https://github.com/openlayers/openlayers/pull/8703) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8646](https://github.com/openlayers/openlayers/pull/8646) - Update mustache to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8645](https://github.com/openlayers/openlayers/pull/8645) - Update rollup-plugin-uglify to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8685](https://github.com/openlayers/openlayers/pull/8685) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8683](https://github.com/openlayers/openlayers/pull/8683) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8656](https://github.com/openlayers/openlayers/pull/8656) - chore(package): update rollup-plugin-commonjs to version 9.1.8 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8667](https://github.com/openlayers/openlayers/pull/8667) - chore(package): update uglifyjs-webpack-plugin to version 2.0.1 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8661](https://github.com/openlayers/openlayers/pull/8661) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8644](https://github.com/openlayers/openlayers/pull/8644) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8631](https://github.com/openlayers/openlayers/pull/8631) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8630](https://github.com/openlayers/openlayers/pull/8630) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8617](https://github.com/openlayers/openlayers/pull/8617) - chore(package): update webpack to version 4.18.0 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8589](https://github.com/openlayers/openlayers/pull/8589) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8581](https://github.com/openlayers/openlayers/pull/8581) - Update rollup-plugin-node-resolve to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8585](https://github.com/openlayers/openlayers/pull/8585) - Update rollup to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8578](https://github.com/openlayers/openlayers/pull/8578) - Update webpack to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8563](https://github.com/openlayers/openlayers/pull/8563) - Update rollup-plugin-uglify to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
* [#8561](https://github.com/openlayers/openlayers/pull/8561) - Update rollup-plugin-uglify to the latest version 🚀 ([@openlayers](https://github.com/openlayers))
|
||||
|
||||
|
||||
</details>
|
||||
@@ -7,22 +7,23 @@
|
||||
"allowUnknownTags": true
|
||||
},
|
||||
"source": {
|
||||
"includePattern": ".+\\.js(doc)?$",
|
||||
"includePattern": ".+\\.js$",
|
||||
"excludePattern": "(^|\\/|\\\\)_",
|
||||
"include": [
|
||||
"src/ol"
|
||||
]
|
||||
},
|
||||
"plugins": [
|
||||
"plugins/markdown",
|
||||
"config/jsdoc/api/plugins/normalize-exports",
|
||||
"config/jsdoc/api/plugins/markdown",
|
||||
"jsdoc-plugin-typescript",
|
||||
"config/jsdoc/api/plugins/inline-options",
|
||||
"config/jsdoc/api/plugins/inheritdoc",
|
||||
"config/jsdoc/api/plugins/events",
|
||||
"config/jsdoc/api/plugins/observable",
|
||||
"config/jsdoc/api/plugins/api"
|
||||
],
|
||||
"markdown": {
|
||||
"parser": "gfm"
|
||||
"typescript": {
|
||||
"moduleRoot": "src"
|
||||
},
|
||||
"templates": {
|
||||
"cleverLinks": true,
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
<td><p>The view manages the visual parameters of the map view, like resolution or rotation.</p>
|
||||
[View](module-ol_View-View.html) with center, projection, resolution and rotation</td>
|
||||
<td><p>Layers are lightweight containers that get their data from [sources](module-ol_source_Source-Source.html).</p>
|
||||
[layer/Tile](module-ol_layer_Tile-TileLayer.html)<br>
|
||||
[layer/Image](module-ol_layer_Image-ImageLayer.html)<br>
|
||||
[layer/Vector](module-ol_layer_Vector-VectorLayer.html)<br>
|
||||
[layer/VectorTile](module-ol_layer_VectorTile-VectorTileLayer.html)</td>
|
||||
[ol/layer/Tile](module-ol_layer_Tile-TileLayer.html)<br>
|
||||
[ol/layer/Image](module-ol_layer_Image-ImageLayer.html)<br>
|
||||
[ol/layer/Vector](module-ol_layer_Vector-VectorLayer.html)<br>
|
||||
[ol/layer/VectorTile](module-ol_layer_VectorTile-VectorTileLayer.html)</td>
|
||||
</tr><tr>
|
||||
<th>Controls</th><th>Interactions</th><th>Sources and formats</th>
|
||||
</tr><tr>
|
||||
@@ -21,20 +21,20 @@
|
||||
<td>
|
||||
[Map default interactions](module-ol_interaction.html#~defaults)<br>
|
||||
Interactions for [vector features](module-ol_Feature-Feature.html)
|
||||
<ul><li>[interaction/Select](module-ol_interaction_Select-Select.html)</li>
|
||||
<li>[interaction/Draw](module-ol_interaction_Draw-Draw.html)</li>
|
||||
<li>[interaction/Modify](module-ol_interaction_Modify-Modify.html)</li></ul>
|
||||
<ul><li>[ol/interaction/Select](module-ol_interaction_Select-Select.html)</li>
|
||||
<li>[ol/interaction/Draw](module-ol_interaction_Draw-Draw.html)</li>
|
||||
<li>[ol/interaction/Modify](module-ol_interaction_Modify-Modify.html)</li></ul>
|
||||
[All interactions](module-ol_interaction_Interaction-Interaction.html)</td>
|
||||
<td>[Tile sources](module-ol_source_Tile-TileSource.html) for [layer/Tile](module-ol_layer_Tile-TileLayer.html)
|
||||
<br>[Image sources](module-ol_source_Image-ImageSource.html) for [layer/Image](module-ol_layer_Image-ImageLayer.html)
|
||||
<br>[Vector sources](module-ol_source_Vector-VectorSource.html) for [layer/Vector](module-ol_layer_Vector-VectorLayer.html)
|
||||
<br>[Vector tile sources](module-ol_source_VectorTile-VectorTile.html) for [layer/VectorTile](module-ol_layer_VectorTile-VectorTileLayer.html)
|
||||
<td>[Tile sources](module-ol_source_Tile-TileSource.html) for [ol/layer/Tile](module-ol_layer_Tile-TileLayer.html)
|
||||
<br>[Image sources](module-ol_source_Image-ImageSource.html) for [ol/layer/Image](module-ol_layer_Image-ImageLayer.html)
|
||||
<br>[Vector sources](module-ol_source_Vector-VectorSource.html) for [ol/layer/Vector](module-ol_layer_Vector-VectorLayer.html)
|
||||
<br>[Vector tile sources](module-ol_source_VectorTile-VectorTile.html) for [ol/layer/VectorTile](module-ol_layer_VectorTile-VectorTileLayer.html)
|
||||
<br>[Formats](module-ol_format_Feature-FeatureFormat.html) for reading/writing vector data
|
||||
<br>[format/WMSCapabilities](module-ol_format_WMSCapabilities-WMSCapabilities.html)</td></tr>
|
||||
<br>[ol/format/WMSCapabilities](module-ol_format_WMSCapabilities-WMSCapabilities.html)</td></tr>
|
||||
<tr><th>Projections</th><th>Observable objects</th><th>Other components</th></tr>
|
||||
<tr><td><p>All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use [proj.transform()](module-ol_proj.html#.transform) and [proj.transformExtent()](module-ol_proj.html#.transformExtent).</p>
|
||||
<tr><td><p>All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use [ol/proj#transform()](module-ol_proj.html#.transform) and [ol/proj#transformExtent()](module-ol_proj.html#.transformExtent).</p>
|
||||
[ol/proj](module-ol_proj.html)</td>
|
||||
<td><p>Changes to all [ol/Object](module-ol_Object-BaseObject.html)s can be observed by calling the [object.on('propertychange')](module-ol_Object-BaseObject.html#on) method. Listeners receive an [ol/Object~ObjectEvent](module-ol_Object-ObjectEvent.html) with information on the changed property and old value.</p>
|
||||
<td><p>Changes to all [ol/Object](module-ol_Object-BaseObject.html)s can be observed by calling the [object.on('propertychange')](module-ol_Object-BaseObject.html#on) method. Listeners receive an [ol/Object.ObjectEvent](module-ol_Object-ObjectEvent.html) with information on the changed property and old value.</p>
|
||||
<td>
|
||||
[ol/Geolocation](module-ol_Geolocation.html)<br>
|
||||
[ol/Overlay](module-ol_Overlay-Overlay.html)<br></td>
|
||||
|
||||
@@ -95,17 +95,20 @@ exports.handlers = {
|
||||
newDoclet: function(e) {
|
||||
const doclet = e.doclet;
|
||||
if (doclet.stability) {
|
||||
modules[doclet.longname.split('~').shift()] = true;
|
||||
modules[doclet.longname.split(/[~\.]/).shift()] = true;
|
||||
api.push(doclet);
|
||||
}
|
||||
// Mark explicity defined namespaces - needed in parseComplete to keep
|
||||
// namespaces that we need as containers for api items.
|
||||
if (/.*\.jsdoc$/.test(doclet.meta.filename) && doclet.kind == 'namespace') {
|
||||
doclet.namespace_ = true;
|
||||
}
|
||||
if (doclet.kind == 'class') {
|
||||
modules[doclet.longname.split('~').shift()] = true;
|
||||
classes[doclet.longname] = doclet;
|
||||
modules[doclet.longname.split(/[~\.]/).shift()] = true;
|
||||
if (!(doclet.longname in classes)) {
|
||||
classes[doclet.longname] = doclet;
|
||||
} else if ('augments' in doclet) {
|
||||
classes[doclet.longname].augments = doclet.augments;
|
||||
}
|
||||
}
|
||||
if (doclet.name === doclet.longname && !doclet.memberof) {
|
||||
// Make sure anonymous default exports are documented
|
||||
doclet.setMemberof(doclet.longname);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -113,7 +116,7 @@ exports.handlers = {
|
||||
const doclets = e.doclets;
|
||||
for (let i = doclets.length - 1; i >= 0; --i) {
|
||||
const doclet = doclets[i];
|
||||
if (doclet.stability || doclet.namespace_) {
|
||||
if (doclet.stability) {
|
||||
if (doclet.kind == 'class') {
|
||||
includeAugments(doclet);
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ exports.handlers = {
|
||||
events[cls] = [];
|
||||
}
|
||||
events[cls].push(doclet.longname);
|
||||
} else if (doclet.kind == 'class') {
|
||||
} else if (doclet.kind == 'class' && !(doclet.longname in classes)) {
|
||||
classes[doclet.longname] = doclet;
|
||||
}
|
||||
},
|
||||
@@ -29,7 +29,7 @@ exports.handlers = {
|
||||
event = doclet.fires[j].replace('event:', '');
|
||||
if (events[event]) {
|
||||
fires.push.apply(fires, events[event]);
|
||||
} else {
|
||||
} else if (doclet.fires[j] !== 'event:ObjectEvent') {
|
||||
fires.push(doclet.fires[j]);
|
||||
}
|
||||
}
|
||||
@@ -40,4 +40,3 @@ exports.handlers = {
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
109
config/jsdoc/api/plugins/inheritdoc.js
Executable file
109
config/jsdoc/api/plugins/inheritdoc.js
Executable file
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* This is a hack to prevent inheritDoc tags from entirely removing
|
||||
* documentation of the method that inherits the documentation.
|
||||
*
|
||||
* TODO: Remove this hack when https://github.com/jsdoc3/jsdoc/issues/53
|
||||
* is addressed.
|
||||
*/
|
||||
|
||||
|
||||
exports.defineTags = function(dictionary) {
|
||||
dictionary.defineTag('inheritDoc', {
|
||||
mustHaveValue: false,
|
||||
canHaveType: false,
|
||||
canHaveName: false,
|
||||
onTagged: function(doclet, tag) {
|
||||
doclet.inheritdoc = true;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
const lookup = {};
|
||||
const incompleteByClass = {};
|
||||
const keepKeys = ['comment', 'meta', 'name', 'memberof', 'longname', 'augment',
|
||||
'stability'];
|
||||
|
||||
exports.handlers = {
|
||||
|
||||
newDoclet: function(e) {
|
||||
const doclet = e.doclet;
|
||||
let incompletes;
|
||||
if (!(doclet.longname in lookup)) {
|
||||
lookup[doclet.longname] = [];
|
||||
}
|
||||
lookup[doclet.longname].push(doclet);
|
||||
if (doclet.inheritdoc) {
|
||||
if (!(doclet.memberof in incompleteByClass)) {
|
||||
incompleteByClass[doclet.memberof] = [];
|
||||
}
|
||||
incompletes = incompleteByClass[doclet.memberof];
|
||||
if (incompletes.indexOf(doclet.name) == -1) {
|
||||
incompletes.push(doclet.name);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
parseComplete: function(e) {
|
||||
let ancestors, candidate, candidates, doclet, i, j, k, l, key;
|
||||
let incompleteDoclet, stability, incomplete, incompletes;
|
||||
const doclets = e.doclets;
|
||||
for (i = doclets.length - 1; i >= 0; --i) {
|
||||
doclet = doclets[i];
|
||||
if (doclet.augments) {
|
||||
ancestors = [].concat(doclet.augments);
|
||||
}
|
||||
incompletes = incompleteByClass[doclet.longname];
|
||||
if (ancestors && incompletes) {
|
||||
// collect ancestors from the whole hierarchy
|
||||
for (j = 0; j < ancestors.length; ++j) {
|
||||
candidates = lookup[ancestors[j]];
|
||||
if (candidates) {
|
||||
for (k = candidates.length - 1; k >= 0; --k) {
|
||||
candidate = candidates[k];
|
||||
if (candidate.augments) {
|
||||
ancestors = ancestors.concat(candidate.augments);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// walk through all inheritDoc members
|
||||
for (j = incompletes.length - 1; j >= 0; --j) {
|
||||
incomplete = incompletes[j];
|
||||
candidates = lookup[doclet.longname + '#' + incomplete];
|
||||
if (candidates) {
|
||||
// get the incomplete doclet that needs to be augmented
|
||||
for (k = candidates.length - 1; k >= 0; --k) {
|
||||
incompleteDoclet = candidates[k];
|
||||
if (incompleteDoclet.inheritdoc) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// find the documented ancestor
|
||||
for (k = ancestors.length - 1; k >= 0; --k) {
|
||||
candidates = lookup[ancestors[k] + '#' + incomplete];
|
||||
if (candidates) {
|
||||
for (l = candidates.length - 1; l >= 0; --l) {
|
||||
candidate = candidates[l];
|
||||
if (candidate && !candidate.inheritdoc) {
|
||||
stability = candidate.stability || incompleteDoclet.stability;
|
||||
if (stability) {
|
||||
incompleteDoclet.stability = stability;
|
||||
for (key in candidate) {
|
||||
if (candidate.hasOwnProperty(key) &&
|
||||
keepKeys.indexOf(key) == -1) {
|
||||
incompleteDoclet[key] = candidate[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
111
config/jsdoc/api/plugins/markdown.js
Normal file
111
config/jsdoc/api/plugins/markdown.js
Normal file
@@ -0,0 +1,111 @@
|
||||
/**
|
||||
* Modified from JSDoc's plugins/markdown and lib/jsdoc/util/markdown modules
|
||||
* (see https://github.com/jsdoc3/jsdoc/), which are licensed under the Apache 2
|
||||
* license (see http://www.apache.org/licenses/LICENSE-2.0).
|
||||
*
|
||||
* This version does not protect http(s) urls from being turned into links, and
|
||||
* works around an issue with `~` characters in module paths by escaping them.
|
||||
*/
|
||||
|
||||
const marked = require('marked');
|
||||
const format = require('util').format;
|
||||
|
||||
const tags = [
|
||||
'author',
|
||||
'classdesc',
|
||||
'description',
|
||||
'exceptions',
|
||||
'params',
|
||||
'properties',
|
||||
'returns',
|
||||
'see',
|
||||
'summary'
|
||||
];
|
||||
|
||||
const hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
|
||||
const markedRenderer = new marked.Renderer();
|
||||
|
||||
// Allow prettyprint to work on inline code samples
|
||||
markedRenderer.code = function(code, language) {
|
||||
const langClass = language ? ' lang-' + language : '';
|
||||
|
||||
return format('<pre class="prettyprint source%s"><code>%s</code></pre>',
|
||||
langClass, escapeCode(code));
|
||||
};
|
||||
|
||||
function escapeCode(source) {
|
||||
return source.replace(/</g, '<')
|
||||
.replace(/"/g, '"')
|
||||
.replace(/'/g, ''');
|
||||
}
|
||||
|
||||
function escapeUnderscoresAndTildes(source) {
|
||||
return source.replace(/\{@[^}\r\n]+\}/g, function(wholeMatch) {
|
||||
return wholeMatch
|
||||
.replace(/(^|[^\\])_/g, '$1\\_')
|
||||
.replace('~', '˜');
|
||||
});
|
||||
}
|
||||
|
||||
function unencodeQuotesAndTildes(source) {
|
||||
return source.replace(/\{@[^}\r\n]+\}/g, function(wholeMatch) {
|
||||
return wholeMatch
|
||||
.replace(/"/g, '"')
|
||||
.replace(/˜/g, '~');
|
||||
});
|
||||
}
|
||||
|
||||
function parse(source) {
|
||||
let result;
|
||||
|
||||
source = escapeUnderscoresAndTildes(source);
|
||||
|
||||
result = marked(source, {renderer: markedRenderer})
|
||||
.replace(/\s+$/, '')
|
||||
.replace(/'/g, '\'');
|
||||
|
||||
result = unencodeQuotesAndTildes(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function shouldProcessString(tagName, text) {
|
||||
let shouldProcess = true;
|
||||
|
||||
// we only want to process `@author` and `@see` tags that contain Markdown links
|
||||
if ((tagName === 'author' || tagName === 'see') && text.indexOf('[') === -1) {
|
||||
shouldProcess = false;
|
||||
}
|
||||
|
||||
return shouldProcess;
|
||||
}
|
||||
|
||||
function process(doclet) {
|
||||
tags.forEach(function(tag) {
|
||||
if (!hasOwnProp.call(doclet, tag)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof doclet[tag] === 'string' && shouldProcessString(tag, doclet[tag])) {
|
||||
doclet[tag] = parse(doclet[tag]);
|
||||
} else if (Array.isArray(doclet[tag])) {
|
||||
doclet[tag].forEach(function(value, index, original) {
|
||||
const inner = {};
|
||||
|
||||
inner[tag] = value;
|
||||
process(inner);
|
||||
original[index] = inner[tag];
|
||||
});
|
||||
} else if (doclet[tag]) {
|
||||
process(doclet[tag]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
exports.handlers = {
|
||||
newDoclet: function(e) {
|
||||
process(e.doclet);
|
||||
}
|
||||
};
|
||||
@@ -1,106 +0,0 @@
|
||||
/**
|
||||
* @filedesc
|
||||
* Expands module path type to point to default export when no name is given
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
let moduleRoot;
|
||||
|
||||
function addDefaultExportPath(obj) {
|
||||
if (!Array.isArray(obj)) {
|
||||
obj = obj.names;
|
||||
}
|
||||
obj.forEach((name, index) => {
|
||||
const matches = name.match(/module\:([^>|),\.<]|)+/g);
|
||||
if (matches) {
|
||||
matches.forEach(module => {
|
||||
if (!/[~\.]/.test(module)) {
|
||||
const checkFile = path.resolve(moduleRoot, module.replace(/^module\:/, ''));
|
||||
const file = fs.readFileSync(require.resolve(checkFile), 'utf-8');
|
||||
const lines = file.split('\n');
|
||||
let hasDefaultExport = false;
|
||||
for (let i = 0, ii = lines.length; i < ii; ++i) {
|
||||
hasDefaultExport = hasDefaultExport || /^export default [^\{]/.test(lines[i]);
|
||||
const match = lines[i].match(/^export default ([A-Za-z_$][A-Za-z0-9_$]+);$/);
|
||||
if (match) {
|
||||
// Use variable name if default export is assigned to a variable.
|
||||
obj[index] = name = name.replace(module, `${module}~${match[1]}`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (hasDefaultExport) {
|
||||
// Duplicate last part if default export is not assigned to a variable.
|
||||
obj[index] = name = name.replace(module, `${module}~${module.split('/').pop()}`);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function replaceLinks(comment) {
|
||||
const matches = comment.match(/\{@link [^\} #]+}/g);
|
||||
if (matches) {
|
||||
const modules = matches.map(m => {
|
||||
const mm = m.match(/(module:[^\}]+)}$/);
|
||||
if (mm) {
|
||||
return mm[1];
|
||||
}
|
||||
}).filter(m => !!m);
|
||||
const newModules = modules.concat();
|
||||
addDefaultExportPath(newModules);
|
||||
modules.forEach((module, i) => {
|
||||
comment = comment.replace(module, newModules[i]);
|
||||
});
|
||||
}
|
||||
return comment;
|
||||
}
|
||||
|
||||
exports.handlers = {
|
||||
|
||||
/**
|
||||
* Adds default export to module path types without name
|
||||
* @param {Object} e Event object.
|
||||
*/
|
||||
newDoclet: function(e) {
|
||||
const doclet = e.doclet;
|
||||
if (doclet.kind == 'module') {
|
||||
const levelsUp = doclet.longname.replace(/^module\:/, '').split('/');
|
||||
if (doclet.meta.filename != 'index.js') {
|
||||
levelsUp.pop();
|
||||
}
|
||||
const pathArgs = [doclet.meta.path].concat(levelsUp.map(() => '../'));
|
||||
moduleRoot = path.resolve.apply(null, pathArgs);
|
||||
} else {
|
||||
if (doclet.description) {
|
||||
doclet.description = replaceLinks(doclet.description);
|
||||
}
|
||||
if (doclet.classdesc) {
|
||||
doclet.classdesc = replaceLinks(doclet.classdesc);
|
||||
}
|
||||
|
||||
const module = doclet.longname.split('#').shift();
|
||||
if (module.indexOf('module:') == 0 && module.indexOf('.') !== -1) {
|
||||
doclet.longname = doclet.longname.replace(module, module.replace('.', '~'));
|
||||
}
|
||||
if (doclet.augments) {
|
||||
addDefaultExportPath(doclet.augments);
|
||||
}
|
||||
if (doclet.params) {
|
||||
doclet.params.forEach(p => addDefaultExportPath(p.type));
|
||||
}
|
||||
if (doclet.returns) {
|
||||
doclet.returns.forEach(r => addDefaultExportPath(r.type));
|
||||
}
|
||||
if (doclet.properties) {
|
||||
doclet.properties.forEach(p => addDefaultExportPath(p.type));
|
||||
}
|
||||
if (doclet.type) {
|
||||
addDefaultExportPath(doclet.type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
@@ -5,7 +5,7 @@ exports.handlers = {
|
||||
|
||||
newDoclet: function(e) {
|
||||
const doclet = e.doclet;
|
||||
if (doclet.kind == 'class') {
|
||||
if (doclet.kind == 'class' && !(doclet.longname in classes)) {
|
||||
classes[doclet.longname] = doclet;
|
||||
}
|
||||
},
|
||||
@@ -47,7 +47,7 @@ exports.handlers = {
|
||||
if (!cls.fires) {
|
||||
cls.fires = [];
|
||||
}
|
||||
event = 'module:ol/Object~ObjectEvent#event:change:' + name;
|
||||
event = 'module:ol/Object.ObjectEvent#event:change:' + name;
|
||||
if (cls.fires.indexOf(event) == -1) {
|
||||
cls.fires.push(event);
|
||||
}
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
/*
|
||||
* Changes @enum annotations into @typedef.
|
||||
*/
|
||||
|
||||
// types that are undefined or typedefs containing undefined
|
||||
let undefinedLikes = null;
|
||||
|
||||
/**
|
||||
* Changes the description of the param if it is required.
|
||||
* @param {Object} doclet The doclet.
|
||||
* @returns {Object} The modified doclet.
|
||||
*/
|
||||
function markRequiredIfNeeded(doclet) {
|
||||
const memberof = doclet.memberof;
|
||||
if (!memberof) {
|
||||
return doclet;
|
||||
}
|
||||
|
||||
const types = doclet.type.names;
|
||||
let isRequiredParam = true;
|
||||
|
||||
// iterate over all types that are like-undefined (see above for explanation)
|
||||
for (let idx = undefinedLikes.length - 1; idx >= 0; idx--) {
|
||||
const undefinedLike = undefinedLikes[idx];
|
||||
// … if the current types contains a type that is undefined-like,
|
||||
// it is not required.
|
||||
if (types.indexOf(undefinedLike) != -1) {
|
||||
isRequiredParam = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (isRequiredParam) {
|
||||
const reqSnippet = '<span class="required-option">Required.</span></p>';
|
||||
const endsWithP = /<\/p>$/i;
|
||||
let description = doclet.description;
|
||||
if (description && endsWithP.test(description)) {
|
||||
description = description.replace(endsWithP, ' ' + reqSnippet);
|
||||
} else if (doclet.description === undefined) {
|
||||
description = '<p>' + reqSnippet;
|
||||
}
|
||||
doclet.description = description;
|
||||
}
|
||||
return doclet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterates over all doclets and finds the names of types that contain
|
||||
* undefined. Stores the names in the global variable undefinedLikes, so
|
||||
* that e.g. markRequiredIfNeeded can use these.
|
||||
* @param {Array} doclets The doclets.
|
||||
*/
|
||||
function findTypesLikeUndefined(doclets) {
|
||||
undefinedLikes = ['undefined']; // include type 'undefined' explicitly
|
||||
for (let i = doclets.length - 1; i >= 0; --i) {
|
||||
const doclet = doclets[i];
|
||||
if (doclet.kind === 'typedef') {
|
||||
const types = doclet.type.names;
|
||||
if (types.indexOf('undefined') !== -1) {
|
||||
// the typedef contains 'undefined', so it self is undefinedLike.
|
||||
undefinedLikes.push(doclet.longname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exports.handlers = {
|
||||
|
||||
newDoclet: function(e) {
|
||||
const doclet = e.doclet;
|
||||
if (doclet.isEnum) {
|
||||
// We never export enums, so we document them like typedefs
|
||||
doclet.kind = 'typedef';
|
||||
delete doclet.isEnum;
|
||||
}
|
||||
},
|
||||
|
||||
parseComplete: function(e) {
|
||||
const doclets = e.doclets;
|
||||
findTypesLikeUndefined(doclets);
|
||||
for (let i = doclets.length - 1; i >= 0; --i) {
|
||||
markRequiredIfNeeded(doclets[i]);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
@@ -168,9 +168,9 @@ function generateSourceFiles(sourceFiles) {
|
||||
* for display purposes. This function mutates the original arrays.
|
||||
*
|
||||
* @private
|
||||
* @param {Array.<module:jsdoc/doclet.Doclet>} doclets - The array of classes and functions to
|
||||
* @param {Array<module:jsdoc/doclet.Doclet>} doclets - The array of classes and functions to
|
||||
* check.
|
||||
* @param {Array.<module:jsdoc/doclet.Doclet>} modules - The array of module doclets to search.
|
||||
* @param {Array<module:jsdoc/doclet.Doclet>} modules - The array of module doclets to search.
|
||||
*/
|
||||
function attachModuleSymbols(doclets, modules) {
|
||||
const symbols = {};
|
||||
@@ -313,7 +313,7 @@ exports.publish = function(taffyData, opts, tutorials) {
|
||||
|
||||
if (example.match(/^\s*<caption>([\s\S]+?)<\/caption>(\s*[\n\r])([\s\S]+)$/i)) {
|
||||
caption = RegExp.$1;
|
||||
code = RegExp.$3;
|
||||
code = RegExp.$3;
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -30,7 +30,11 @@ $(function () {
|
||||
});
|
||||
|
||||
// Show an item related a current documentation automatically
|
||||
var filename = $('.page-title').data('filename').replace(/\.[a-z]+$/, '');
|
||||
var filename = $('.page-title').data('filename')
|
||||
.replace(/\.[a-z]+$/, '')
|
||||
.replace('module-', 'module:')
|
||||
.replace(/_/g, '/')
|
||||
.replace(/-/g, '~');
|
||||
var $currentItem = $('.navigation .item[data-name*="' + filename + '"]:eq(0)');
|
||||
|
||||
if ($currentItem.length) {
|
||||
@@ -97,7 +101,8 @@ $(function () {
|
||||
var anchors = $('.anchor');
|
||||
var _onHashChange = function () {
|
||||
var activeHash = window.document.location.hash
|
||||
.replace(/\./g, '\\.'); // Escape dot in element id
|
||||
.replace(/\./g, '\\.') // Escape dot in element id
|
||||
.replace(/\~/g, '\\~'); // Escape tilde in element id
|
||||
|
||||
anchors.removeClass('highlighted');
|
||||
|
||||
|
||||
@@ -4,6 +4,13 @@ var version = obj.packageInfo.version;
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-2577926-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-2577926-1');
|
||||
</script>
|
||||
<meta charset="utf-8">
|
||||
<title>OpenLayers v<?js= version ?> API - <?js= title ?></title>
|
||||
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=fetch"></script>
|
||||
|
||||
@@ -14,7 +14,7 @@ if (data.type && data.type.names) {
|
||||
<div class="anchor" id="<?js= id ?>">
|
||||
</div>
|
||||
<h4 class="name">
|
||||
<?js= data.attribs + (data.scope === 'static' ? longname : name) + typeSignature ?>
|
||||
<?js= data.attribs + (data.scope === 'static' ? longname : name.indexOf('module:') === 0 ? name.split('/').pop() : name) + typeSignature ?>
|
||||
<?js= this.partial('stability.tmpl', data) ?>
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
@@ -77,7 +77,7 @@ var self = this;
|
||||
(<?js= self.linkto(eventClass.longname) ?>)
|
||||
<?js } ?>
|
||||
<?js } ?>
|
||||
<?js= self.partial('stability.tmpl', eventDoclet || (data.stability ? data : {stability: 'experimental'})) ?>
|
||||
<?js= self.partial('stability.tmpl', eventDoclet || (data.stability ? data : {})) ?>
|
||||
<?js if (description) { ?> -
|
||||
<?js= description ?>
|
||||
<?js } ?>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<?js
|
||||
var self = this;
|
||||
function toShortName(name) {
|
||||
return name.indexOf('module:') === 0 ? name.split('/').pop() : name;
|
||||
}
|
||||
?>
|
||||
<div class="navigation">
|
||||
<div class="search">
|
||||
@@ -25,7 +28,7 @@ var self = this;
|
||||
<?js
|
||||
item.members.forEach(function (v) {
|
||||
?>
|
||||
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, v.name) ?></li>
|
||||
<li data-name="<?js= v.longname ?>"><?js= self.linkto(v.longname, toShortName(v.name)) ?></li>
|
||||
<?js
|
||||
});
|
||||
}
|
||||
@@ -40,7 +43,7 @@ var self = this;
|
||||
item.typedefs.forEach(function (v) {
|
||||
?>
|
||||
<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, toShortName(v.name)) ?>
|
||||
</li>
|
||||
<?js
|
||||
});
|
||||
@@ -57,7 +60,7 @@ var self = this;
|
||||
item.methods.forEach(function (v) {
|
||||
?>
|
||||
<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, toShortName(v.name)) ?>
|
||||
</li>
|
||||
<?js
|
||||
});
|
||||
@@ -74,7 +77,7 @@ var self = this;
|
||||
v = self.find({longname: v})[0] || {longname: v, name: v.split(/#?event:/)[1]};
|
||||
?>
|
||||
<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, toShortName(v.name)) ?>
|
||||
</li>
|
||||
<?js
|
||||
});
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Settable</th>
|
||||
<th><a href="module-ol_Object-ObjectEvent.html">ol/Object~ObjectEvent</a> type</th>
|
||||
<th><a href="module-ol_Object-ObjectEvent.html">ol/Object.ObjectEvent</a> type</th>
|
||||
<th class="last">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -10,8 +10,12 @@
|
||||
"includePattern": "\\.js$"
|
||||
},
|
||||
"plugins": [
|
||||
"jsdoc-plugin-typescript",
|
||||
"config/jsdoc/info/api-plugin",
|
||||
"config/jsdoc/info/define-plugin",
|
||||
"config/jsdoc/info/virtual-plugin"
|
||||
]
|
||||
],
|
||||
"typescript": {
|
||||
"moduleRoot": "src"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
// Rollup configuration for the full build
|
||||
|
||||
import noderesolve from 'rollup-plugin-node-resolve';
|
||||
import commonjs from 'rollup-plugin-commonjs';
|
||||
import {uglify} from 'rollup-plugin-uglify';
|
||||
import buble from 'rollup-plugin-buble';
|
||||
import sourcemaps from 'rollup-plugin-sourcemaps';
|
||||
|
||||
export default {
|
||||
input: 'src/index.js',
|
||||
output: [
|
||||
{file: 'build/ol.js', format: 'iife', sourcemap: true}
|
||||
],
|
||||
plugins: [
|
||||
noderesolve(),
|
||||
commonjs(),
|
||||
buble(),
|
||||
uglify(),
|
||||
sourcemaps()
|
||||
]
|
||||
};
|
||||
13
config/webpack-config-legacy-build.js
Normal file
13
config/webpack-config-legacy-build.js
Normal file
@@ -0,0 +1,13 @@
|
||||
const path = require('path');
|
||||
module.exports = {
|
||||
entry: './build/index.js',
|
||||
devtool: 'source-map',
|
||||
mode: 'production',
|
||||
output: {
|
||||
path: path.resolve('./build/legacy'),
|
||||
filename: 'ol.js',
|
||||
library: 'ol',
|
||||
libraryTarget: 'umd',
|
||||
libraryExport: 'default'
|
||||
}
|
||||
};
|
||||
145
doc/faq.md
145
doc/faq.md
@@ -54,9 +54,12 @@ The projection of your map can be set through the `view`-property. Here are some
|
||||
examples:
|
||||
|
||||
```javascript
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
|
||||
// OpenLayers comes with support for the World Geodetic System 1984, EPSG:4326:
|
||||
var map = new ol.Map({
|
||||
view: new ol.View({
|
||||
const map = new Map({
|
||||
view: new View({
|
||||
projection: 'EPSG:4326'
|
||||
// other view properties like map center etc.
|
||||
})
|
||||
@@ -65,24 +68,29 @@ var map = new ol.Map({
|
||||
```
|
||||
|
||||
```javascript
|
||||
// To use other projections, you have to register the projection in OpenLayers:
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import proj4 from 'proj4';
|
||||
import {register} from 'ol/proj/proj4';
|
||||
import {get as getProjection} from 'ol/proj';
|
||||
|
||||
// To use other projections, you have to register the projection in OpenLayers.
|
||||
// This can easily be done with [https://proj4js.org](proj4)
|
||||
//
|
||||
// By default OpenLayers does not know about the EPSG:21781 (Swiss) projection.
|
||||
// So we create a projection instance for EPSG:21781 and pass it to
|
||||
// ol.proj.addProjection to make it available to the library for lookup by its
|
||||
// register to make it available to the library for lookup by its
|
||||
// code.
|
||||
var swissProjection = new ol.proj.Projection({
|
||||
code: 'EPSG:21781',
|
||||
// The extent is used to determine zoom level 0. Recommended values for a
|
||||
// projection's validity extent can be found at https://epsg.io/.
|
||||
extent: [485869.5728, 76443.1884, 837076.5648, 299941.7864],
|
||||
units: 'm'
|
||||
});
|
||||
ol.proj.addProjection(swissProjection);
|
||||
proj4.defs('EPSG:21781',
|
||||
'+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 ' +
|
||||
'+x_0=600000 +y_0=200000 +ellps=bessel ' +
|
||||
'+towgs84=660.077,13.551,369.344,2.484,1.783,2.939,5.66 +units=m +no_defs');
|
||||
register(proj4);
|
||||
const swissProjection = getProjection('EPSG:21781');
|
||||
|
||||
// we can now use the projection:
|
||||
var map = new ol.Map({
|
||||
view: new ol.View({
|
||||
const map = new Map({
|
||||
view: new View({
|
||||
projection: swissProjection
|
||||
// other view properties like map center etc.
|
||||
})
|
||||
@@ -105,15 +113,20 @@ coordinates for the center have to be provided in that projection. Chances are
|
||||
that your map looks like this:
|
||||
|
||||
```javascript
|
||||
var washingtonLonLat = [-77.036667, 38.895];
|
||||
var map = new ol.Map({
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import OSM from 'ol/source/OSM';
|
||||
|
||||
const washingtonLonLat = [-77.036667, 38.895];
|
||||
const map = new Map({
|
||||
layers: [
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.OSM()
|
||||
new TileLayer({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
view: new ol.View({
|
||||
view: new View({
|
||||
center: washingtonLonLat,
|
||||
zoom: 12
|
||||
})
|
||||
@@ -129,31 +142,38 @@ The solution is easy: Provide the coordinates projected into Web Mercator.
|
||||
OpenLayers has some helpful utility methods to assist you:
|
||||
|
||||
```javascript
|
||||
var washingtonLonLat = [-77.036667, 38.895];
|
||||
var washingtonWebMercator = ol.proj.fromLonLat(washingtonLonLat);
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import OSM from 'ol/source/OSM';
|
||||
import {fromLonLat} from 'ol/proj';
|
||||
|
||||
var map = new ol.Map({
|
||||
const washingtonLonLat = [-77.036667, 38.895];
|
||||
const washingtonWebMercator = fromLonLat(washingtonLonLat);
|
||||
|
||||
const map = new Map({
|
||||
layers: [
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.OSM()
|
||||
new TileLayer({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
view: new ol.View({
|
||||
view: new View({
|
||||
center: washingtonWebMercator,
|
||||
zoom: 8
|
||||
})
|
||||
});
|
||||
```
|
||||
|
||||
The method `ol.proj.fromLonLat()` is available from version 3.5 onwards.
|
||||
The method `fromLonLat()` is available from version 3.5 onwards.
|
||||
|
||||
If you told OpenLayers about a custom projection (see above), you can use the
|
||||
following method to transform a coordinate from WGS84 to your projection:
|
||||
|
||||
```javascript
|
||||
import {transform} from 'ol/proj';
|
||||
// assuming that OpenLayers knows about EPSG:21781, see above
|
||||
var swissCoord = ol.proj.transform([8.23, 46.86], 'EPSG:4326', 'EPSG:21781');
|
||||
const swissCoord = transform([8.23, 46.86], 'EPSG:4326', 'EPSG:21781');
|
||||
```
|
||||
|
||||
|
||||
@@ -190,18 +210,24 @@ So the next step would be to put the decimal coordinates into an array and use
|
||||
it as center:
|
||||
|
||||
```javascript
|
||||
var schladming = [47.394167, 13.689167]; // caution partner, read on...
|
||||
// since we are using OSM, we have to transform the coordinates...
|
||||
var schladmingWebMercator = ol.proj.fromLonLat(schladming);
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import OSM from 'ol/source/OSM';
|
||||
import {fromLonLat} from 'ol/proj';
|
||||
|
||||
var map = new ol.Map({
|
||||
const schladming = [47.394167, 13.689167]; // caution partner, read on...
|
||||
// since we are using OSM, we have to transform the coordinates...
|
||||
const schladmingWebMercator = fromLonLat(schladming);
|
||||
|
||||
const map = new Map({
|
||||
layers: [
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.OSM()
|
||||
new TileLayer({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
view: new ol.View({
|
||||
view: new View({
|
||||
center: schladmingWebMercator,
|
||||
zoom: 9
|
||||
})
|
||||
@@ -220,18 +246,24 @@ e.g. try to change the map center.
|
||||
Ok, then let's flip the coordinates:
|
||||
|
||||
```javascript
|
||||
var schladming = [13.689167, 47.394167]; // longitude first, then latitude
|
||||
// since we are using OSM, we have to transform the coordinates...
|
||||
var schladmingWebMercator = ol.proj.fromLonLat(schladming);
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import OSM from 'ol/source/OSM';
|
||||
import {fromLonLat} from 'ol/proj';
|
||||
|
||||
var map = new ol.Map({
|
||||
const schladming = [13.689167, 47.394167]; // longitude first, then latitude
|
||||
// since we are using OSM, we have to transform the coordinates...
|
||||
const schladmingWebMercator = fromLonLat(schladming);
|
||||
|
||||
const map = new Map({
|
||||
layers: [
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.OSM()
|
||||
new TileLayer({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
view: new ol.View({
|
||||
view: new View({
|
||||
center: schladmingWebMercator,
|
||||
zoom: 9
|
||||
})
|
||||
@@ -245,7 +277,7 @@ first, and then the latitude. This behaviour is the same as we had in OpenLayers
|
||||
2, and it actually makes sense because of the natural axis order in WGS84.
|
||||
|
||||
If you cannot remember the correct order, just have a look at the method name
|
||||
we used: `ol.proj.fromLonLat`; even there we hint that we expect longitude
|
||||
we used: `fromLonLat`; even there we hint that we expect longitude
|
||||
first, and then latitude.
|
||||
|
||||
|
||||
@@ -255,8 +287,11 @@ Suppose you want to load a KML file and display the contained features on the
|
||||
map. Code like the following could be used:
|
||||
|
||||
```javascript
|
||||
var vector = new ol.layer.Vector({
|
||||
source: new ol.source.KML({
|
||||
import VectorLayer from 'ol/layer/Vector';
|
||||
import KMLSource from 'ol/source/KML';
|
||||
|
||||
const vector = new VectorLayer({
|
||||
source: new KMLSource({
|
||||
projection: 'EPSG:3857',
|
||||
url: 'data/kml/2012-02-10.kml'
|
||||
})
|
||||
@@ -267,13 +302,16 @@ You may ask yourself how many features are in that KML, and try something like
|
||||
the following:
|
||||
|
||||
```javascript
|
||||
var vector = new ol.layer.Vector({
|
||||
source: new ol.source.KML({
|
||||
import VectorLayer from 'ol/layer/Vector';
|
||||
import KMLSource from 'ol/source/KML';
|
||||
|
||||
const vector = new VectorLayer({
|
||||
source: new KMLSource({
|
||||
projection: 'EPSG:3857',
|
||||
url: 'data/kml/2012-02-10.kml'
|
||||
})
|
||||
});
|
||||
var numFeatures = vector.getSource().getFeatures().length;
|
||||
const numFeatures = vector.getSource().getFeatures().length;
|
||||
console.log("Count right after construction: " + numFeatures);
|
||||
```
|
||||
|
||||
@@ -285,9 +323,9 @@ been populated with features), you should use an event listener function on the
|
||||
|
||||
```javascript
|
||||
vector.getSource().on('change', function(evt){
|
||||
var source = evt.target;
|
||||
const source = evt.target;
|
||||
if (source.getState() === 'ready') {
|
||||
var numFeatures = source.getFeatures().length;
|
||||
const numFeatures = source.getFeatures().length;
|
||||
console.log("Count after change: " + numFeatures);
|
||||
}
|
||||
});
|
||||
@@ -316,16 +354,17 @@ map.renderSync();
|
||||
|
||||
## Why are my features not found?
|
||||
|
||||
You are using `ol.Map#forEachFeatureAtPixel` or `ol.Map#hasFeatureAtPixel`, but
|
||||
You are using `Map#forEachFeatureAtPixel` or `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):
|
||||
In this case, set the `renderBuffer` property of `VectorLayer` (the default value is 100px):
|
||||
|
||||
```javascript
|
||||
var vectorLayer = new ol.layer.Vector({
|
||||
import VectorLayer from 'ol/layer/Vector';
|
||||
|
||||
const vectorLayer = new VectorLayer({
|
||||
...
|
||||
renderBuffer: 200
|
||||
});
|
||||
|
||||
@@ -130,7 +130,7 @@ The `layers: [ ... ]` array is used to define the list of layers available in th
|
||||
]
|
||||
```
|
||||
|
||||
Layers in OpenLayers 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 are defined with a type (Image, Tile or Vector) which contains a source. The source is the protocol used to get the map tiles.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ OpenLayers is available as [`ol` npm package](https://npmjs.com/package/ol), whi
|
||||
|
||||
## Renderers and Browser Support
|
||||
|
||||
By default, OpenLayers uses a performance optimized Canvas renderer. An experimental WebGL renderer (without text rendering support) is also avaialble.
|
||||
By default, OpenLayers uses a performance optimized Canvas renderer. An experimental WebGL renderer (without text rendering support) is also available.
|
||||
|
||||
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), the application bundle needs to be transpiled (e.g. using [Babel](https://babeljs.io)) and bundled with polyfills for `requestAnimationFrame`, `Element.prototype.classList` and `URL`.
|
||||
|
||||
@@ -37,13 +37,13 @@ Class hierarchies grouped by their parent are provided in a subfolder of the pac
|
||||
For convenience, these are also available as named exports, e.g.
|
||||
|
||||
```js
|
||||
import {Map, View} from `ol`;
|
||||
import {Tile, Vector} from `ol/layer`;
|
||||
import {Map, View} from 'ol';
|
||||
import {Tile, Vector} from 'ol/layer';
|
||||
```
|
||||
|
||||
In addition to these re-exported classes, modules with lowercase names also provide constants or functions as named exports:
|
||||
|
||||
```js
|
||||
import {inherits} from `ol`;
|
||||
import {fromLonLat} from `ol/proj`;
|
||||
import {inherits} from 'ol';
|
||||
import {fromLonLat} from 'ol/proj';
|
||||
```
|
||||
|
||||
@@ -45,7 +45,7 @@ const map = new Map({
|
||||
});
|
||||
```
|
||||
|
||||
You will also need an `ìndex.html` file that will use your bundle. Here is a simple example:
|
||||
You will also need an `index.html` file that will use your bundle. Here is a simple example:
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
|
||||
@@ -6,27 +6,34 @@ layout: doc.hbs
|
||||
# Basic Concepts
|
||||
|
||||
## Map
|
||||
The core component of OpenLayers is the map (`Map`). It is rendered to a `target` container (e.g. a `div` element on the web page that contains the map). All map properties can either be configured at construction time, or by using setter methods, e.g. `setTarget()`.
|
||||
|
||||
The core component of OpenLayers is the map (`ol/Map`). It is rendered to a `target` container (e.g. a `div` element on the web page that contains the map). All map properties can either be configured at construction time, or by using setter methods, e.g. `setTarget()`.
|
||||
|
||||
The markup below could be used to create a `<div>` that contains your map.
|
||||
|
||||
```xml
|
||||
<div id="map" style="width: 100%, height: 400px"></div>
|
||||
<script>
|
||||
import Map from 'ol/Map';
|
||||
```
|
||||
|
||||
var map = new Map({target: 'map'});
|
||||
</script>
|
||||
The script below constructs a map that is rendered in the `<div>` above, using the `map` id of the element as a selector.
|
||||
|
||||
```js
|
||||
import Map from 'ol/Map';
|
||||
|
||||
var map = new Map({target: 'map'});
|
||||
```
|
||||
|
||||
## View
|
||||
`Map` is not responsible for things like center, zoom level and projection of the map. Instead, these are properties of a `View` instance.
|
||||
|
||||
The map is not responsible for things like center, zoom level and projection of the map. Instead, these are properties of a `ol/View` instance.
|
||||
|
||||
```js
|
||||
import View from 'ol/View';
|
||||
import View from 'ol/View';
|
||||
|
||||
map.setView(new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
}));
|
||||
map.setView(new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
}));
|
||||
```
|
||||
|
||||
A `View` also has a `projection`. The projection determines the coordinate system of the `center` and the units for map resolution calculations. If not specified (like in the above snippet), the default projection is Spherical Mercator (EPSG:3857), with meters as map units.
|
||||
@@ -35,54 +42,49 @@ The `zoom` option is a convenient way to specify the map resolution. The availab
|
||||
|
||||
|
||||
## Source
|
||||
To get remote data for a layer, OpenLayers uses `source/Source` subclasses. These are available for free and commercial map tile services like OpenStreetMap or Bing, for OGC sources like WMS or WMTS, and for vector data in formats like GeoJSON or KML.
|
||||
|
||||
To get remote data for a layer, OpenLayers uses `ol/source/Source` subclasses. These are available for free and commercial map tile services like OpenStreetMap or Bing, for OGC sources like WMS or WMTS, and for vector data in formats like GeoJSON or KML.
|
||||
|
||||
```js
|
||||
import OSM from 'ol/source/OSM';
|
||||
import OSM from 'ol/source/OSM';
|
||||
|
||||
var osmSource = OSM();
|
||||
var osmSource = OSM();
|
||||
```
|
||||
|
||||
## Layer
|
||||
A layer is a visual representation of data from a `source`. OpenLayers has four basic types of layers: `layer/Tile`, `layer/Image`, `layer/Vector` and `layer/VectorTile`.
|
||||
|
||||
`layer/Tile` is for layer sources that provide pre-rendered, tiled images in grids that are organized by zoom levels for specific resolutions.
|
||||
A layer is a visual representation of data from a `source`. OpenLayers has four basic types of layers:
|
||||
|
||||
`layer/Image` is for server rendered images that are available for arbitrary extents and resolutions.
|
||||
|
||||
`layer/Vector` is for vector data that is rendered client-side.
|
||||
|
||||
`layer/VectorTile` is for tiled vector data that is rendered client-side.
|
||||
* `ol/layer/Tile` - Renders sources that provide tiled images in grids that are organized by zoom levels for specific resolutions.
|
||||
* `ol/layer/Image` - Renders sources that provide map images at arbitrary extents and resolutions.
|
||||
* `ol/layer/Vector` - Renders vector data client-side.
|
||||
* `ol/layer/VectorTile` - Renders data that is provided as vector tiles.
|
||||
|
||||
```js
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
|
||||
var osmLayer = new TileLayer({source: osmSource});
|
||||
map.addLayer(osmLayer);
|
||||
var osmLayer = new TileLayer({source: osmSource});
|
||||
map.addLayer(osmLayer);
|
||||
```
|
||||
|
||||
## Putting it all together
|
||||
|
||||
The above snippets can be combined into a single script that renders a map with a single tile layer:
|
||||
|
||||
The above snippets can be conflated to a self contained map configuration with view and layers:
|
||||
```js
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import OSM from 'ol/source/OSM';
|
||||
import TileLayer from 'ol/source/Tile';
|
||||
|
||||
```xml
|
||||
<div id="map" style="width: 100%, height: 400px"></div>
|
||||
<script>
|
||||
import Map from 'ol/Map';
|
||||
import View from 'ol/View';
|
||||
import OSM from 'ol/source/OSM';
|
||||
import TileLayer from 'ol/source/Tile';
|
||||
|
||||
new Map({
|
||||
layers: [
|
||||
new TileLayer({source: new ol.source.OSM()})
|
||||
],
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
}),
|
||||
target: 'map'
|
||||
});
|
||||
</script>
|
||||
new Map({
|
||||
layers: [
|
||||
new TileLayer({source: new OSM()})
|
||||
],
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
}),
|
||||
target: 'map'
|
||||
});
|
||||
```
|
||||
|
||||
@@ -12,9 +12,9 @@ The view in any Proj4js supported coordinate reference system is possible and pr
|
||||
# Usage
|
||||
The API usage is very simple. Just specify proper projection (e.g. using [EPSG](https://epsg.io) code) on `ol/View`:
|
||||
```js
|
||||
import {Map, View} from `ol`;
|
||||
import TileLayer from `ol/layer/Tile`;
|
||||
import TileWMS from `ol/source/TileWMS`;
|
||||
import {Map, View} from 'ol';
|
||||
import TileLayer from 'ol/layer/Tile';
|
||||
import TileWMS from 'ol/source/TileWMS';
|
||||
|
||||
var map = new Map({
|
||||
target: 'map',
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
@@ -12,11 +11,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import {fromLonLat} from '../src/ol/proj.js';
|
||||
import {OSM, TileDebug} from '../src/ol/source.js';
|
||||
@@ -20,11 +19,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: fromLonLat([-0.1275, 51.507222]),
|
||||
zoom: 10
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import GeoJSON from '../src/ol/format/GeoJSON.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
|
||||
@@ -45,11 +44,6 @@ const map = new Map({
|
||||
vectorLayer
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: view
|
||||
});
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@ const twoPi = 2 * Math.PI;
|
||||
|
||||
/**
|
||||
* Convert an RGB pixel into an HCL pixel.
|
||||
* @param {Array.<number>} pixel A pixel in RGB space.
|
||||
* @return {Array.<number>} A pixel in HCL space.
|
||||
* @param {Array<number>} pixel A pixel in RGB space.
|
||||
* @return {Array<number>} A pixel in HCL space.
|
||||
*/
|
||||
function rgb2hcl(pixel) {
|
||||
const red = rgb2xyz(pixel[0]);
|
||||
@@ -55,8 +55,8 @@ function rgb2hcl(pixel) {
|
||||
|
||||
/**
|
||||
* Convert an HCL pixel into an RGB pixel.
|
||||
* @param {Array.<number>} pixel A pixel in HCL space.
|
||||
* @return {Array.<number>} A pixel in RGB space.
|
||||
* @param {Array<number>} pixel A pixel in HCL space.
|
||||
* @return {Array<number>} A pixel in RGB space.
|
||||
*/
|
||||
function hcl2rgb(pixel) {
|
||||
const h = pixel[0];
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import {inherits} from '../src/ol/index.js';
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls, Control} from '../src/ol/control.js';
|
||||
@@ -6,13 +5,6 @@ import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
|
||||
/**
|
||||
* Define a namespace for the application.
|
||||
*/
|
||||
window.app = {};
|
||||
const app = window.app;
|
||||
|
||||
|
||||
//
|
||||
// Define rotate to north control.
|
||||
//
|
||||
@@ -23,32 +15,31 @@ const app = window.app;
|
||||
* @extends {module:ol/control/Control~Control}
|
||||
* @param {Object=} opt_options Control options.
|
||||
*/
|
||||
app.RotateNorthControl = function(opt_options) {
|
||||
class RotateNorthControl extends Control {
|
||||
|
||||
const options = opt_options || {};
|
||||
constructor(opt_options) {
|
||||
const options = opt_options || {};
|
||||
|
||||
const button = document.createElement('button');
|
||||
button.innerHTML = 'N';
|
||||
const button = document.createElement('button');
|
||||
button.innerHTML = 'N';
|
||||
|
||||
const this_ = this;
|
||||
const handleRotateNorth = function() {
|
||||
this_.getMap().getView().setRotation(0);
|
||||
};
|
||||
const element = document.createElement('div');
|
||||
element.className = 'rotate-north ol-unselectable ol-control';
|
||||
element.appendChild(button);
|
||||
|
||||
button.addEventListener('click', handleRotateNorth, false);
|
||||
button.addEventListener('touchstart', handleRotateNorth, false);
|
||||
super({
|
||||
element: element,
|
||||
target: options.target
|
||||
});
|
||||
|
||||
const element = document.createElement('div');
|
||||
element.className = 'rotate-north ol-unselectable ol-control';
|
||||
element.appendChild(button);
|
||||
button.addEventListener('click', this.handleRotateNorth.bind(this), false);
|
||||
}
|
||||
|
||||
Control.call(this, {
|
||||
element: element,
|
||||
target: options.target
|
||||
});
|
||||
handleRotateNorth() {
|
||||
this.getMap().getView().setRotation(0);
|
||||
}
|
||||
|
||||
};
|
||||
inherits(app.RotateNorthControl, Control);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
@@ -57,12 +48,8 @@ inherits(app.RotateNorthControl, Control);
|
||||
|
||||
|
||||
const map = new Map({
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}).extend([
|
||||
new app.RotateNorthControl()
|
||||
controls: defaultControls().extend([
|
||||
new RotateNorthControl()
|
||||
]),
|
||||
layers: [
|
||||
new TileLayer({
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import {inherits} from '../src/ol/index.js';
|
||||
import Feature from '../src/ol/Feature.js';
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
@@ -9,58 +8,51 @@ import {TileJSON, Vector as VectorSource} from '../src/ol/source.js';
|
||||
import {Fill, Icon, Stroke, Style} from '../src/ol/style.js';
|
||||
|
||||
|
||||
/**
|
||||
* Define a namespace for the application.
|
||||
*/
|
||||
const app = {};
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends {module:ol/interaction/Pointer}
|
||||
*/
|
||||
app.Drag = function() {
|
||||
class Drag extends PointerInteraction {
|
||||
constructor() {
|
||||
super({
|
||||
handleDownEvent: handleDownEvent,
|
||||
handleDragEvent: handleDragEvent,
|
||||
handleMoveEvent: handleMoveEvent,
|
||||
handleUpEvent: handleUpEvent
|
||||
});
|
||||
|
||||
PointerInteraction.call(this, {
|
||||
handleDownEvent: app.Drag.prototype.handleDownEvent,
|
||||
handleDragEvent: app.Drag.prototype.handleDragEvent,
|
||||
handleMoveEvent: app.Drag.prototype.handleMoveEvent,
|
||||
handleUpEvent: app.Drag.prototype.handleUpEvent
|
||||
});
|
||||
/**
|
||||
* @type {module:ol/pixel~Pixel}
|
||||
* @private
|
||||
*/
|
||||
this.coordinate_ = null;
|
||||
|
||||
/**
|
||||
* @type {module:ol~Pixel}
|
||||
* @private
|
||||
*/
|
||||
this.coordinate_ = null;
|
||||
/**
|
||||
* @type {string|undefined}
|
||||
* @private
|
||||
*/
|
||||
this.cursor_ = 'pointer';
|
||||
|
||||
/**
|
||||
* @type {string|undefined}
|
||||
* @private
|
||||
*/
|
||||
this.cursor_ = 'pointer';
|
||||
/**
|
||||
* @type {module:ol/Feature~Feature}
|
||||
* @private
|
||||
*/
|
||||
this.feature_ = null;
|
||||
|
||||
/**
|
||||
* @type {module:ol/Feature~Feature}
|
||||
* @private
|
||||
*/
|
||||
this.feature_ = null;
|
||||
|
||||
/**
|
||||
* @type {string|undefined}
|
||||
* @private
|
||||
*/
|
||||
this.previousCursor_ = undefined;
|
||||
|
||||
};
|
||||
inherits(app.Drag, PointerInteraction);
|
||||
/**
|
||||
* @type {string|undefined}
|
||||
* @private
|
||||
*/
|
||||
this.previousCursor_ = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param {module:ol/MapBrowserEvent~MapBrowserEvent} evt Map browser event.
|
||||
* @return {boolean} `true` to start the drag sequence.
|
||||
*/
|
||||
app.Drag.prototype.handleDownEvent = function(evt) {
|
||||
function handleDownEvent(evt) {
|
||||
const map = evt.map;
|
||||
|
||||
const feature = map.forEachFeatureAtPixel(evt.pixel,
|
||||
@@ -74,13 +66,13 @@ app.Drag.prototype.handleDownEvent = function(evt) {
|
||||
}
|
||||
|
||||
return !!feature;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param {module:ol/MapBrowserEvent~MapBrowserEvent} evt Map browser event.
|
||||
*/
|
||||
app.Drag.prototype.handleDragEvent = function(evt) {
|
||||
function handleDragEvent(evt) {
|
||||
const deltaX = evt.coordinate[0] - this.coordinate_[0];
|
||||
const deltaY = evt.coordinate[1] - this.coordinate_[1];
|
||||
|
||||
@@ -89,13 +81,13 @@ app.Drag.prototype.handleDragEvent = function(evt) {
|
||||
|
||||
this.coordinate_[0] = evt.coordinate[0];
|
||||
this.coordinate_[1] = evt.coordinate[1];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param {module:ol/MapBrowserEvent~MapBrowserEvent} evt Event.
|
||||
*/
|
||||
app.Drag.prototype.handleMoveEvent = function(evt) {
|
||||
function handleMoveEvent(evt) {
|
||||
if (this.cursor_) {
|
||||
const map = evt.map;
|
||||
const feature = map.forEachFeatureAtPixel(evt.pixel,
|
||||
@@ -113,17 +105,17 @@ app.Drag.prototype.handleMoveEvent = function(evt) {
|
||||
this.previousCursor_ = undefined;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return {boolean} `false` to stop the drag sequence.
|
||||
*/
|
||||
app.Drag.prototype.handleUpEvent = function() {
|
||||
function handleUpEvent() {
|
||||
this.coordinate_ = null;
|
||||
this.feature_ = null;
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
const pointFeature = new Feature(new Point([0, 0]));
|
||||
@@ -137,7 +129,7 @@ const polygonFeature = new Feature(
|
||||
|
||||
|
||||
const map = new Map({
|
||||
interactions: defaultInteractions().extend([new app.Drag()]),
|
||||
interactions: defaultInteractions().extend([new Drag()]),
|
||||
layers: [
|
||||
new TileLayer({
|
||||
source: new TileJSON({
|
||||
|
||||
@@ -8,7 +8,7 @@ docs: >
|
||||
normalize the events from the browser.
|
||||
tags: "device, orientation, gyronorm"
|
||||
resources:
|
||||
- https://cdn.rawgit.com/dorukeker/gyronorm.js/v2.0.6/dist/gyronorm.complete.min.js
|
||||
- https://unpkg.com/gyronorm@2.0.6/dist/gyronorm.complete.min.js
|
||||
---
|
||||
<div id="map" class="map"></div>
|
||||
<p>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import {toRadians} from '../src/ol/math.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
@@ -16,11 +15,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: view
|
||||
});
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ layout: example.html
|
||||
title: Drag-and-Drop Image Vector
|
||||
shortdesc: Example of using the drag-and-drop interaction with image vector rendering.
|
||||
docs: >
|
||||
Example of using the drag-and-drop interaction with an `ol/layer/Vector` with `renderMode: 'image'``. 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 an `ol/layer/Vector` with `renderMode: 'image'`. 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"
|
||||
cloak:
|
||||
- key: As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5
|
||||
|
||||
@@ -4,74 +4,6 @@ import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
|
||||
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
|
||||
import {Vector as VectorLayer, Tile as TileLayer} from '../src/ol/layer.js';
|
||||
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
|
||||
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
|
||||
|
||||
|
||||
const defaultStyle = {
|
||||
'Point': new Style({
|
||||
image: new CircleStyle({
|
||||
fill: new Fill({
|
||||
color: 'rgba(255,255,0,0.5)'
|
||||
}),
|
||||
radius: 5,
|
||||
stroke: new Stroke({
|
||||
color: '#ff0',
|
||||
width: 1
|
||||
})
|
||||
})
|
||||
}),
|
||||
'LineString': new Style({
|
||||
stroke: new Stroke({
|
||||
color: '#f00',
|
||||
width: 3
|
||||
})
|
||||
}),
|
||||
'Polygon': new Style({
|
||||
fill: new Fill({
|
||||
color: 'rgba(0,255,255,0.5)'
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: '#0ff',
|
||||
width: 1
|
||||
})
|
||||
}),
|
||||
'MultiPoint': new Style({
|
||||
image: new CircleStyle({
|
||||
fill: new Fill({
|
||||
color: 'rgba(255,0,255,0.5)'
|
||||
}),
|
||||
radius: 5,
|
||||
stroke: new Stroke({
|
||||
color: '#f0f',
|
||||
width: 1
|
||||
})
|
||||
})
|
||||
}),
|
||||
'MultiLineString': new Style({
|
||||
stroke: new Stroke({
|
||||
color: '#0f0',
|
||||
width: 3
|
||||
})
|
||||
}),
|
||||
'MultiPolygon': new Style({
|
||||
fill: new Fill({
|
||||
color: 'rgba(0,0,255,0.5)'
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: '#00f',
|
||||
width: 1
|
||||
})
|
||||
})
|
||||
};
|
||||
|
||||
const styleFunction = function(feature, resolution) {
|
||||
const featureStyleFunction = feature.getStyleFunction();
|
||||
if (featureStyleFunction) {
|
||||
return featureStyleFunction.call(feature, resolution);
|
||||
} else {
|
||||
return defaultStyle[feature.getGeometry().getType()];
|
||||
}
|
||||
};
|
||||
|
||||
const dragAndDropInteraction = new DragAndDrop({
|
||||
formatConstructors: [
|
||||
@@ -106,8 +38,7 @@ dragAndDropInteraction.on('addfeatures', function(event) {
|
||||
});
|
||||
map.addLayer(new VectorLayer({
|
||||
renderMode: 'image',
|
||||
source: vectorSource,
|
||||
style: styleFunction
|
||||
source: vectorSource
|
||||
}));
|
||||
map.getView().fit(vectorSource.getExtent());
|
||||
});
|
||||
|
||||
@@ -4,74 +4,6 @@ import {GPX, GeoJSON, IGC, KML, TopoJSON} from '../src/ol/format.js';
|
||||
import {defaults as defaultInteractions, DragAndDrop} from '../src/ol/interaction.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
import {BingMaps, Vector as VectorSource} from '../src/ol/source.js';
|
||||
import {Circle as CircleStyle, Fill, Stroke, Style} from '../src/ol/style.js';
|
||||
|
||||
|
||||
const defaultStyle = {
|
||||
'Point': new Style({
|
||||
image: new CircleStyle({
|
||||
fill: new Fill({
|
||||
color: 'rgba(255,255,0,0.5)'
|
||||
}),
|
||||
radius: 5,
|
||||
stroke: new Stroke({
|
||||
color: '#ff0',
|
||||
width: 1
|
||||
})
|
||||
})
|
||||
}),
|
||||
'LineString': new Style({
|
||||
stroke: new Stroke({
|
||||
color: '#f00',
|
||||
width: 3
|
||||
})
|
||||
}),
|
||||
'Polygon': new Style({
|
||||
fill: new Fill({
|
||||
color: 'rgba(0,255,255,0.5)'
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: '#0ff',
|
||||
width: 1
|
||||
})
|
||||
}),
|
||||
'MultiPoint': new Style({
|
||||
image: new CircleStyle({
|
||||
fill: new Fill({
|
||||
color: 'rgba(255,0,255,0.5)'
|
||||
}),
|
||||
radius: 5,
|
||||
stroke: new Stroke({
|
||||
color: '#f0f',
|
||||
width: 1
|
||||
})
|
||||
})
|
||||
}),
|
||||
'MultiLineString': new Style({
|
||||
stroke: new Stroke({
|
||||
color: '#0f0',
|
||||
width: 3
|
||||
})
|
||||
}),
|
||||
'MultiPolygon': new Style({
|
||||
fill: new Fill({
|
||||
color: 'rgba(0,0,255,0.5)'
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: '#00f',
|
||||
width: 1
|
||||
})
|
||||
})
|
||||
};
|
||||
|
||||
const styleFunction = function(feature, resolution) {
|
||||
const featureStyleFunction = feature.getStyleFunction();
|
||||
if (featureStyleFunction) {
|
||||
return featureStyleFunction.call(feature, resolution);
|
||||
} else {
|
||||
return defaultStyle[feature.getGeometry().getType()];
|
||||
}
|
||||
};
|
||||
|
||||
const dragAndDropInteraction = new DragAndDrop({
|
||||
formatConstructors: [
|
||||
@@ -105,8 +37,7 @@ dragAndDropInteraction.on('addfeatures', function(event) {
|
||||
features: event.features
|
||||
});
|
||||
map.addLayer(new VectorLayer({
|
||||
source: vectorSource,
|
||||
style: styleFunction
|
||||
source: vectorSource
|
||||
}));
|
||||
map.getView().fit(vectorSource.getExtent());
|
||||
});
|
||||
|
||||
@@ -17,6 +17,7 @@ tags: "draw, edit, freehand, vector"
|
||||
<form class="form-inline">
|
||||
<label>Shape type </label>
|
||||
<select id="type">
|
||||
<option value="Circle">Circle</option>
|
||||
<option value="Square">Square</option>
|
||||
<option value="Box">Box</option>
|
||||
<option value="Star">Star</option>
|
||||
|
||||
@@ -40,9 +40,6 @@ function addInteraction() {
|
||||
} else if (value === 'Star') {
|
||||
value = 'Circle';
|
||||
geometryFunction = function(coordinates, geometry) {
|
||||
if (!geometry) {
|
||||
geometry = new Polygon(null);
|
||||
}
|
||||
const center = coordinates[0];
|
||||
const last = coordinates[1];
|
||||
const dx = center[0] - last[0];
|
||||
@@ -59,7 +56,11 @@ function addInteraction() {
|
||||
newCoordinates.push([center[0] + offsetX, center[1] + offsetY]);
|
||||
}
|
||||
newCoordinates.push(newCoordinates[0].slice());
|
||||
geometry.setCoordinates([newCoordinates]);
|
||||
if (!geometry) {
|
||||
geometry = new Polygon([newCoordinates]);
|
||||
} else {
|
||||
geometry.setCoordinates([newCoordinates]);
|
||||
}
|
||||
return geometry;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ const map = new Map({
|
||||
const imageStyle = new Style({
|
||||
image: new CircleStyle({
|
||||
radius: 5,
|
||||
snapToPixel: false,
|
||||
fill: new Fill({color: 'yellow'}),
|
||||
stroke: new Stroke({color: 'red', width: 1})
|
||||
})
|
||||
@@ -31,7 +30,6 @@ const imageStyle = new Style({
|
||||
const headInnerImageStyle = new Style({
|
||||
image: new CircleStyle({
|
||||
radius: 2,
|
||||
snapToPixel: false,
|
||||
fill: new Fill({color: 'blue'})
|
||||
})
|
||||
});
|
||||
@@ -39,7 +37,6 @@ const headInnerImageStyle = new Style({
|
||||
const headOuterImageStyle = new Style({
|
||||
image: new CircleStyle({
|
||||
radius: 5,
|
||||
snapToPixel: false,
|
||||
fill: new Fill({color: 'black'})
|
||||
})
|
||||
});
|
||||
|
||||
@@ -136,7 +136,7 @@ const map = new Map({
|
||||
layers: [raster, vector],
|
||||
interactions: defaultInteractions().extend([new Select({
|
||||
condition: function(evt) {
|
||||
return evt.type == 'pointermove' ||
|
||||
return evt.type == 'pointermove' ||
|
||||
evt.type == 'singleclick';
|
||||
},
|
||||
style: selectStyleFunction
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import GeoJSON from '../src/ol/format/GeoJSON.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
|
||||
@@ -18,11 +17,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
@@ -30,7 +24,7 @@ const map = new Map({
|
||||
});
|
||||
|
||||
document.getElementById('export-png').addEventListener('click', function() {
|
||||
map.once('postcompose', function(event) {
|
||||
map.once('rendercomplete', function(event) {
|
||||
const canvas = event.context.canvas;
|
||||
if (navigator.msSaveBlob) {
|
||||
navigator.msSaveBlob(canvas.msToBlob(), 'map.png');
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import WKT from '../src/ol/format/WKT.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
import {unByKey} from '../src/ol/Observable.js';
|
||||
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
|
||||
|
||||
const raster = new TileLayer({
|
||||
@@ -27,11 +25,6 @@ const vector = new VectorLayer({
|
||||
const map = new Map({
|
||||
layers: [raster, vector],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
@@ -48,9 +41,6 @@ const dims = {
|
||||
a5: [210, 148]
|
||||
};
|
||||
|
||||
let loading = 0;
|
||||
let loaded = 0;
|
||||
|
||||
const exportButton = document.getElementById('export-pdf');
|
||||
|
||||
exportButton.addEventListener('click', function() {
|
||||
@@ -66,57 +56,22 @@ exportButton.addEventListener('click', function() {
|
||||
const size = /** @type {module:ol/size~Size} */ (map.getSize());
|
||||
const extent = map.getView().calculateExtent(size);
|
||||
|
||||
const source = raster.getSource();
|
||||
|
||||
const tileLoadStart = function() {
|
||||
++loading;
|
||||
};
|
||||
|
||||
let timer;
|
||||
let keys = [];
|
||||
|
||||
function tileLoadEndFactory(canvas) {
|
||||
return () => {
|
||||
++loaded;
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
timer = null;
|
||||
}
|
||||
if (loading === loaded) {
|
||||
timer = window.setTimeout(() => {
|
||||
loading = 0;
|
||||
loaded = 0;
|
||||
const data = canvas.toDataURL('image/jpeg');
|
||||
const pdf = new jsPDF('landscape', undefined, format);
|
||||
pdf.addImage(data, 'JPEG', 0, 0, dim[0], dim[1]);
|
||||
pdf.save('map.pdf');
|
||||
keys.forEach(unByKey);
|
||||
keys = [];
|
||||
map.setSize(size);
|
||||
map.getView().fit(extent, {size});
|
||||
map.renderSync();
|
||||
exportButton.disabled = false;
|
||||
document.body.style.cursor = 'auto';
|
||||
}, 500);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
map.once('postcompose', function(event) {
|
||||
map.once('rendercomplete', function(event) {
|
||||
const canvas = event.context.canvas;
|
||||
const tileLoadEnd = tileLoadEndFactory(canvas);
|
||||
keys = [
|
||||
source.on('tileloadstart', tileLoadStart),
|
||||
source.on('tileloadend', tileLoadEnd),
|
||||
source.on('tileloaderror', tileLoadEnd)
|
||||
];
|
||||
tileLoadEnd();
|
||||
const data = canvas.toDataURL('image/jpeg');
|
||||
const pdf = new jsPDF('landscape', undefined, format);
|
||||
pdf.addImage(data, 'JPEG', 0, 0, dim[0], dim[1]);
|
||||
pdf.save('map.pdf');
|
||||
// Reset original map size
|
||||
map.setSize(size);
|
||||
map.getView().fit(extent, {size});
|
||||
exportButton.disabled = false;
|
||||
document.body.style.cursor = 'auto';
|
||||
});
|
||||
|
||||
// Set print size
|
||||
const printSize = [width, height];
|
||||
map.setSize(printSize);
|
||||
map.getView().fit(extent, {size: printSize});
|
||||
loaded = -1;
|
||||
map.renderSync();
|
||||
|
||||
}, false);
|
||||
|
||||
@@ -2,7 +2,6 @@ import Feature from '../src/ol/Feature.js';
|
||||
import Map from '../src/ol/Map.js';
|
||||
import {unByKey} from '../src/ol/Observable.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import {easeOut} from '../src/ol/easing.js';
|
||||
import Point from '../src/ol/geom/Point.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
@@ -19,11 +18,6 @@ const map = new Map({
|
||||
})
|
||||
})
|
||||
],
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
target: 'map',
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
@@ -65,7 +59,6 @@ function flash(feature) {
|
||||
const style = new Style({
|
||||
image: new CircleStyle({
|
||||
radius: radius,
|
||||
snapToPixel: false,
|
||||
stroke: new Stroke({
|
||||
color: 'rgba(255, 0, 0, ' + opacity + ')',
|
||||
width: 0.25 + opacity
|
||||
|
||||
@@ -94,7 +94,6 @@ const styles = {
|
||||
'geoMarker': new Style({
|
||||
image: new CircleStyle({
|
||||
radius: 7,
|
||||
snapToPixel: false,
|
||||
fill: new Fill({color: 'black'}),
|
||||
stroke: new Stroke({
|
||||
color: 'white', width: 2
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import Feature from '../src/ol/Feature.js';
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import GeoJSON from '../src/ol/format/GeoJSON.js';
|
||||
import Circle from '../src/ol/geom/Circle.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
@@ -174,11 +173,6 @@ const map = new Map({
|
||||
vectorLayer
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
|
||||
@@ -44,7 +44,7 @@ tags: "fullscreen, geolocation, orientation, mobile"
|
||||
<button id="geolocate">Geolocate Me!</button>
|
||||
<button id="simulate">Simulate</button>
|
||||
</div>
|
||||
<script src="./resources/common.js" type="text/javascript"></script>
|
||||
<script src="loader.js?id=geolocation-orientation" type="text/javascript"></script>
|
||||
<script src="common.js"></script>
|
||||
<script src="geolocation-orientation.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,7 +2,6 @@ import Geolocation from '../src/ol/Geolocation.js';
|
||||
import Map from '../src/ol/Map.js';
|
||||
import Overlay from '../src/ol/Overlay.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import LineString from '../src/ol/geom/LineString.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import {fromLonLat} from '../src/ol/proj.js';
|
||||
@@ -22,11 +21,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: view
|
||||
});
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ import Feature from '../src/ol/Feature.js';
|
||||
import Geolocation from '../src/ol/Geolocation.js';
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import Point from '../src/ol/geom/Point.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
import {OSM, Vector as VectorSource} from '../src/ol/source.js';
|
||||
@@ -20,11 +19,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: view
|
||||
});
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import Feature from '../src/ol/Feature.js';
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import IGC from '../src/ol/format/IGC.js';
|
||||
import {LineString, Point} from '../src/ol/geom.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
@@ -93,11 +92,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [703365.7089403362, 5714629.865071137],
|
||||
zoom: 9
|
||||
|
||||
@@ -101,7 +101,7 @@ imagery.on('postcompose', function(event) {
|
||||
* Apply a convolution kernel to canvas. This works for any size kernel, but
|
||||
* performance starts degrading above 3 x 3.
|
||||
* @param {CanvasRenderingContext2D} context Canvas 2d context.
|
||||
* @param {Array.<number>} kernel Kernel.
|
||||
* @param {Array<number>} kernel Kernel.
|
||||
*/
|
||||
function convolve(context, kernel) {
|
||||
const canvas = context.canvas;
|
||||
|
||||
19
examples/interaction-options.html
Normal file
19
examples/interaction-options.html
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
layout: example.html
|
||||
title: Interaction Options
|
||||
shortdesc: Shows interaction options for custom scroll and zoom behavior.
|
||||
docs: >
|
||||
This example uses a custom `ol/interaction/defaults` configuration:
|
||||
|
||||
* By default, wheel/trackpad zoom and drag panning is always active, which
|
||||
can be unexpected on pages with a lot of scrollable content and an embedded
|
||||
map. To perform wheel/trackpad zoom and drag-pan actions only when the map
|
||||
has the focus, set `onFocusOnly: true` as option. This requires a map div
|
||||
with a `tabindex` attribute set.
|
||||
* By default, pinch-zoom and wheel/trackpad zoom interactions can leave the
|
||||
map at fractional zoom levels. If instead you want to constrain
|
||||
wheel/trackpad zooming to integer zoom levels, set
|
||||
`constrainResolution: true`.
|
||||
tags: "trackpad, mousewheel, zoom, scroll, interaction, fractional"
|
||||
---
|
||||
<div tabindex="1" id="map" class="map"></div>
|
||||
22
examples/interaction-options.js
Normal file
22
examples/interaction-options.js
Normal file
@@ -0,0 +1,22 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultInteractions} from '../src/ol/interaction.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
|
||||
const map = new Map({
|
||||
interactions: defaultInteractions({
|
||||
constrainResolution: true, onFocusOnly: true
|
||||
}),
|
||||
layers: [
|
||||
new TileLayer({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
})
|
||||
});
|
||||
@@ -7,6 +7,6 @@ docs: >
|
||||
with OpenLayers.
|
||||
tags: "vector, jsts, buffer"
|
||||
resources:
|
||||
- https://cdn.rawgit.com/bjornharrtell/jsts/gh-pages/1.6.0/jsts.min.js
|
||||
- https://unpkg.com/jsts@2.0.2/dist/jsts.min.js
|
||||
---
|
||||
<div id="map" class="map"></div>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/WebGLMap.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import {WEBGL} from '../src/ol/has.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
@@ -20,11 +19,6 @@ if (!WEBGL) {
|
||||
const map = new Map({
|
||||
layers: [osm],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
@@ -11,11 +10,6 @@ const osm = new TileLayer({
|
||||
const map = new Map({
|
||||
layers: [osm],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import BingMaps from '../src/ol/source/BingMaps.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
@@ -18,11 +17,6 @@ const bing = new TileLayer({
|
||||
const map = new Map({
|
||||
layers: [osm, bing],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM, {ATTRIBUTION} from '../src/ol/source/OSM.js';
|
||||
|
||||
@@ -34,11 +33,6 @@ const map = new Map({
|
||||
openSeaMapLayer
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
maxZoom: 18,
|
||||
center: [-244780.24508882355, 5986452.183179816],
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
import TileJSON from '../src/ol/source/TileJSON.js';
|
||||
@@ -26,11 +25,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [653600, 5723680],
|
||||
zoom: 5
|
||||
|
||||
@@ -25,8 +25,7 @@ cloak:
|
||||
</head>
|
||||
<body>
|
||||
<div id="map" class="map"></div>
|
||||
<script src="https://code.jquery.com/jquery-2.2.3.min.js" type="text/javascript"></script>
|
||||
<script src="./resources/common.js" type="text/javascript"></script>
|
||||
<script src="loader.js?id=mobile-full-screen" type="text/javascript"></script>
|
||||
<script src="common.js"></script>
|
||||
<script src="mobile-full-screen.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -17,11 +17,7 @@ const mousePositionControl = new MousePosition({
|
||||
});
|
||||
|
||||
const map = new Map({
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}).extend([mousePositionControl]),
|
||||
controls: defaultControls().extend([mousePositionControl]),
|
||||
layers: [
|
||||
new TileLayer({
|
||||
source: new OSM()
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
---
|
||||
layout: example.html
|
||||
title: Mousewheel/Trackpad Zoom
|
||||
shortdesc: Shows advanced wheel/trackpad zoom options.
|
||||
docs: >
|
||||
This example uses a custom `ol/interaction/MouseWheelZoom` configuration:
|
||||
|
||||
* By default, wheel/trackpad zoom is always active, which can be unexpected
|
||||
on pages with a lot of scrollable content and an embedded map. To perform
|
||||
wheel/trackpad zoom actions only when the map has the focus, set
|
||||
`condition: focus` as constructor option. This requires
|
||||
a map div with a `tabindex` attribute set.
|
||||
* By default, the interaction can leave the map at fractional zoom levels. If
|
||||
instead you want to constrain wheel/trackpad zooming to integer zoom
|
||||
levels, set `constrainResolution: true`.
|
||||
tags: "trackpad, mousewheel, zoom, scroll, interaction"
|
||||
---
|
||||
<div tabindex="1" id="map" class="map"></div>
|
||||
@@ -1,26 +0,0 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultInteractions, MouseWheelZoom} from '../src/ol/interaction.js';
|
||||
import {focus} from '../src/ol/events/condition.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
|
||||
const map = new Map({
|
||||
interactions: defaultInteractions({mouseWheelZoom: false}).extend([
|
||||
new MouseWheelZoom({
|
||||
constrainResolution: true, // force zooming to a integer zoom
|
||||
condition: focus // only wheel/trackpad zoom when the map has the focus
|
||||
})
|
||||
]),
|
||||
layers: [
|
||||
new TileLayer({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
})
|
||||
});
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import {getBottomLeft, getTopRight} from '../src/ol/extent.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import {toLonLat} from '../src/ol/proj.js';
|
||||
@@ -14,11 +13,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
|
||||
@@ -6,11 +6,7 @@ import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
|
||||
const map = new Map({
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}).extend([
|
||||
controls: defaultControls().extend([
|
||||
new ZoomToExtent({
|
||||
extent: [
|
||||
813079.7791264898, 5929220.284081122,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
@@ -29,11 +28,6 @@ const map = new Map({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
target: 'map',
|
||||
view: new View({
|
||||
center: center,
|
||||
|
||||
@@ -12,7 +12,7 @@ const bins = 10;
|
||||
/**
|
||||
* Calculate the Vegetation Greenness Index (VGI) from an input pixel. This
|
||||
* is a rough estimate assuming that pixel values correspond to reflectance.
|
||||
* @param {Array.<number>} pixel An array of [R, G, B, A] values.
|
||||
* @param {Array<number>} pixel An array of [R, G, B, A] values.
|
||||
* @return {number} The VGI value for the given pixel.
|
||||
*/
|
||||
function vgi(pixel) {
|
||||
|
||||
@@ -15,8 +15,9 @@ function createMapboxStreetsV6Style(Style, Fill, Stroke, Icon, Text) {
|
||||
var icon = iconCache[iconName];
|
||||
if (!icon) {
|
||||
icon = new Style({image: new Icon({
|
||||
src: 'https://cdn.rawgit.com/mapbox/maki/master/icons/' + iconName + '-15.svg',
|
||||
imgSize: [15, 15]
|
||||
src: 'https://unpkg.com/@mapbox/maki@4.0.0/icons/' + iconName + '-15.svg',
|
||||
imgSize: [15, 15],
|
||||
crossOrigin: 'anonymous'
|
||||
})});
|
||||
iconCache[iconName] = icon;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
@@ -12,11 +11,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [14200000, 4130000],
|
||||
rotation: Math.PI / 6,
|
||||
|
||||
@@ -8,11 +8,7 @@ import OSM from '../src/ol/source/OSM.js';
|
||||
const scaleLineControl = new ScaleLine();
|
||||
|
||||
const map = new Map({
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}).extend([
|
||||
controls: defaultControls().extend([
|
||||
scaleLineControl
|
||||
]),
|
||||
layers: [
|
||||
|
||||
@@ -27,7 +27,7 @@ const map = new Map({
|
||||
})
|
||||
});
|
||||
|
||||
let select = null; // ref to currently selected interaction
|
||||
let select = null; // ref to currently selected interaction
|
||||
|
||||
// select interaction working on "singleclick"
|
||||
const selectSingleClick = new Select();
|
||||
|
||||
@@ -7,7 +7,7 @@ import {OSM, Raster, XYZ} from '../src/ol/source.js';
|
||||
/**
|
||||
* Generates a shaded relief image given elevation data. Uses a 3x3
|
||||
* neighborhood for determining slope and aspect.
|
||||
* @param {Array.<ImageData>} inputs Array of input images.
|
||||
* @param {Array<ImageData>} inputs Array of input images.
|
||||
* @param {Object} data Data added in the "beforeoperations" event.
|
||||
* @return {ImageData} Output image.
|
||||
*/
|
||||
|
||||
@@ -53,7 +53,9 @@ const ExampleModify = {
|
||||
const selectedFeatures = this.select.getFeatures();
|
||||
|
||||
this.select.on('change:active', function() {
|
||||
selectedFeatures.forEach(selectedFeatures.remove, selectedFeatures);
|
||||
selectedFeatures.forEach(function(each) {
|
||||
selectedFeatures.remove(each);
|
||||
});
|
||||
});
|
||||
},
|
||||
setActive: function(active) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
layout: example.html
|
||||
title: Street Labels
|
||||
shortdesc: Render street names with a custom render.
|
||||
shortdesc: Render street names.
|
||||
docs: >
|
||||
Example showing the use of a text style with `placement: 'line'` to render text along a path.
|
||||
tags: "vector, label, streets"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import OSM from '../src/ol/source/OSM.js';
|
||||
|
||||
@@ -11,11 +10,6 @@ const map = new Map({
|
||||
source: new OSM()
|
||||
})
|
||||
],
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
zoom: 2
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-2577926-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'UA-2577926-1');
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||
|
||||
@@ -7,7 +7,7 @@ docs: >
|
||||
with OpenLayers, enabling creating and editing topological geometry. Standard interaction draws edges, snapping to existing edges. Delete an edge by drawing a new edge crossing the one to delete.
|
||||
tags: "draw, edit, vector, topology, topolis"
|
||||
resources:
|
||||
- https://cdn.rawgit.com/bjornharrtell/topolis/releases/0.1.1/topolis.min.js
|
||||
- https://unpkg.com/topolis@0.2.5/dist/topolis.js
|
||||
- https://code.jquery.com/jquery-3.1.1.min.js
|
||||
- https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.3/toastr.min.js
|
||||
- https://cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.3/toastr.min.css
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import OSMXML from '../src/ol/format/OSMXML.js';
|
||||
import {Tile as TileLayer, Vector as VectorLayer} from '../src/ol/layer.js';
|
||||
import {bbox as bboxStrategy} from '../src/ol/loadingstrategy.js';
|
||||
@@ -121,11 +120,6 @@ const raster = new TileLayer({
|
||||
map = new Map({
|
||||
layers: [raster, vector],
|
||||
target: document.getElementById('map'),
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [739218, 5906096],
|
||||
maxZoom: 19,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
||||
const CopyPlugin = require('copy-webpack-plugin');
|
||||
const ExampleBuilder = require('./example-builder');
|
||||
const fs = require('fs');
|
||||
@@ -18,7 +19,26 @@ module.exports = {
|
||||
context: src,
|
||||
target: 'web',
|
||||
entry: entry,
|
||||
module: {
|
||||
rules: [{
|
||||
use: {
|
||||
loader: 'buble-loader'
|
||||
},
|
||||
test: /\.js$/,
|
||||
include: [
|
||||
path.join(__dirname, '..', '..', 'src'),
|
||||
path.join(__dirname, '..')
|
||||
]
|
||||
}]
|
||||
},
|
||||
optimization: {
|
||||
minimizer: [
|
||||
new UglifyJsPlugin({
|
||||
sourceMap: true,
|
||||
// Do not minify examples that inject code into workers
|
||||
exclude: [/(color-manipulation|region-growing|raster)\.js/]
|
||||
})
|
||||
],
|
||||
runtimeChunk: {
|
||||
name: 'common'
|
||||
},
|
||||
|
||||
@@ -26,7 +26,7 @@ handlebars.registerHelper('indent', (text, options) => {
|
||||
* Create an inverted index of keywords from examples. Property names are
|
||||
* lowercased words. Property values are objects mapping example index to word
|
||||
* count.
|
||||
* @param {Array.<Object>} exampleData Array of example data objects.
|
||||
* @param {Array<Object>} exampleData Array of example data objects.
|
||||
* @return {Object} Word index.
|
||||
*/
|
||||
function createWordIndex(exampleData) {
|
||||
@@ -64,20 +64,20 @@ function createWordIndex(exampleData) {
|
||||
/**
|
||||
* Gets the source for the chunk that matches the jsPath
|
||||
* @param {Object} chunk Chunk.
|
||||
* @param {string} jsPath Path of the file.
|
||||
* @param {string} jsName Name of the file.
|
||||
* @return {string} The source.
|
||||
*/
|
||||
function getJsSource(chunk, jsPath) {
|
||||
function getJsSource(chunk, jsName) {
|
||||
let jsSource;
|
||||
for (let i = 0, ii = chunk.modules.length; i < ii; ++i) {
|
||||
const module = chunk.modules[i];
|
||||
if (module.modules) {
|
||||
jsSource = getJsSource(module, jsPath);
|
||||
jsSource = getJsSource(module, jsName);
|
||||
if (jsSource) {
|
||||
return jsSource;
|
||||
}
|
||||
}
|
||||
if (module.identifier == jsPath) {
|
||||
if (module.identifier.endsWith(jsName) && module.source) {
|
||||
return module.source;
|
||||
}
|
||||
}
|
||||
@@ -151,8 +151,7 @@ ExampleBuilder.prototype.render = async function(dir, chunk) {
|
||||
|
||||
// add in script tag
|
||||
const jsName = `${name}.js`;
|
||||
const jsPath = path.join(dir, jsName);
|
||||
let jsSource = getJsSource(chunk, jsPath);
|
||||
let jsSource = getJsSource(chunk, path.join('.', jsName));
|
||||
jsSource = jsSource.replace(/'\.\.\/src\//g, '\'');
|
||||
if (data.cloak) {
|
||||
for (const entry of data.cloak) {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import {getWidth} from '../src/ol/extent.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import {fromLonLat, get as getProjection} from '../src/ol/proj.js';
|
||||
@@ -10,11 +9,6 @@ import WMTSTileGrid from '../src/ol/tilegrid/WMTS.js';
|
||||
|
||||
const map = new Map({
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
zoom: 5,
|
||||
center: fromLonLat([5, 45])
|
||||
@@ -37,12 +31,11 @@ const tileGrid = new WMTSTileGrid({
|
||||
matrixIds: matrixIds
|
||||
});
|
||||
|
||||
// API key valid for 'openlayers.org' and 'localhost'.
|
||||
// Expiration date is 06/29/2018.
|
||||
const key = '2mqbg0z6cx7ube8gsou10nrt';
|
||||
// For more information about the IGN API key see
|
||||
// https://geoservices.ign.fr/blog/2017/06/28/geoportail_sans_compte.html
|
||||
|
||||
const ign_source = new WMTS({
|
||||
url: 'https://wxs.ign.fr/' + key + '/wmts',
|
||||
url: 'https://wxs.ign.fr/pratique/geoportail/wmts',
|
||||
layer: 'GEOGRAPHICALGRIDSYSTEMS.MAPS',
|
||||
matrixSet: 'PM',
|
||||
format: 'image/jpeg',
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import Map from '../src/ol/Map.js';
|
||||
import View from '../src/ol/View.js';
|
||||
import {defaults as defaultControls} from '../src/ol/control.js';
|
||||
import {getWidth, getTopLeft} from '../src/ol/extent.js';
|
||||
import TileLayer from '../src/ol/layer/Tile.js';
|
||||
import {get as getProjection} from '../src/ol/proj.js';
|
||||
@@ -48,11 +47,6 @@ const map = new Map({
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
controls: defaultControls({
|
||||
attributionOptions: {
|
||||
collapsible: false
|
||||
}
|
||||
}),
|
||||
view: new View({
|
||||
center: [-11158582, 4813697],
|
||||
zoom: 4
|
||||
|
||||
@@ -8,7 +8,7 @@ const imgHeight = 6100;
|
||||
|
||||
const zoomifyUrl = 'http://vips.vtech.fr/cgi-bin/iipsrv.fcgi?zoomify=' +
|
||||
'/mnt/MD1/AD00/plan_CHU-4HD-01/FOND.TIF/';
|
||||
const iipUrl = 'http://vips.vtech.fr/cgi-bin/iipsrv.fcgi?FIF=' + '/mnt/MD1/AD00/plan_CHU-4HD-01/FOND.TIF' + '&JTL={z},{tileIndex}';
|
||||
const iipUrl = 'http://vips.vtech.fr/cgi-bin/iipsrv.fcgi?FIF=' + '/mnt/MD1/AD00/plan_CHU-4HD-01/FOND.TIF' + '&JTL={z},{tileIndex}';
|
||||
|
||||
const layer = new TileLayer({
|
||||
source: new Zoomify({
|
||||
|
||||
95
package.json
95
package.json
@@ -1,32 +1,30 @@
|
||||
{
|
||||
"name": "openlayers",
|
||||
"version": "5.0.2",
|
||||
"name": "ol",
|
||||
"version": "5.3.0",
|
||||
"description": "OpenLayers mapping library",
|
||||
"keywords": [
|
||||
"map",
|
||||
"mapping",
|
||||
"ol"
|
||||
],
|
||||
"private": true,
|
||||
"homepage": "https://openlayers.org/",
|
||||
"scripts": {
|
||||
"lint": "eslint tasks test src/ol examples config",
|
||||
"pretest": "npm run lint",
|
||||
"test": "npm run karma -- --single-run",
|
||||
"test": "npm run karma -- --single-run --log-level error",
|
||||
"karma": "karma start test/karma.config.js",
|
||||
"serve-examples": "webpack-dev-server --config examples/webpack/config.js --mode development --watch",
|
||||
"build-examples": "webpack --config examples/webpack/config.js --mode production",
|
||||
"build-index": "node tasks/generate-index",
|
||||
"set-version": "node tasks/set-version",
|
||||
"prebuild": "npm run set-version && npm run build-index",
|
||||
"prepare": "npm run set-version",
|
||||
"build": "rollup --config config/rollup.js && cleancss --source-map src/ol/ol.css -o build/ol.css",
|
||||
"presrc-closure": "npm run prebuild",
|
||||
"src-closure": "node tasks/transform-types",
|
||||
"pretypecheck": "npm run src-closure",
|
||||
"typecheck": "node tasks/typecheck",
|
||||
"build-package": "npm run transpile && npm run copy-css && node tasks/prepare-package && cp README.md build/ol",
|
||||
"build-index": "npm run build-package && node tasks/generate-index",
|
||||
"build-legacy": "rm -rf build && npm run build-index && webpack --config config/webpack-config-legacy-build.js && cleancss --source-map src/ol/ol.css -o build/legacy/ol.css",
|
||||
"copy-css": "cp src/ol/ol.css build/ol/ol.css",
|
||||
"transpile": "rm -rf build/ol && mkdir -p build && buble --input src/ol --output build/ol --no modules --sourcemap",
|
||||
"typecheck": "tsc --pretty",
|
||||
"apidoc": "jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json -P package.json -d build/apidoc"
|
||||
},
|
||||
"main": "src/ol/index.js",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/openlayers/openlayers.git"
|
||||
@@ -35,63 +33,72 @@
|
||||
"bugs": {
|
||||
"url": "https://github.com/openlayers/openlayers/issues"
|
||||
},
|
||||
"browser": "dist/ol.js",
|
||||
"style": [
|
||||
"css/ol.css"
|
||||
],
|
||||
"dependencies": {
|
||||
"pbf": "3.1.0",
|
||||
"pixelworks": "1.1.0",
|
||||
"rbush": "2.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.26.3",
|
||||
"babel-plugin-jsdoc-closure": "1.5.1",
|
||||
"@openlayers/eslint-plugin": "^4.0.0-beta.1",
|
||||
"@types/arcgis-rest-api": "^10.4.3",
|
||||
"@types/geojson": "^7946.0.4",
|
||||
"@types/rbush": "^2.0.2",
|
||||
"@types/topojson-specification": "^1.0.0",
|
||||
"buble": "^0.19.3",
|
||||
"buble-loader": "^0.5.1",
|
||||
"chaikin-smooth": "^1.0.4",
|
||||
"clean-css-cli": "4.1.11",
|
||||
"clean-css-cli": "4.2.1",
|
||||
"copy-webpack-plugin": "^4.4.1",
|
||||
"coveralls": "3.0.1",
|
||||
"eslint": "5.0.1",
|
||||
"eslint-config-openlayers": "^9.2.0",
|
||||
"eslint": "^5.8.0",
|
||||
"eslint-config-openlayers": "^11.0.0",
|
||||
"expect.js": "0.3.1",
|
||||
"front-matter": "^2.1.2",
|
||||
"fs-extra": "^6.0.0",
|
||||
"front-matter": "^3.0.0",
|
||||
"fs-extra": "^7.0.0",
|
||||
"glob": "^7.1.2",
|
||||
"google-closure-compiler": "20180610.0.2",
|
||||
"handlebars": "4.0.11",
|
||||
"istanbul": "0.4.5",
|
||||
"jquery": "3.3.1",
|
||||
"jsdoc": "3.5.5",
|
||||
"karma": "^2.0.0",
|
||||
"jsdoc-plugin-typescript": "^1.0.2",
|
||||
"karma": "^3.1.1",
|
||||
"karma-chrome-launcher": "2.2.0",
|
||||
"karma-coverage": "^1.1.1",
|
||||
"karma-coverage": "^1.1.2",
|
||||
"karma-firefox-launcher": "^1.1.0",
|
||||
"karma-mocha": "1.3.0",
|
||||
"karma-sauce-launcher": "1.2.0",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-webpack": "4.0.0-beta.0",
|
||||
"marked": "0.4.0",
|
||||
"karma-webpack": "^4.0.0-rc.2",
|
||||
"marked": "0.5.1",
|
||||
"mocha": "5.2.0",
|
||||
"mustache": "^2.3.0",
|
||||
"mustache": "^3.0.0",
|
||||
"pixelmatch": "^4.0.2",
|
||||
"proj4": "2.4.4",
|
||||
"recast": "0.15.0",
|
||||
"rollup": "0.61.2",
|
||||
"rollup-plugin-buble": "0.19.2",
|
||||
"rollup-plugin-commonjs": "9.1.3",
|
||||
"rollup-plugin-node-resolve": "3.3.0",
|
||||
"rollup-plugin-sourcemaps": "0.4.2",
|
||||
"rollup-plugin-uglify": "4.0.0",
|
||||
"proj4": "2.5.0",
|
||||
"rollup": "0.66.6",
|
||||
"sinon": "^6.0.0",
|
||||
"uglifyjs-webpack-plugin": "^1.2.5",
|
||||
"typescript": "^3.1.0-dev.20180905",
|
||||
"uglifyjs-webpack-plugin": "^2.0.1",
|
||||
"url-polyfill": "^1.0.13",
|
||||
"walk": "^2.3.9",
|
||||
"webpack": "4.12.1",
|
||||
"webpack-cli": "^3.0.3",
|
||||
"webpack": "4.25.1",
|
||||
"webpack-cli": "^3.0.8",
|
||||
"webpack-dev-server": "^3.1.4"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "openlayers"
|
||||
"extends": "openlayers",
|
||||
"plugins": [
|
||||
"@openlayers"
|
||||
],
|
||||
"rules": {
|
||||
"valid-jsdoc": "off",
|
||||
"@openlayers/valid-tsdoc": [
|
||||
"error",
|
||||
{
|
||||
"requireReturn": false
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"sideEffects": false
|
||||
"sideEffects": [
|
||||
"ol.css"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,40 +1,44 @@
|
||||
/**
|
||||
* @module ol/AssertionError
|
||||
*/
|
||||
import {VERSION, inherits} from './util.js';
|
||||
import {VERSION} from './util.js';
|
||||
|
||||
/**
|
||||
* Error object thrown when an assertion failed. This is an ECMA-262 Error,
|
||||
* extended with a `code` property.
|
||||
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error}
|
||||
* @constructor
|
||||
* @extends {Error}
|
||||
* @param {number} code Error code.
|
||||
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error.
|
||||
*/
|
||||
const AssertionError = function(code) {
|
||||
|
||||
const path = VERSION.split('-')[0];
|
||||
class AssertionError extends Error {
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
* @param {number} code Error code.
|
||||
*/
|
||||
this.message = 'Assertion failed. See https://openlayers.org/en/' + path +
|
||||
'/doc/errors/#' + code + ' for details.';
|
||||
constructor(code) {
|
||||
const path = VERSION === 'latest' ? VERSION : 'v' + VERSION.split('-')[0];
|
||||
const message = 'Assertion failed. See https://openlayers.org/en/' + path +
|
||||
'/doc/errors/#' + code + ' for details.';
|
||||
|
||||
/**
|
||||
* Error code. The meaning of the code can be found on
|
||||
* {@link https://openlayers.org/en/latest/doc/errors/} (replace `latest` with
|
||||
* the version found in the OpenLayers script's header comment if a version
|
||||
* other than the latest is used).
|
||||
* @type {number}
|
||||
* @api
|
||||
*/
|
||||
this.code = code;
|
||||
super(message);
|
||||
|
||||
this.name = 'AssertionError';
|
||||
/**
|
||||
* Error code. The meaning of the code can be found on
|
||||
* https://openlayers.org/en/latest/doc/errors/ (replace `latest` with
|
||||
* the version found in the OpenLayers script's header comment if a version
|
||||
* other than the latest is used).
|
||||
* @type {number}
|
||||
* @api
|
||||
*/
|
||||
this.code = code;
|
||||
|
||||
};
|
||||
/**
|
||||
* @type {string}
|
||||
*/
|
||||
this.name = 'AssertionError';
|
||||
|
||||
inherits(AssertionError, Error);
|
||||
// Re-assign message, see https://github.com/Rich-Harris/buble/issues/40
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default AssertionError;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user