@basemaps/landing 6.45.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +0 -2
  3. package/build/components/layer.switcher.dropdown.d.ts.map +1 -1
  4. package/build/components/layer.switcher.dropdown.js +19 -18
  5. package/build/components/layer.switcher.dropdown.js.map +1 -1
  6. package/build/components/map.switcher.d.ts.map +1 -1
  7. package/build/components/map.switcher.js +3 -1
  8. package/build/components/map.switcher.js.map +1 -1
  9. package/build/config.map.d.ts +2 -2
  10. package/build/config.map.d.ts.map +1 -1
  11. package/build/config.map.js +34 -12
  12. package/build/config.map.js.map +1 -1
  13. package/dist/docs/404.html +824 -0
  14. package/dist/docs/assets/images/favicon.png +0 -0
  15. package/dist/docs/assets/javascripts/bundle.cd18aaf1.min.js +29 -0
  16. package/dist/docs/assets/javascripts/bundle.cd18aaf1.min.js.map +7 -0
  17. package/dist/docs/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  18. package/dist/docs/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  19. package/dist/docs/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  20. package/dist/docs/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  21. package/dist/docs/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  22. package/dist/docs/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  23. package/dist/docs/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  24. package/dist/docs/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  25. package/dist/docs/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  26. package/dist/docs/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  27. package/dist/docs/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  28. package/dist/docs/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  29. package/dist/docs/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  30. package/dist/docs/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  31. package/dist/docs/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  32. package/dist/docs/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  33. package/dist/docs/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  34. package/dist/docs/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  35. package/dist/docs/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  36. package/dist/docs/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  37. package/dist/docs/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  38. package/dist/docs/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  39. package/dist/docs/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  40. package/dist/docs/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  41. package/dist/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  42. package/dist/docs/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  43. package/dist/docs/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  44. package/dist/docs/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  45. package/dist/docs/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  46. package/dist/docs/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  47. package/dist/docs/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  48. package/dist/docs/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  49. package/dist/docs/assets/javascripts/lunr/tinyseg.js +206 -0
  50. package/dist/docs/assets/javascripts/lunr/wordcut.js +6708 -0
  51. package/dist/docs/assets/javascripts/workers/search.f886a092.min.js +42 -0
  52. package/dist/docs/assets/javascripts/workers/search.f886a092.min.js.map +7 -0
  53. package/dist/docs/assets/stylesheets/main.fad675c6.min.css +1 -0
  54. package/dist/docs/assets/stylesheets/main.fad675c6.min.css.map +1 -0
  55. package/dist/docs/assets/stylesheets/palette.356b1318.min.css +1 -0
  56. package/dist/docs/assets/stylesheets/palette.356b1318.min.css.map +1 -0
  57. package/dist/docs/configuration/index.html +981 -0
  58. package/dist/docs/deployment/index.html +932 -0
  59. package/dist/docs/developer-guide/index.html +884 -0
  60. package/dist/docs/examples/_overview/index.html +870 -0
  61. package/dist/docs/examples/index.leaflet.xyz.3857.html +38 -0
  62. package/dist/docs/examples/index.maplibre.opacity.3857.html +215 -0
  63. package/dist/docs/examples/index.maplibre.vector.3857.html +45 -0
  64. package/dist/docs/examples/leaflet.xyz.3857/index.html +904 -0
  65. package/dist/docs/examples/maplibre.opacity.3857/index.html +1081 -0
  66. package/dist/docs/examples/maplibre.vector.3857/index.html +911 -0
  67. package/dist/docs/index.css +3 -0
  68. package/dist/docs/index.html +1141 -0
  69. package/dist/docs/linz-motif.svg +124 -0
  70. package/dist/docs/operator-guide/cog-quality/index.html +1121 -0
  71. package/dist/docs/operator-guide/empty-tiles/index.html +990 -0
  72. package/dist/docs/operator-guide/index.html +859 -0
  73. package/dist/docs/operator-guide/quick-start/index.html +1104 -0
  74. package/dist/docs/operator-guide/relief-shade/index.html +971 -0
  75. package/dist/docs/operator-guide/static/2023-06-26-gisborne-2023.png +0 -0
  76. package/dist/docs/operator-guide/static/quality__005_006_0_bilinear.webp +0 -0
  77. package/dist/docs/operator-guide/static/quality__005_006_0_lanczos.webp +0 -0
  78. package/dist/docs/operator-guide/static/quality__i6.bilinear.webp +0 -0
  79. package/dist/docs/operator-guide/static/quality__i6.cubic.webp +0 -0
  80. package/dist/docs/operator-guide/static/quality__i6.lanczos.webp +0 -0
  81. package/dist/docs/operator-guide/static/quality__resampling-overview.webp +0 -0
  82. package/dist/docs/operator-guide/static/quick-start__layers.png +0 -0
  83. package/dist/docs/operator-guide/static/relief__aerial.webp +0 -0
  84. package/dist/docs/operator-guide/static/relief__base.webp +0 -0
  85. package/dist/docs/operator-guide/static/relief__darken.webp +0 -0
  86. package/dist/docs/operator-guide/static/relief__lighten.webp +0 -0
  87. package/dist/docs/operator-guide/texture-shade/index.html +1014 -0
  88. package/dist/docs/quick-start/index.html +872 -0
  89. package/dist/docs/search/search_index.json +1 -0
  90. package/dist/docs/sitemap.xml +83 -0
  91. package/dist/docs/sitemap.xml.gz +0 -0
  92. package/dist/docs/static/basemaps-service.png +0 -0
  93. package/dist/docs/static/tile-resize.png +0 -0
  94. package/dist/docs/static/workflow-run.png +0 -0
  95. package/dist/docs/user-guide/index.html +856 -0
  96. package/package.json +7 -7
@@ -0,0 +1,1141 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+
10
+
11
+ <link rel="canonical" href="http://localhost:8000/docs/">
12
+
13
+
14
+
15
+ <link rel="next" href="configuration/">
16
+
17
+
18
+ <link rel="icon" href="assets/images/favicon.png">
19
+ <meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.4.14">
20
+
21
+
22
+
23
+ <title>LINZ Basemaps</title>
24
+
25
+
26
+
27
+ <link rel="stylesheet" href="assets/stylesheets/main.fad675c6.min.css">
28
+
29
+
30
+ <link rel="stylesheet" href="assets/stylesheets/palette.356b1318.min.css">
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
44
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i%7COpen+Sans+Mono:400,400i,700,700i&display=fallback">
45
+ <style>:root{--md-text-font:"Open Sans";--md-code-font:"Open Sans Mono"}</style>
46
+
47
+
48
+
49
+ <link rel="stylesheet" href="index.css">
50
+
51
+ <script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+ <script id="__analytics">function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config",""),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script>
61
+
62
+ <script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
63
+
64
+
65
+
66
+
67
+
68
+ </head>
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
79
+
80
+
81
+
82
+ <script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
83
+
84
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
85
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
86
+ <label class="md-overlay" for="__drawer"></label>
87
+ <div data-md-component="skip">
88
+
89
+
90
+ <a href="#linz-basemaps" class="md-skip">
91
+ Skip to content
92
+ </a>
93
+
94
+ </div>
95
+ <div data-md-component="announce">
96
+
97
+ </div>
98
+
99
+
100
+
101
+
102
+
103
+
104
+ <header class="md-header md-header--shadow" data-md-component="header">
105
+ <nav class="md-header__inner md-grid" aria-label="Header">
106
+ <a href="." title="LINZ Basemaps" class="md-header__button md-logo" aria-label="LINZ Basemaps" data-md-component="logo">
107
+
108
+ <img src="linz-motif.svg" alt="logo">
109
+
110
+ </a>
111
+ <label class="md-header__button md-icon" for="__drawer">
112
+
113
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
114
+ </label>
115
+ <div class="md-header__title" data-md-component="header-title">
116
+ <div class="md-header__ellipsis">
117
+ <div class="md-header__topic">
118
+ <span class="md-ellipsis">
119
+ LINZ Basemaps
120
+ </span>
121
+ </div>
122
+ <div class="md-header__topic" data-md-component="header-topic">
123
+ <span class="md-ellipsis">
124
+
125
+ LINZ Basemaps
126
+
127
+ </span>
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+
133
+ <form class="md-header__option" data-md-component="palette">
134
+
135
+
136
+
137
+
138
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
139
+
140
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
141
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
142
+ </label>
143
+
144
+
145
+
146
+
147
+
148
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
149
+
150
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
151
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"/></svg>
152
+ </label>
153
+
154
+
155
+ </form>
156
+
157
+
158
+
159
+
160
+ <label class="md-header__button md-icon" for="__search">
161
+
162
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
163
+ </label>
164
+ <div class="md-search" data-md-component="search" role="dialog">
165
+ <label class="md-search__overlay" for="__search"></label>
166
+ <div class="md-search__inner" role="search">
167
+ <form class="md-search__form" name="search">
168
+ <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
169
+ <label class="md-search__icon md-icon" for="__search">
170
+
171
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
172
+
173
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
174
+ </label>
175
+ <nav class="md-search__options" aria-label="Search">
176
+
177
+ <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
178
+
179
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
180
+ </button>
181
+ </nav>
182
+
183
+ </form>
184
+ <div class="md-search__output">
185
+ <div class="md-search__scrollwrap" data-md-scrollfix>
186
+ <div class="md-search-result" data-md-component="search-result">
187
+ <div class="md-search-result__meta">
188
+ Initializing search
189
+ </div>
190
+ <ol class="md-search-result__list" role="presentation"></ol>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </div>
196
+
197
+
198
+ <div class="md-header__source">
199
+ <a href="https://github.com/linz/basemaps" title="Go to repository" class="md-source" data-md-component="source">
200
+ <div class="md-source__icon md-icon">
201
+
202
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
203
+ </div>
204
+ <div class="md-source__repository">
205
+ GitHub
206
+ </div>
207
+ </a>
208
+ </div>
209
+
210
+ </nav>
211
+
212
+ </header>
213
+
214
+ <div class="md-container" data-md-component="container">
215
+
216
+
217
+
218
+
219
+
220
+
221
+ <main class="md-main" data-md-component="main">
222
+ <div class="md-main__inner md-grid">
223
+
224
+
225
+
226
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
227
+ <div class="md-sidebar__scrollwrap">
228
+ <div class="md-sidebar__inner">
229
+
230
+
231
+
232
+
233
+ <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
234
+ <label class="md-nav__title" for="__drawer">
235
+ <a href="." title="LINZ Basemaps" class="md-nav__button md-logo" aria-label="LINZ Basemaps" data-md-component="logo">
236
+
237
+ <img src="linz-motif.svg" alt="logo">
238
+
239
+ </a>
240
+ LINZ Basemaps
241
+ </label>
242
+
243
+ <div class="md-nav__source">
244
+ <a href="https://github.com/linz/basemaps" title="Go to repository" class="md-source" data-md-component="source">
245
+ <div class="md-source__icon md-icon">
246
+
247
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
248
+ </div>
249
+ <div class="md-source__repository">
250
+ GitHub
251
+ </div>
252
+ </a>
253
+ </div>
254
+
255
+ <ul class="md-nav__list" data-md-scrollfix>
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+ <li class="md-nav__item md-nav__item--active">
266
+
267
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
268
+
269
+
270
+
271
+
272
+
273
+ <label class="md-nav__link md-nav__link--active" for="__toc">
274
+
275
+
276
+ <span class="md-ellipsis">
277
+ LINZ Basemaps
278
+ </span>
279
+
280
+
281
+ <span class="md-nav__icon md-icon"></span>
282
+ </label>
283
+
284
+ <a href="." class="md-nav__link md-nav__link--active">
285
+
286
+
287
+ <span class="md-ellipsis">
288
+ LINZ Basemaps
289
+ </span>
290
+
291
+
292
+ </a>
293
+
294
+
295
+
296
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
297
+
298
+
299
+
300
+
301
+
302
+
303
+ <label class="md-nav__title" for="__toc">
304
+ <span class="md-nav__icon md-icon"></span>
305
+ Table of contents
306
+ </label>
307
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
308
+
309
+ <li class="md-nav__item">
310
+ <a href="#background" class="md-nav__link">
311
+ <span class="md-ellipsis">
312
+ Background
313
+ </span>
314
+ </a>
315
+
316
+ </li>
317
+
318
+ <li class="md-nav__item">
319
+ <a href="#basemaps-service" class="md-nav__link">
320
+ <span class="md-ellipsis">
321
+ Basemaps Service
322
+ </span>
323
+ </a>
324
+
325
+ <nav class="md-nav" aria-label="Basemaps Service">
326
+ <ul class="md-nav__list">
327
+
328
+ <li class="md-nav__item">
329
+ <a href="#imagery-tile-requests" class="md-nav__link">
330
+ <span class="md-ellipsis">
331
+ Imagery Tile Requests
332
+ </span>
333
+ </a>
334
+
335
+ </li>
336
+
337
+ <li class="md-nav__item">
338
+ <a href="#vector-tile-requests" class="md-nav__link">
339
+ <span class="md-ellipsis">
340
+ Vector tile requests
341
+ </span>
342
+ </a>
343
+
344
+ </li>
345
+
346
+ <li class="md-nav__item">
347
+ <a href="#additional-processing" class="md-nav__link">
348
+ <span class="md-ellipsis">
349
+ Additional Processing
350
+ </span>
351
+ </a>
352
+
353
+ <nav class="md-nav" aria-label="Additional Processing">
354
+ <ul class="md-nav__list">
355
+
356
+ <li class="md-nav__item">
357
+ <a href="#aerial-satellite-imagery-processing" class="md-nav__link">
358
+ <span class="md-ellipsis">
359
+ Aerial &amp; Satellite Imagery Processing
360
+ </span>
361
+ </a>
362
+
363
+ </li>
364
+
365
+ <li class="md-nav__item">
366
+ <a href="#vector-data" class="md-nav__link">
367
+ <span class="md-ellipsis">
368
+ Vector Data
369
+ </span>
370
+ </a>
371
+
372
+ </li>
373
+
374
+ </ul>
375
+ </nav>
376
+
377
+ </li>
378
+
379
+ </ul>
380
+ </nav>
381
+
382
+ </li>
383
+
384
+ <li class="md-nav__item">
385
+ <a href="#development" class="md-nav__link">
386
+ <span class="md-ellipsis">
387
+ Development
388
+ </span>
389
+ </a>
390
+
391
+ <nav class="md-nav" aria-label="Development">
392
+ <ul class="md-nav__list">
393
+
394
+ <li class="md-nav__item">
395
+ <a href="#diagrams" class="md-nav__link">
396
+ <span class="md-ellipsis">
397
+ Diagrams
398
+ </span>
399
+ </a>
400
+
401
+ </li>
402
+
403
+ </ul>
404
+ </nav>
405
+
406
+ </li>
407
+
408
+ </ul>
409
+
410
+ </nav>
411
+
412
+ </li>
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+ <li class="md-nav__item">
423
+ <a href="configuration/" class="md-nav__link">
424
+
425
+
426
+ <span class="md-ellipsis">
427
+ Configuration
428
+ </span>
429
+
430
+
431
+ </a>
432
+ </li>
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+ <li class="md-nav__item">
443
+ <a href="deployment/" class="md-nav__link">
444
+
445
+
446
+ <span class="md-ellipsis">
447
+ Deployment
448
+ </span>
449
+
450
+
451
+ </a>
452
+ </li>
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+ <li class="md-nav__item">
463
+ <a href="quick-start/" class="md-nav__link">
464
+
465
+
466
+ <span class="md-ellipsis">
467
+ Quick start guide
468
+ </span>
469
+
470
+
471
+ </a>
472
+ </li>
473
+
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+ <li class="md-nav__item md-nav__item--nested">
494
+
495
+
496
+
497
+
498
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
499
+
500
+
501
+
502
+ <div class="md-nav__link md-nav__container">
503
+ <a href="developer-guide/" class="md-nav__link ">
504
+
505
+
506
+ <span class="md-ellipsis">
507
+ Developer guide
508
+ </span>
509
+
510
+
511
+ </a>
512
+
513
+ </div>
514
+
515
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
516
+ <label class="md-nav__title" for="__nav_5">
517
+ <span class="md-nav__icon md-icon"></span>
518
+ Developer guide
519
+ </label>
520
+ <ul class="md-nav__list" data-md-scrollfix>
521
+
522
+
523
+
524
+ </ul>
525
+ </nav>
526
+
527
+ </li>
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+ <li class="md-nav__item md-nav__item--nested">
553
+
554
+
555
+
556
+
557
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
558
+
559
+
560
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
561
+
562
+
563
+ <span class="md-ellipsis">
564
+ Examples
565
+ </span>
566
+
567
+
568
+ <span class="md-nav__icon md-icon"></span>
569
+ </label>
570
+
571
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
572
+ <label class="md-nav__title" for="__nav_6">
573
+ <span class="md-nav__icon md-icon"></span>
574
+ Examples
575
+ </label>
576
+ <ul class="md-nav__list" data-md-scrollfix>
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+ <li class="md-nav__item">
585
+ <a href="examples/_overview/" class="md-nav__link">
586
+
587
+
588
+ <span class="md-ellipsis">
589
+ Overview
590
+ </span>
591
+
592
+
593
+ </a>
594
+ </li>
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+ <li class="md-nav__item">
606
+ <a href="examples/leaflet.xyz.3857/" class="md-nav__link">
607
+
608
+
609
+ <span class="md-ellipsis">
610
+ Leaflet Raster Map
611
+ </span>
612
+
613
+
614
+ </a>
615
+ </li>
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+ <li class="md-nav__item">
627
+ <a href="examples/maplibre.opacity.3857/" class="md-nav__link">
628
+
629
+
630
+ <span class="md-ellipsis">
631
+ Maplibre Opacity Slider
632
+ </span>
633
+
634
+
635
+ </a>
636
+ </li>
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+ <li class="md-nav__item">
648
+ <a href="examples/maplibre.vector.3857/" class="md-nav__link">
649
+
650
+
651
+ <span class="md-ellipsis">
652
+ Maplibre Vector Map
653
+ </span>
654
+
655
+
656
+ </a>
657
+ </li>
658
+
659
+
660
+
661
+
662
+ </ul>
663
+ </nav>
664
+
665
+ </li>
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+ <li class="md-nav__item md-nav__item--nested">
697
+
698
+
699
+
700
+
701
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
702
+
703
+
704
+
705
+ <div class="md-nav__link md-nav__container">
706
+ <a href="operator-guide/" class="md-nav__link ">
707
+
708
+
709
+ <span class="md-ellipsis">
710
+ Operator guide
711
+ </span>
712
+
713
+
714
+ </a>
715
+
716
+
717
+ <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
718
+ <span class="md-nav__icon md-icon"></span>
719
+ </label>
720
+
721
+ </div>
722
+
723
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
724
+ <label class="md-nav__title" for="__nav_7">
725
+ <span class="md-nav__icon md-icon"></span>
726
+ Operator guide
727
+ </label>
728
+ <ul class="md-nav__list" data-md-scrollfix>
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+ <li class="md-nav__item">
739
+ <a href="operator-guide/cog-quality/" class="md-nav__link">
740
+
741
+
742
+ <span class="md-ellipsis">
743
+ COG Quality
744
+ </span>
745
+
746
+
747
+ </a>
748
+ </li>
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+ <li class="md-nav__item">
760
+ <a href="operator-guide/empty-tiles/" class="md-nav__link">
761
+
762
+
763
+ <span class="md-ellipsis">
764
+ Sparse Datasets and empty tiles
765
+ </span>
766
+
767
+
768
+ </a>
769
+ </li>
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+ <li class="md-nav__item">
781
+ <a href="operator-guide/quick-start/" class="md-nav__link">
782
+
783
+
784
+ <span class="md-ellipsis">
785
+ Running LINZ Basemaps - Quick Start
786
+ </span>
787
+
788
+
789
+ </a>
790
+ </li>
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+ <li class="md-nav__item">
802
+ <a href="operator-guide/relief-shade/" class="md-nav__link">
803
+
804
+
805
+ <span class="md-ellipsis">
806
+ Relief shade
807
+ </span>
808
+
809
+
810
+ </a>
811
+ </li>
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+ <li class="md-nav__item">
823
+ <a href="operator-guide/texture-shade/" class="md-nav__link">
824
+
825
+
826
+ <span class="md-ellipsis">
827
+ Texture shading
828
+ </span>
829
+
830
+
831
+ </a>
832
+ </li>
833
+
834
+
835
+
836
+
837
+ </ul>
838
+ </nav>
839
+
840
+ </li>
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+ <li class="md-nav__item md-nav__item--nested">
862
+
863
+
864
+
865
+
866
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
867
+
868
+
869
+
870
+ <div class="md-nav__link md-nav__container">
871
+ <a href="user-guide/" class="md-nav__link ">
872
+
873
+
874
+ <span class="md-ellipsis">
875
+ User guide
876
+ </span>
877
+
878
+
879
+ </a>
880
+
881
+ </div>
882
+
883
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
884
+ <label class="md-nav__title" for="__nav_8">
885
+ <span class="md-nav__icon md-icon"></span>
886
+ User guide
887
+ </label>
888
+ <ul class="md-nav__list" data-md-scrollfix>
889
+
890
+
891
+
892
+ </ul>
893
+ </nav>
894
+
895
+ </li>
896
+
897
+
898
+
899
+ </ul>
900
+ </nav>
901
+ </div>
902
+ </div>
903
+ </div>
904
+
905
+
906
+
907
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
908
+ <div class="md-sidebar__scrollwrap">
909
+ <div class="md-sidebar__inner">
910
+
911
+
912
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
913
+
914
+
915
+
916
+
917
+
918
+
919
+ <label class="md-nav__title" for="__toc">
920
+ <span class="md-nav__icon md-icon"></span>
921
+ Table of contents
922
+ </label>
923
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
924
+
925
+ <li class="md-nav__item">
926
+ <a href="#background" class="md-nav__link">
927
+ <span class="md-ellipsis">
928
+ Background
929
+ </span>
930
+ </a>
931
+
932
+ </li>
933
+
934
+ <li class="md-nav__item">
935
+ <a href="#basemaps-service" class="md-nav__link">
936
+ <span class="md-ellipsis">
937
+ Basemaps Service
938
+ </span>
939
+ </a>
940
+
941
+ <nav class="md-nav" aria-label="Basemaps Service">
942
+ <ul class="md-nav__list">
943
+
944
+ <li class="md-nav__item">
945
+ <a href="#imagery-tile-requests" class="md-nav__link">
946
+ <span class="md-ellipsis">
947
+ Imagery Tile Requests
948
+ </span>
949
+ </a>
950
+
951
+ </li>
952
+
953
+ <li class="md-nav__item">
954
+ <a href="#vector-tile-requests" class="md-nav__link">
955
+ <span class="md-ellipsis">
956
+ Vector tile requests
957
+ </span>
958
+ </a>
959
+
960
+ </li>
961
+
962
+ <li class="md-nav__item">
963
+ <a href="#additional-processing" class="md-nav__link">
964
+ <span class="md-ellipsis">
965
+ Additional Processing
966
+ </span>
967
+ </a>
968
+
969
+ <nav class="md-nav" aria-label="Additional Processing">
970
+ <ul class="md-nav__list">
971
+
972
+ <li class="md-nav__item">
973
+ <a href="#aerial-satellite-imagery-processing" class="md-nav__link">
974
+ <span class="md-ellipsis">
975
+ Aerial &amp; Satellite Imagery Processing
976
+ </span>
977
+ </a>
978
+
979
+ </li>
980
+
981
+ <li class="md-nav__item">
982
+ <a href="#vector-data" class="md-nav__link">
983
+ <span class="md-ellipsis">
984
+ Vector Data
985
+ </span>
986
+ </a>
987
+
988
+ </li>
989
+
990
+ </ul>
991
+ </nav>
992
+
993
+ </li>
994
+
995
+ </ul>
996
+ </nav>
997
+
998
+ </li>
999
+
1000
+ <li class="md-nav__item">
1001
+ <a href="#development" class="md-nav__link">
1002
+ <span class="md-ellipsis">
1003
+ Development
1004
+ </span>
1005
+ </a>
1006
+
1007
+ <nav class="md-nav" aria-label="Development">
1008
+ <ul class="md-nav__list">
1009
+
1010
+ <li class="md-nav__item">
1011
+ <a href="#diagrams" class="md-nav__link">
1012
+ <span class="md-ellipsis">
1013
+ Diagrams
1014
+ </span>
1015
+ </a>
1016
+
1017
+ </li>
1018
+
1019
+ </ul>
1020
+ </nav>
1021
+
1022
+ </li>
1023
+
1024
+ </ul>
1025
+
1026
+ </nav>
1027
+ </div>
1028
+ </div>
1029
+ </div>
1030
+
1031
+
1032
+
1033
+ <div class="md-content" data-md-component="content">
1034
+ <article class="md-content__inner md-typeset">
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+ <h1 id="linz-basemaps">LINZ Basemaps</h1>
1043
+ <p><a href="https://basemaps.linz.govt.nz">LINZ Basemaps</a> is a collection of tools to create and serve vector and raster basemaps using open source and open standards. It is designed to be light weight, cost efficient and fast.</p>
1044
+ <p>Basemaps currently supports both <a href="#aerial--satellite-imagery">Imagery</a> and <a href="#vector-data">Vector data</a></p>
1045
+ <h2 id="background">Background</h2>
1046
+ <p>Land Information New Zealand has a large archive of aerial and satellite imagery freely available from <a href="https://data.linz.govt.nz">LINZ Data Service</a> and the <a href="https://registry.opendata.aws/nz-imagery/">Registry of Open Data on AWS</a>. This imagery was a primary driver for the creation of the LINZ Basemaps product and service. For more information on how LINZ acquires, ingests and publishes aerial and satellite imagery see <a href="https://github.com/linz/imagery">linz/imagery</a>.</p>
1047
+ <p>While linz/basemaps is public, its primary reason is to <a href="https://www.digital.govt.nz/standards-and-guidance/digital-service-design-standard/principles/work-in-the-open/">work in the open</a>, so that we can share knowledge and foster collaboration with peers across the world. While the LINZ Basemaps product and services can be customised and deployed we are primarily focused on our own use cases of sharing New Zealand's Aerial Imagery archive and Topographic vector data.</p>
1048
+ <h2 id="basemaps-service">Basemaps Service</h2>
1049
+ <p><img alt="Basemaps" src="static/basemaps-service.png" /> The core of the LINZ Basemaps Service consists of</p>
1050
+ <ul>
1051
+ <li>AWS S3 - COG Storage location</li>
1052
+ <li>AWS Lambda function - Tile Server - <a href="../packages/lambda-tiler/README.md">@basemaps/lambda-tiler</a></li>
1053
+ <li>AWS Cloudfront - Content distribution and tile cache</li>
1054
+ <li><a href="https://github.com/linz/basemaps">linz/basemaps-config</a> - Basemaps configuration</li>
1055
+ </ul>
1056
+ <h3 id="imagery-tile-requests">Imagery Tile Requests</h3>
1057
+ <p>A tile request flows a number of basemaps packages:</p>
1058
+ <p>Given a request <code>/v1/tiles/aerial/WebMercatorQuad/6/1/40.webp</code>,
1059
+ Breaking down this request url <code>lambda-tiler</code> needs to serve a <code>webp</code> image that for the tile <code>{z: 6, x: 1, y: 40}</code> from the <code>WebMercatorQuad</code> tile matrix from the tile set named <code>aerial</code> in the default configuration.</p>
1060
+ <p>Which will then utlize the following packages</p>
1061
+ <ul>
1062
+ <li><a href="../packages/config/README.md">@basemaps/config</a> - Load configuration (<a href="configuration/"><code>?config</code></a>)</li>
1063
+ <li><a href="../packages/lambda-tiler/README.md">@basemaps/lambda-tiler</a> Convert tile XYZ into output coordinates bounding box</li>
1064
+ <li><a href="../packages/lambda-tiler/README.md">@basemaps/lambda-tiler</a> Determine which tiffs intersect the output coordinates</li>
1065
+ <li><a href="../packages/tiler/README.md">@basemaps/tiler</a> Determine which parts of the tiffs need to be loaded and resampled</li>
1066
+ <li><a href="../packages/tiler-sharp/README.md">@basemaps/tiler-sharp</a> - Load the bytes from the tiff and render it as a output image.</li>
1067
+ </ul>
1068
+ <p>Imagery is stored as cloud optimised geotiffs by survey then layered together dynamically based on a <a href="configuration/">configured priority order</a>.</p>
1069
+ <p><a href="../packages/tiler/README.md">@basemaps/tiler</a> takes the collection of tiffs and determines how resample (resize/crop) and paint them onto the output tile.</p>
1070
+ <p><img alt="Tiff Operations" src="static/tile-resize.png" /></p>
1071
+ <p><a href="../packages/tiler-sharp/README.md">@basemaps/tiler-sharp</a> uses <a href="https://github.com/lovell/sharp">sharp/libvips</a> to take the output of <a href="../packages/tiler/README.md">@basemaps/tiler</a> then load the raw tiff bytes and render them into output image.</p>
1072
+ <h3 id="vector-tile-requests">Vector tile requests</h3>
1073
+ <p>Vector tiles are pre-rendered as <a href="https://docs.mapbox.com/data/tilesets/guides/vector-tiles-introduction/">Mapbox Vector Tiles</a> and served directly from a <a href="https://github.com/linz/cotar">Cloud Optimised Tar</a>. Since there is no merging or dynamic configuration the tile server will just request the specified tile directly from the tar file.</p>
1074
+ <h3 id="additional-processing">Additional Processing</h3>
1075
+ <h4 id="aerial-satellite-imagery-processing">Aerial &amp; Satellite Imagery Processing</h4>
1076
+ <p>To efficiently serve aerial imagery to huge number of consumers, it should be optimised into a format that makes it easy to serve. All of LINZ's imagery is stored as <a href="https://www.cogeo.org/">Cloud Optimised GeoTIFFs (COGs)</a>, and to ensure they are served as efficiently as possible some additional processing steps are generally pre-applied to the imagery.</p>
1077
+ <ul>
1078
+ <li><strong>Reprojection</strong>: reprojecting the imagery into common consumption formats (EPSG:3857 and EPSG:2193) will greatly reduce the amount of load and complexity of the basemaps service service</li>
1079
+ <li><strong>Tile Alignment</strong>: By aligning the COGs to the output XYZ tile grid</li>
1080
+ <li><strong>Additional overviews</strong>: It is hard to fetch data from 1,000s of COGs to create a single tile, so we create additional overviews up to z0.</li>
1081
+ </ul>
1082
+ <p>These additional processing steps are part of the basemaps <a href="#TODO">import process</a> and are controlled by <a href="../packages/cogify/README.md">@basemaps/cogify</a></p>
1083
+ <p>The additional steps are optional but do <strong>greatly improve</strong> the tile serving performance of the service.</p>
1084
+ <h4 id="vector-data">Vector Data</h4>
1085
+ <p>Vector data is processed from the LINZ topographic vector datasets using tippecanoe, this process is still a work in progress and will.</p>
1086
+ <h2 id="development">Development</h2>
1087
+ <p>Deployments are handled by Github Actions see <a href="deployment/">Deployments</a> for more information.</p>
1088
+ <h3 id="diagrams">Diagrams</h3>
1089
+ <p>All diagrams across this repository are created with <a href="https://excalidraw.com/">excalidraw</a> and embed the excalidraw configuration inside them, so can be re-edited on <a href="https://excalidraw.com/">excalidraw</a></p>
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+ </article>
1099
+ </div>
1100
+
1101
+
1102
+ </div>
1103
+
1104
+ </main>
1105
+
1106
+ <footer class="md-footer">
1107
+
1108
+ <div class="md-footer-meta md-typeset">
1109
+ <div class="md-footer-meta__inner md-grid">
1110
+ <div class="md-copyright">
1111
+
1112
+ <div class="md-copyright__highlight">
1113
+ <a href="https://www.linz.govt.nz/copyright">© CC BY 4.0 LINZ</a>
1114
+ </div>
1115
+
1116
+
1117
+ Made with
1118
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1119
+ Material for MkDocs
1120
+ </a>
1121
+
1122
+ </div>
1123
+
1124
+ </div>
1125
+ </div>
1126
+ </footer>
1127
+
1128
+ </div>
1129
+ <div class="md-dialog" data-md-component="dialog">
1130
+ <div class="md-dialog__inner md-typeset"></div>
1131
+ </div>
1132
+
1133
+
1134
+ <script id="__config" type="application/json">{"base": ".", "features": ["navigation.indexes", "content.code.copy"], "search": "assets/javascripts/workers/search.f886a092.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
1135
+
1136
+
1137
+ <script src="assets/javascripts/bundle.cd18aaf1.min.js"></script>
1138
+
1139
+
1140
+ </body>
1141
+ </html>