vibeglobe 0.2.0 → 0.3.0-rc.1

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.
@@ -7,7 +7,10 @@ export interface VibeGlobeOptions extends Omit<GlobeOptions, 'container' | 'rend
7
7
  readonly tiles: TileService;
8
8
  /** Place search; without it the search box accepts coordinates only. */
9
9
  readonly geocoder?: GeocoderService;
10
- /** An equirectangular image of the whole world, shown where no tile is loaded yet (default: one ocean color). */
10
+ /**
11
+ * An equirectangular image of the whole world, shown where no tile is loaded yet (default: the NASA Blue Marble
12
+ * shipped with the package, `dayImageUrl()` of `vibeglobe/sources`, with its polar caps).
13
+ */
11
14
  readonly baseImageryUrl?: string;
12
15
  /** Mouse, touch and keyboard navigation options, or false for none. */
13
16
  readonly controls?: ControlsOptions | false;
@@ -1 +1 @@
1
- {"version":3,"file":"create-vibe-globe.d.ts","sourceRoot":"","sources":["../src/create-vibe-globe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAgC,KAAK,EAAE,EAAE,MAAM,eAAe,CAAC;AAGtE,kHAAkH;AAClH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,YAAY,EACZ,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,SAAS,CACjF;IACC,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,iHAAiH;IACjH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAC5C,gGAAgG;IAChG,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;IAC5B,2DAA2D;IAC3D,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CA0C3G"}
1
+ {"version":3,"file":"create-vibe-globe.d.ts","sourceRoot":"","sources":["../src/create-vibe-globe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAgC,KAAK,EAAE,EAAE,MAAM,eAAe,CAAC;AAGtE,kHAAkH;AAClH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,YAAY,EACZ,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,GAAG,SAAS,CACjF;IACC,iDAAiD;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAC5C,gGAAgG;IAChG,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtB,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;IAC5B,2DAA2D;IAC3D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CA2C3G"}
@@ -3,10 +3,9 @@
3
3
  import { createControls } from 'vibeglobe/controls';
4
4
  import { createGlobe, GlobeError, } from 'vibeglobe/core';
5
5
  import { createRenderer } from 'vibeglobe/renderer';
6
+ import { DAY_IMAGE_POLAR_CAPS, dayImageUrl } from 'vibeglobe/sources';
6
7
  import { addDefaultControls, createUi } from 'vibeglobe/ui';
7
8
  import { createWorkers } from 'vibeglobe/worker';
8
- /** A 1×1 ocean-blue image: the world under the tiles while none is loaded, without an asset to host. */
9
- const OCEAN = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGOQsY8BAAEyALi+BX15AAAAAElFTkSuQmCC';
10
9
  /**
11
10
  * Starts VibeGlobe in `container` with the application's services (ADR 0186): the tiles, required, and optionally a
12
11
  * terrain and a geocoder. Resolves once the first frame is drawn and the tile service's style, if any, is attached;
@@ -14,15 +13,16 @@ const OCEAN = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1P
14
13
  * style does not load.
15
14
  */
16
15
  export async function createVibeGlobe(container, options) {
17
- const { tiles, geocoder, controls, ui: withUi = true, language, baseImageryUrl = OCEAN, ...engine } = options;
16
+ const { tiles, geocoder, controls, ui: withUi = true, language, baseImageryUrl, ...engine } = options;
18
17
  if (!tiles)
19
18
  throw new GlobeError('invalid-option', 'createVibeGlobe needs a tile service: { tiles }');
20
19
  const globe = createGlobe({
20
+ ...(baseImageryUrl ? {} : { polarCapColors: DAY_IMAGE_POLAR_CAPS }),
21
21
  ...engine,
22
22
  container,
23
23
  renderer: createRenderer(),
24
24
  ...(controls === false ? {} : { controls: createControls(controls) }),
25
- baseImageryUrl,
25
+ baseImageryUrl: baseImageryUrl ?? dayImageUrl(),
26
26
  imagery: tiles.imagery,
27
27
  workers: createWorkers(),
28
28
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create-vibe-globe.js","sourceRoot":"","sources":["../src/create-vibe-globe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-vibe-globe.js","sourceRoot":"","sources":["../src/create-vibe-globe.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,15 @@ The application hosts these outputs itself and shows each attribution wherever t
24
24
  | ------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | ---------- |
25
25
  | Fresher imagery: a mosaic built from raw Copernicus Sentinel-2 data | Copernicus Sentinel data licence (free, full and open) | Contains modified Copernicus Sentinel data {year} (the year of the data) | [https://registry.opendata.aws/sentinel-2-l2a-cogs/](https://registry.opendata.aws/sentinel-2-l2a-cogs/) | 2026-10-21 |
26
26
 
27
+ ## Images shipped in the package
28
+
29
+ Two images ship in `vibeglobe/sources` (ADR 0194); an application that shows them shows their attribution.
30
+
31
+ | Image | Used by | License | Attribution (exact) | Source |
32
+ | ------------------------------------------------------------ | --------------------------------------- | ------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
33
+ | NASA Blue Marble, shaded relief and bathymetry (4096 × 2048) | `dayImageUrl()`, the default base image | Public domain | Imagery: NASA Blue Marble, from NASA's Global Imagery Browse Services (GIBS), part of NASA's ESDIS | [https://www.earthdata.nasa.gov/gibs](https://www.earthdata.nasa.gov/gibs) |
34
+ | NASA Black Marble 2016, VIIRS night lights (2048 × 2048) | `nightImageUrl()`, `nightLights()` | Public domain | Night lights: NASA Black Marble | [https://earthobservatory.nasa.gov/features/NightLights](https://earthobservatory.nasa.gov/features/NightLights) |
35
+
27
36
  ## Refused sources
28
37
 
29
38
  The pipeline and the offline package builder (`vibeglobe-data pack`) refuse these before downloading anything:
@@ -51,9 +51,11 @@ assemble the same engine piece by piece, for an application that needs to choose
51
51
 
52
52
  ## The base image
53
53
 
54
- `baseImageryUrl` is required in every integration: an equirectangular image of the whole world (for example a JPEG
55
- of 4096 × 2048 pixels), which the application serves. The engine drapes it over the globe before any tile arrives and
56
- wherever no imagery layer has a tile. `globe.ready` waits for it, and rejects with a `GlobeError` (`resource-failed`)
54
+ `baseImageryUrl` is an equirectangular image of the whole world (for example a JPEG of 4096 × 2048 pixels). The engine
55
+ drapes it over the globe before any tile arrives and wherever no imagery layer has a tile. `createGlobe` and the Web
56
+ Component require it; `createVibeGlobe` and the Vue component default to the NASA Blue Marble shipped in the package
57
+ (`dayImageUrl()` of `vibeglobe/sources`, with its polar caps `DAY_IMAGE_POLAR_CAPS`), which bundlers copy to the
58
+ application's assets. `globe.ready` waits for it, and rejects with a `GlobeError` (`resource-failed`)
57
59
  when it fails to load. The [hosting guide](hosting.md) shows how to build one from public-domain data.
58
60
 
59
61
  ## Plain TypeScript
@@ -151,7 +153,7 @@ the controls and, when `imagery` is set, the workers (`createWorkers()` of `vibe
151
153
 
152
154
  | Prop | Applied | Effect |
153
155
  | -------------------------------------------------------------- | --------------- | -------------------------------------------------------------------------- |
154
- | `baseImageryUrl` | at start | Required: the base image |
156
+ | `baseImageryUrl` | at start | The base image (default: the shipped NASA Blue Marble) |
155
157
  | `imagery` | at start | Imagery sources, bottom first |
156
158
  | `backend` | at start | `'auto'` (default), `'webgpu'` or `'webgl2'` |
157
159
  | `controls` | at start | `true` (default), `false`, or the options of `createControls` |
@@ -70,12 +70,12 @@ key or token only when a request is made; a source's `attribution` and `profile`
70
70
  `createVibeGlobe(container, options)` takes the services and every `GlobeOptions` field the engine does not build
71
71
  itself (`view`, `quality`, `constraints`, `atmosphere`, `home`, `memory`, …).
72
72
 
73
- | Option | Type | Default | Effect |
74
- | ---------------- | -------------------------- | -------------- | ------------------------------------------------- |
75
- | `ui` | `boolean` | `true` | search, zoom, compass, fullscreen and coordinates |
76
- | `controls` | `ControlsOptions \| false` | the defaults | mouse, touch and keyboard navigation |
77
- | `language` | `string` | `'en'` | the controls' language and the map's names |
78
- | `baseImageryUrl` | `string` | one ocean blue | the world image shown where no tile is loaded yet |
73
+ | Option | Type | Default | Effect |
74
+ | ---------------- | -------------------------- | ------------------------- | ------------------------------------------------- |
75
+ | `ui` | `boolean` | `true` | search, zoom, compass, fullscreen and coordinates |
76
+ | `controls` | `ControlsOptions \| false` | the defaults | mouse, touch and keyboard navigation |
77
+ | `language` | `string` | `'en'` | the controls' language and the map's names |
78
+ | `baseImageryUrl` | `string` | NASA Blue Marble, shipped | the world image shown where no tile is loaded yet |
79
79
 
80
80
  The promise resolves with `globe` (the `Globe`), `ui` (the controls, `undefined` with `ui: false`; add more with
81
81
  `ui.add`) and `destroy()`, which stops the globe and removes its canvas and controls.
@@ -86,7 +86,8 @@ The promise resolves with `globe` (the `Globe`), `ui` (the controls, `undefined`
86
86
  offline use and credits included.
87
87
  - The style loads before the promise resolves; a style that fails to load rejects it and stops the globe.
88
88
  - Keys in tile URLs are visible to anyone who opens the page: restrict them to your domains in the provider's console.
89
- - With a strict Content Security Policy, allow `data:` in `connect-src` or pass `baseImageryUrl` from your own origin.
89
+ - Without `baseImageryUrl` the globe starts on the NASA Blue Marble shipped in the package (`dayImageUrl()` of
90
+ `vibeglobe/sources`, 0.85 MB), which your bundler copies to your assets; pass your own image to replace it.
90
91
 
91
92
  ## Errors
92
93
 
@@ -214,6 +214,27 @@ const lights = mercatorImage({
214
214
  // A layer of its own: globe.imageryLayers.add({ id: 'night-lights', blend: 'night', sources: [lights] }).
215
215
  ```
216
216
 
217
+ ## Images of the Earth shipped with the package
218
+
219
+ Two public-domain images ship in `vibeglobe/sources`; bundlers copy them to the application's assets, and nothing
220
+ downloads them unless the application uses them.
221
+
222
+ - `dayImageUrl()`: NASA Blue Marble with bathymetry by day, equirectangular, 4096 × 2048 pixels (0.85 MB), the default
223
+ base image of `createVibeGlobe` and the Vue component. Pass it with `DAY_IMAGE_POLAR_CAPS` to `createGlobe`, and
224
+ show `DAY_IMAGE_CREDIT` with the other credits.
225
+ - `nightLights(image?)`: the night side's city lights, a `blend: 'night'` layer (`NIGHT_LIGHTS_ID`) cut from NASA's
226
+ Black Marble 2016 (`nightImageUrl()`, Web Mercator, 2048 pixels), or from the application's own image of the world.
227
+
228
+ ```ts
229
+ import { createGlobe } from 'vibeglobe/core';
230
+ import { DAY_IMAGE_POLAR_CAPS, dayImageUrl, NIGHT_LIGHTS_ID, nightLights } from 'vibeglobe/sources';
231
+
232
+ const globe = createGlobe({ container, renderer, baseImageryUrl: dayImageUrl(), polarCapColors: DAY_IMAGE_POLAR_CAPS });
233
+ globe.imageryLayers.add({ ...nightLights(), visible: false }); // or nightLights('/my/night-lights.webp')
234
+ // Shown with the night side: globe.setAtmosphere({ dayNight: 1, timeMs: Date.now() }).
235
+ globe.imageryLayers.set(NIGHT_LIGHTS_ID, { visible: true });
236
+ ```
237
+
217
238
  ## Reprojection
218
239
 
219
240
  The engine draws Web Mercator and geographic pyramids. A service in another reference system, such as UTM zones 32N
@@ -265,7 +286,8 @@ transparent outside the data, so the layers below show there.
265
286
 
266
287
  Web Mercator sources end at ±85.0511°. Beyond, the globe draws two polar caps: a geographic (`EPSG:4326`) imagery
267
288
  source that covers them fills them; otherwise each cap shows one color, `#78a9cd` in the north and `#f2f3f7` in the
268
- south (the sea and the ice of the default base image).
289
+ south (the sea and the ice of the Natural Earth base image the pipeline builds); the day image shipped in the package
290
+ comes with its own, `DAY_IMAGE_POLAR_CAPS`.
269
291
 
270
292
  ```ts
271
293
  import { createGlobe } from 'vibeglobe/core';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibeglobe",
3
- "version": "0.2.0",
3
+ "version": "0.3.0-rc.1",
4
4
  "description": "VibeGlobe: a 3D globe and 2D map engine for the web, started in one call with the application's tile, terrain and geocoder services.",
5
5
  "license": "MPL-2.0",
6
6
  "repository": {
@@ -0,0 +1,25 @@
1
+ import type { Attribution, ImageryLayerOptions, PolarCapColors } from 'vibeglobe/core';
2
+ /**
3
+ * The world by day, shipped with the package (ADR 0194): NASA Blue Marble with shaded relief and bathymetry (public
4
+ * domain, from NASA GIBS), equirectangular, 4096 × 2048 pixels in WebP (0.85 MB), sharp to about level 4. It is the
5
+ * base image of `createVibeGlobe` and of the Vue component when they are given none; bundlers copy it to the
6
+ * application's assets from `src/earth/day.webp`, next to this module in the package.
7
+ */
8
+ export declare const dayImageUrl: () => string;
9
+ /** The credit of {@link dayImageUrl}'s image. */
10
+ export declare const DAY_IMAGE_CREDIT: Attribution;
11
+ /** The polar caps that continue {@link dayImageUrl}'s image beyond ±85.05°: its deep sea north, its ice south. */
12
+ export declare const DAY_IMAGE_POLAR_CAPS: PolarCapColors;
13
+ /**
14
+ * City lights by night, shipped with the package: NASA Black Marble 2016 (VIIRS, public domain) in Web Mercator,
15
+ * 2048 × 2048 pixels in WebP (0.1 MB), from `src/earth/night.webp`.
16
+ */
17
+ export declare const nightImageUrl: () => string;
18
+ /** The id of the {@link nightLights} layer, to show or hide it with `globe.imageryLayers.set`. */
19
+ export declare const NIGHT_LIGHTS_ID = "night-lights";
20
+ /**
21
+ * The night side's city lights as an imagery layer (`blend: 'night'`, shown with `AtmosphereSettings.dayNight`): the
22
+ * shipped Black Marble, or `image`, the application's own Web Mercator image of the whole world.
23
+ */
24
+ export declare function nightLights(image?: string): ImageryLayerOptions;
25
+ //# sourceMappingURL=earth-images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"earth-images.d.ts","sourceRoot":"","sources":["../src/earth-images.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGxF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAAgE,CAAC;AAEhG,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,EAAE,WAG9B,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,oBAAoB,EAAE,cAAuD,CAAC;AAE3F;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAO,MAAkE,CAAC;AAEpG,kGAAkG;AAClG,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAK9C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,MAAwB,GAAG,mBAAmB,CAgBhF"}
@@ -0,0 +1,46 @@
1
+ import { mercatorImage } from './mercator-image.js';
2
+ /**
3
+ * The world by day, shipped with the package (ADR 0194): NASA Blue Marble with shaded relief and bathymetry (public
4
+ * domain, from NASA GIBS), equirectangular, 4096 × 2048 pixels in WebP (0.85 MB), sharp to about level 4. It is the
5
+ * base image of `createVibeGlobe` and of the Vue component when they are given none; bundlers copy it to the
6
+ * application's assets from `src/earth/day.webp`, next to this module in the package.
7
+ */
8
+ export const dayImageUrl = () => new URL('../src/earth/day.webp', import.meta.url).href;
9
+ /** The credit of {@link dayImageUrl}'s image. */
10
+ export const DAY_IMAGE_CREDIT = {
11
+ text: "Imagery: NASA Blue Marble, from NASA's Global Imagery Browse Services (GIBS), part of NASA's ESDIS",
12
+ url: 'https://www.earthdata.nasa.gov/gibs',
13
+ };
14
+ /** The polar caps that continue {@link dayImageUrl}'s image beyond ±85.05°: its deep sea north, its ice south. */
15
+ export const DAY_IMAGE_POLAR_CAPS = { north: '#0e295a', south: '#eeefef' };
16
+ /**
17
+ * City lights by night, shipped with the package: NASA Black Marble 2016 (VIIRS, public domain) in Web Mercator,
18
+ * 2048 × 2048 pixels in WebP (0.1 MB), from `src/earth/night.webp`.
19
+ */
20
+ export const nightImageUrl = () => new URL('../src/earth/night.webp', import.meta.url).href;
21
+ /** The id of the {@link nightLights} layer, to show or hide it with `globe.imageryLayers.set`. */
22
+ export const NIGHT_LIGHTS_ID = 'night-lights';
23
+ /** Levels cut at full resolution from a 2048-pixel image: it is seen only from afar. */
24
+ const NIGHT_LEVELS = 3;
25
+ /**
26
+ * The night side's city lights as an imagery layer (`blend: 'night'`, shown with `AtmosphereSettings.dayNight`): the
27
+ * shipped Black Marble, or `image`, the application's own Web Mercator image of the whole world.
28
+ */
29
+ export function nightLights(image = nightImageUrl()) {
30
+ return {
31
+ id: NIGHT_LIGHTS_ID,
32
+ blend: 'night',
33
+ harmonize: false,
34
+ sources: [
35
+ mercatorImage({
36
+ id: NIGHT_LIGHTS_ID,
37
+ image,
38
+ maxLevel: NIGHT_LEVELS,
39
+ attribution: [
40
+ { text: 'Night lights: NASA Black Marble', url: 'https://earthobservatory.nasa.gov/features/NightLights' },
41
+ ],
42
+ }),
43
+ ],
44
+ };
45
+ }
46
+ //# sourceMappingURL=earth-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"earth-images.js","sourceRoot":"","sources":["../src/earth-images.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAEhG,iDAAiD;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,IAAI,EAAE,oGAAoG;IAC1G,GAAG,EAAE,qCAAqC;CAC3C,CAAC;AAEF,kHAAkH;AAClH,MAAM,CAAC,MAAM,oBAAoB,GAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAE3F;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAEpG,kGAAkG;AAClG,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC;AAE9C,wFAAwF;AACxF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,aAAa,EAAE;IACzD,OAAO;QACL,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE;YACP,aAAa,CAAC;gBACZ,EAAE,EAAE,eAAe;gBACnB,KAAK;gBACL,QAAQ,EAAE,YAAY;gBACtB,WAAW,EAAE;oBACX,EAAE,IAAI,EAAE,iCAAiC,EAAE,GAAG,EAAE,wDAAwD,EAAE;iBAC3G;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
@@ -20,6 +20,7 @@ export { imageSizeOf, parseWorldFile, singleImage } from './single-image.js';
20
20
  export type { SingleImageOptions, WorldFile } from './single-image.js';
21
21
  export { mercatorImage } from './mercator-image.js';
22
22
  export type { CutTile, MercatorImageOptions } from './mercator-image.js';
23
+ export { DAY_IMAGE_CREDIT, DAY_IMAGE_POLAR_CAPS, dayImageUrl, NIGHT_LIGHTS_ID, nightImageUrl, nightLights, } from './earth-images.js';
23
24
  export { pmtilesArchive, pmtilesImagery, pmtilesTerrain, pmtilesVector } from './pmtiles-imagery.js';
24
25
  export type { ArchiveContent } from './pmtiles-imagery.js';
25
26
  export type { ArchiveTerrainEncoding, ArchiveTerrainOptions, VectorTileSource } from './archive-sources.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAChG,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrG,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5G,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,cAAc,EACd,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACzG,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,yBAAyB,EACzB,SAAS,GACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjF,YAAY,EACV,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export { quantizedMeshTerrain } from './quantized-mesh-terrain.js';
14
14
  export { combineProfiles, CUSTOM_PROFILE, SourceConfigError, withProfile } from './metadata.js';
15
15
  export { imageSizeOf, parseWorldFile, singleImage } from './single-image.js';
16
16
  export { mercatorImage } from './mercator-image.js';
17
+ export { DAY_IMAGE_CREDIT, DAY_IMAGE_POLAR_CAPS, dayImageUrl, NIGHT_LIGHTS_ID, nightImageUrl, nightLights, } from './earth-images.js';
17
18
  export { pmtilesArchive, pmtilesImagery, pmtilesTerrain, pmtilesVector } from './pmtiles-imagery.js';
18
19
  export { wmtsImagery } from './ogc/wmts-imagery.js';
19
20
  export { parseWmtsCapabilities } from './ogc/wmts-capabilities.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oHAAoH;AACpH,kFAAkF;AAClF;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQhG,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAQnE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAQzG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oHAAoH;AACpH,kFAAkF;AAClF;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQhG,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAQnE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAQzG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
Binary file
Binary file
@@ -0,0 +1,55 @@
1
+ // This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not
2
+ // distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
3
+ import type { Attribution, ImageryLayerOptions, PolarCapColors } from 'vibeglobe/core';
4
+ import { mercatorImage } from './mercator-image.js';
5
+
6
+ /**
7
+ * The world by day, shipped with the package (ADR 0194): NASA Blue Marble with shaded relief and bathymetry (public
8
+ * domain, from NASA GIBS), equirectangular, 4096 × 2048 pixels in WebP (0.85 MB), sharp to about level 4. It is the
9
+ * base image of `createVibeGlobe` and of the Vue component when they are given none; bundlers copy it to the
10
+ * application's assets from `src/earth/day.webp`, next to this module in the package.
11
+ */
12
+ export const dayImageUrl = (): string => new URL('../src/earth/day.webp', import.meta.url).href;
13
+
14
+ /** The credit of {@link dayImageUrl}'s image. */
15
+ export const DAY_IMAGE_CREDIT: Attribution = {
16
+ text: "Imagery: NASA Blue Marble, from NASA's Global Imagery Browse Services (GIBS), part of NASA's ESDIS",
17
+ url: 'https://www.earthdata.nasa.gov/gibs',
18
+ };
19
+
20
+ /** The polar caps that continue {@link dayImageUrl}'s image beyond ±85.05°: its deep sea north, its ice south. */
21
+ export const DAY_IMAGE_POLAR_CAPS: PolarCapColors = { north: '#0e295a', south: '#eeefef' };
22
+
23
+ /**
24
+ * City lights by night, shipped with the package: NASA Black Marble 2016 (VIIRS, public domain) in Web Mercator,
25
+ * 2048 × 2048 pixels in WebP (0.1 MB), from `src/earth/night.webp`.
26
+ */
27
+ export const nightImageUrl = (): string => new URL('../src/earth/night.webp', import.meta.url).href;
28
+
29
+ /** The id of the {@link nightLights} layer, to show or hide it with `globe.imageryLayers.set`. */
30
+ export const NIGHT_LIGHTS_ID = 'night-lights';
31
+
32
+ /** Levels cut at full resolution from a 2048-pixel image: it is seen only from afar. */
33
+ const NIGHT_LEVELS = 3;
34
+
35
+ /**
36
+ * The night side's city lights as an imagery layer (`blend: 'night'`, shown with `AtmosphereSettings.dayNight`): the
37
+ * shipped Black Marble, or `image`, the application's own Web Mercator image of the whole world.
38
+ */
39
+ export function nightLights(image: string = nightImageUrl()): ImageryLayerOptions {
40
+ return {
41
+ id: NIGHT_LIGHTS_ID,
42
+ blend: 'night',
43
+ harmonize: false,
44
+ sources: [
45
+ mercatorImage({
46
+ id: NIGHT_LIGHTS_ID,
47
+ image,
48
+ maxLevel: NIGHT_LEVELS,
49
+ attribution: [
50
+ { text: 'Night lights: NASA Black Marble', url: 'https://earthobservatory.nasa.gov/features/NightLights' },
51
+ ],
52
+ }),
53
+ ],
54
+ };
55
+ }
@@ -28,6 +28,14 @@ export { imageSizeOf, parseWorldFile, singleImage } from './single-image.js';
28
28
  export type { SingleImageOptions, WorldFile } from './single-image.js';
29
29
  export { mercatorImage } from './mercator-image.js';
30
30
  export type { CutTile, MercatorImageOptions } from './mercator-image.js';
31
+ export {
32
+ DAY_IMAGE_CREDIT,
33
+ DAY_IMAGE_POLAR_CAPS,
34
+ dayImageUrl,
35
+ NIGHT_LIGHTS_ID,
36
+ nightImageUrl,
37
+ nightLights,
38
+ } from './earth-images.js';
31
39
  export { pmtilesArchive, pmtilesImagery, pmtilesTerrain, pmtilesVector } from './pmtiles-imagery.js';
32
40
  export type { ArchiveContent } from './pmtiles-imagery.js';
33
41
  export type { ArchiveTerrainEncoding, ArchiveTerrainOptions, VectorTileSource } from './archive-sources.js';
@@ -10,6 +10,7 @@ import {
10
10
  type TileService,
11
11
  } from 'vibeglobe/core';
12
12
  import { createRenderer } from 'vibeglobe/renderer';
13
+ import { DAY_IMAGE_POLAR_CAPS, dayImageUrl } from 'vibeglobe/sources';
13
14
  import { addDefaultControls, createUi, type Ui } from 'vibeglobe/ui';
14
15
  import { createWorkers } from 'vibeglobe/worker';
15
16
 
@@ -22,7 +23,10 @@ export interface VibeGlobeOptions extends Omit<
22
23
  readonly tiles: TileService;
23
24
  /** Place search; without it the search box accepts coordinates only. */
24
25
  readonly geocoder?: GeocoderService;
25
- /** An equirectangular image of the whole world, shown where no tile is loaded yet (default: one ocean color). */
26
+ /**
27
+ * An equirectangular image of the whole world, shown where no tile is loaded yet (default: the NASA Blue Marble
28
+ * shipped with the package, `dayImageUrl()` of `vibeglobe/sources`, with its polar caps).
29
+ */
26
30
  readonly baseImageryUrl?: string;
27
31
  /** Mouse, touch and keyboard navigation options, or false for none. */
28
32
  readonly controls?: ControlsOptions | false;
@@ -41,10 +45,6 @@ export interface VibeGlobe {
41
45
  destroy(): void;
42
46
  }
43
47
 
44
- /** A 1×1 ocean-blue image: the world under the tiles while none is loaded, without an asset to host. */
45
- const OCEAN =
46
- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGOQsY8BAAEyALi+BX15AAAAAElFTkSuQmCC';
47
-
48
48
  /**
49
49
  * Starts VibeGlobe in `container` with the application's services (ADR 0186): the tiles, required, and optionally a
50
50
  * terrain and a geocoder. Resolves once the first frame is drawn and the tile service's style, if any, is attached;
@@ -52,14 +52,15 @@ const OCEAN =
52
52
  * style does not load.
53
53
  */
54
54
  export async function createVibeGlobe(container: HTMLElement, options: VibeGlobeOptions): Promise<VibeGlobe> {
55
- const { tiles, geocoder, controls, ui: withUi = true, language, baseImageryUrl = OCEAN, ...engine } = options;
55
+ const { tiles, geocoder, controls, ui: withUi = true, language, baseImageryUrl, ...engine } = options;
56
56
  if (!tiles) throw new GlobeError('invalid-option', 'createVibeGlobe needs a tile service: { tiles }');
57
57
  const globe = createGlobe({
58
+ ...(baseImageryUrl ? {} : { polarCapColors: DAY_IMAGE_POLAR_CAPS }),
58
59
  ...engine,
59
60
  container,
60
61
  renderer: createRenderer(),
61
62
  ...(controls === false ? {} : { controls: createControls(controls) }),
62
- baseImageryUrl,
63
+ baseImageryUrl: baseImageryUrl ?? dayImageUrl(),
63
64
  imagery: tiles.imagery,
64
65
  workers: createWorkers(),
65
66
  });
package/vue/README.md CHANGED
@@ -43,6 +43,8 @@ export const ZoomReadout = defineComponent({
43
43
  ## Pitfalls
44
44
 
45
45
  - `VibeGlobe` fills its parent: the parent must have a height.
46
+ - Without `baseImageryUrl` the globe starts on the NASA Blue Marble shipped in the package (`dayImageUrl()` of
47
+ `vibeglobe/sources`), which the bundler copies to the application's assets.
46
48
  - `baseImageryUrl`, `imagery`, `backend`, `controls`, `gltf`, `workers` and `options` are read once, at start; the
47
49
  camera props, `viewMode`, `layers`, `networkMode` and `qualityPreset` change the running engine.
48
50
  - The composables and child components work inside `VibeGlobe`'s default slot.
@@ -5,7 +5,8 @@ import { type BackendChoice, type RendererOptions } from 'vibeglobe/renderer';
5
5
  export type GlobeExtraOptions = Omit<GlobeOptions, 'container' | 'renderer' | 'controls' | 'baseImageryUrl' | 'view' | 'imagery' | 'workers'>;
6
6
  /** What the component needs to start an engine: its props, resolved. */
7
7
  export interface GlobeConfig {
8
- readonly baseImageryUrl: string;
8
+ /** The base image; without one, the NASA Blue Marble shipped with the package and its polar caps. */
9
+ readonly baseImageryUrl?: string | undefined;
9
10
  readonly backend: BackendChoice;
10
11
  /** Navigation: off (false), the defaults (true) or these options (F625's tilt policy, the navigation mode…). */
11
12
  readonly controls: boolean | ControlsOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"globe-config.d.ts","sourceRoot":"","sources":["../src/globe-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG/F,mGAAmG;AACnG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,YAAY,EACZ,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAC1F,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,gHAAgH;IAChH,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,CAAC;IAC7C,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,YAAY,CAad;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAe9G;AAED,wGAAwG;AACxG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,CAGxG"}
1
+ {"version":3,"file":"globe-config.d.ts","sourceRoot":"","sources":["../src/globe-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAI/F,mGAAmG;AACnG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,YAAY,EACZ,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAC1F,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,qGAAqG;IACrG,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,gHAAgH;IAChH,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,CAAC;IAC7C,gFAAgF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,YAAY,CAcd;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAe9G;AAED,wGAAwG;AACxG,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,CAGxG"}
@@ -1,4 +1,5 @@
1
1
  import { createRenderer } from 'vibeglobe/renderer';
2
+ import { DAY_IMAGE_POLAR_CAPS, dayImageUrl } from 'vibeglobe/sources';
2
3
  import { createWorkers } from 'vibeglobe/worker';
3
4
  /**
4
5
  * The engine options for a configuration: a renderer in the container, the default navigation controls, and the
@@ -8,11 +9,12 @@ export function globeOptions(container, config, controls) {
8
9
  const imagery = config.imagery ?? [];
9
10
  const workers = config.workers ?? (imagery.length > 0 ? createWorkers() : undefined);
10
11
  return {
12
+ ...(config.baseImageryUrl ? {} : { polarCapColors: DAY_IMAGE_POLAR_CAPS }),
11
13
  ...config.options,
12
14
  container,
13
15
  renderer: createRenderer({ backend: config.backend, ...(config.gltf ? { gltf: config.gltf } : {}) }),
14
16
  ...(controls ? { controls } : {}),
15
- baseImageryUrl: config.baseImageryUrl,
17
+ baseImageryUrl: config.baseImageryUrl ?? dayImageUrl(),
16
18
  view: config.view,
17
19
  ...(imagery.length > 0 ? { imagery } : {}),
18
20
  ...(workers ? { workers } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"globe-config.js","sourceRoot":"","sources":["../src/globe-config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAA4C,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAsBlD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAsB,EACtB,MAAmB,EACnB,QAAwC;IAExC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrF,OAAO;QACL,GAAG,MAAM,CAAC,OAAO;QACjB,SAAS;QACT,QAAQ,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACpG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAuB,EAAE,IAAc,EAAE,QAAmB;IACtF,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG;QACb,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC;QACrC,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;QACnC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC;QACjC,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;KACnB,CAAC;IACX,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,MAAM;YAAE,SAAS;QACnE,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,eAAe,CAAC,QAAmC;IACjE,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"globe-config.js","sourceRoot":"","sources":["../src/globe-config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAA4C,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAuBlD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAsB,EACtB,MAAmB,EACnB,QAAwC;IAExC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrF,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;QAC1E,GAAG,MAAM,CAAC,OAAO;QACjB,SAAS;QACT,QAAQ,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACpG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,WAAW,EAAE;QACtD,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAuB,EAAE,IAAc,EAAE,QAAmB;IACtF,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG;QACb,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC;QACrC,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;QACnC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC;QACjC,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;KACnB,CAAC;IACX,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,MAAM;YAAE,SAAS;QACnE,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,eAAe,CAAC,QAAmC;IACjE,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,CAAC"}
@@ -27,10 +27,13 @@ export type ToggleMode = Parameters<Globe['setViewMode']>[0];
27
27
  * `camera-change`, `globe-click` (a click with its position on the globe) and `error`.
28
28
  */
29
29
  export declare const VibeGlobe: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
30
- /** URL of the base image draped on the whole globe before any tile arrives. */
30
+ /**
31
+ * URL of the base image draped on the whole globe before any tile arrives. Default: the NASA Blue Marble shipped
32
+ * with the package (`dayImageUrl()` of `vibeglobe/sources`), with its polar caps. Read when the engine starts.
33
+ */
31
34
  baseImageryUrl: {
32
35
  type: StringConstructor;
33
- required: true;
36
+ default: undefined;
34
37
  };
35
38
  /** Imagery sources, bottom first. Read when the engine starts. */
36
39
  imagery: {
@@ -130,10 +133,13 @@ export declare const VibeGlobe: import("vue").DefineComponent<import("vue").Extr
130
133
  'globe-click': (event: GlobeClickEvent) => boolean;
131
134
  error: (error: GlobeError) => boolean;
132
135
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
133
- /** URL of the base image draped on the whole globe before any tile arrives. */
136
+ /**
137
+ * URL of the base image draped on the whole globe before any tile arrives. Default: the NASA Blue Marble shipped
138
+ * with the package (`dayImageUrl()` of `vibeglobe/sources`), with its polar caps. Read when the engine starts.
139
+ */
134
140
  baseImageryUrl: {
135
141
  type: StringConstructor;
136
- required: true;
142
+ default: undefined;
137
143
  };
138
144
  /** Imagery sources, bottom first. Read when the engine starts. */
139
145
  imagery: {
@@ -243,6 +249,7 @@ export declare const VibeGlobe: import("vue").DefineComponent<import("vue").Extr
243
249
  viewMode: "auto" | "2d" | "3d";
244
250
  layers: readonly LayerLook[];
245
251
  controls: boolean | ControlsOptions;
252
+ baseImageryUrl: string;
246
253
  imagery: readonly ImagerySource[];
247
254
  workers: WorkerEndpointFactory;
248
255
  gltf: import("vibeglobe/renderer").GltfLoaderFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"vibe-globe.d.ts","sourceRoot":"","sources":["../src/vibe-globe.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAElB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAQL,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,KAAK,EACX,MAAM,KAAK,CAAC;AAGb,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAI5E,mHAAmH;AACnH,MAAM,WAAW,SAAU,SAAQ,mBAAmB;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1D,+GAA+G;AAC/G,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC;AAcD,mFAAmF;AACnF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAoF7D;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;IAGlB,+EAA+E;;;;;IAE/E,kEAAkE;;cACxC,QAAQ,CAAC,SAAS,aAAa,EAAE,CAAC;;;IAC5D,kGAAkG;;cACvE,QAAQ,CAAC,aAAa,CAAC;;;IAClD;;;;OAIG;;cACoC,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;;;IAC1E;;;OAGG;;cACuB,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;;;IACxE,kGAAkG;;cACvE,QAAQ,CAAC,qBAAqB,CAAC;;;IAC1D,uGAAuG;;cAC5E,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;IAMtD,mHAAmH;;cACvF,QAAQ,CAAC,UAAU,CAAC;;;IAChD;;;OAGG;;cACsB,QAAQ,CAAC,SAAS,SAAS,EAAE,CAAC;;;IACvD,iHAAiH;;cACtF,QAAQ,CAAC,iBAAiB,CAAC;;;IACtD,6FAA6F;;cAC9D,QAAQ,CAAC,WAAW,CAAC;;;IACpD;;;;OAIG;;cAC8B,QAAQ,CAAC,mBAAmB,GAAG,SAAS,CAAC;;;;;;qBAGzD,WAAW,CAAC,OAAO,CAAC;oBACrB,WAAW,CAAC,MAAM,CAAC;8BACT,WAAW;2BACd,eAAe;mBACvB,UAAU;;IAjDzB,+EAA+E;;;;;IAE/E,kEAAkE;;cACxC,QAAQ,CAAC,SAAS,aAAa,EAAE,CAAC;;;IAC5D,kGAAkG;;cACvE,QAAQ,CAAC,aAAa,CAAC;;;IAClD;;;;OAIG;;cACoC,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;;;IAC1E;;;OAGG;;cACuB,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;;;IACxE,kGAAkG;;cACvE,QAAQ,CAAC,qBAAqB,CAAC;;;IAC1D,uGAAuG;;cAC5E,QAAQ,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;IAMtD,mHAAmH;;cACvF,QAAQ,CAAC,UAAU,CAAC;;;IAChD;;;OAGG;;cACsB,QAAQ,CAAC,SAAS,SAAS,EAAE,CAAC;;;IACvD,iHAAiH;;cACtF,QAAQ,CAAC,iBAAiB,CAAC;;;IACtD,6FAA6F;;cAC9D,QAAQ,CAAC,WAAW,CAAC;;;IACpD;;;;OAIG;;cAC8B,QAAQ,CAAC,mBAAmB,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cASrC,MAAM,KAAK,EAAE;kBAAgB,MAAM,KAAK,EAAE;yEA2DjF,CAAC"}
1
+ {"version":3,"file":"vibe-globe.d.ts","sourceRoot":"","sources":["../src/vibe-globe.ts"],"names":[],"mappings":"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"}
@@ -93,8 +93,11 @@ function viewOf(props) {
93
93
  export const VibeGlobe = defineComponent({
94
94
  name: 'VibeGlobe',
95
95
  props: {
96
- /** URL of the base image draped on the whole globe before any tile arrives. */
97
- baseImageryUrl: { type: String, required: true },
96
+ /**
97
+ * URL of the base image draped on the whole globe before any tile arrives. Default: the NASA Blue Marble shipped
98
+ * with the package (`dayImageUrl()` of `vibeglobe/sources`), with its polar caps. Read when the engine starts.
99
+ */
100
+ baseImageryUrl: { type: String, default: undefined },
98
101
  /** Imagery sources, bottom first. Read when the engine starts. */
99
102
  imagery: { type: Array, default: undefined },
100
103
  /** 'auto' (WebGPU, falling back to WebGL2), 'webgpu' or 'webgl2'. Read when the engine starts. */
@@ -1 +1 @@
1
- {"version":3,"file":"vibe-globe.js","sourceRoot":"","sources":["../src/vibe-globe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vibe-globe.js","sourceRoot":"","sources":["../src/vibe-globe.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  import type { ControlsOptions, NavigationControls } from 'vibeglobe/controls';
4
4
  import type { Globe, GlobeOptions, ImagerySource, ViewInit } from 'vibeglobe/core';
5
5
  import { createRenderer, type BackendChoice, type RendererOptions } from 'vibeglobe/renderer';
6
+ import { DAY_IMAGE_POLAR_CAPS, dayImageUrl } from 'vibeglobe/sources';
6
7
  import { createWorkers } from 'vibeglobe/worker';
7
8
 
8
9
  /** Engine options the component passes through unchanged (everything it does not build itself). */
@@ -13,7 +14,8 @@ export type GlobeExtraOptions = Omit<
13
14
 
14
15
  /** What the component needs to start an engine: its props, resolved. */
15
16
  export interface GlobeConfig {
16
- readonly baseImageryUrl: string;
17
+ /** The base image; without one, the NASA Blue Marble shipped with the package and its polar caps. */
18
+ readonly baseImageryUrl?: string | undefined;
17
19
  readonly backend: BackendChoice;
18
20
  /** Navigation: off (false), the defaults (true) or these options (F625's tilt policy, the navigation mode…). */
19
21
  readonly controls: boolean | ControlsOptions;
@@ -37,11 +39,12 @@ export function globeOptions(
37
39
  const imagery = config.imagery ?? [];
38
40
  const workers = config.workers ?? (imagery.length > 0 ? createWorkers() : undefined);
39
41
  return {
42
+ ...(config.baseImageryUrl ? {} : { polarCapColors: DAY_IMAGE_POLAR_CAPS }),
40
43
  ...config.options,
41
44
  container,
42
45
  renderer: createRenderer({ backend: config.backend, ...(config.gltf ? { gltf: config.gltf } : {}) }),
43
46
  ...(controls ? { controls } : {}),
44
- baseImageryUrl: config.baseImageryUrl,
47
+ baseImageryUrl: config.baseImageryUrl ?? dayImageUrl(),
45
48
  view: config.view,
46
49
  ...(imagery.length > 0 ? { imagery } : {}),
47
50
  ...(workers ? { workers } : {}),
@@ -168,8 +168,11 @@ function viewOf(
168
168
  export const VibeGlobe = defineComponent({
169
169
  name: 'VibeGlobe',
170
170
  props: {
171
- /** URL of the base image draped on the whole globe before any tile arrives. */
172
- baseImageryUrl: { type: String, required: true },
171
+ /**
172
+ * URL of the base image draped on the whole globe before any tile arrives. Default: the NASA Blue Marble shipped
173
+ * with the package (`dayImageUrl()` of `vibeglobe/sources`), with its polar caps. Read when the engine starts.
174
+ */
175
+ baseImageryUrl: { type: String, default: undefined },
173
176
  /** Imagery sources, bottom first. Read when the engine starts. */
174
177
  imagery: { type: Array as PropType<readonly ImagerySource[]>, default: undefined },
175
178
  /** 'auto' (WebGPU, falling back to WebGL2), 'webgpu' or 'webgl2'. Read when the engine starts. */