isard 1.1.0 → 1.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 +121 -0
- package/README.md +44 -39
- package/dist/basemap/basemaps.d.ts +1 -1
- package/dist/basemap/basemaps.js +2 -2
- package/dist/basemap/basemaps.js.map +1 -1
- package/dist/basemap/grid.d.ts +5 -5
- package/dist/basemap/grid.js +59 -65
- package/dist/basemap/grid.js.map +1 -1
- package/dist/basemap/mvt.d.ts +1 -1
- package/dist/basemap/mvt.js +6 -6
- package/dist/basemap/mvt.js.map +1 -1
- package/dist/basemap/pmtiles.d.ts +10 -10
- package/dist/basemap/pmtiles.js +39 -31
- package/dist/basemap/pmtiles.js.map +1 -1
- package/dist/basemap/pmtileslayer.d.ts +33 -0
- package/dist/basemap/pmtileslayer.js +97 -0
- package/dist/basemap/pmtileslayer.js.map +1 -0
- package/dist/basemap/resample.d.ts +2 -2
- package/dist/basemap/resample.js +16 -14
- package/dist/basemap/resample.js.map +1 -1
- package/dist/basemap/terrain.d.ts +3 -3
- package/dist/basemap/terrain.js +6 -6
- package/dist/basemap/terrain.js.map +1 -1
- package/dist/basemap/trees.d.ts +26 -0
- package/dist/basemap/trees.js +141 -0
- package/dist/basemap/trees.js.map +1 -0
- package/dist/basemap/vectorstyle.d.ts +22 -10
- package/dist/basemap/vectorstyle.js +163 -110
- package/dist/basemap/vectorstyle.js.map +1 -1
- package/dist/basemap/vectortiles.d.ts +70 -47
- package/dist/basemap/vectortiles.js +480 -358
- package/dist/basemap/vectortiles.js.map +1 -1
- package/dist/basemap/wmts.d.ts +3 -3
- package/dist/basemap/wmts.js +16 -11
- package/dist/basemap/wmts.js.map +1 -1
- package/dist/basemap/workerpool.d.ts +17 -0
- package/dist/basemap/workerpool.js +194 -0
- package/dist/basemap/workerpool.js.map +1 -0
- package/dist/basemap.worker.js +2 -2
- package/dist/basemap.worker.js.map +21 -13
- package/dist/bind/layers.d.ts +13 -4
- package/dist/bind/layers.js +64 -40
- package/dist/bind/layers.js.map +1 -1
- package/dist/data/crs.d.ts +10 -10
- package/dist/data/crs.js +38 -34
- package/dist/data/crs.js.map +1 -1
- package/dist/data/gpx.d.ts +1 -1
- package/dist/data/gpx.js +20 -20
- package/dist/data/gpx.js.map +1 -1
- package/dist/data/kml.d.ts +1 -1
- package/dist/data/kml.js +42 -39
- package/dist/data/kml.js.map +1 -1
- package/dist/data/topojson.d.ts +1 -1
- package/dist/data/topojson.js +15 -10
- package/dist/data/topojson.js.map +1 -1
- package/dist/data/xml.d.ts +5 -5
- package/dist/data/xml.js +19 -18
- package/dist/data/xml.js.map +1 -1
- package/dist/decoder.worker.js +4 -4
- package/dist/decoder.worker.js.map +6 -6
- package/dist/engine/decoders.d.ts +2 -2
- package/dist/engine/decoders.js +28 -25
- package/dist/engine/decoders.js.map +1 -1
- package/dist/engine/loader.js +13 -14
- package/dist/engine/loader.js.map +1 -1
- package/dist/engine/requests.d.ts +1 -1
- package/dist/engine/requests.js +19 -16
- package/dist/engine/requests.js.map +1 -1
- package/dist/engine-loader.d.ts +13 -9
- package/dist/engine-loader.js +38 -28
- package/dist/engine-loader.js.map +1 -1
- package/dist/geoplateforme.d.ts +26 -10
- package/dist/geoplateforme.js +45 -20
- package/dist/geoplateforme.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/isard_bg.wasm +0 -0
- package/dist/isard_core_bg.wasm +0 -0
- package/dist/isard_points_bg.wasm +0 -0
- package/dist/isard_tess_bg.wasm +0 -0
- package/dist/layers/extrusions.d.ts +1 -1
- package/dist/layers/extrusions.js +10 -5
- package/dist/layers/extrusions.js.map +1 -1
- package/dist/layers/features.d.ts +10 -10
- package/dist/layers/features.js +41 -42
- package/dist/layers/features.js.map +1 -1
- package/dist/layers/glyphs.d.ts +3 -3
- package/dist/layers/glyphs.js +34 -40
- package/dist/layers/glyphs.js.map +1 -1
- package/dist/layers/icons.d.ts +8 -8
- package/dist/layers/icons.js +76 -68
- package/dist/layers/icons.js.map +1 -1
- package/dist/layers/layers.d.ts +1 -1
- package/dist/layers/layers.js +42 -29
- package/dist/layers/layers.js.map +1 -1
- package/dist/layers/panoramas.d.ts +2 -2
- package/dist/layers/panoramas.js +52 -41
- package/dist/layers/panoramas.js.map +1 -1
- package/dist/layers/pointclouds.d.ts +3 -3
- package/dist/layers/pointclouds.js +25 -33
- package/dist/layers/pointclouds.js.map +1 -1
- package/dist/layers/symbols.d.ts +1 -1
- package/dist/layers/symbols.js +68 -71
- package/dist/layers/symbols.js.map +1 -1
- package/dist/layers/vectors.d.ts +60 -0
- package/dist/layers/vectors.js +130 -0
- package/dist/layers/vectors.js.map +1 -0
- package/dist/map/basemap-layers.d.ts +26 -0
- package/dist/map/basemap-layers.js +61 -0
- package/dist/map/basemap-layers.js.map +1 -0
- package/dist/map/canvas.d.ts +17 -0
- package/dist/map/canvas.js +56 -0
- package/dist/map/canvas.js.map +1 -0
- package/dist/map/checks.d.ts +11 -0
- package/dist/map/checks.js +39 -0
- package/dist/map/checks.js.map +1 -0
- package/dist/map/credits.d.ts +17 -0
- package/dist/map/credits.js +34 -0
- package/dist/map/credits.js.map +1 -0
- package/dist/map/engine-settings.d.ts +15 -0
- package/dist/map/engine-settings.js +45 -0
- package/dist/map/engine-settings.js.map +1 -0
- package/dist/map/engines.d.ts +41 -0
- package/dist/map/engines.js +77 -0
- package/dist/map/engines.js.map +1 -0
- package/dist/map/events.d.ts +14 -0
- package/dist/map/events.js +46 -0
- package/dist/map/events.js.map +1 -0
- package/dist/map/frame-loop.d.ts +64 -0
- package/dist/map/frame-loop.js +145 -0
- package/dist/map/frame-loop.js.map +1 -0
- package/dist/map/hover-pick.d.ts +30 -0
- package/dist/map/hover-pick.js +56 -0
- package/dist/map/hover-pick.js.map +1 -0
- package/dist/map/layer-spec.d.ts +42 -0
- package/dist/map/layer-spec.js +34 -0
- package/dist/map/layer-spec.js.map +1 -0
- package/dist/map/layer-stack.d.ts +36 -0
- package/dist/map/layer-stack.js +101 -0
- package/dist/map/layer-stack.js.map +1 -0
- package/dist/map/overlay-host.d.ts +36 -0
- package/dist/map/overlay-host.js +101 -0
- package/dist/map/overlay-host.js.map +1 -0
- package/dist/map/panorama-host.d.ts +5 -0
- package/dist/map/panorama-host.js +32 -0
- package/dist/map/panorama-host.js.map +1 -0
- package/dist/map/raster-source.d.ts +11 -0
- package/dist/map/raster-source.js +26 -0
- package/dist/map/raster-source.js.map +1 -0
- package/dist/map/symbol-atlases.d.ts +26 -0
- package/dist/map/symbol-atlases.js +59 -0
- package/dist/map/symbol-atlases.js.map +1 -0
- package/dist/map/viewshed.d.ts +5 -0
- package/dist/map/viewshed.js +28 -0
- package/dist/map/viewshed.js.map +1 -0
- package/dist/map/workers.d.ts +46 -0
- package/dist/map/workers.js +73 -0
- package/dist/map/workers.js.map +1 -0
- package/dist/map.d.ts +54 -126
- package/dist/map.js +227 -698
- package/dist/map.js.map +1 -1
- package/dist/react/Control.d.ts +11 -0
- package/dist/react/Control.js +18 -0
- package/dist/react/Control.js.map +1 -0
- package/dist/react/CustomLayer.d.ts +11 -0
- package/dist/react/CustomLayer.js +30 -0
- package/dist/react/CustomLayer.js.map +1 -0
- package/dist/react/IsardMap.d.ts +43 -0
- package/dist/react/IsardMap.js +147 -0
- package/dist/react/IsardMap.js.map +1 -0
- package/dist/react/Layer.d.ts +42 -0
- package/dist/react/Layer.js +74 -0
- package/dist/react/Layer.js.map +1 -0
- package/dist/react/Marker.d.ts +24 -0
- package/dist/react/Marker.js +53 -0
- package/dist/react/Marker.js.map +1 -0
- package/dist/react/Panel.d.ts +11 -0
- package/dist/react/Panel.js +37 -0
- package/dist/react/Panel.js.map +1 -0
- package/dist/react/Popup.d.ts +18 -0
- package/dist/react/Popup.js +60 -0
- package/dist/react/Popup.js.map +1 -0
- package/dist/react/Swipe.d.ts +16 -0
- package/dist/react/Swipe.js +52 -0
- package/dist/react/Swipe.js.map +1 -0
- package/dist/react/VectorGeometry.d.ts +35 -0
- package/dist/react/VectorGeometry.js +82 -0
- package/dist/react/VectorGeometry.js.map +1 -0
- package/dist/react/Viewshed.d.ts +5 -0
- package/dist/react/Viewshed.js +28 -0
- package/dist/react/Viewshed.js.map +1 -0
- package/dist/react/context.d.ts +33 -0
- package/dist/react/context.js +20 -0
- package/dist/react/context.js.map +1 -0
- package/dist/react/index.d.ts +16 -108
- package/dist/react/index.js +11 -397
- package/dist/react/index.js.map +1 -1
- package/dist/settings.d.ts +5 -9
- package/dist/settings.js +17 -15
- package/dist/settings.js.map +1 -1
- package/dist/types.d.ts +27 -4
- package/dist/types.js.map +1 -1
- package/dist/ui/controls.js +6 -4
- package/dist/ui/controls.js.map +1 -1
- package/dist/ui/interaction.d.ts +2 -2
- package/dist/ui/interaction.js +8 -7
- package/dist/ui/interaction.js.map +1 -1
- package/dist/ui/minimap.d.ts +25 -0
- package/dist/ui/minimap.js +90 -0
- package/dist/ui/minimap.js.map +1 -0
- package/dist/ui/overlay.js +18 -20
- package/dist/ui/overlay.js.map +1 -1
- package/dist/ui/scale.d.ts +19 -0
- package/dist/ui/scale.js +44 -0
- package/dist/ui/scale.js.map +1 -0
- package/dist/ui/search.d.ts +25 -0
- package/dist/ui/search.js +119 -0
- package/dist/ui/search.js.map +1 -0
- package/dist/ui/style.d.ts +1 -1
- package/dist/ui/style.js +19 -2
- package/dist/ui/style.js.map +1 -1
- package/dist/util/animation.d.ts +3 -3
- package/dist/util/animation.js +6 -6
- package/dist/util/animation.js.map +1 -1
- package/dist/util/color.d.ts +1 -1
- package/dist/util/color.js +14 -16
- package/dist/util/color.js.map +1 -1
- package/dist/util/geo.d.ts +6 -6
- package/dist/util/geo.js +12 -12
- package/dist/util/geo.js.map +1 -1
- package/dist/util/guards.d.ts +7 -0
- package/dist/util/guards.js +8 -0
- package/dist/util/guards.js.map +1 -0
- package/dist/util/lru.js.map +1 -1
- package/dist/util/sun.d.ts +11 -0
- package/dist/util/sun.js +26 -0
- package/dist/util/sun.js.map +1 -0
- package/dist/wasm/isard.d.ts +250 -7
- package/dist/wasm/isard.js +375 -8
- package/dist/wasm/isard_core.d.ts +226 -7
- package/dist/wasm/isard_core.js +351 -8
- package/dist/wasm/isard_tess.d.ts +109 -0
- package/dist/wasm/isard_tess.js +398 -0
- package/dist/workers/basemap/geometry.d.ts +72 -0
- package/dist/workers/basemap/labels.d.ts +8 -0
- package/dist/workers/basemap/raster.d.ts +10 -0
- package/dist/workers/basemap/tiles.d.ts +65 -0
- package/dist/workers/basemap/trees.d.ts +19 -0
- package/dist/workers/basemap.worker.d.ts +126 -22
- package/dist/workers/basemap.worker.js +76 -544
- package/dist/workers/basemap.worker.js.map +1 -1
- package/package.json +5 -4
- package/vite.js +10 -2
|
@@ -2,17 +2,25 @@
|
|
|
2
2
|
* Worker of the vector basemaps: fetches and decodes vector tiles (kept for the tiles that share them), draws their
|
|
3
3
|
* fills, lines and circles with a MapLibre style into images (Canvas 2D, off the main thread) for the raster pool,
|
|
4
4
|
* with the style's raster layers under them, and lists the label candidates of the style's symbol layers (their texts
|
|
5
|
-
* and icons) for the page to shape and place. Extrusions are drawn flat, as fills.
|
|
6
|
-
*
|
|
5
|
+
* and icons) for the page to shape and place. Extrusions are drawn flat, as fills. Or it cuts the fills, lines and
|
|
6
|
+
* buildings of a tile into geometry for the engine to draw as such (`vectors`), with their style per feature (a
|
|
7
|
+
* building's color, height and base height). It also decodes the
|
|
8
|
+
* altitudes of PNG relief tiles and draws the rasters reprojected from other grids (planned by the page), for the
|
|
9
|
+
* map's other layers.
|
|
7
10
|
*
|
|
8
11
|
* A raster tile of level z covers 256 CSS pixels at map zoom z - 1 (MapLibre's 512 px convention): it is drawn from
|
|
9
12
|
* the vector tile of level z - 1 (or the deepest one the source has), with the style at that zoom.
|
|
13
|
+
*
|
|
14
|
+
* This module answers the page's messages; the jobs are in `./basemap/`: the state they share (`tiles.ts`), the
|
|
15
|
+
* images (`raster.ts`), the labels (`labels.ts`), the geometry (`geometry.ts`), the trees (`trees.ts`).
|
|
10
16
|
*/
|
|
17
|
+
import type { Value } from '../basemap/mvt.ts';
|
|
11
18
|
import { type Job } from '../basemap/resample.ts';
|
|
12
19
|
import { type PngEncoding } from '../basemap/terrain.ts';
|
|
13
20
|
import { type LabelCandidate, type RasterSource, type StyleLayer } from '../basemap/vectorstyle.ts';
|
|
14
21
|
import { type HeaderRules } from '../engine/requests.ts';
|
|
15
|
-
|
|
22
|
+
import { type Sprite } from './basemap/tiles.ts';
|
|
23
|
+
export type { LabelCandidate, RasterSource, Sprite };
|
|
16
24
|
/** Fetch priority of a request (`fetch`'s `priority`, a hint to the browser) */
|
|
17
25
|
export type Priority = 'high' | 'low' | 'auto';
|
|
18
26
|
/** A tile's image or labels, asked of a worker; or a tile of another layer decoded: the altitudes of a PNG relief
|
|
@@ -35,6 +43,43 @@ export type BasemapWork = {
|
|
|
35
43
|
y: number;
|
|
36
44
|
zoom?: number;
|
|
37
45
|
priority?: Priority;
|
|
46
|
+
}
|
|
47
|
+
/** The polygons of the renderer's layers (buildings), for extrusions */
|
|
48
|
+
| {
|
|
49
|
+
type: 'polygons';
|
|
50
|
+
key: string;
|
|
51
|
+
z: number;
|
|
52
|
+
x: number;
|
|
53
|
+
y: number;
|
|
54
|
+
priority?: Priority;
|
|
55
|
+
}
|
|
56
|
+
/** Trees scattered over the polygons of the renderer's layers, `spacing[s]` metres apart in layer `s` (0: none), at
|
|
57
|
+
* most `maxTrees` */
|
|
58
|
+
| {
|
|
59
|
+
type: 'trees';
|
|
60
|
+
key: string;
|
|
61
|
+
z: number;
|
|
62
|
+
x: number;
|
|
63
|
+
y: number;
|
|
64
|
+
spacing: number[];
|
|
65
|
+
maxTrees: number;
|
|
66
|
+
priority?: Priority;
|
|
67
|
+
}
|
|
68
|
+
/** The fills and lines of the renderer's layers cut to the tile, for the engine to draw as geometry; `styles`: their
|
|
69
|
+
* style only, the layers' paint changed (the same features, in the same order). A tile past the source's deepest
|
|
70
|
+
* level is cut from its tile of that level (overzoom); `deepest`, the deepest level asked for (default the
|
|
71
|
+
* source's), is styled past itself, as the map stretches it */
|
|
72
|
+
| {
|
|
73
|
+
type: 'vectors';
|
|
74
|
+
key: string;
|
|
75
|
+
z: number;
|
|
76
|
+
x: number;
|
|
77
|
+
y: number;
|
|
78
|
+
deepest?: number;
|
|
79
|
+
styles?: boolean;
|
|
80
|
+
/** With the prisms of the fills (a relief under them) */
|
|
81
|
+
prism?: boolean;
|
|
82
|
+
priority?: Priority;
|
|
38
83
|
} | {
|
|
39
84
|
type: 'heights';
|
|
40
85
|
url: string;
|
|
@@ -50,6 +95,11 @@ export type BasemapRequest =
|
|
|
50
95
|
{
|
|
51
96
|
type: 'headers';
|
|
52
97
|
rules: HeaderRules;
|
|
98
|
+
}
|
|
99
|
+
/** Where the tessellation module is (`isard_tess_bg.wasm`), loaded with the first `vectors` job */
|
|
100
|
+
| {
|
|
101
|
+
type: 'tess';
|
|
102
|
+
url: string;
|
|
53
103
|
} | {
|
|
54
104
|
type: 'init';
|
|
55
105
|
/** Renderers by key: each draws its own layers of the same source */
|
|
@@ -86,29 +136,83 @@ export type BasemapResponse = {
|
|
|
86
136
|
} | {
|
|
87
137
|
id: number;
|
|
88
138
|
labels: LabelCandidate[];
|
|
139
|
+
} | {
|
|
140
|
+
id: number;
|
|
141
|
+
polygons: TilePolygons;
|
|
142
|
+
} | {
|
|
143
|
+
id: number;
|
|
144
|
+
trees: Float64Array;
|
|
145
|
+
} | {
|
|
146
|
+
id: number;
|
|
147
|
+
vectors: TileVectors;
|
|
148
|
+
} | {
|
|
149
|
+
id: number;
|
|
150
|
+
styles: Float32Array;
|
|
89
151
|
} | {
|
|
90
152
|
id: number;
|
|
91
153
|
heights: Float32Array;
|
|
92
154
|
};
|
|
93
|
-
/**
|
|
94
|
-
export interface
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}>;
|
|
155
|
+
/** The polygons of a tile in Mercator [0, 1], as the extrusions take them (`PolygonArrays`), and their properties */
|
|
156
|
+
export interface TilePolygons {
|
|
157
|
+
arrays: {
|
|
158
|
+
points: Float64Array;
|
|
159
|
+
ringStart: Uint32Array;
|
|
160
|
+
polygonStart: Uint32Array;
|
|
161
|
+
feature: Uint32Array;
|
|
162
|
+
};
|
|
163
|
+
properties: Record<string, Value>[];
|
|
103
164
|
}
|
|
104
|
-
/** The decoded tiles one worker of `workers` keeps */
|
|
105
|
-
export declare function cacheShare(workers: number): number;
|
|
106
165
|
/**
|
|
107
|
-
* The
|
|
108
|
-
*
|
|
109
|
-
*
|
|
166
|
+
* The geometry of a vector tile for the engine (`setVectorTile`), in Mercator [0, 1], cut to the tile: a styled
|
|
167
|
+
* feature is a feature of the tile in one of the renderer's layers (the sublayers, in their order), numbered layer
|
|
168
|
+
* after layer. The polygons and lines of sublayer `s` are `fillStart[s] .. fillStart[s + 1]` and `lineStart[s] ..
|
|
169
|
+
* lineStart[s + 1]` (one more entry than the renderer's layers)
|
|
110
170
|
*/
|
|
111
|
-
export
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
171
|
+
export interface TileVectors {
|
|
172
|
+
fills: {
|
|
173
|
+
points: Float64Array;
|
|
174
|
+
ringStart: Uint32Array;
|
|
175
|
+
polygonStart: Uint32Array;
|
|
176
|
+
feature: Uint32Array;
|
|
177
|
+
fillStart: Uint32Array;
|
|
178
|
+
};
|
|
179
|
+
lines: {
|
|
180
|
+
points: Float64Array;
|
|
181
|
+
start: Uint32Array;
|
|
182
|
+
feature: Uint32Array;
|
|
183
|
+
lineStart: Uint32Array;
|
|
184
|
+
};
|
|
185
|
+
/** The style of each styled feature, `FLOATS` (32) each, as the engine's line layers take it */
|
|
186
|
+
styles: Float32Array;
|
|
187
|
+
/** The tile's corners (west, north, east, south, Mercator): no wall of a building along its edges, where one cut
|
|
188
|
+
* there goes on in the next tile */
|
|
189
|
+
tile?: Float64Array;
|
|
190
|
+
/** Its feature's properties (shared by the styled features of one feature) and its sublayer */
|
|
191
|
+
properties: Record<string, Value>[];
|
|
192
|
+
sublayer: Uint16Array;
|
|
193
|
+
/** The geometry made ready for the GPU by the tessellation module (the engine's `setVectorTileMesh`); without it,
|
|
194
|
+
* the engine does that on the main thread */
|
|
195
|
+
mesh?: TileMesh;
|
|
196
|
+
}
|
|
197
|
+
/** A vector tile ready for the GPU, as the tessellation module makes it (`TessellatedTile`) */
|
|
198
|
+
export interface TileMesh {
|
|
199
|
+
/** Fill vertices, as bytes */
|
|
200
|
+
vertices: Uint8Array;
|
|
201
|
+
indices: Uint32Array;
|
|
202
|
+
/** Per sublayer: its top cap and the rest of its prism, first and end of each */
|
|
203
|
+
fillRanges: Uint32Array;
|
|
204
|
+
prism: boolean;
|
|
205
|
+
/** Line pieces, as bytes */
|
|
206
|
+
pieces: Uint8Array;
|
|
207
|
+
/** Feature and length of each line */
|
|
208
|
+
lineTable: Float32Array;
|
|
209
|
+
/** Per sublayer: its pieces, first and end */
|
|
210
|
+
lineRanges: Uint32Array;
|
|
211
|
+
/** Blocks of the extrusion sublayers (buildings), as bytes */
|
|
212
|
+
blocks: Uint8Array;
|
|
213
|
+
blockIndices: Uint32Array;
|
|
214
|
+
/** Per sublayer: its blocks' triangles, first and end */
|
|
215
|
+
blockRanges: Uint32Array;
|
|
216
|
+
/** Min x, min y, max x, max y of the tile's points */
|
|
217
|
+
bounds: Float64Array;
|
|
218
|
+
}
|