@tileflow/maps 0.1.0-alpha.10 → 0.1.0-alpha.11
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/README.md +7 -9
- package/THIRD_PARTY_NOTICES.md +5 -4
- package/assets/README.md +11 -8
- package/assets/soundings/icons/soundings-buoy-cardinal.svg +1 -1
- package/assets/soundings/icons/soundings-buoy-pillar.svg +10 -0
- package/assets/soundings/icons/soundings-buoy-port.svg +1 -1
- package/assets/soundings/icons/soundings-buoy-starboard.svg +1 -1
- package/assets/soundings/icons/soundings-harbor.svg +1 -1
- package/assets/soundings/icons/soundings-light-flare.svg +1 -1
- package/assets/soundings/icons/soundings-lighthouse.svg +1 -1
- package/assets/soundings/icons/soundings-wreck.svg +1 -1
- package/assets/soundings/icons/tileflow.icons.json +37 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +161 -6
- package/docs/design-and-assets.md +13 -8
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -157,15 +157,13 @@ own colors.
|
|
|
157
157
|
southeast at dawn, southwest at dusk and western moonlight at night. Monochrome has distinct
|
|
158
158
|
directions and strengths. Tileflow holds zoom 14+ values; Standard varies intensity below z14.
|
|
159
159
|
Shading differs; `controller.setSun({date, location})` uses the real sun instead of presets.
|
|
160
|
+
Landmark material profiles and subtle dusk/night illumination are covered in
|
|
161
|
+
[3D buildings](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/buildings-3d.md).
|
|
160
162
|
The buildings' `threeDimensional.lighting` and `shadows` options control the effect, and each
|
|
161
163
|
theme's `lighting.sun.shadowIntensity` and `lighting.ambient` control its strength.
|
|
162
164
|
Street lights are opt-in: set `roads.streetLights.enabled: true`.
|
|
163
|
-
Core
|
|
164
|
-
|
|
165
|
-
(less on low buildings). Exterior corners have a 0.8 m radius and the roof/wall junction has a narrow
|
|
166
|
-
lighting transition; roofs keep their authored colour. Streets enables soft three-metre contact
|
|
167
|
-
shadows without dark overlaps; `buildings.threeDimensional.occlusion: false` disables them.
|
|
168
|
-
Core replaces the extrusion fallback's blurred bands, styled by `buildings.contactShadow`.
|
|
165
|
+
Core adds contact shade and rounded exterior corners. `buildings.threeDimensional.occlusion: false`
|
|
166
|
+
disables contact shade and model ambient occlusion; `buildings.contactShadow` styles the flat fallback.
|
|
169
167
|
Streets selects Core's `labels.roadPlacement: 'ground'`: street names follow the road plane below
|
|
170
168
|
buildings; POIs, transit names and shields remain above. Disabling roads omits their names.
|
|
171
169
|
Road rings, ramp and surface ordering use [Core's replaceable defaults](../core/docs/cartographic-defaults.md).
|
|
@@ -256,9 +254,9 @@ The GitHub-distributed `@tileflow/community-maps` package exports `cyberpunk`, `
|
|
|
256
254
|
`superTileWorld`, plus each map's font and icon descriptors. Install an exact Git commit using
|
|
257
255
|
the instructions and compatible Core version in that repository.
|
|
258
256
|
|
|
259
|
-
Soundings is not a navigation product
|
|
260
|
-
|
|
261
|
-
|
|
257
|
+
Soundings is not a navigation product; its depth-band edges are approximate. It draws Nautical
|
|
258
|
+
marks with its chart symbols and a "Not for navigation" notice; other maps opt in with
|
|
259
|
+
`marine: 'nautical'` (see Core's Nautical marks guide).
|
|
262
260
|
|
|
263
261
|
## Themes and assets
|
|
264
262
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -105,16 +105,17 @@ attribution.
|
|
|
105
105
|
|
|
106
106
|
## Nautical-chart references
|
|
107
107
|
|
|
108
|
-
The `soundings` map and its
|
|
108
|
+
The `soundings` map and its eleven SVG symbols and patterns are original Tileflow code and artwork.
|
|
109
109
|
Its visual grammar was informed by NOAA's
|
|
110
110
|
[Historical Map & Chart Collection](https://historicalcharts.noaa.gov/) and the IHO
|
|
111
111
|
[S-4 and INT 1 standards index](https://iho.int/standards-and-specifications) as cartographic
|
|
112
112
|
references. This package does not include or redistribute NOAA chart images, IHO publication
|
|
113
113
|
artwork, official symbol sheets, fonts, hydrographic surveys, or navigation data.
|
|
114
114
|
|
|
115
|
-
The map can visualize broad GEBCO-derived bathymetric bands
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
The map can visualize broad GEBCO-derived bathymetric bands and `nautical-v1` navigation marks
|
|
116
|
+
exposed by the selected data sources. Neither is packaged here; the bands are not navigation-grade
|
|
117
|
+
soundings, and the marks keep the attribution of their own source. Soundings is a general-purpose
|
|
118
|
+
visual map, not a nautical chart for navigation.
|
|
118
119
|
|
|
119
120
|
## Siegfried Map reference and terrain data
|
|
120
121
|
|
package/assets/README.md
CHANGED
|
@@ -66,15 +66,18 @@ wetland. The 18 runtime IDs use `siegfried-<motif>` for the historical light tre
|
|
|
66
66
|
packaged Cormorant Garamond faces selected by both themes. See `siegfried/README.md` and the
|
|
67
67
|
package-level `THIRD_PARTY_NOTICES.md` for provenance and licensing.
|
|
68
68
|
|
|
69
|
-
The Soundings directory contains
|
|
69
|
+
The Soundings directory contains eleven original nautical symbols and intrinsic-size patterns:
|
|
70
70
|
`soundings-harbor`, `soundings-lighthouse`, `soundings-light-flare`, `soundings-buoy-port`,
|
|
71
|
-
`soundings-buoy-starboard`, `soundings-buoy-cardinal`, `soundings-
|
|
72
|
-
`soundings-rock-awash`, `soundings-paper-grain`, and `soundings-water-dots`.
|
|
73
|
-
paper-chart concepts without bundling a historical chart, specification
|
|
74
|
-
data. Official Soundings
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
71
|
+
`soundings-buoy-starboard`, `soundings-buoy-cardinal`, `soundings-buoy-pillar`,
|
|
72
|
+
`soundings-wreck`, `soundings-rock-awash`, `soundings-paper-grain`, and `soundings-water-dots`.
|
|
73
|
+
They express familiar paper-chart concepts without bundling a historical chart, specification
|
|
74
|
+
artwork, or navigation data. Official Soundings draws its paper and water patterns and, through
|
|
75
|
+
theme `nautical.*` image tokens, the buoy, light, lighthouse, wreck, and harbor symbols for its
|
|
76
|
+
Nautical marks. `tileflow.icons.json` declares those eight point symbols as SDF icons, drawn in the
|
|
77
|
+
central 12 of 24 pixels, so each mark takes its own colour; `soundings-rock-awash` remains
|
|
78
|
+
fixed-colour artwork and is unused because rocks are drawn as chart crosses. A generic World POI is
|
|
79
|
+
deliberately not relabelled as a harbour. Soundings uses GEBCO-derived depth bands only as broad
|
|
80
|
+
cartographic context, and neither it nor its Nautical marks is a navigation product.
|
|
78
81
|
|
|
79
82
|
The Blueprint directory contains four original intrinsic-size patterns and one original
|
|
80
83
|
technical symbol: `blueprint-grid`, `blueprint-building-hatch`,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
2
|
<title>Cardinal buoy</title>
|
|
3
3
|
<desc>Original Tileflow double-cone cardinal buoy pictogram.</desc>
|
|
4
4
|
<g fill="#000000">
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
|
+
<title>Pillar buoy</title>
|
|
3
|
+
<desc>Original Tileflow pillar buoy pictogram for buoys without a lateral or cardinal shape.</desc>
|
|
4
|
+
<g fill="#000000">
|
|
5
|
+
<circle cx="16" cy="4.4" r="2.6"/>
|
|
6
|
+
<rect x="14.7" y="5.6" width="2.6" height="8"/>
|
|
7
|
+
<path d="M11.4 12.4h9.2l2.7 14.3H8.7l2.7-14.3Z"/>
|
|
8
|
+
<path d="M5.5 28.1h21a1.3 1.3 0 0 1 0 2.6h-21a1.3 1.3 0 0 1 0-2.6Z"/>
|
|
9
|
+
</g>
|
|
10
|
+
</svg>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
2
|
<title>Port-hand buoy</title>
|
|
3
3
|
<desc>Original Tileflow can-shaped lateral buoy pictogram.</desc>
|
|
4
4
|
<g fill="#000000">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
2
|
<title>Starboard-hand buoy</title>
|
|
3
3
|
<desc>Original Tileflow conical lateral buoy pictogram.</desc>
|
|
4
4
|
<g fill="#000000">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
2
|
<title>Harbor</title>
|
|
3
3
|
<desc>Original Tileflow anchor pictogram.</desc>
|
|
4
4
|
<g fill="none" stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.4">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
2
|
<title>Navigational light flare</title>
|
|
3
3
|
<desc>Original Tileflow radial light pictogram.</desc>
|
|
4
4
|
<g fill="none" stroke="#000000" stroke-linecap="round" stroke-width="2.2">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
2
|
<title>Lighthouse</title>
|
|
3
3
|
<desc>Original Tileflow lighthouse silhouette.</desc>
|
|
4
4
|
<g fill="#000000">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="-16 -16 64 64">
|
|
2
2
|
<title>Wreck</title>
|
|
3
3
|
<desc>Original Tileflow broken-hull wreck pictogram.</desc>
|
|
4
4
|
<path d="M6.2 18.2h7.3l2.5 3.2 2.5-3.2h7.3l-3.4 8.3H9.6l-3.4-8.3Z" fill="#000000"/>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"icons": {
|
|
4
|
+
"soundings-buoy-cardinal": {
|
|
5
|
+
"representation": "sdf",
|
|
6
|
+
"defaults": {"color": "#263D3F", "haloColor": "#F7FBF8", "haloWidth": 1, "haloBlur": 0}
|
|
7
|
+
},
|
|
8
|
+
"soundings-buoy-pillar": {
|
|
9
|
+
"representation": "sdf",
|
|
10
|
+
"defaults": {"color": "#263D3F", "haloColor": "#F7FBF8", "haloWidth": 1, "haloBlur": 0}
|
|
11
|
+
},
|
|
12
|
+
"soundings-buoy-port": {
|
|
13
|
+
"representation": "sdf",
|
|
14
|
+
"defaults": {"color": "#263D3F", "haloColor": "#F7FBF8", "haloWidth": 1, "haloBlur": 0}
|
|
15
|
+
},
|
|
16
|
+
"soundings-buoy-starboard": {
|
|
17
|
+
"representation": "sdf",
|
|
18
|
+
"defaults": {"color": "#263D3F", "haloColor": "#F7FBF8", "haloWidth": 1, "haloBlur": 0}
|
|
19
|
+
},
|
|
20
|
+
"soundings-harbor": {
|
|
21
|
+
"representation": "sdf",
|
|
22
|
+
"defaults": {"color": "#263D3F", "haloColor": "#F7FBF8", "haloWidth": 1, "haloBlur": 0}
|
|
23
|
+
},
|
|
24
|
+
"soundings-light-flare": {
|
|
25
|
+
"representation": "sdf",
|
|
26
|
+
"defaults": {"color": "#B12A73", "haloColor": "#F7FBF8", "haloWidth": 0.5, "haloBlur": 0}
|
|
27
|
+
},
|
|
28
|
+
"soundings-lighthouse": {
|
|
29
|
+
"representation": "sdf",
|
|
30
|
+
"defaults": {"color": "#263D3F", "haloColor": "#F7FBF8", "haloWidth": 1, "haloBlur": 0}
|
|
31
|
+
},
|
|
32
|
+
"soundings-wreck": {
|
|
33
|
+
"representation": "sdf",
|
|
34
|
+
"defaults": {"color": "#263D3F", "haloColor": "#F7FBF8", "haloWidth": 1, "haloBlur": 0}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -769,7 +769,7 @@ declare const soundings: {
|
|
|
769
769
|
readonly projection: "mercator";
|
|
770
770
|
readonly marine: {
|
|
771
771
|
readonly bathymetry: _tileflow_core.TileflowBathymetryConfig;
|
|
772
|
-
readonly nautical:
|
|
772
|
+
readonly nautical: {};
|
|
773
773
|
};
|
|
774
774
|
readonly terrain: "none";
|
|
775
775
|
readonly modules: {
|
|
@@ -786,6 +786,7 @@ declare const soundings: {
|
|
|
786
786
|
readonly labels: _tileflow_core.TileflowLabelsModuleConfig;
|
|
787
787
|
readonly land: _tileflow_core.TileflowLandModuleConfig;
|
|
788
788
|
readonly landforms: _tileflow_core.TileflowLandformsModuleConfig;
|
|
789
|
+
readonly nautical: _tileflow_core.TileflowNauticalModuleConfig;
|
|
789
790
|
readonly poi: Readonly<{
|
|
790
791
|
readonly op: "disable";
|
|
791
792
|
}>;
|
package/dist/index.js
CHANGED
|
@@ -103,6 +103,7 @@ var ownerTokenGroups = {
|
|
|
103
103
|
labels: ["labels", "poi", "transit"],
|
|
104
104
|
land: ["land", "landcover", "landuse", "surface"],
|
|
105
105
|
landforms: ["landforms", "labels", "surface"],
|
|
106
|
+
nautical: ["hydro", "labels", "poi", "surface"],
|
|
106
107
|
poi: ["poi", "labels", "transit"],
|
|
107
108
|
roads: ["roads"],
|
|
108
109
|
terrain: ["terrain", "landcover", "surface", "labels"],
|
|
@@ -230,6 +231,10 @@ function bindOfficialMapTheme(map) {
|
|
|
230
231
|
}
|
|
231
232
|
const bind = (value, path, owner, semanticPath, insideExpression = false, property) => {
|
|
232
233
|
if (property !== void 0 && classifyTileflowVisualProperty(property, value) === "number") {
|
|
234
|
+
if (Array.isArray(value) && path.includes(".modelLighting.") && ["emissiveHeight", "hue", "saturation", "lightness"].includes(property))
|
|
235
|
+
return value.map(
|
|
236
|
+
(entry, index) => bindNumericOutput(entry, `${path}[${index}]`, `${semanticPath}.${index}`)
|
|
237
|
+
);
|
|
233
238
|
return bindNumericOutput(value, path, semanticPath);
|
|
234
239
|
}
|
|
235
240
|
if (typeof value === "string") {
|
|
@@ -7405,6 +7410,7 @@ import {
|
|
|
7405
7410
|
labels as labels6,
|
|
7406
7411
|
land as land6,
|
|
7407
7412
|
landforms as landforms6,
|
|
7413
|
+
nautical,
|
|
7408
7414
|
renderPass as renderPass7,
|
|
7409
7415
|
transit as transit6,
|
|
7410
7416
|
water as water6,
|
|
@@ -7515,6 +7521,19 @@ var soundingsTheme = defineOfficialTheme({
|
|
|
7515
7521
|
rail: soundingsPalette.inkMuted
|
|
7516
7522
|
}
|
|
7517
7523
|
},
|
|
7524
|
+
// Nautical marks use the chart symbols of this directory. They are single-colour silhouettes:
|
|
7525
|
+
// buoys and light flares take each mark's own colour from the data, the others print in ink.
|
|
7526
|
+
images: {
|
|
7527
|
+
"nautical.buoy": "soundings-buoy-pillar",
|
|
7528
|
+
"nautical.buoy.cardinal": "soundings-buoy-cardinal",
|
|
7529
|
+
"nautical.buoy.port": "soundings-buoy-port",
|
|
7530
|
+
"nautical.buoy.starboard": "soundings-buoy-starboard",
|
|
7531
|
+
"nautical.harbour": "soundings-harbor",
|
|
7532
|
+
"nautical.light": "soundings-light-flare",
|
|
7533
|
+
"nautical.lighthouse": "soundings-lighthouse",
|
|
7534
|
+
"nautical.port": "soundings-harbor",
|
|
7535
|
+
"nautical.wreck": "soundings-wreck"
|
|
7536
|
+
},
|
|
7518
7537
|
typography: {
|
|
7519
7538
|
font: "Noto Sans Regular",
|
|
7520
7539
|
letterSpacing: 0.025,
|
|
@@ -7530,6 +7549,7 @@ var soundingsTheme = defineOfficialTheme({
|
|
|
7530
7549
|
position: [1.15, 210, 28]
|
|
7531
7550
|
}
|
|
7532
7551
|
});
|
|
7552
|
+
var chartInk = { color: soundingsPalette.ink, haloColor: soundingsPalette.water };
|
|
7533
7553
|
var soundings = bindOfficialMapTheme(
|
|
7534
7554
|
defineMap6({
|
|
7535
7555
|
id: "soundings",
|
|
@@ -7562,7 +7582,7 @@ var soundings = bindOfficialMapTheme(
|
|
|
7562
7582
|
})
|
|
7563
7583
|
}
|
|
7564
7584
|
}),
|
|
7565
|
-
nautical:
|
|
7585
|
+
nautical: {}
|
|
7566
7586
|
},
|
|
7567
7587
|
terrain: "none",
|
|
7568
7588
|
modules: {
|
|
@@ -7834,9 +7854,21 @@ var soundings = bindOfficialMapTheme(
|
|
|
7834
7854
|
}
|
|
7835
7855
|
}
|
|
7836
7856
|
}),
|
|
7857
|
+
// Marks keep the module's data-driven colours and placement; Soundings only sets its
|
|
7858
|
+
// printed ink. Technical magenta stays on operational areas, traffic separation and cables.
|
|
7859
|
+
nautical: nautical({
|
|
7860
|
+
beacons: { marker: { strokeColor: soundingsPalette.ink } },
|
|
7861
|
+
buoys: { icon: { haloColor: soundingsPalette.ink }, text: chartInk },
|
|
7862
|
+
harbours: { icon: chartInk, text: { ...chartInk, color: soundingsPalette.inkMuted } },
|
|
7863
|
+
hazards: { marker: { strokeColor: soundingsPalette.ink }, text: chartInk },
|
|
7864
|
+
lighthouses: { icon: chartInk, text: chartInk },
|
|
7865
|
+
lights: { text: { ...chartInk, color: soundingsPalette.inkMuted } },
|
|
7866
|
+
ports: { icon: chartInk, text: chartInk },
|
|
7867
|
+
wrecks: { icon: chartInk, text: chartInk }
|
|
7868
|
+
}),
|
|
7837
7869
|
// A broad transport category also contains airports, bus terminals and rail stations.
|
|
7838
|
-
// Painting all of them with a harbor glyph would be semantically false;
|
|
7839
|
-
//
|
|
7870
|
+
// Painting all of them with a harbor glyph would be semantically false; harbours and ports
|
|
7871
|
+
// come from the dedicated Nautical layer instead of reinterpreting the World POI contract.
|
|
7840
7872
|
poi: disable4(),
|
|
7841
7873
|
roads: disable4(),
|
|
7842
7874
|
transit: withRenderStack7(
|
|
@@ -8165,6 +8197,7 @@ import {
|
|
|
8165
8197
|
refineRenderTarget as refineRenderTarget5,
|
|
8166
8198
|
renderPass as renderPass10,
|
|
8167
8199
|
roads as roads6,
|
|
8200
|
+
token as token9,
|
|
8168
8201
|
transit as transit7,
|
|
8169
8202
|
water as water7,
|
|
8170
8203
|
withRenderStack as withRenderStack10,
|
|
@@ -9969,6 +10002,46 @@ var streetsLighting = {
|
|
|
9969
10002
|
monochrome: monochromeLighting
|
|
9970
10003
|
};
|
|
9971
10004
|
|
|
10005
|
+
// src/official/streets-model-lighting.ts
|
|
10006
|
+
function streetsModelLighting(preset, family) {
|
|
10007
|
+
const mono = family === "monochrome";
|
|
10008
|
+
const dark = preset === "dusk" || preset === "night";
|
|
10009
|
+
const brightness = mono ? { day: 0.5027777777777778, dawn: 0.41869713699376476, dusk: 0.01331186036230345, night: 0 }[preset] : {
|
|
10010
|
+
day: 0.4777777777777778,
|
|
10011
|
+
dawn: 0.3964860412365071,
|
|
10012
|
+
dusk: 0.026970197755280183,
|
|
10013
|
+
night: 0.013517295842482737
|
|
10014
|
+
}[preset];
|
|
10015
|
+
const share = (low, high) => Math.min(1, Math.max(0, (brightness - low) / (high - low)));
|
|
10016
|
+
const day = share(0.2, 0.4), window = share(0, 0.15), neutral = share(0.16, 0.4);
|
|
10017
|
+
const wall = !dark ? "#FFFFFF" : mono ? preset === "dusk" ? "#F1F1F1" : "#F0F0F0" : family === "faded" ? preset === "dusk" ? "#FDF0DD" : "#FDEFD9" : preset === "dusk" ? "#FDE6CD" : "#FDE4C8";
|
|
10018
|
+
return {
|
|
10019
|
+
colors: {
|
|
10020
|
+
"buildings.modelEmission": wall,
|
|
10021
|
+
"buildings.modelRoof": mono ? "#F3F3F3" : family === "faded" ? "#FDF5EF" : "#FDF1E9"
|
|
10022
|
+
},
|
|
10023
|
+
numbers: {
|
|
10024
|
+
"buildings.modelEmission.strength": (0.1 + 0.7 * share(0.45, 0.5)) * (mono && dark ? 0.5 : 1),
|
|
10025
|
+
"buildings.modelEmission.start": 0.5 * (1 - day),
|
|
10026
|
+
"buildings.modelEmission.end": day,
|
|
10027
|
+
"buildings.modelEmission.curve": 0.8 - 0.2 * day,
|
|
10028
|
+
"buildings.modelDoor.strength": (mono ? 0.2 : 1.5) * (1 - day) + 2.5 * day,
|
|
10029
|
+
"buildings.modelLogo.mix": 0.3 * day,
|
|
10030
|
+
"buildings.modelWindow.strength": (mono ? 0.1 : 0.5) * (1 - day) + 0.4 * day,
|
|
10031
|
+
"buildings.modelWindow.variation": 0.3 * (1 - day),
|
|
10032
|
+
"buildings.modelWindow.hueLow": 200 * window,
|
|
10033
|
+
"buildings.modelWindow.hueHigh": 90 + 125 * window,
|
|
10034
|
+
"buildings.modelWindow.saturationLow": mono ? 0 : 20 + 80 * window,
|
|
10035
|
+
"buildings.modelWindow.saturationHigh": mono ? 0 : 100,
|
|
10036
|
+
"buildings.modelWindow.lightnessLow": 87 - 17 * window,
|
|
10037
|
+
"buildings.modelWindow.lightnessHigh": 87 - 7 * window,
|
|
10038
|
+
"buildings.modelOther.saturation": mono ? 0 : 55 * (1 - neutral),
|
|
10039
|
+
"buildings.modelOther.lightnessLow": 80 + 20 * neutral,
|
|
10040
|
+
"buildings.modelOther.lightnessHigh": 90 + 10 * neutral
|
|
10041
|
+
}
|
|
10042
|
+
};
|
|
10043
|
+
}
|
|
10044
|
+
|
|
9972
10045
|
// src/official/streets-road-colors.ts
|
|
9973
10046
|
var standardRoadCasingProfiles = {
|
|
9974
10047
|
"default-dawn": {
|
|
@@ -10657,7 +10730,19 @@ function calibratedStreetsColors(preset, theme) {
|
|
|
10657
10730
|
function streetsPaletteColors(preset, colorTheme) {
|
|
10658
10731
|
return {
|
|
10659
10732
|
...calibratedStreetsColors(preset, colorTheme),
|
|
10660
|
-
...streetsCartographyColors(colorTheme, preset)
|
|
10733
|
+
...streetsCartographyColors(colorTheme, preset),
|
|
10734
|
+
"buildings.floodLight": !isDarkStreetsPreset(preset) ? "#FFFFFF" : colorTheme === "monochrome" ? "#E5E5E5" : colorTheme === "faded" ? "#F8E4C4" : "#F5CFA8",
|
|
10735
|
+
...streetsModelLighting(preset, colorTheme).colors
|
|
10736
|
+
};
|
|
10737
|
+
}
|
|
10738
|
+
function streetsLightingNumbers(preset, colorTheme) {
|
|
10739
|
+
const dark = isDarkStreetsPreset(preset);
|
|
10740
|
+
return {
|
|
10741
|
+
"buildings.floodLight.intensity": dark && colorTheme !== "monochrome" ? 0.3 : 0,
|
|
10742
|
+
// Light colours already include the Faded lookup table; lamp activation uses the
|
|
10743
|
+
// corresponding untransformed brightness, independently of that appearance change.
|
|
10744
|
+
"buildings.floodLight.brightnessScale": colorTheme === "faded" ? { day: 1, dawn: 0.9203658119566795, dusk: 0.47333738050439994, night: 0.42688225390661877 }[preset] : 1,
|
|
10745
|
+
...streetsModelLighting(preset, colorTheme).numbers
|
|
10661
10746
|
};
|
|
10662
10747
|
}
|
|
10663
10748
|
var streetsFonts = {
|
|
@@ -10692,7 +10777,7 @@ var streetsLightTheme = defineTheme3({
|
|
|
10692
10777
|
colorScheme: "light",
|
|
10693
10778
|
tokens: {
|
|
10694
10779
|
color: streetsPaletteColors("day", "default"),
|
|
10695
|
-
number:
|
|
10780
|
+
number: streetsLightingNumbers("day", "default"),
|
|
10696
10781
|
font: streetsFonts,
|
|
10697
10782
|
image: { ...streetsImages, ...streetsPoiImageTokens("light") }
|
|
10698
10783
|
},
|
|
@@ -10718,7 +10803,7 @@ var streetsDarkTheme = defineTheme3({
|
|
|
10718
10803
|
colorScheme: "dark",
|
|
10719
10804
|
tokens: {
|
|
10720
10805
|
color: streetsPaletteColors("night", "default"),
|
|
10721
|
-
number:
|
|
10806
|
+
number: streetsLightingNumbers("night", "default"),
|
|
10722
10807
|
font: streetsFonts,
|
|
10723
10808
|
image: {
|
|
10724
10809
|
...streetsImages,
|
|
@@ -10756,6 +10841,7 @@ function defineStreetsPaletteTheme(name, preset, colorTheme) {
|
|
|
10756
10841
|
lighting: streetsLighting[colorTheme][preset],
|
|
10757
10842
|
tokens: {
|
|
10758
10843
|
color: streetsPaletteColors(preset, colorTheme),
|
|
10844
|
+
number: streetsLightingNumbers(preset, colorTheme),
|
|
10759
10845
|
...imageVariant ? { image: streetsPoiImageTokens(imageVariant) } : {}
|
|
10760
10846
|
}
|
|
10761
10847
|
});
|
|
@@ -13204,6 +13290,75 @@ var streets = bindOfficialMapTheme(
|
|
|
13204
13290
|
buildings6({
|
|
13205
13291
|
mode: "flat",
|
|
13206
13292
|
// 'flat' | '3d'.
|
|
13293
|
+
threeDimensional: {
|
|
13294
|
+
floodLight: {
|
|
13295
|
+
intensity: token9.number("buildings.floodLight.intensity"),
|
|
13296
|
+
brightnessScale: token9.number("buildings.floodLight.brightnessScale"),
|
|
13297
|
+
color: token9.color("buildings.floodLight")
|
|
13298
|
+
},
|
|
13299
|
+
modelLighting: {
|
|
13300
|
+
wall: {
|
|
13301
|
+
emissiveStrength: token9.number("buildings.modelEmission.strength"),
|
|
13302
|
+
emissiveColor: token9.color("buildings.modelEmission"),
|
|
13303
|
+
emissiveHeight: [
|
|
13304
|
+
token9.number("buildings.modelEmission.start"),
|
|
13305
|
+
token9.number("buildings.modelEmission.end"),
|
|
13306
|
+
0,
|
|
13307
|
+
1,
|
|
13308
|
+
token9.number("buildings.modelEmission.curve")
|
|
13309
|
+
],
|
|
13310
|
+
color: token9.color("buildings.modelEmission"),
|
|
13311
|
+
roughness: 1,
|
|
13312
|
+
metallic: 0
|
|
13313
|
+
},
|
|
13314
|
+
roof: { color: token9.color("buildings.modelRoof"), roughness: 1, metallic: 0 },
|
|
13315
|
+
window: {
|
|
13316
|
+
roughness: 0,
|
|
13317
|
+
metallic: 1,
|
|
13318
|
+
emissiveStrength: token9.number("buildings.modelWindow.strength"),
|
|
13319
|
+
emissiveVariation: token9.number("buildings.modelWindow.variation"),
|
|
13320
|
+
emissiveHeight: [0, 0.9, 0, 1, 0.5],
|
|
13321
|
+
colorVariation: {
|
|
13322
|
+
hue: [
|
|
13323
|
+
token9.number("buildings.modelWindow.hueLow"),
|
|
13324
|
+
token9.number("buildings.modelWindow.hueHigh")
|
|
13325
|
+
],
|
|
13326
|
+
saturation: [
|
|
13327
|
+
token9.number("buildings.modelWindow.saturationLow"),
|
|
13328
|
+
token9.number("buildings.modelWindow.saturationHigh")
|
|
13329
|
+
],
|
|
13330
|
+
lightness: [
|
|
13331
|
+
token9.number("buildings.modelWindow.lightnessLow"),
|
|
13332
|
+
token9.number("buildings.modelWindow.lightnessHigh")
|
|
13333
|
+
],
|
|
13334
|
+
space: "linear"
|
|
13335
|
+
}
|
|
13336
|
+
},
|
|
13337
|
+
...Object.fromEntries(
|
|
13338
|
+
["unclassified", "door", "lamp", "logo"].map((role) => [
|
|
13339
|
+
role,
|
|
13340
|
+
{
|
|
13341
|
+
roughness: 1,
|
|
13342
|
+
metallic: 0,
|
|
13343
|
+
emissiveStrength: role === "door" ? token9.number("buildings.modelDoor.strength") : role === "logo" ? 0.6 : 0,
|
|
13344
|
+
colorMix: role === "logo" ? token9.number("buildings.modelLogo.mix") : 1,
|
|
13345
|
+
colorVariation: {
|
|
13346
|
+
hue: [10, 70],
|
|
13347
|
+
saturation: [
|
|
13348
|
+
token9.number("buildings.modelOther.saturation"),
|
|
13349
|
+
token9.number("buildings.modelOther.saturation")
|
|
13350
|
+
],
|
|
13351
|
+
lightness: [
|
|
13352
|
+
token9.number("buildings.modelOther.lightnessLow"),
|
|
13353
|
+
token9.number("buildings.modelOther.lightnessHigh")
|
|
13354
|
+
],
|
|
13355
|
+
space: "linear"
|
|
13356
|
+
}
|
|
13357
|
+
}
|
|
13358
|
+
])
|
|
13359
|
+
)
|
|
13360
|
+
}
|
|
13361
|
+
},
|
|
13207
13362
|
businessCorridor: {
|
|
13208
13363
|
// This compatibility layer contains selected building footprints,
|
|
13209
13364
|
// not ground. Streets renders the derived business_area class through
|
|
@@ -99,18 +99,23 @@ depth-graded water, labelled band edges, continuous colour relief, multidirectio
|
|
|
99
99
|
port context, named ferry routes, and restrained technical magenta. Its initial camera faces the
|
|
100
100
|
Strait of Gibraltar, allowing an Iberian GEBCO pilot to exercise both Atlantic and Mediterranean
|
|
101
101
|
relief. It selects the public semantic compiler contract without importing or extending `streets`
|
|
102
|
-
and explicitly composes World with `bathymetry({display: 'hybrid'})`
|
|
103
|
-
|
|
102
|
+
and explicitly composes World with `bathymetry({display: 'hybrid'})` and the `nautical-v1`
|
|
103
|
+
navigation marks.
|
|
104
104
|
|
|
105
105
|
Vector bands come from `tileflow-bathymetry`; continuous colour relief and hillshade come from
|
|
106
|
-
`tileflow-bathymetry-dem`. The
|
|
107
|
-
|
|
106
|
+
`tileflow-bathymetry-dem`. The DEM treatment is balanced against the vector wash, depth labels, and
|
|
107
|
+
the navigation marks. Dashed outlines remain an honest
|
|
108
108
|
fallback traced from broad GEBCO band polygons until native contour geometry is released. Labels
|
|
109
109
|
show the absolute `min_depth` value, not an inferred range or vessel-specific safety contour.
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
Ferries are ordinary World context. Navigation marks come from `tileflow-nautical`: the theme's
|
|
111
|
+
`nautical.*` image tokens select the Soundings chart symbols for buoys (port can, starboard cone,
|
|
112
|
+
cardinal double cone, and a pillar for other buoys), lights, lighthouses, wrecks, harbours, and
|
|
113
|
+
ports. Buoys and light flares take each mark's own colour from the data; beacons stay small coloured
|
|
114
|
+
dots, rocks are chart crosses and stars, and lighthouse, wreck, harbour, and port symbols are
|
|
115
|
+
printed in the chart ink. Technical magenta remains reserved for operational overlays: restricted,
|
|
116
|
+
military, anchorage, and traffic-separation areas, traffic-separation lines, and cables. Coverage is
|
|
117
|
+
a faint tint before marks appear. The map shows a "Not for navigation" notice wherever it is
|
|
118
|
+
displayed. Soundings is reference cartography and is not a navigation product.
|
|
114
119
|
|
|
115
120
|
## siegfried
|
|
116
121
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tileflow/maps",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.11",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Official themed Streets, Baedeker, Cívica, 1777, Siegfried, Soundings, and Blueprint maps for Tileflow.",
|
|
6
6
|
"type": "module",
|
|
@@ -52,12 +52,12 @@
|
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@tileflow/core": ">=0.1.0-alpha.
|
|
55
|
+
"@tileflow/core": ">=0.1.0-alpha.37 <0.1.0-beta.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@maplibre/maplibre-gl-style-spec": "24.8.5",
|
|
59
59
|
"@maplibre/maplibre-gl-style-spec-v6": "npm:@maplibre/maplibre-gl-style-spec@26.4.4",
|
|
60
|
-
"@tileflow/core": "0.1.0-alpha.
|
|
60
|
+
"@tileflow/core": "0.1.0-alpha.37"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "tsup src/index.ts --format esm --dts --clean --no-splitting",
|