@carto/api-client 0.5.32-alpha.72cdcfe.130 → 0.5.32-alpha.77957dd.124
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 +1 -1
- package/build/api-client.cjs +52 -85
- package/build/api-client.cjs.map +1 -1
- package/build/api-client.js +48 -85
- package/build/api-client.js.map +1 -1
- package/package.json +1 -1
- package/src/fetch-map/parse-map.ts +3 -15
- package/src/fetch-map/pattern-atlas-baked.ts +56 -0
- package/src/fetch-map/pattern-atlas-runtime.ts +134 -0
- package/src/fetch-map/pattern-atlas.ts +20 -246
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
5
|
- feat(fetchMap): Support line & polygon stroke dash styles (#297)
|
|
6
|
-
- feat(fetchMap): Support polygon fill patterns (
|
|
6
|
+
- feat(fetchMap): Support polygon fill patterns (inline sprite atlas, `getFillPattern`/`scales.fillPattern`, `fillPatternEnabled`)
|
|
7
7
|
|
|
8
8
|
### 0.5.31
|
|
9
9
|
|
package/build/api-client.cjs
CHANGED
|
@@ -10675,6 +10675,41 @@ init_cjs_shims();
|
|
|
10675
10675
|
// src/fetch-map/pattern-atlas.ts
|
|
10676
10676
|
init_cjs_shims();
|
|
10677
10677
|
|
|
10678
|
+
// src/fetch-map/pattern-atlas-baked.ts
|
|
10679
|
+
init_cjs_shims();
|
|
10680
|
+
var BAKED_ATLAS_URL = "data:image/png;base64,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";
|
|
10681
|
+
var PATTERN_ATLAS_MAPPING = {
|
|
10682
|
+
"hlines-large": { x: 0, y: 0, width: 64, height: 64, mask: true },
|
|
10683
|
+
"hlines-medium": { x: 64, y: 0, width: 64, height: 64, mask: true },
|
|
10684
|
+
"hlines-small": { x: 128, y: 0, width: 64, height: 64, mask: true },
|
|
10685
|
+
"vlines-large": { x: 0, y: 64, width: 64, height: 64, mask: true },
|
|
10686
|
+
"vlines-medium": { x: 64, y: 64, width: 64, height: 64, mask: true },
|
|
10687
|
+
"vlines-small": { x: 128, y: 64, width: 64, height: 64, mask: true },
|
|
10688
|
+
"diag-left-large": { x: 0, y: 128, width: 64, height: 64, mask: true },
|
|
10689
|
+
"diag-left-medium": { x: 64, y: 128, width: 64, height: 64, mask: true },
|
|
10690
|
+
"diag-left-small": { x: 128, y: 128, width: 64, height: 64, mask: true },
|
|
10691
|
+
"diag-right-large": { x: 0, y: 192, width: 64, height: 64, mask: true },
|
|
10692
|
+
"diag-right-medium": { x: 64, y: 192, width: 64, height: 64, mask: true },
|
|
10693
|
+
"diag-right-small": { x: 128, y: 192, width: 64, height: 64, mask: true },
|
|
10694
|
+
"cross-hatch-large": { x: 0, y: 256, width: 64, height: 64, mask: true },
|
|
10695
|
+
"cross-hatch-medium": { x: 64, y: 256, width: 64, height: 64, mask: true },
|
|
10696
|
+
"cross-hatch-small": { x: 128, y: 256, width: 64, height: 64, mask: true },
|
|
10697
|
+
"dots-large": { x: 0, y: 320, width: 64, height: 64, mask: true },
|
|
10698
|
+
"dots-medium": { x: 64, y: 320, width: 64, height: 64, mask: true },
|
|
10699
|
+
"dots-small": { x: 128, y: 320, width: 64, height: 64, mask: true },
|
|
10700
|
+
"checker-large": { x: 0, y: 384, width: 64, height: 64, mask: true },
|
|
10701
|
+
"checker-medium": { x: 64, y: 384, width: 64, height: 64, mask: true },
|
|
10702
|
+
"checker-small": { x: 128, y: 384, width: 64, height: 64, mask: true },
|
|
10703
|
+
solid: { x: 64, y: 448, width: 64, height: 64, mask: true },
|
|
10704
|
+
none: { x: 0, y: 448, width: 64, height: 64, mask: true }
|
|
10705
|
+
};
|
|
10706
|
+
var CELL = 64;
|
|
10707
|
+
var ATLAS_W = CELL * 3;
|
|
10708
|
+
var ATLAS_H = CELL * 8;
|
|
10709
|
+
|
|
10710
|
+
// src/fetch-map/pattern-atlas-runtime.ts
|
|
10711
|
+
init_cjs_shims();
|
|
10712
|
+
|
|
10678
10713
|
// src/fetch-map/patterns/hlines-large.png
|
|
10679
10714
|
var hlines_large_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAABBSURBVHic7dixAQAgDMOwwP8/wxfNUOkCz04AYK2T5LUjmm47AAAAAOb5Ae0AAAAAmOcHtAMAAABgnh/QDgAAaj69GwQJx6ek3QAAAABJRU5ErkJggg==";
|
|
10680
10715
|
|
|
@@ -10741,19 +10776,7 @@ var checker_small_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAA
|
|
|
10741
10776
|
// src/fetch-map/patterns/solid.png
|
|
10742
10777
|
var solid_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7OHOkAAACWSURBVHic7dBBEcAwAMOwrPw5dzD0qIXA52/b3cOODtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QGuADtAaoAO0BugArQE6QPsBULQBfwAqZPkAAAAASUVORK5CYII=";
|
|
10743
10778
|
|
|
10744
|
-
// src/fetch-map/pattern-atlas.ts
|
|
10745
|
-
var DEFAULT_CELL_SIZE = 128;
|
|
10746
|
-
var SOURCE_TILE_SIZE = 64;
|
|
10747
|
-
var PATTERN_ROWS = [
|
|
10748
|
-
"hlines",
|
|
10749
|
-
"vlines",
|
|
10750
|
-
"diag-left",
|
|
10751
|
-
"diag-right",
|
|
10752
|
-
"cross-hatch",
|
|
10753
|
-
"dots",
|
|
10754
|
-
"checker"
|
|
10755
|
-
];
|
|
10756
|
-
var DENSITY_COLUMNS = ["large", "medium", "small"];
|
|
10779
|
+
// src/fetch-map/pattern-atlas-runtime.ts
|
|
10757
10780
|
var CELL_URLS = {
|
|
10758
10781
|
"hlines-large": hlines_large_default,
|
|
10759
10782
|
"hlines-medium": hlines_medium_default,
|
|
@@ -10778,43 +10801,6 @@ var CELL_URLS = {
|
|
|
10778
10801
|
"checker-small": checker_small_default,
|
|
10779
10802
|
solid: solid_default
|
|
10780
10803
|
};
|
|
10781
|
-
function debugGlobals() {
|
|
10782
|
-
return globalThis;
|
|
10783
|
-
}
|
|
10784
|
-
function getPatternCellSize() {
|
|
10785
|
-
const cell = debugGlobals().__CARTO_PATTERN_CELL_SIZE__;
|
|
10786
|
-
return typeof cell === "number" && cell > 0 ? cell : DEFAULT_CELL_SIZE;
|
|
10787
|
-
}
|
|
10788
|
-
function getPatternTextureParameters() {
|
|
10789
|
-
const params = debugGlobals().__CARTO_PATTERN_TEXTURE_PARAMS__;
|
|
10790
|
-
return params && typeof params === "object" ? params : void 0;
|
|
10791
|
-
}
|
|
10792
|
-
function getPatternScaleAdjustment(cell = getPatternCellSize()) {
|
|
10793
|
-
return SOURCE_TILE_SIZE / cell;
|
|
10794
|
-
}
|
|
10795
|
-
function getPatternCellPadding(cell) {
|
|
10796
|
-
return Math.max(2, Math.round(cell / 16));
|
|
10797
|
-
}
|
|
10798
|
-
function getPatternAtlasMapping(cell = getPatternCellSize()) {
|
|
10799
|
-
const pad = getPatternCellPadding(cell);
|
|
10800
|
-
const pitch = cell + 2 * pad;
|
|
10801
|
-
const mapping = {};
|
|
10802
|
-
const frame = (col, row) => ({
|
|
10803
|
-
x: pad + col * pitch,
|
|
10804
|
-
y: pad + row * pitch,
|
|
10805
|
-
width: cell,
|
|
10806
|
-
height: cell,
|
|
10807
|
-
mask: true
|
|
10808
|
-
});
|
|
10809
|
-
PATTERN_ROWS.forEach((pattern, row) => {
|
|
10810
|
-
DENSITY_COLUMNS.forEach((density, col) => {
|
|
10811
|
-
mapping[`${pattern}-${density}`] = frame(col, row);
|
|
10812
|
-
});
|
|
10813
|
-
});
|
|
10814
|
-
mapping.none = frame(0, PATTERN_ROWS.length);
|
|
10815
|
-
mapping.solid = frame(1, PATTERN_ROWS.length);
|
|
10816
|
-
return mapping;
|
|
10817
|
-
}
|
|
10818
10804
|
function createCanvas(w, h) {
|
|
10819
10805
|
if (typeof OffscreenCanvas !== "undefined") return new OffscreenCanvas(w, h);
|
|
10820
10806
|
if (typeof document !== "undefined") {
|
|
@@ -10839,22 +10825,13 @@ async function loadImage(dataUrl) {
|
|
|
10839
10825
|
img.src = dataUrl;
|
|
10840
10826
|
});
|
|
10841
10827
|
}
|
|
10842
|
-
var
|
|
10843
|
-
function
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
promise = build(cell);
|
|
10847
|
-
promise.catch(() => {
|
|
10848
|
-
});
|
|
10849
|
-
atlasPromises.set(cell, promise);
|
|
10850
|
-
}
|
|
10851
|
-
return promise;
|
|
10828
|
+
var atlasPromise;
|
|
10829
|
+
function assemblePatternAtlas() {
|
|
10830
|
+
if (!atlasPromise) atlasPromise = build();
|
|
10831
|
+
return atlasPromise;
|
|
10852
10832
|
}
|
|
10853
|
-
async function build(
|
|
10854
|
-
const
|
|
10855
|
-
const pad = getPatternCellPadding(cell);
|
|
10856
|
-
const pitch = cell + 2 * pad;
|
|
10857
|
-
const canvas = createCanvas(pitch * 3, pitch * (PATTERN_ROWS.length + 1));
|
|
10833
|
+
async function build() {
|
|
10834
|
+
const canvas = createCanvas(ATLAS_W, ATLAS_H);
|
|
10858
10835
|
const ctx = canvas.getContext("2d");
|
|
10859
10836
|
if (!ctx)
|
|
10860
10837
|
throw new Error(
|
|
@@ -10866,27 +10843,21 @@ async function build(cell) {
|
|
|
10866
10843
|
images[key] = await loadImage(url);
|
|
10867
10844
|
})
|
|
10868
10845
|
);
|
|
10869
|
-
for (const [key, frame] of Object.entries(
|
|
10846
|
+
for (const [key, frame] of Object.entries(PATTERN_ATLAS_MAPPING)) {
|
|
10870
10847
|
const img = images[key];
|
|
10871
|
-
if (
|
|
10872
|
-
ctx.imageSmoothingEnabled = /^(diag-|cross-hatch)/.test(key);
|
|
10873
|
-
if ("imageSmoothingQuality" in ctx) ctx.imageSmoothingQuality = "high";
|
|
10874
|
-
ctx.save();
|
|
10875
|
-
ctx.beginPath();
|
|
10876
|
-
ctx.rect(frame.x - pad, frame.y - pad, cell + 2 * pad, cell + 2 * pad);
|
|
10877
|
-
ctx.clip();
|
|
10878
|
-
for (const dx of [-cell, 0, cell]) {
|
|
10879
|
-
for (const dy of [-cell, 0, cell]) {
|
|
10880
|
-
ctx.drawImage(img, frame.x + dx, frame.y + dy, cell, cell);
|
|
10881
|
-
}
|
|
10882
|
-
}
|
|
10883
|
-
ctx.restore();
|
|
10848
|
+
if (img) ctx.drawImage(img, frame.x, frame.y, CELL, CELL);
|
|
10884
10849
|
}
|
|
10885
10850
|
if (typeof createImageBitmap !== "undefined")
|
|
10886
10851
|
return createImageBitmap(canvas);
|
|
10887
10852
|
return canvas;
|
|
10888
10853
|
}
|
|
10889
10854
|
|
|
10855
|
+
// src/fetch-map/pattern-atlas.ts
|
|
10856
|
+
function getPatternAtlas() {
|
|
10857
|
+
const runtime = globalThis.__CARTO_RUNTIME_ATLAS__ === true;
|
|
10858
|
+
return runtime ? assemblePatternAtlas() : BAKED_ATLAS_URL;
|
|
10859
|
+
}
|
|
10860
|
+
|
|
10890
10861
|
// src/fetch-map/parse-map.ts
|
|
10891
10862
|
function getLayerDescriptor({
|
|
10892
10863
|
mapConfig,
|
|
@@ -11315,13 +11286,9 @@ function createChannelProps(id, layerType, config2, visualChannels, data, datase
|
|
|
11315
11286
|
result.fillPatternEnabled = Boolean(visConfig.fillPatternEnabled);
|
|
11316
11287
|
if (visConfig.filled && visConfig.fillPatternEnabled) {
|
|
11317
11288
|
result.fillPatternAtlas = getPatternAtlas();
|
|
11318
|
-
result.fillPatternMapping =
|
|
11289
|
+
result.fillPatternMapping = PATTERN_ATLAS_MAPPING;
|
|
11319
11290
|
result.fillPatternMask = true;
|
|
11320
|
-
|
|
11321
|
-
if (textureParameters) {
|
|
11322
|
-
result.textureParameters = textureParameters;
|
|
11323
|
-
}
|
|
11324
|
-
result.getFillPatternScale = (visConfig.fillPatternSize ?? 1) * getPatternScaleAdjustment();
|
|
11291
|
+
result.getFillPatternScale = visConfig.fillPatternSize ?? 1;
|
|
11325
11292
|
result.fillPattern = visConfig.fillPattern;
|
|
11326
11293
|
const { fillPatternField, fillPatternScale } = visualChannels;
|
|
11327
11294
|
const { fillPatternRange, fillPatternDensity } = visConfig;
|