@tileflow/maps 0.1.0-alpha.16 → 0.1.0-alpha.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +70 -63
  2. package/THIRD_PARTY_NOTICES.md +7 -0
  3. package/assets/streets/build-trees.mjs +167 -273
  4. package/assets/streets/climate/NOTICE.txt +9 -0
  5. package/assets/streets/climate/build.py +47 -0
  6. package/assets/streets/climate/koppen-geiger-1991-2020.tif +0 -0
  7. package/assets/streets/climate/recipe.json +13 -0
  8. package/assets/streets/icons/streets-tree-columnar-dark.pattern.svg +200 -105
  9. package/assets/streets/icons/streets-tree-columnar.pattern.svg +200 -105
  10. package/assets/streets/icons/streets-tree-conifer-dark.pattern.svg +260 -200
  11. package/assets/streets/icons/streets-tree-conifer.pattern.svg +260 -200
  12. package/assets/streets/icons/streets-tree-open-dark.pattern.svg +170 -200
  13. package/assets/streets/icons/streets-tree-open.pattern.svg +170 -200
  14. package/assets/streets/icons/streets-tree-round-dark.pattern.svg +160 -158
  15. package/assets/streets/icons/streets-tree-round.pattern.svg +160 -158
  16. package/assets/streets/icons/streets-tree-tall-dark.pattern.svg +166 -156
  17. package/assets/streets/icons/streets-tree-tall.pattern.svg +166 -156
  18. package/assets/streets/icons/unified-day-aerialway.svg +11 -0
  19. package/assets/streets/icons/unified-day-airport.svg +11 -0
  20. package/assets/streets/icons/unified-day-bank.svg +11 -0
  21. package/assets/streets/icons/unified-day-bar.svg +11 -0
  22. package/assets/streets/icons/unified-day-beach.svg +11 -0
  23. package/assets/streets/icons/unified-day-beauty.svg +11 -0
  24. package/assets/streets/icons/unified-day-bookstore.svg +11 -0
  25. package/assets/streets/icons/unified-day-buddhist.svg +11 -0
  26. package/assets/streets/icons/unified-day-bus.svg +11 -0
  27. package/assets/streets/icons/unified-day-campsite.svg +11 -0
  28. package/assets/streets/icons/unified-day-car-repair.svg +11 -0
  29. package/assets/streets/icons/unified-day-car.svg +11 -0
  30. package/assets/streets/icons/unified-day-charging-station.svg +11 -0
  31. package/assets/streets/icons/unified-day-christian.svg +11 -0
  32. package/assets/streets/icons/unified-day-clothing.svg +11 -0
  33. package/assets/streets/icons/unified-day-coffee.svg +11 -0
  34. package/assets/streets/icons/unified-day-college.svg +11 -0
  35. package/assets/streets/icons/unified-day-community.svg +11 -0
  36. package/assets/streets/icons/unified-day-convenience.svg +11 -0
  37. package/assets/streets/icons/unified-day-dentist.svg +11 -0
  38. package/assets/streets/icons/unified-day-doctor.svg +11 -0
  39. package/assets/streets/icons/unified-day-dog-park.svg +11 -0
  40. package/assets/streets/icons/unified-day-drinking-water.svg +11 -0
  41. package/assets/streets/icons/unified-day-education.svg +11 -0
  42. package/assets/streets/icons/unified-day-electronics.svg +11 -0
  43. package/assets/streets/icons/unified-day-embassy.svg +11 -0
  44. package/assets/streets/icons/unified-day-fast-food.svg +11 -0
  45. package/assets/streets/icons/unified-day-ferry.svg +11 -0
  46. package/assets/streets/icons/unified-day-fire-station.svg +11 -0
  47. package/assets/streets/icons/unified-day-fitness.svg +11 -0
  48. package/assets/streets/icons/unified-day-florist.svg +11 -0
  49. package/assets/streets/icons/unified-day-food.svg +11 -0
  50. package/assets/streets/icons/unified-day-fuel.svg +11 -0
  51. package/assets/streets/icons/unified-day-garden.svg +11 -0
  52. package/assets/streets/icons/unified-day-golf.svg +11 -0
  53. package/assets/streets/icons/unified-day-grocery.svg +11 -0
  54. package/assets/streets/icons/unified-day-harbor.svg +11 -0
  55. package/assets/streets/icons/unified-day-hardware.svg +11 -0
  56. package/assets/streets/icons/unified-day-health.svg +11 -0
  57. package/assets/streets/icons/unified-day-jewish.svg +11 -0
  58. package/assets/streets/icons/unified-day-laundry.svg +11 -0
  59. package/assets/streets/icons/unified-day-library.svg +11 -0
  60. package/assets/streets/icons/unified-day-lodging.svg +11 -0
  61. package/assets/streets/icons/unified-day-major-transit.svg +11 -0
  62. package/assets/streets/icons/unified-day-mountain.svg +11 -0
  63. package/assets/streets/icons/unified-day-muslim.svg +11 -0
  64. package/assets/streets/icons/unified-day-natural.svg +11 -0
  65. package/assets/streets/icons/unified-day-nature.svg +11 -0
  66. package/assets/streets/icons/unified-day-parking-garage.svg +11 -0
  67. package/assets/streets/icons/unified-day-parking.svg +11 -0
  68. package/assets/streets/icons/unified-day-pharmacy.svg +11 -0
  69. package/assets/streets/icons/unified-day-playground.svg +11 -0
  70. package/assets/streets/icons/unified-day-plaza.svg +11 -0
  71. package/assets/streets/icons/unified-day-police.svg +11 -0
  72. package/assets/streets/icons/unified-day-post.svg +11 -0
  73. package/assets/streets/icons/unified-day-prison.svg +11 -0
  74. package/assets/streets/icons/unified-day-rail-light.svg +11 -0
  75. package/assets/streets/icons/unified-day-rail.svg +11 -0
  76. package/assets/streets/icons/unified-day-services.svg +11 -0
  77. package/assets/streets/icons/unified-day-shopping.svg +11 -0
  78. package/assets/streets/icons/unified-day-sport.svg +11 -0
  79. package/assets/streets/icons/unified-day-stadium.svg +11 -0
  80. package/assets/streets/icons/unified-day-swimming.svg +11 -0
  81. package/assets/streets/icons/unified-day-toilet.svg +11 -0
  82. package/assets/streets/icons/unified-day-town-hall.svg +11 -0
  83. package/assets/streets/icons/unified-day-waterfall.svg +11 -0
  84. package/assets/streets/icons/unified-day-worship.svg +11 -0
  85. package/assets/streets/models/streets-tree-columnar.far.glb +0 -0
  86. package/assets/streets/models/streets-tree-columnar.glb +0 -0
  87. package/assets/streets/models/streets-tree-conifer.far.glb +0 -0
  88. package/assets/streets/models/streets-tree-conifer.glb +0 -0
  89. package/assets/streets/models/streets-tree-open.far.glb +0 -0
  90. package/assets/streets/models/streets-tree-open.glb +0 -0
  91. package/assets/streets/models/streets-tree-round.far.glb +0 -0
  92. package/assets/streets/models/streets-tree-round.glb +0 -0
  93. package/assets/streets/models/streets-tree-tall.far.glb +0 -0
  94. package/assets/streets/models/streets-tree-tall.glb +0 -0
  95. package/dist/index.d.ts +829 -132
  96. package/dist/index.js +1397 -539
  97. package/package.json +3 -4
  98. package/docs/design-and-assets.md +0 -247
  99. package/docs/map-1777.md +0 -91
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tileflow/maps",
3
- "version": "0.1.0-alpha.16",
3
+ "version": "0.1.0-alpha.18",
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",
@@ -35,7 +35,6 @@
35
35
  "types": "./dist/index.d.ts",
36
36
  "files": [
37
37
  "assets",
38
- "docs",
39
38
  "dist",
40
39
  "THIRD_PARTY_NOTICES.md",
41
40
  "LICENSE"
@@ -52,12 +51,12 @@
52
51
  "access": "public"
53
52
  },
54
53
  "peerDependencies": {
55
- "@tileflow/core": ">=0.1.0-alpha.42 <0.1.0-beta.0"
54
+ "@tileflow/core": ">=0.1.0-alpha.45 <0.1.0-beta.0"
56
55
  },
57
56
  "devDependencies": {
58
57
  "@maplibre/maplibre-gl-style-spec": "24.8.5",
59
58
  "@maplibre/maplibre-gl-style-spec-v6": "npm:@maplibre/maplibre-gl-style-spec@26.4.4",
60
- "@tileflow/core": "0.1.0-alpha.42"
59
+ "@tileflow/core": "0.1.0-alpha.45"
61
60
  },
62
61
  "scripts": {
63
62
  "build": "tsup src/index.ts --format esm --dts --clean --no-splitting",
@@ -1,247 +0,0 @@
1
- # Map designs and assets
2
-
3
- ## Streets POIs
4
-
5
- Transport POIs with a recognized `network` use that network's symbol. The initial catalog covers
6
- `Metro de Madrid`, `Cercanías Madrid`, and `EMT Madrid`. Each network has one packaged SVG in a
7
- 24px cell, shared across all themes without recoloring the identity. Matching uses the source's
8
- exact network value, including on older World tiles without `mode`; it never guesses from a
9
- station name or applies a city logo to every station. Unknown or missing networks retain the
10
- existing mode/type/category pictogram. Other railway services and intercity buses keep their
11
- generic symbols. Sources and asset licenses are recorded in `THIRD_PARTY_NOTICES.md`.
12
-
13
- POIs use World ranks with category density: parks and transport retain more detail than
14
- businesses, hotels and religious sites. Gardens are limited to World filter ranks 0–1 at every
15
- zoom, keeping principal destinations while suppressing botanical collections and other minor
16
- garden POIs. World currently classifies both as `garden`, so some small independent gardens are
17
- also omitted. Other park and landmark types keep their usual eligibility.
18
-
19
- All categories share importance order; the two most important ranks precede streets. Discs need
20
- names except parking and toilets. Native perspective and collisions select labels. See
21
- [label placement](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/cartographic-defaults.md#label-density-and-perspective).
22
- Ordinary POI/transit names use 13 px, major destinations 18 px. World size rank zero alone does
23
- not enlarge small parks. Text padding falls from 6 px to 4 px between z16 and z17; collision
24
- determines which names fit.
25
-
26
- ## civica
27
-
28
- `civica` is a self-contained civic print design named “Cívica”. Pale paper, warm stone blocks,
29
- olive parkland, blue water, and vermilion landmarks give cities the character of an illustrated
30
- wall map. Broad urban shapes lead at overview scale; solid building masses, cream streets, and
31
- selected destinations describe the city. Large italic serif park titles and blue uppercase station
32
- names anchor the district drawing; smaller parks keep a quieter italic size, and condensed captions
33
- provide supporting detail. Fine paths and sparse landscape textures enter at closer zooms.
34
- It declares its complete World data selection,
35
- modules, render stacks, and theme directly,
36
- owns its patterns and symbols through `[civicaIcons]`, and selects its own packaged DM Serif Text
37
- Regular and Italic lettering, Barlow Semi Condensed detail labels, and Noto Sans Regular fallback
38
- through `[civicaFonts]`. Its graphic direction was informed by the
39
- [Inside the Beltway Washington DC print](https://www.etsy.com/listing/990932175/inside-the-belt-way-washington-dc).
40
- The map definition and vector artwork are original Tileflow work; no source map, image pixels,
41
- illustrations, or third-party style are included.
42
-
43
- Cívica changes its drawing and label hierarchy with scale:
44
-
45
- | Zoom | Cartographic treatment |
46
- | ----- | ------------------------------------------------------------------------------------------------------------- |
47
- | 0–6 | Continental and country lettering over broad land and water shapes. |
48
- | 7–11 | Regional roads, settlements, and landscape areas; global landcover fades out by z10. |
49
- | 12–14 | District names, broad pedestrian promenades, and generalized footprints from z13; eligible POIs use rank 0–1. |
50
- | 15–17 | Solid building masses and street names; POIs admit rank 2 from z15 and featured rank 3 from z17. |
51
- | 18–19 | Fine paths and their names enter progressively; trees and sparse botanical textures begin at z19. |
52
- | 20+ | Address numbers, sidewalks, and quiet industrial texture complete the close street view. |
53
-
54
- Buildings, park parcels, and water bodies have no outlines. Ordinary surface streets use one cream
55
- stroke, with broader widths at city and neighborhood scales to separate the printed blocks.
56
- Motorway, trunk, and bridge casings retain the main transport hierarchy. Pedestrian areas
57
- and roundabouts omit their extra outline, and tunnel hatches are disabled. Ordinary fine path lines
58
- are solid: cycleways begin at z17, footways and tracks at z17.5, paths at z18, and steps at z19. The
59
- corresponding labels wait until z18–20. Water remains a flat color at every zoom, and tree points
60
- have no stroke.
61
-
62
- The red building plate selects civic buildings directly and destination buildings only when
63
- `importanceTier` is at least 3. Tier-2 destinations use darker gray; lower-ranked destinations and
64
- ordinary buildings share the same warm-gray fill. It uses World `building_tone`; building height
65
- never determines landmark color.
66
- The generalized footprint pass ends at z15 with the same opacity at which the
67
- detail pass begins.
68
-
69
- POI symbols and names form one collision unit. Each category retains its own filter and layer
70
- (`placement.order: 'categories'`), and destinations listed first are placed first. Candidates
71
- must carry the schema-bound `poiCategory`, `poiFilterRank`, and `poiSizeRank` fields (`category`,
72
- `filter_rank`, and `size_rank` in World V1). Size ranks must be 0–16, filter ranks must be
73
- nonnegative, and the producer's `minZoom` (`min_zoom`) is honored when present. Landmarks, culture,
74
- parks, transport, and medical destinations can reach rank 3; other categories stop at rank 2.
75
- Food, retail, visitor amenities, and lodging begin at z17.5. Generic `public_transit_facility`
76
- POIs also wait until z17.5, while train stations retain their earlier schedule. Culture, education,
77
- public-service, and medical POIs with filter rank 2 or higher and size rank 16 enter at z17.5;
78
- rank-1 destinations and other valid size ranks retain their earlier schedule. These rules preserve
79
- major stations even when their size rank is 16 and leave room for parks and selected institutions
80
- at district scale. They use source categories and ranks without place-name or location exceptions.
81
- Park titles use DM Serif Text Italic, with larger type for size ranks 0–4. Transport uses Barlow
82
- Semi Condensed SemiBold in uppercase; supporting captions use Barlow Semi Condensed Regular.
83
- Classic OpenMapTiles data without those category and rank fields renders the base map without
84
- POIs; Cívica does not infer or retrofit those fields. All five font faces are packaged locally:
85
- DM Serif Text Regular and Italic, Barlow Semi Condensed Regular and SemiBold, and the Noto Sans
86
- Regular fallback.
87
-
88
- ## baedeker
89
-
90
- `baedeker` is a self-contained travel-atlas and town-plan design with open warm paper, fine coral
91
- building and residential hatching, paper-negative streets, dominant black railways, horizontally
92
- engraved cyan water, ring-stippled gardens, and browser-derived Mapterhorn contours. Travel POIs
93
- are rendered as compact serif labels without modern pictograms; stations and landmarks use the
94
- semibold face, so each category keeps its own layer and the categories listed first are placed
95
- first. It declares
96
- `[baedekerIcons]`, whose eight original Tileflow SVG patterns describe hachures, orchards, paper
97
- grain, public gardens, residential blocks, sand, water lines, and wetlands, plus
98
- `[baedekerFonts]`, its own package copy of Cormorant Garamond Regular, SemiBold, and Italic. Its
99
- visual grammar was informed by the
100
- [Baedeker / Karl Wagner & Debes collection](https://www.antiquemapsandprints.com/collections/baedeker-karl-wagner-debes)
101
- and Wikimedia Commons'
102
- [maps by Karl Baedeker of Italy](https://commons.wikimedia.org/wiki/Category:Maps_by_Karl_Baedeker_of_Italy).
103
- The package includes no historical scan, raster pixel, historical typeface, legend artwork,
104
- geospatial data, or source map; the style and patterns are original Tileflow work. The packaged
105
- Cormorant faces are unmodified upstream font software under the SIL Open Font License 1.1. No
106
- Mapterhorn terrain tile is packaged or redistributed. Baedeker is an official Tileflow map and is
107
- not affiliated with or endorsed by Baedeker or Wagner & Debes.
108
-
109
- ## 1777
110
-
111
- `map1777` is a self-contained printed-atlas design. It uses Core's semantic compiler, but
112
- it does not import or extend the `streets` map and it does not inherit Streets assets. It declares
113
- only `[map1777Icons]`, which contains eleven original material patterns in four palettes for paper,
114
- cultivated land, vegetation, settlements, sand, wetlands, and water. Its three Cormorant Garamond
115
- faces are packaged in `[map1777Fonts]`. Applications can import it directly or
116
- extend it like any other root.
117
-
118
- ## soundings
119
-
120
- `soundings` is a self-contained bathymetric-chart design with ivory land, thirteen-stop
121
- depth-graded water, labelled band edges, continuous colour relief, multidirectional seabed shading,
122
- port context, named ferry routes, and restrained technical magenta. Its initial camera faces the
123
- Strait of Gibraltar, allowing an Iberian GEBCO pilot to exercise both Atlantic and Mediterranean
124
- relief. It selects the public semantic compiler contract without importing or extending `streets`
125
- and explicitly composes World with `bathymetry({display: 'hybrid'})` and the `nautical-v1`
126
- navigation marks.
127
-
128
- Vector bands come from `tileflow-bathymetry`; continuous colour relief and hillshade come from
129
- `tileflow-bathymetry-dem`. The DEM treatment is balanced against the vector wash, depth labels, and
130
- the navigation marks. Dashed outlines remain an honest
131
- fallback traced from broad GEBCO band polygons until native contour geometry is released. Labels
132
- show the absolute `min_depth` value, not an inferred range or vessel-specific safety contour.
133
- Ferries are ordinary World context. Navigation marks come from `tileflow-nautical`: the theme's
134
- `nautical.*` image tokens select the Soundings chart symbols for buoys (port can, starboard cone,
135
- cardinal double cone, and a pillar for other buoys), lights, lighthouses, wrecks, harbours, marinas,
136
- ports, inland notice boards by function, distance marks, and small-craft facilities. Buoys, light
137
- flares, and notice boards take each mark's own colour from the data; beacons stay small coloured
138
- dots, rocks are chart crosses and stars, and the other symbols are printed in the chart ink. Light
139
- flares flash in their rhythm in browser maps. Bridges and berths are drawn as ink structures with
140
- their clearances, and marinas and harbours as light outlines. Technical magenta remains reserved for
141
- operational overlays: restricted, military, anchorage, and traffic-separation areas,
142
- traffic-separation lines, and submarine and overhead cables. Coverage is
143
- a faint tint before marks appear. The map shows a "Not for navigation" notice wherever it is
144
- displayed. Soundings is reference cartography and is not a navigation product.
145
-
146
- ## siegfried
147
-
148
- `siegfried` is a self-contained terrain atlas based on the visual grammar documented for
149
- swisstopo's nineteenth-century Siegfried Map. It does not import or extend `streets`. The default
150
- `light` theme preserves black, brown, blue, and an ivory paper substrate; browser-derived contours
151
- replace modern hillshade and retain the 30-metre Alpine cadence at detailed zooms. Rock and scree
152
- are re-engraved in key ink after the contour deck, while dedicated SVG motifs distinguish forest,
153
- glacier, wetland, gravel, orchard, and water. Its coordinated `dark` theme is explicitly a nocturnal
154
- engraver's proof, not a historical facsimile: it keeps identical geometry and semantic ink roles on
155
- charcoal paper. `[siegfriedIcons]` owns nine light and nine dark pattern variants,
156
- `[siegfriedFonts]` owns the locally packaged Cormorant Garamond Regular, SemiBold, and Italic faces,
157
- and `[siegfriedThemes]` exposes the two complete visual vocabularies for safe derivation.
158
-
159
- ## blueprint
160
-
161
- `blueprint` is a self-contained dark architectural-blueprint design centered on San Francisco.
162
- Fine technical road strokes, survey-like uppercase labels, precise building footprints, contour
163
- dimensions, and dedicated landscape and water hatches replace naturalistic map color. It declares
164
- the canonical Noto Sans glyph provider and only `[blueprintIcons]`, whose four original patterns
165
- and schematic POI node form its complete sprite vocabulary. Medical and transport callouts start
166
- before the other POI labels, so each category keeps its own layer, placed in the listed order.
167
- Prominent building height callouts use World `render_height`; the map does not require unpublished
168
- building names or raw heights.
169
-
170
- ## Shared themes and asset preparation
171
-
172
- `streetsThemes.light` and `streetsThemes.dark` are complete appearance documents consumed by the
173
- same semantic module structure. Selecting `dark` changes colors, typography roles, image roles, and
174
- lighting without changing a source, filter, layer order, zoom gate, collision rule, or module. Both
175
- sidewalk patterns live in the shared `[streetsIcons]` atlas and the selected theme resolves the
176
- semantic `roads.sidewalkPattern` image token to the correct asset.
177
-
178
- Streets places every POI category in World's importance order, with one density for the whole
179
- module: `filter_rank` and then `size_rank` decide which destinations win, so a metro station is not
180
- displaced by a nearby cash machine because of its category, and no category waits for a later
181
- zoom. Its labels give street and place names priority over everyday destinations; World's two most
182
- important ranks (`prominentRank: 1`) are placed before them, so landmarks such as Palais du Louvre,
183
- Plaza Mayor, or Battery Park remain at z14. Each destination is one collision unit made from a
184
- colored disc and its name in the category color: both must fit. Parking and public toilets are
185
- self-explanatory and appear as a disc alone; other unnamed POIs are omitted. Three-pixel icon and
186
- text padding keeps nearby names available without disabling collision. Portal-number labels are
187
- disabled.
188
-
189
- Pictograms follow World's transport `mode` first, then its POI `type`, then the category. World's
190
- own `icon` field is coarser (one `shop` for every store, one `transport` for metro, bus, and cable
191
- car), so Streets reads the type. `src/official/streets-poi.ts` owns the type and mode tables, the
192
- 85 pictograms, and their disc palette; `scripts/generate-streets-poi-icons.ts` writes each light
193
- disc and its `-dark` variant, a pale disc with a dark pictogram. Themes bind each type's pictogram
194
- through a `poi.pictogram.<id>` image token and each category's default pictogram through Core's
195
- `poi.<category>` image role, so a theme that replaces a category role replaces that category's
196
- default pictogram. The pictograms keep the CC0 Maki provenance documented in
197
- `THIRD_PARTY_NOTICES.md`.
198
-
199
- Regional hillshade uses the public Mapterhorn TileJSON endpoint with Terrarium encoding, from
200
- z5 to before z14. Day and night use separate highlight, accent, and shadow tokens. The DEM is a
201
- remote runtime dependency with its own attribution, and `terrain: 'none'` removes it. The layer
202
- adds shaded relief without displacing geometry. Flat building footprints, runtime-toggle
203
- extrusions, and the existing vegetation renderer remain separate from the hillshade.
204
-
205
- Road references use a compact Tileflow-owned family of generic rectangular and circular shields.
206
- The data's normalized `shield_kind` selects neutral, blue, green, red, orange, yellow, or circular
207
- artwork; `shield_text_color` independently selects the light or dark theme token. Unknown and
208
- unsupported networks fall back to the neutral rectangle with dark text instead of guessing a
209
- country from the spelling of `ref`. Both themes retain the same signaling colors.
210
-
211
- Streets has separate shield phases for scale, not separate hand-authored network layers. Overview
212
- uses pre-deduplicated point candidates; detail switches to repeated line placement. Both the fitted
213
- plate and its complete route reference are viewport-aligned, so shields remain horizontal as the
214
- map rotates or pitches. The rectangular base plate is 20 by 14 pixels with a one-pixel outline;
215
- the circular neutral base is 14 by 14. Both use 9-pixel bold text and a small width-only fit
216
- allowance. Streets limits shields to the motorway-through-tertiary hierarchy; collision padding
217
- and the overview candidate schedule keep regional views legible while preserving useful repetition
218
- at street scale.
219
-
220
- The two palettes are Tileflow-owned, deterministic snapshots calibrated from rendered Mapbox
221
- Standard `default/day` and `default/night` references on 2026-10-14. The [Standard playground](https://docs.mapbox.com/playground/standard-style/) is the visual
222
- reference; the map does not import its style JSON, assets, or runtime dependencies. Public roles such as `surface.background`,
223
- `landuse.industrial`, `landuse.medical`, `labels.settlement`, `labels.neighborhood`, and
224
- `labels.road` remain independently wired; `hydro.ocean` also separates Standard Night's deep sea
225
- from urban and inland water. An agent can alter one cartographic intent without
226
- knowing or perturbing the physical layer topology. Because Standard is evergreen, later parity work
227
- must be an explicit dated recalibration rather than an implicit network-dependent change.
228
-
229
- At detailed zooms, the road-bearing official maps round-cap ordinary surface-road and bridge
230
- feature endpoints so adjacent vector segments overlap their antialiasing fringe instead of exposing
231
- hairline cuts. Tunnel portals retain butt caps; Streets also keeps butt caps on
232
- steps and controlled surface approaches so those structural ends do not protrude into connected
233
- geometry. Streets pairs its blue/slate road decks with a darker casing that grows from
234
- 1 px at z15 to 2 px at z22; tunnel casings use the compact dashed rhythm of the calibrated reference.
235
-
236
- A theme is not a loose override cascade. Module styles explicitly reference roles such as
237
- `roads.motorway`, `labels.road`, and `hydro.water`; the selected complete theme resolves those
238
- references before MapLibre output is generated. Use `defaultTheme` for a deterministic default and
239
- `systemThemes` plus the runtime `theme="system"` selection when the browser should follow the OS.
240
-
241
- The directory descriptors point into this installed package. A map inherits its parent's icon or
242
- font list when the property is omitted. Declaring a list replaces the inherited list, a later
243
- directory wins for an exact duplicate ID, and `[]` selects no directories.
244
-
245
- `@tileflow/maps` has a peer dependency on `@tileflow/core`. Core owns the map language and compiler;
246
- this package owns the official map definitions, icon and pattern sources, Baedeker, Cívica,
247
- and Siegfried fonts, and their notices. Core never depends on this package.
package/docs/map-1777.md DELETED
@@ -1,91 +0,0 @@
1
- # 1777
2
-
3
- `map1777` adapts the ink and watercolor vocabulary of the 1777 cabinet atlas to current
4
- Tileflow World data. Pale cream paper, vermilion buildings, green landscape washes, fine
5
- agricultural strokes and serif lettering carry the style. 1777 describes the visual reference,
6
- not historical coverage.
7
-
8
- The reference is the large-scale manuscript cabinet atlas held by KBR. The visual study
9
- compared Namur, Uccle/Sonian Forest, Dilbeek, Mon Plaisir, Park Abbey and Sart-Bernard:
10
- urban blocks, estate gardens, open farmland and woodland need different marks.
11
-
12
- Mapped fields use three wash colors and three fine hatch directions, selected by feature ID;
13
- features without IDs use the first plate (including the current World landcover tiles). This changes the surface treatment within existing
14
- polygons, without drawing invented parcel boundaries. Woods and gardens use subtle pigment grain and fibers; their textures contain no tree
15
- silhouettes or repeated orchard dots. Modern residential zoning has a quiet fiber texture,
16
- so decorative rectangles do not compete with actual footprints. Study of the Brussels and Namur sheets informs the finer building divisions, pale water interiors and softly pooled bank pigment.
17
- Building outlines become more distinct as the camera approaches, allowing red blocks to read
18
- together at neighborhood scale. Opaque water covers shared bank edges at river confluences
19
- and its survey centerlines; small streams
20
- without polygons keep their ink strokes and intermittent marks. Ferry routes remain as fine,
21
- subdued dashes. Water names use dark italic ink, a soft water-colored halo and wider repetition
22
- spacing. Roads use ivory paper-colored interiors and fine brown borders, following the
23
- [Cabinet Map detail published by KBR](https://www.kbr.be/wp-content/uploads/2026/05/detail-van-de-kabinetskaart.png).
24
- Width carries the hierarchy; major roads do not use an ochre fill. Dawn and dusk warm the
25
- ivory, while night uses a legible cool grey-blue.
26
-
27
- At regional and city scales, mapped residential areas use a pale red wash to distinguish
28
- settlements from open country. This wash transitions to the detailed paper ground between
29
- zoom 12 and 14 as individual buildings appear. Minor street and tertiary road borders enter
30
- gradually over their first two zoom levels. Peak and aerodrome names start at zoom 12 and 13,
31
- respectively, leaving settlement names clear at regional scales.
32
-
33
- The packaged Cormorant Garamond Regular, SemiBold and Italic faces replace the former sans-serif
34
- lettering. Major settlements use spaced capitals; local names, roads and water use mixed-case
35
- italics. These are contemporary licensed fonts, not recovered historical lettering.
36
-
37
- In the SDK checkout, preview the source with:
38
-
39
- ```sh
40
- node packages/cli/dist/index.js preview --config packages/maps/map-1777.config.ts
41
- ```
42
-
43
- Use **3D** at street scale to raise the buildings and trees. Buildings retain their red
44
- pigment, with fine ink-colored edges, softened corners and contact shading. Trees and
45
- buildings share cast shadows. Light direction stays attached to the map, independent of the camera.
46
-
47
- The map offers one **Default** palette family with four artistic times of day:
48
-
49
- | Preset | Paper and pigment | Light |
50
- | ------ | -------------------------------------------------------- | -------------------------------------- |
51
- | Dawn | Rose parchment, coral red roofs and sage olives | Low warm eastern sun |
52
- | Day | Pale laid paper, vermilion roofs and green washes | Warm southwestern sun |
53
- | Dusk | Amber parchment, russet roofs and dark plum-brown ink | Low amber western sun and cool shade |
54
- | Night | Indigo paper, muted rose-slate roofs and ivory lettering | Cool moonlight with restrained shadows |
55
-
56
- Each preset recolors the paper, water and landscape patterns as well as the map
57
- and 3D geometry. There are no Faded or Monochrome families. These presets are fixed artistic
58
- lighting setups; they do not follow the clock. The `light` theme ID remains the Default family
59
- and its Day preset. For a prepared map, select `{theme: 'light', timeOfDay: 'dawn'}` (or `day`,
60
- `dusk`, `night`). Concrete theme IDs are `dawn`, `light`, `dusk`, and `dark`, respectively;
61
- system appearance selects Day or Night.
62
-
63
- Pattern SVG variants are package-owned assets. After changing their pigments or source plates,
64
- regenerate them from the SDK checkout with
65
- `pnpm exec tsx packages/maps/scripts/generate-map-1777-patterns.ts`.
66
-
67
- The overhead view retains red footprints and small vector circles for mapped trees. Vegetation uses `auto` mode:
68
- the explicit 3D view enables olive trees with illustrated shading, while 2D views and
69
- renderers without model support retain flat trees. Capture and Static Maps use that flat
70
- vegetation fallback. Core's custom building and shadow renderer requires WebGL2; a native
71
- extrusion fallback does not reproduce its shadows.
72
-
73
- Pedestrian plazas sit above residential zoning and below gardens and woodland. Broad road
74
- and pier polygons stay hidden so they cannot cover those surfaces. Street and path widths grow smoothly through zoom 22 using Streets' exponential progression,
75
- with carriageways 15% slimmer and fine ink borders. Bridge casings have square ends, tunnels have continuous interiors,
76
- and access restrictions and covered segments preserve the road's continuity. Tunnel dashes
77
- use a narrow border around a continuous interior. Paths use pale gravel with fine ink edges;
78
- pedestrian streets have a wider cream surface. Green garden washes stay distinct from the paper
79
- in all four palettes. Modern street lights and invented night windows
80
- remain off. Street names follow the ground plane and pass behind raised buildings; place
81
- names stay above the city.
82
-
83
- Construction carriageways use separate dashed ink plates below roads in service, keeping
84
- ordinary road borders crisp. Highway links draw before receiving carriageways within their
85
- surface or bridge level, with the same widths and access treatments as the adjoining roads.
86
- Major road names take priority over minor streets and service ways. Land-cover and land-use
87
- washes, paths and flat tree symbols fade in over one zoom level; their full-detail pigments
88
- remain consistent across zoom levels.
89
-
90
- For application integration, see [3D buildings](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/buildings-3d.md)
91
- and [vegetation controls](https://github.com/tileflow/tileflow-sdk/blob/main/packages/core/docs/trees-3d.md).