@tomtom-org/maps-sdk-plugin-landmarks-3d 0.2.1 → 0.3.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.
- package/CHANGELOG.md +279 -0
- package/README.md +52 -4
- package/THIRD_PARTY.txt +2 -2
- package/dist/THIRD_PARTY.txt +2 -2
- package/dist/{bundledTranscoder-CUVU7Ihm.js → bundledTranscoder-DlqNk7PG.js} +1 -1
- package/dist/index.d.ts +464 -326
- package/dist/index.es.js +1 -1
- package/dist/knobs.d.ts +16 -0
- package/dist/knobs.es.js +1 -0
- package/dist/surfacesKnobCatalogue-B1prY4bG.d.ts +1201 -0
- package/dist/surfacesKnobCatalogue-B2lRYedD.js +1 -0
- package/dist/third-party.json +2 -2
- package/package.json +12 -7
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2826](https://github.com/tomtom-internal/maps-sdk-js/pull/2826) [`d04e449`](https://github.com/tomtom-internal/maps-sdk-js/commit/d04e449eba77d1ab70f5defe39d1d4f757d27d6e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** Read the knob catalogues from `@tomtom-org/maps-sdk-plugin-landmarks-3d/knobs`, which imports nothing from three.js, so your app can check values or describe the knobs at startup and still load the plugin the first time it draws 3D
|
|
8
|
+
|
|
9
|
+
- **Breaking:** `landmarks3DKnobCatalogue`, `buildings3DKnobCatalogue`, `landmarks3DKnobIds`, `buildings3DKnobIds`, `buildingsPresets`, `facadePatterns`, `landmarkTextureUses`, `paletteModes`, `paletteMapColors` and their types come from `/knobs` only, no longer from the package root
|
|
10
|
+
- examples: `landmarks-3d-plugin` and `buildings-3d-plugin-playground` import their catalogues from `/knobs`
|
|
11
|
+
|
|
12
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** landmarks-3d: takes three.js `^0.186.1` as its peer, in place of `^0.170.0`, so upgrade `three` with the plugin
|
|
13
|
+
|
|
14
|
+
- `Buildings3D` draws its shadows with three's `PCFShadowMap`, as three 0.186 removed `PCFSoftShadowMap`, and gives three's shadow pass MapLibre's whole depth range
|
|
15
|
+
- `GLSurfaces`'s trees read the buildings' shadow map as the depth texture three now draws it as
|
|
16
|
+
- Landmark textures still decode with the transcoder files the plugin ships, which three's `KTX2Loader` now asks for by its own full URL
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `Buildings3D` takes its sun from the map's light, which the styling module's `view.light` knobs set: its `light.direction` and `light.altitude` each follow it while unset
|
|
21
|
+
|
|
22
|
+
- `GLSurfaces` follows the same light, so the shadows and the textured ground agree. On satellite, with no map light, both take the day sun at 215°/35°, as the imagery is a daylit photograph
|
|
23
|
+
- On the standard styles, which place no light of their own, the presets still light the buildings
|
|
24
|
+
- It needs `@tomtom-org/maps-sdk` 1.0.0-rc.6 or later
|
|
25
|
+
|
|
26
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `Buildings3D` stands each building on 3D terrain, on the lowest ground under it, where it used to draw at sea level with hills covering the lower floors
|
|
27
|
+
|
|
28
|
+
- The buildings stand again as finer terrain tiles load and as the exaggeration changes
|
|
29
|
+
- The streets' shadows fall on a flat plane, so over terrain only the buildings take them
|
|
30
|
+
|
|
31
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: on `streetSatellite`, the 3D buildings of the Landmarks 3D plugin's `Buildings3D` draw over the roads and bridges, where the street styles draw theirs, instead of under them
|
|
32
|
+
|
|
33
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `Buildings3D` draws its shadow map again only once the sun, the camera's view of the ground or the buildings in it change, so a frame another layer redraws, such as one of wind on the water and trees of `GLSurfaces`, reuses it
|
|
34
|
+
|
|
35
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `Buildings3D` shadows start at the foot of each wall, where they used to leave a lit strip a few metres wide between a building and its shadow
|
|
36
|
+
|
|
37
|
+
- [#2821](https://github.com/tomtom-internal/maps-sdk-js/pull/2821) [`9f0d43b`](https://github.com/tomtom-internal/maps-sdk-js/commit/9f0d43be079eb933c12436c0cb20cd18faaf87ca) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `Buildings3D` and `Landmarks3D` are interactive: `buildings.events` and `landmarks.events` report the building or landmark under the pointer with its id and properties, the hovered and clicked one light up in the `hover` and `click` colours, and `setBuildingColors` and `setLandmarkColors` give the ones you pick by id a colour of their own
|
|
38
|
+
|
|
39
|
+
- The hover and click colours follow the map's `colors.accent`, and the landmarks follow the buildings' ones while you leave theirs unset
|
|
40
|
+
- A building the map data splits into parts is one building, under the id of its whole outline: one hover, click, colour and palette colour for all its parts
|
|
41
|
+
- The new `buildings-3d-interaction` example hovers, selects and paints buildings and landmarks over Amsterdam
|
|
42
|
+
|
|
43
|
+
- [#2821](https://github.com/tomtom-internal/maps-sdk-js/pull/2821) [`9f0d43b`](https://github.com/tomtom-internal/maps-sdk-js/commit/9f0d43be079eb933c12436c0cb20cd18faaf87ca) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `Buildings3D` and `Landmarks3D` paint each building and landmark a little differently: set `walls.palette`, `roofs.palette` or the landmarks' `palette` to an array of your own colours, and each one takes a colour of its own, picked or blended from your CSS colours or from the map's colours such as `colors.accent`, and `walls.variation` or `variation` gives each one its own shade
|
|
44
|
+
|
|
45
|
+
- Roofs follow the walls, wall palette included, until you set `roofs.color` or a `roofs.palette`, with its own `roofs.paletteMode` and `roofs.paletteIntensity`
|
|
46
|
+
- `walls.paletteIntensity` and `paletteIntensity` mix the palette over the wall colour, for a hint of it
|
|
47
|
+
- Landmarks among a `Buildings3D` take its walls' `variation` while theirs is unset, so they now vary in shade as its buildings do; set `variation: 0` to keep them alike
|
|
48
|
+
- The buildings and landmarks playgrounds build palettes colour by colour, the buildings one for the roofs too, and the cinematic city orbit and fly-by looks use them
|
|
49
|
+
|
|
50
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: `GLSurfaces` textures the standard styles' water, land cover, built-up ground and roads with WebGL materials, in the style's own colours
|
|
51
|
+
|
|
52
|
+
- Water ripples with the wind in waves of a few metres, scaled to the distance it's seen from, mirrors the map's sky towards the horizon and glitters in the sun, or the moon on dark styles, its sparkles shimmering and its wave faces lit from the light's side. Out at sea the waves run down the wind; near an open shore they turn to come in towards it and break in foam, and gusts drift across open water between brighter slicks, while canals, ponds and harbours stay calmer and mirror the sky more
|
|
53
|
+
- Forests show broadleaf crowns and conifers with leaf clumps and shadows up close, lawns are mown in stripes and meadows dotted with flowers, farmland breaks into field parcels, sand into dunes with wet sand along the water, and roads take on smooth asphalt, softly streaked along each road, with wheel paths in its lanes up close
|
|
54
|
+
- Glaciers show snow drifts and crevasses, scrub its bushes, mud flats their creeks and puddles, and shingle its stones. Squares, platforms and piers are paved, car parks and runways asphalt, and built-up ground takes a faint wear, each surface with knobs of its own
|
|
55
|
+
- 3D trees grow on woods, parks, gardens, meadows and orchards, each as densely as its kind of ground, sway in the wind and cast shadows: broadleaf trees, conifers, bushes, columnar trees such as poplars and cypresses, and umbrella trees such as stone pines, in a mix the ground and where it lies decide, few conifers in the tropics and more towards the poles and up mountains towards the treeline, and a knob per kind scales
|
|
56
|
+
- The trees go under the labels and under the routes, places and geometries drawn there, whichever came first, and `beforeLayerConfig` moves them, as the map modules' `beforeLayerConfig` does
|
|
57
|
+
- Roads, paths, railways and streams through a wood keep the crowns off them, and show over the crowns in front of them in a tilted view
|
|
58
|
+
- Each tree keeps its own size. As the view moves, it grows in, and only after several frames without a place shrinks away slowly, rather than blinking or changing size where a path or an edge crosses the pixels its place is read from, or where the trees' level of detail changes in flight
|
|
59
|
+
- Every part is coloured for a `season`, `spring`, `summer`, `autumn`, `winter` or `snow`, from the style's own colours, and each of its shades has a colour knob of its own
|
|
60
|
+
- Over satellite imagery, the water and the roads are textured and the trees grow, each in the colours of the crowns the imagery shows under it, under the day sun and the day sky the imagery was taken in
|
|
61
|
+
- Over 3D terrain, the textures follow the raised ground and the trees stand on it
|
|
62
|
+
- The sun is the map's light, which the styling module's `view.light` knobs set, shared with `Buildings3D`
|
|
63
|
+
- Every look is a knob in `glSurfacesKnobCatalogue`, set by id with the SDK's `setKnob`. The catalogue, `surfaceKinds` and `surfaceSeasons` come from `@tomtom-org/maps-sdk-plugin-landmarks-3d/knobs`, beside the other catalogues, which imports nothing from three.js
|
|
64
|
+
- On a screen of 1.5 or more pixels per CSS pixel, the materials shade one pixel for each 2 by 2, as their details fade out by CSS pixels anyway, which cuts their cost by about a third, and blends them back up smoothly
|
|
65
|
+
- It draws with Three.js, through the renderer `Landmarks3D` and `Buildings3D` share, so a map with `GLSurfaces` alone needs the `three` peer too
|
|
66
|
+
- `remove()` takes the surfaces and the trees off the map, with the WebGL resources they hold
|
|
67
|
+
|
|
68
|
+
- [#2811](https://github.com/tomtom-internal/maps-sdk-js/pull/2811) [`e77a737`](https://github.com/tomtom-internal/maps-sdk-js/commit/e77a737112b1e1cbf8115d86ebfcbd2d487e78c0) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Landmark tiles that fail to load reach the map's `addErrorHandler` as a `TomTomMapError`, with the same `code`, `apiErrorCode` and `privatePreviewAccess` a service call gives a refused key
|
|
69
|
+
- A key refused with a `401` or a `403` is reported once, with the API's own message, and the plugin then requests no more tiles. A key without Orbis 3D Landmarks access gets `privatePreviewAccess`, which names where to request it.
|
|
70
|
+
- A tile that fails for another reason is reported, coded by its status, as `NETWORK_NOT_AVAILABLE` with no response, or as `INTERNAL` when it can't be read.
|
|
71
|
+
- A tile whose error has `canRetry`, such as a `5xx`, a `429` or a lost connection, is reported once until it loads, and requested again when the map moves over it, after one second, doubled with each failure, up to one minute.
|
|
72
|
+
- The plugin needs `@tomtom-org/maps-sdk` 1.0.0-rc.6 or later.
|
|
73
|
+
|
|
74
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: on `streetSatellite`, the landmarks of the Landmarks 3D plugin show their own colours while their `texture` knob is unset, under a `Buildings3D` too, as `getKnob` reports
|
|
75
|
+
|
|
76
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: `Landmarks3D` and `Buildings3D` share one Three.js renderer, so a `Buildings3D` draws the landmarks without uploading their meshes and textures a second time
|
|
77
|
+
|
|
78
|
+
- On a 3D terrain, the landmarks read the ground under them again only once the terrain changes, not every frame
|
|
79
|
+
- `Buildings3D` follows a moving map light by moving its sun alone, without resolving its whole look again
|
|
80
|
+
|
|
81
|
+
- [#2823](https://github.com/tomtom-internal/maps-sdk-js/pull/2823) [`d1b906f`](https://github.com/tomtom-internal/maps-sdk-js/commit/d1b906f460c33607bf9789475ad85bff339b7c3b) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The package ships its `CHANGELOG.md`, as the SDK does, so you can read what changed between two releases from `node_modules`
|
|
82
|
+
|
|
83
|
+
- [#2813](https://github.com/tomtom-internal/maps-sdk-js/pull/2813) [`c186703`](https://github.com/tomtom-internal/maps-sdk-js/commit/c1867038e9a38e300ea72e8812419204bf008e73) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Buildings rebuild when their source changes, and a failed texture transcoder load is retried
|
|
84
|
+
|
|
85
|
+
- Hidden translucent buildings no longer cost the translucent render passes
|
|
86
|
+
- The landmarks keep their renderer across style changes rather than upload every tile again
|
|
87
|
+
- A building tile MapLibre reloads is extruded from its new copy
|
|
88
|
+
- Occluded labels go back above the buildings once their knob is off, even after a restyle put one of them back
|
|
89
|
+
|
|
90
|
+
- [#2732](https://github.com/tomtom-internal/maps-sdk-js/pull/2732) [`7d786f7`](https://github.com/tomtom-internal/maps-sdk-js/commit/7d786f77afa3dd91dbdab0da293932951ef87f5e) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: the 3D trees of the Landmarks 3D plugin's `GLSurfaces` stand in the shadows of its `Buildings3D` on the same map
|
|
91
|
+
|
|
92
|
+
- A tree crown in a building's shade loses its sunlit side, as dark as `Buildings3D`'s `shadows.intensity`, and none while its `shadows.visible` is off
|
|
93
|
+
- Both take one sun by default: the map's light once it's placed, otherwise the theme's sun, or the day sun on `streetSatellite`. Only their own `light.*` knobs, or a `Buildings3D` `preset` of another theme than the map's, give them different suns, and then the trees leave the buildings' shadows out
|
|
94
|
+
|
|
95
|
+
## 0.2.1
|
|
96
|
+
|
|
97
|
+
### Patch Changes
|
|
98
|
+
|
|
99
|
+
- [#2803](https://github.com/tomtom-internal/maps-sdk-js/pull/2803) [`1a62c72`](https://github.com/tomtom-internal/maps-sdk-js/commit/1a62c72eb372d037397bb88485ea731763f3e554) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The README links the repository's security policy page, which sends a vulnerability report to TomTom's HackerOne program
|
|
100
|
+
|
|
101
|
+
## 0.2.0
|
|
102
|
+
|
|
103
|
+
### Minor Changes
|
|
104
|
+
|
|
105
|
+
- [#2722](https://github.com/tomtom-internal/maps-sdk-js/pull/2722) [`9eff3f9`](https://github.com/tomtom-internal/maps-sdk-js/commit/9eff3f9f11ae3c358e0df83e9241cfb4a00f7282) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** the `maplibre-gl` peer dependency moves up to `^6.15.0`
|
|
106
|
+
|
|
107
|
+
- [#2769](https://github.com/tomtom-internal/maps-sdk-js/pull/2769) [`b4d8ff5`](https://github.com/tomtom-internal/maps-sdk-js/commit/b4d8ff553858d1916bffbeed28005e6b6807cc89) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** The Basis Universal transcoder ships as its two files in `dist/`, which your app's bundler emits with your build, instead of a 780 KB chunk of `data:` URLs, and `Landmarks3D` takes a `transcoderPath` to load them from your own host
|
|
108
|
+
- A strict Content Security Policy no longer needs `data:` in `connect-src`.
|
|
109
|
+
- If your bundler doesn't emit the files a `new URL('./file', import.meta.url)` names, copy `basis_transcoder.js` and `basis_transcoder.wasm` from the plugin's `dist/` to your host and set `transcoderPath` to their path.
|
|
110
|
+
- On the Vite 7 dev server, add `@tomtom-org/maps-sdk-plugin-landmarks-3d` to `optimizeDeps.exclude`, beside the SDK, or upgrade to Vite 8. Pre-bundled, the plugin moves away from its two files.
|
|
111
|
+
|
|
112
|
+
### Patch Changes
|
|
113
|
+
|
|
114
|
+
- [#2730](https://github.com/tomtom-internal/maps-sdk-js/pull/2730) [`2869cd2`](https://github.com/tomtom-internal/maps-sdk-js/commit/2869cd2ce72d7e9a781a12561dca47683264c0da) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: `Buildings3D` windows mirror the facades across the street, the sky and a glint of the sun, as much as the new `reflections.intensity` knob sets, and the `roadLabels.occluded` and `pois.occluded` knobs draw those labels under the buildings, which hide them where they cover them
|
|
115
|
+
|
|
116
|
+
- landmarks-3d: the reflection takes the place of the glass's own colour, each pane mirroring its own slice of the street and of the facades across it, whose windows slide past as the camera moves, under the scene's sun and sky light, at no extra texture or pass. A pane in shadow loses the sun's glint
|
|
117
|
+
- landmarks-3d: landmarks drawn among the buildings mirror a little of the same street and sky, their darker windows the most and their roofs barely, and catch the sun's glint
|
|
118
|
+
- landmarks-3d: an occluded label layer moves under the buildings' layer, at no cost per frame, and goes back to its place in the style's order once the knob is off. A hidden POI still keeps other labels off its place, and the labels moved under give way to the ones above them where they collide
|
|
119
|
+
- landmarks-3d: on a style without 3D buildings of its own, `Buildings3D` draws under every label, road names included, where it drew over them
|
|
120
|
+
- examples: `buildings-3d-plugin-playground` adds the glass reflections slider and the two label toggles, and `cinematic-city-flyby` hides its road names with `roadLabels.occluded`
|
|
121
|
+
|
|
122
|
+
- [#2697](https://github.com/tomtom-internal/maps-sdk-js/pull/2697) [`3d9c9a3`](https://github.com/tomtom-internal/maps-sdk-js/commit/3d9c9a34b897cf8eb791096620ed3e18dead1966) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Draw the base map's buildings in 3D with `Buildings3D`: windows on every wall, a sun or a moon that casts shadows, lit windows at night and a preset for each standard style, every part of it a knob
|
|
123
|
+
- Shadows reach 5 km from the map's centre, fading out over the last kilometre, however far a tilted view reaches
|
|
124
|
+
- Landmarks among the buildings share their sun and shadows, casting theirs on the buildings and catching the buildings' ones, and take their wall colour, with their own stonework and windows as facade detail
|
|
125
|
+
- `Buildings3D` is in Public Preview and works with any API key, while the landmarks stay in Private Preview
|
|
126
|
+
- examples: `landmarks-3d-plugin` builds its landmark controls from `landmarks3DKnobCatalogue`, adding the zoom range, flies to landmarks in seven cities, and adds a toggle that draws `Buildings3D` around them
|
|
127
|
+
- examples: `buildings-3d-plugin-playground` tunes the buildings' look live over Manhattan, plays a day through, and adds the landmarks behind a Landmarks toggle
|
|
128
|
+
- examples: `cinematic-city-orbit` circles the Empire State Building in eight looks, each mixing the 3D buildings and landmarks with bloom, depth of field and a map theme
|
|
129
|
+
|
|
130
|
+
- [#2757](https://github.com/tomtom-internal/maps-sdk-js/pull/2757) [`2478847`](https://github.com/tomtom-internal/maps-sdk-js/commit/2478847effe8a949fdce057874c236cf20e66dad) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - `Landmarks3D` and the fly-over marker add their layers through the SDK's `map.addCustomLayer`, which keeps them placed through style switches
|
|
131
|
+
|
|
132
|
+
- landmarks-3d: module layers placed at `'poi'` now go under the landmarks, even when added after `Landmarks3D`, where one added later drew over them
|
|
133
|
+
- flyover: module layers placed at `'top'`, such as the default of `CustomGeoJSONModule`, now go under the marker, even when added after it, where one added later drew over it
|
|
134
|
+
|
|
135
|
+
- [#2757](https://github.com/tomtom-internal/maps-sdk-js/pull/2757) [`2478847`](https://github.com/tomtom-internal/maps-sdk-js/commit/2478847effe8a949fdce057874c236cf20e66dad) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Both plugins need `@tomtom-org/maps-sdk` 1.0.0-rc.4 or later, since they line their layers up with the map through its `localFrameMatrix`
|
|
136
|
+
|
|
137
|
+
- [#2767](https://github.com/tomtom-internal/maps-sdk-js/pull/2767) [`d4f830a`](https://github.com/tomtom-internal/maps-sdk-js/commit/d4f830ad559c5dbe2deed740e755451abf87d8b5) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: draw the landmarks in their own colours with the new `texture` knob, set to `color`, still lit by the style light's colour and intensity, or by a `Buildings3D`'s sun, sky and shadows
|
|
138
|
+
|
|
139
|
+
- landmarks-3d: `texture` takes one of `landmarkTextureUses`. `mask` only carves the silhouette, `detail` adds the texture's light and shade over `color`, and `color` takes the texture's colours in place of it. Unset, it's `mask`, or `detail` while a `Buildings3D` draws, as before
|
|
140
|
+
- landmarks-3d: `opacity` and `verticalGradient` keep applying with every texture use
|
|
141
|
+
- examples: `landmarks-3d-plugin` adds a Texture control
|
|
142
|
+
|
|
143
|
+
- [#2742](https://github.com/tomtom-internal/maps-sdk-js/pull/2742) [`2fcc1ab`](https://github.com/tomtom-internal/maps-sdk-js/commit/2fcc1abc07bcdf89aff3942ff1207637ed00f419) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `license` field reads `SEE LICENSE IN LICENSE.txt`, the form npm and license scanners recognise, so they point to the package's own `LICENSE.txt` instead of reporting an unknown license
|
|
144
|
+
|
|
145
|
+
- [#2734](https://github.com/tomtom-internal/maps-sdk-js/pull/2734) [`9a12d95`](https://github.com/tomtom-internal/maps-sdk-js/commit/9a12d95c22e60e69fb1891237344ca259aa236a5) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Installs beside `@tomtom-org/maps-sdk` 1.0.0 and every later 1.x release: the peer range on the SDK runs up to `<2.0.0` instead of stopping below 1.0.0
|
|
146
|
+
|
|
147
|
+
## 0.1.0
|
|
148
|
+
|
|
149
|
+
### Minor Changes
|
|
150
|
+
|
|
151
|
+
- [#2683](https://github.com/tomtom-internal/maps-sdk-js/pull/2683) [`8b10dc1`](https://github.com/tomtom-internal/maps-sdk-js/commit/8b10dc12b31fa00deef8078d8cabc76d8c1f5ae5) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** `Landmarks3D` takes its look as knobs, each one following the base map's 3D buildings until you set it
|
|
152
|
+
|
|
153
|
+
- `color`, `opacity`, `verticalGradient`, `visible`, `minZoom` and `maxZoom` are knobs in the new `landmarks3DKnobCatalogue`. Set them with `applyConfig`, `updateConfig`, or the SDK's `setKnob` and `setKnobs`, read them with `getConfig` and `getKnob`, and unset them with `resetKnob` and `resetConfig`
|
|
154
|
+
- A knob left unset follows the base map's `3D - Building` layer through `setStyle` and whatever restyles it: the map colours, such as `setMapColors({ artificial })`, or a paint property set on the layer directly
|
|
155
|
+
- **Breaking:** the plugin no longer shows the `3D - Building` layer, which it used to turn visible on every style load over the `BaseMapModule`'s `buildings3D` group. For the 3D city around the landmarks, show that group: `BaseMapModule.get(map, { groups: { buildings3D: { visible: true } } })`
|
|
156
|
+
- `displayMode`, `setDisplayMode`, `getDisplayMode` and `Landmarks3DDisplayMode` are removed. For `'dark'` use `updateConfig({ color: 'hsl(210, 9%, 17%)' })`, for `'light'` use `updateConfig({ color: 'hsl(38, 6%, 90%)' })`, and for `'inherited'` use `resetConfig()`
|
|
157
|
+
- `setVisible` returns `void` instead of a promise, and stores `visible` in the configuration
|
|
158
|
+
- The plugin needs `@tomtom-org/maps-sdk` 1.0.0-rc.2 or later
|
|
159
|
+
- examples: `landmarks-3d-plugin` sets the landmark knobs and a built-up colour they follow, `landmarks-3d-plugin` and `multiple-maps-landmarks` show the `buildings3D` group themselves, and `3d-terrain` drops `displayMode`
|
|
160
|
+
|
|
161
|
+
### Patch Changes
|
|
162
|
+
|
|
163
|
+
- [#2693](https://github.com/tomtom-internal/maps-sdk-js/pull/2693) [`db69794`](https://github.com/tomtom-internal/maps-sdk-js/commit/db69794e00011a820e2046a161e5390d07b8bb7a) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - Plugins are side-effect free, so your bundler drops every part of a plugin your app doesn't use
|
|
164
|
+
|
|
165
|
+
- Each plugin declares `"sideEffects": false`, and its knob catalogue and other module-level tables are dropped when nothing reads them
|
|
166
|
+
- flyover takes `@turf/turf` as a peer dependency, the copy the SDK already requires, instead of bundling its own
|
|
167
|
+
- The plugins' bundles keep their module-level names, as the SDK's do, so Sandpack and builds that transpile `node_modules` with Babel run their loops correctly
|
|
168
|
+
|
|
169
|
+
## 0.0.13
|
|
170
|
+
|
|
171
|
+
### Patch Changes
|
|
172
|
+
|
|
173
|
+
- [#2593](https://github.com/tomtom-internal/maps-sdk-js/pull/2593) [`f327d14`](https://github.com/tomtom-internal/maps-sdk-js/commit/f327d147e154495f4971b8ff54dd05441c15522a) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - A still map with landmarks loaded stops redrawing every frame.
|
|
174
|
+
- The layer asks for a frame only when a tile arrives, and works out the tiles in view only when the camera moves or the map's data changes
|
|
175
|
+
- After writing a `landmarks.layer` field yourself, call `map.mapLibreMap.triggerRepaint()`
|
|
176
|
+
|
|
177
|
+
- [#2627](https://github.com/tomtom-internal/maps-sdk-js/pull/2627) [`e09550e`](https://github.com/tomtom-internal/maps-sdk-js/commit/e09550ebbd9a46d464bb186fb4ec220cafc55170) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `maplibre-gl` peer dependency moves up to `^6.13.0`
|
|
178
|
+
|
|
179
|
+
- [#2590](https://github.com/tomtom-internal/maps-sdk-js/pull/2590) [`75fb3ea`](https://github.com/tomtom-internal/maps-sdk-js/commit/75fb3eab4d38b2aad8f4f671c3fd84f78ffc19f3) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - license: the privacy clause of `LICENSE.txt` now links the TomTom Privacy Policy, https://www.tomtom.com/privacy/
|
|
180
|
+
|
|
181
|
+
- [#2614](https://github.com/tomtom-internal/maps-sdk-js/pull/2614) [`fe596fc`](https://github.com/tomtom-internal/maps-sdk-js/commit/fe596fcb2d1c5a05dddb77547f48debc1b856a12) Thanks [@JulianChinAFoeng-TomTom](https://github.com/JulianChinAFoeng-TomTom)! - tests: each package's unit test run now fails when its coverage drops below the goals in `TESTING.md`
|
|
182
|
+
|
|
183
|
+
## 0.0.12
|
|
184
|
+
|
|
185
|
+
### Patch Changes
|
|
186
|
+
|
|
187
|
+
- [#2522](https://github.com/tomtom-internal/maps-sdk-js/pull/2522) [`9f01f52`](https://github.com/tomtom-internal/maps-sdk-js/commit/9f01f52ee6f5a4ca23a2a44586c6cfac3595937f) Thanks [@AlvaroGraca-TomTom](https://github.com/AlvaroGraca-TomTom)! - No code change: this version is on the `latest` npm tag, which the previous one missed
|
|
188
|
+
|
|
189
|
+
## 0.0.11
|
|
190
|
+
|
|
191
|
+
### Patch Changes
|
|
192
|
+
|
|
193
|
+
- [#2519](https://github.com/tomtom-internal/maps-sdk-js/pull/2519) [`7b854b3`](https://github.com/tomtom-internal/maps-sdk-js/commit/7b854b30bc25fdac5d9afe1975d6961a0bb137f5) Thanks [@AlvaroGraca-TomTom](https://github.com/AlvaroGraca-TomTom)! - No code change: this version is on the `latest` npm tag, which the previous one missed
|
|
194
|
+
|
|
195
|
+
## 0.0.10
|
|
196
|
+
|
|
197
|
+
### Patch Changes
|
|
198
|
+
|
|
199
|
+
- [#2517](https://github.com/tomtom-internal/maps-sdk-js/pull/2517) [`49611d0`](https://github.com/tomtom-internal/maps-sdk-js/commit/49611d0ac91dc0b584e3d059d1f654208bdead6c) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The README's Project setup link opens the page again, and its quickstart shows the dark display mode, hiding the landmarks, and the constructor options
|
|
200
|
+
|
|
201
|
+
## 0.0.9
|
|
202
|
+
|
|
203
|
+
### Patch Changes
|
|
204
|
+
|
|
205
|
+
- [#2490](https://github.com/tomtom-internal/maps-sdk-js/pull/2490) [`62c5726`](https://github.com/tomtom-internal/maps-sdk-js/commit/62c572635b97c084af81b08b2b6b84f338c193ca) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - landmarks-3d: a tile refused because the API key lacks Orbis 3D Landmarks access warns that the key needs it, linking the Private Preview terms, and where to request it
|
|
206
|
+
|
|
207
|
+
- [#2500](https://github.com/tomtom-internal/maps-sdk-js/pull/2500) [`d19d11d`](https://github.com/tomtom-internal/maps-sdk-js/commit/d19d11d41546bac2dd870560b9508bb0b3a2ce2a) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `maplibre-gl` peer dependency moves up to `^6.12.0`
|
|
208
|
+
|
|
209
|
+
- [#2506](https://github.com/tomtom-internal/maps-sdk-js/pull/2506) [`12099bd`](https://github.com/tomtom-internal/maps-sdk-js/commit/12099bdc040f3ce2d3990266bfb42024cda7956c) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The package ships without source maps, so a stack trace through the plugin points into its minified bundle
|
|
210
|
+
- An app's own source maps still lead a trace to the plugin's frames (`dist/index.es.js:1:2345`); share such a trace in a report and TomTom maps it back to the source
|
|
211
|
+
|
|
212
|
+
- [#2507](https://github.com/tomtom-internal/maps-sdk-js/pull/2507) [`9ab7e7c`](https://github.com/tomtom-internal/maps-sdk-js/commit/9ab7e7c4e5e97950f9c6ba06ff228ac99393a3d4) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - **Breaking:** map: each standard style ID is the Orbis style it loads, in camelCase
|
|
213
|
+
- map: `standardLight`, `standardDark`, `drivingLight`, `drivingDark` and `satellite` are `streetLight`, `streetDark`, `streetLightDriving`, `streetDarkDriving` and `streetSatellite`; `monoLight` and `monoDark` stay
|
|
214
|
+
- agent-toolkit: `setMapStandardStyle` takes the new IDs, `resetState` reverts to `streetLight`, and the plugin needs SDK 1.0.0-rc.0
|
|
215
|
+
- map-theme, landmarks-3d: their docs name the new IDs
|
|
216
|
+
|
|
217
|
+
## 0.0.8
|
|
218
|
+
|
|
219
|
+
### Patch Changes
|
|
220
|
+
|
|
221
|
+
- [#2407](https://github.com/tomtom-internal/maps-sdk-js/pull/2407) [`8706542`](https://github.com/tomtom-internal/maps-sdk-js/commit/8706542b6fd5ad7b2149de10cf3a6c82fe4eb3ae) Thanks [@JulianChinAFoeng-TomTom](https://github.com/JulianChinAFoeng-TomTom)! - Fixes:
|
|
222
|
+
- The Basis Universal transcoder that decodes the landmarks' KTX2 textures ships with the plugin, in a chunk loaded with the first landmark tile, instead of loading from unpkg.com; `transcoderPath` still serves your own copy
|
|
223
|
+
- Updated dependencies:
|
|
224
|
+
- @tomtom-org/maps-sdk@0.62.0
|
|
225
|
+
|
|
226
|
+
## 0.0.7
|
|
227
|
+
|
|
228
|
+
### Patch Changes
|
|
229
|
+
|
|
230
|
+
- [#2217](https://github.com/tomtom-internal/maps-sdk-js/pull/2217) [`8eff899`](https://github.com/tomtom-internal/maps-sdk-js/commit/8eff899c713586296529fb22a4c84f3663fa0859) Thanks [@DanielForniessoria-TomTom](https://github.com/DanielForniessoria-TomTom)! - The `maplibre-gl` peer dependency requires `^6.11.2`
|
|
231
|
+
- Updated dependencies:
|
|
232
|
+
- @tomtom-org/maps-sdk@0.58.0
|
|
233
|
+
|
|
234
|
+
## 0.0.6
|
|
235
|
+
|
|
236
|
+
### Patch Changes
|
|
237
|
+
|
|
238
|
+
- [#2056](https://github.com/tomtom-internal/maps-sdk-js/pull/2056) [`892139d`](https://github.com/tomtom-internal/maps-sdk-js/commit/892139d642f4e78cfe061ea246452effab171ea0) Thanks [@AlvaroGraca-TomTom](https://github.com/AlvaroGraca-TomTom)!
|
|
239
|
+
|
|
240
|
+
- Landmarks stand on 3D terrain: each one is lowered onto the lowest ground under its footprint
|
|
241
|
+
- `inherited` mode mirrors the opacity and vertical gradient of the basemap 3D buildings too, and shades like them from every angle
|
|
242
|
+
- Landmark edges no longer tremble while zooming: mesh positions are kept relative to a scene origin
|
|
243
|
+
- Landmarks leave the screen together with the basemap buildings of the same area
|
|
244
|
+
- `maplibre-gl` is a declared peer dependency, the one the SDK already requires
|
|
245
|
+
- Updated dependencies:
|
|
246
|
+
- @tomtom-org/maps-sdk@0.57.0
|
|
247
|
+
|
|
248
|
+
## 0.0.5
|
|
249
|
+
|
|
250
|
+
### Patch Changes
|
|
251
|
+
|
|
252
|
+
- [#2188](https://github.com/tomtom-internal/maps-sdk-js/pull/2188) [`9e1d080`](https://github.com/tomtom-internal/maps-sdk-js/commit/9e1d080397ee2d16b6185873661890e5a81f7b65) Thanks [@AlvaroGraca-TomTom](https://github.com/AlvaroGraca-TomTom)!
|
|
253
|
+
|
|
254
|
+
- Read the camera transform from the composed camera of maplibre-gl v6
|
|
255
|
+
- Compose the basemap building filter through the SDK `LayerFilterComposer` instead of editing the layer filter in place
|
|
256
|
+
- Accept every SDK release below 1.0: the peer dependency on `@tomtom-org/maps-sdk` is the range `>=0.55.1 <1.0.0` instead of an exact version
|
|
257
|
+
- Updated dependencies:
|
|
258
|
+
- @tomtom-org/maps-sdk@0.56.0
|
|
259
|
+
|
|
260
|
+
## [0.0.4](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-landmarks-3d-v0.0.3...maps-sdk-plugin-landmarks-3d-v0.0.4) (2026-07-24)
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
### Bug Fixes
|
|
264
|
+
|
|
265
|
+
* **landmarks-3d:** render POIs on top of 3D landmark meshes ([#2011](https://github.com/tomtom-internal/maps-sdk-js/issues/2011)) ([79b0922](https://github.com/tomtom-internal/maps-sdk-js/commit/79b092201562e4452ac31f2890ac8046fdf3b27e))
|
|
266
|
+
|
|
267
|
+
## [0.0.3](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-landmarks-3d-v0.0.2...maps-sdk-plugin-landmarks-3d-v0.0.3) (2026-07-03)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
### Bug Fixes
|
|
271
|
+
|
|
272
|
+
* **landmarks-3d:** send session credentials so tiles load behind a proxy ([#1943](https://github.com/tomtom-internal/maps-sdk-js/issues/1943)) ([dc7b78c](https://github.com/tomtom-internal/maps-sdk-js/commit/dc7b78c0d614571b63f0d4f27620bbe1155e971a))
|
|
273
|
+
|
|
274
|
+
## [0.0.2](https://github.com/tomtom-internal/maps-sdk-js/compare/maps-sdk-plugin-landmarks-3d-v0.0.1...maps-sdk-plugin-landmarks-3d-v0.0.2) (2026-06-25)
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
### Features
|
|
278
|
+
|
|
279
|
+
* **plugins:** add landmarks-3d plugin for Orbis 3D Landmarks ([#1772](https://github.com/tomtom-internal/maps-sdk-js/issues/1772)) ([ef5ed89](https://github.com/tomtom-internal/maps-sdk-js/commit/ef5ed899e9a396701668bd324799f6ddad96291c))
|
package/README.md
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
# Landmarks 3D Plugin
|
|
2
2
|
|
|
3
|
-
This plugin for the [TomTom Maps SDK for JavaScript](https://docs.tomtom.com/maps-sdk-js/introduction/overview) renders TomTom Orbis 3D Landmarks on a `TomTomMap` with Three.js. The landmarks are high-detail building meshes, streamed as tiles. It also draws the base map's own buildings in 3D, with windows, lights and shadows.
|
|
3
|
+
This plugin for the [TomTom Maps SDK for JavaScript](https://docs.tomtom.com/maps-sdk-js/introduction/overview) renders TomTom Orbis 3D Landmarks on a `TomTomMap` with Three.js. The landmarks are high-detail building meshes, streamed as tiles. It also draws the base map's own buildings in 3D, with windows, lights and shadows, and gives the map's flat colours a surface: water that ripples and mirrors the sky, forests, fields, dunes and asphalt, and 3D trees on its green.
|
|
4
4
|
|
|
5
|
-
> **Private
|
|
5
|
+
> **Private preview.** The [Orbis 3D Landmarks API](https://developer.tomtom.com/map-display-api/documentation/tomtom-orbis-maps/3d/landmarks) is in Private Preview, so your API key needs Orbis 3D Landmarks entitlements. `Buildings3D` and `GLSurfaces` are in [Public Preview](https://docs.tomtom.com/legal/public-preview) and work with any key.
|
|
6
6
|
|
|
7
7
|
## Docs & examples
|
|
8
8
|
|
|
9
9
|
- Developer guide: https://docs.tomtom.com/maps-sdk-js/guides/plugins/landmarks-3d
|
|
10
|
+
- 3D landmarks guide: https://docs.tomtom.com/maps-sdk-js/guides/plugins/landmarks-3d-landmarks
|
|
11
|
+
- 3D buildings guide: https://docs.tomtom.com/maps-sdk-js/guides/plugins/landmarks-3d-buildings
|
|
12
|
+
- Whole 3D city example: https://docs.tomtom.com/maps-sdk-js/examples/landmarks-3d-city
|
|
10
13
|
- Example: https://docs.tomtom.com/maps-sdk-js/examples/landmarks-3d-plugin
|
|
11
14
|
- 3D buildings example: https://docs.tomtom.com/maps-sdk-js/examples/buildings-3d-plugin-playground
|
|
15
|
+
- Textured surfaces guide: https://docs.tomtom.com/maps-sdk-js/guides/plugins/landmarks-3d-gl-surfaces
|
|
16
|
+
- Textured surfaces example: https://docs.tomtom.com/maps-sdk-js/examples/gl-surfaces-playground
|
|
12
17
|
|
|
13
18
|
## Features
|
|
14
19
|
|
|
@@ -16,7 +21,10 @@ This plugin for the [TomTom Maps SDK for JavaScript](https://docs.tomtom.com/map
|
|
|
16
21
|
- Hides basemap extruded buildings flagged with `has_landmark` so they don't clip through the landmark meshes.
|
|
17
22
|
- Shades the landmarks like the base map's 3D buildings, and follows whatever restyles them, such as the map colours. Set a knob, such as `color` or `opacity`, for a look of your own.
|
|
18
23
|
- Restores itself automatically across map style changes.
|
|
19
|
-
- Draws the base map's buildings in 3D with procedural facades, a light that casts shadows and lit windows at night, with a preset for every standard style.
|
|
24
|
+
- Draws the base map's buildings in 3D with procedural facades, a light that casts shadows and lit windows at night, with a preset for every standard style. The light follows the map's own, which `GLSurfaces` shares, its trees standing in the buildings' shadows.
|
|
25
|
+
- Paints every building and landmark a little differently: a shade of its own, or a colour from a palette, such as brick and stucco or the map theme's own colours.
|
|
26
|
+
- Lights up the building or landmark under the pointer, reports it to your hover and click handlers, and paints the ones you pick by id.
|
|
27
|
+
- Textures the style's water, land cover, built-up ground and roads with WebGL materials in its own colours, for the season you pick, and grows 3D trees on its woods, parks and meadows.
|
|
20
28
|
|
|
21
29
|
## Quickstart
|
|
22
30
|
|
|
@@ -46,7 +54,7 @@ landmarks.updateConfig({ color: '#c8b28a' });
|
|
|
46
54
|
landmarks.setVisible(false);
|
|
47
55
|
```
|
|
48
56
|
|
|
49
|
-
`new Landmarks3D(map, { color, texture, opacity, verticalGradient, visible, minZoom, maxZoom })` sets the same knobs up front.
|
|
57
|
+
`new Landmarks3D(map, { color, palette, paletteMode, paletteIntensity, variation, hover, click, texture, opacity, verticalGradient, visible, minZoom, maxZoom })` sets the same knobs up front. Left out, the colour, opacity, gradient and zoom range follow the base map's 3D buildings, and the `hover` and `click` colours the map's accent. Set `texture: 'color'` to draw each landmark in its own colours, still lit by the map's light.
|
|
50
58
|
|
|
51
59
|
### 3D buildings
|
|
52
60
|
|
|
@@ -59,6 +67,46 @@ const buildings = new Buildings3D(map); // takes the place of the style's own 3D
|
|
|
59
67
|
|
|
60
68
|
// optional: glass towers under a low evening sun
|
|
61
69
|
buildings.updateConfig({ facade: { pattern: 'glass' }, light: { direction: 260, altitude: 12 } });
|
|
70
|
+
|
|
71
|
+
// optional: brick and stucco walls and slate roofs, each building its own shade
|
|
72
|
+
buildings.updateConfig({
|
|
73
|
+
walls: { palette: ['#b5654a', '#c47f5e', '#d2a98c'], variation: 0.3 },
|
|
74
|
+
roofs: { palette: ['#5b6770', '#77808a'] },
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// optional: paint the building or the landmark you click
|
|
78
|
+
buildings.events.on('click', (building) => buildings.setBuildingColors({ [building.id]: '#e4572e' }));
|
|
79
|
+
landmarks.events.on('click', (landmark) => landmarks.setLandmarkColors({ [landmark.id]: '#e4572e' }));
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Textured surfaces and 3D trees
|
|
83
|
+
|
|
84
|
+
`GLSurfaces` gives the flat colours of the map a surface. Lakes ripple in the wind and mirror the sky, waves roll in onto the shore, forests show sunlit tree crowns, and farmland breaks into field parcels. 3D trees grow on the woods, parks and meadows, from conifers to poplars and stone pines, leaving the paths and streams through them in view. Everything draws in the style's own colours for the season you pick, under the labels, bridges and buildings, and takes its sun from the map's light, as `Buildings3D` does.
|
|
85
|
+
|
|
86
|
+
| Surface | Drawn over | Looks like |
|
|
87
|
+
| --- | --- | --- |
|
|
88
|
+
| `water` | Lakes, rivers, streams and seas | Waves that move with the wind and roll in onto open shores, the sky mirrored towards the horizon, glints of sun |
|
|
89
|
+
| `ice` | Glaciers, snow and ice | Snow drifts, bare blue ice and crevasses |
|
|
90
|
+
| `forest` | Woodland | Broadleaf crowns and firs, with leaf clumps and shadows up close |
|
|
91
|
+
| `grass` | Parks, grassland, sport and outdoor areas, cemeteries | Mown lawns in stripes and flowered meadows, swaying in gusts |
|
|
92
|
+
| `scrub` | Shrubland and heath | Bushes in clumps, each with its shadow |
|
|
93
|
+
| `farmland` | Agricultural land | Field parcels with furrows, tracks and hedges |
|
|
94
|
+
| `sand` | Sandy land | Dunes shaded by the sun, ripples across the wind, wet sand along the water |
|
|
95
|
+
| `mud` | Mud flats and beds that run dry | Creeks and puddles that mirror the sky |
|
|
96
|
+
| `gravel` | Shingle | Banks of stones in every shade |
|
|
97
|
+
| `rock` | Other bare land, breakwaters | Ridged stone |
|
|
98
|
+
| `paving` | Squares, pedestrian streets, platforms, piers | Slabs and bricks in staggered rows |
|
|
99
|
+
| `urban` | Built-up areas and land-use grounds | Faint lots and stains |
|
|
100
|
+
| `roads` | Streets and roads, car parks, runways | Smooth asphalt, softly streaked along each road, with wheel paths up close |
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
import { setKnob } from '@tomtom-org/maps-sdk/map';
|
|
104
|
+
import { GLSurfaces } from '@tomtom-org/maps-sdk-plugin-landmarks-3d';
|
|
105
|
+
import { glSurfacesKnobCatalogue } from '@tomtom-org/maps-sdk-plugin-landmarks-3d/knobs';
|
|
106
|
+
|
|
107
|
+
const surfaces = new GLSurfaces(map);
|
|
108
|
+
surfaces.updateConfig({ wind: { direction: 270, speedFactor: 2 } });
|
|
109
|
+
setKnob(surfaces, glSurfacesKnobCatalogue, 'surfaces.roads.intensity', 0);
|
|
62
110
|
```
|
|
63
111
|
|
|
64
112
|
## License
|
package/THIRD_PARTY.txt
CHANGED
|
@@ -144,7 +144,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
144
144
|
---
|
|
145
145
|
|
|
146
146
|
Name: three
|
|
147
|
-
Version: 0.
|
|
147
|
+
Version: 0.186.1
|
|
148
148
|
License: MIT
|
|
149
149
|
Bundled: false (peer dependency)
|
|
150
150
|
Description: JavaScript 3D library
|
|
@@ -156,7 +156,7 @@ License Text:
|
|
|
156
156
|
|
|
157
157
|
The MIT License
|
|
158
158
|
|
|
159
|
-
Copyright © 2010-
|
|
159
|
+
Copyright © 2010-2026 three.js authors
|
|
160
160
|
|
|
161
161
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
162
162
|
of this software and associated documentation files (the "Software"), to deal
|
package/dist/THIRD_PARTY.txt
CHANGED
|
@@ -134,7 +134,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
134
134
|
---
|
|
135
135
|
|
|
136
136
|
Name: three
|
|
137
|
-
Version: 0.
|
|
137
|
+
Version: 0.186.1
|
|
138
138
|
License: MIT
|
|
139
139
|
Bundled: false (peer dependency)
|
|
140
140
|
Description: JavaScript 3D library
|
|
@@ -146,7 +146,7 @@ License Text:
|
|
|
146
146
|
|
|
147
147
|
The MIT License
|
|
148
148
|
|
|
149
|
-
Copyright © 2010-
|
|
149
|
+
Copyright © 2010-2026 three.js authors
|
|
150
150
|
|
|
151
151
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
152
152
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var bundledTranscoderUrls={"basis_transcoder.js":new URL("./basis_transcoder.js",import.meta.url).href,"basis_transcoder.wasm":new URL("./basis_transcoder.wasm",import.meta.url).href},resolveBundledTranscoderUrl=r=>(r=>Object.hasOwn(bundledTranscoderUrls,r))(
|
|
1
|
+
var bundledTranscoderUrls={"basis_transcoder.js":new URL("./basis_transcoder.js",import.meta.url).href,"basis_transcoder.wasm":new URL("./basis_transcoder.wasm",import.meta.url).href},resolveBundledTranscoderUrl=r=>{const s=r.slice(r.lastIndexOf("/")+1);return(r=>Object.hasOwn(bundledTranscoderUrls,r))(s)?bundledTranscoderUrls[s]:r};export{resolveBundledTranscoderUrl};
|