@signalk/charts-plugin 3.7.0 → 3.8.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/.prettierignore +1 -0
- package/CHANGELOG.md +109 -0
- package/README.md +72 -0
- package/docs/screenshots/1_overview.png +0 -0
- package/docs/screenshots/2_region.png +0 -0
- package/docs/screenshots/3_jobs.png +0 -0
- package/package.json +13 -8
- package/plugin/cacheLayout.d.ts +72 -0
- package/plugin/cacheLayout.d.ts.map +1 -0
- package/plugin/cacheLayout.js +243 -0
- package/plugin/cacheLayout.js.map +1 -0
- package/plugin/chartDownloader.d.ts +122 -29
- package/plugin/chartDownloader.d.ts.map +1 -1
- package/plugin/chartDownloader.js +488 -313
- package/plugin/chartDownloader.js.map +1 -1
- package/plugin/chartDownloaderMBTilesHelpers.d.ts +10 -0
- package/plugin/chartDownloaderMBTilesHelpers.d.ts.map +1 -0
- package/plugin/chartDownloaderMBTilesHelpers.js +235 -0
- package/plugin/chartDownloaderMBTilesHelpers.js.map +1 -0
- package/plugin/chartDownloaderTileHelpers.d.ts +30 -0
- package/plugin/chartDownloaderTileHelpers.d.ts.map +1 -0
- package/plugin/chartDownloaderTileHelpers.js +277 -0
- package/plugin/chartDownloaderTileHelpers.js.map +1 -0
- package/plugin/charts.d.ts.map +1 -1
- package/plugin/charts.js +23 -5
- package/plugin/charts.js.map +1 -1
- package/plugin/constants.d.ts.map +1 -1
- package/plugin/index.d.ts.map +1 -1
- package/plugin/index.js +560 -47
- package/plugin/index.js.map +1 -1
- package/plugin/pluginStatus.js.map +1 -1
- package/plugin/projection.js.map +1 -1
- package/plugin/tileServer.d.ts +4 -2
- package/plugin/tileServer.d.ts.map +1 -1
- package/plugin/tileServer.js +37 -8
- package/plugin/tileServer.js.map +1 -1
- package/plugin/tokenProvider.d.ts +63 -0
- package/plugin/tokenProvider.d.ts.map +1 -0
- package/plugin/tokenProvider.js +258 -0
- package/plugin/tokenProvider.js.map +1 -0
- package/plugin/types.d.ts +37 -2
- package/plugin/types.d.ts.map +1 -1
- package/public/images/jobs.png +0 -0
- package/public/images/overview.png +0 -0
- package/public/images/region.png +0 -0
- package/public/index.html +392 -113
- package/public/js/index.js +620 -0
- package/public/leaflet/images/downloads.png +0 -0
- package/public/leaflet/images/layers-2x.png +0 -0
- package/public/leaflet/images/layers.png +0 -0
- package/public/leaflet/images/lifebuoy.png +0 -0
- package/public/leaflet/images/spritesheet-2x.png +0 -0
- package/public/leaflet/images/spritesheet.svg +156 -0
- package/public/leaflet/leaflet.css +677 -0
- package/public/leaflet/leaflet.draw.css +253 -0
- package/public/leaflet/leaflet.draw.js +2957 -0
- package/public/leaflet/leaflet.js +7467 -0
- package/public/style.css +351 -37
- package/docs/screenshots/1_placeholder.png +0 -0
- package/public/index.js +0 -349
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chartDownloader.js","sourceRoot":"","sources":["../src/chartDownloader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chartDownloader.js","sourceRoot":"","sources":["../src/chartDownloader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ChartProvider, OnlineChartProvider, MBTilesHandle } from './types';
|
|
2
|
+
import type { FeatureCollection } from 'geojson';
|
|
3
|
+
import { Tile } from './chartDownloaderTileHelpers';
|
|
4
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
5
|
+
export declare function openOrCreateMbtiles(mbtilesPath: string, provider: OnlineChartProvider | ChartProvider): Promise<MBTilesHandle>;
|
|
6
|
+
export declare function getMBTilesForPolygon(db: DatabaseSync, geojson: FeatureCollection, zoomMin?: number, zoomMax?: number): Generator<Tile, void, undefined>;
|
|
7
|
+
export declare function deleteTilesInChunks(db: DatabaseSync, tiles: Generator<Tile>, chunkSize?: number, onProgress?: (done: number) => void): Promise<void>;
|
|
8
|
+
export declare function purgeAllOrphanImages(db: DatabaseSync, chunkSize?: number, onProgress?: (deleted: number, total: number) => void): Promise<number>;
|
|
9
|
+
export declare function vacuumMbtiles(db: DatabaseSync): void;
|
|
10
|
+
//# sourceMappingURL=chartDownloaderMBTilesHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartDownloaderMBTilesHelpers.d.ts","sourceRoot":"","sources":["../src/chartDownloaderMBTilesHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,aAAa,EAEd,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,SAAS,CAAA;AAGlE,OAAO,EACL,IAAI,EAIL,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AA4B/C,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,mBAAmB,GAAG,aAAa,GAC5C,OAAO,CAAC,aAAa,CAAC,CA+DxB;AAED,wBAAiB,oBAAoB,CACnC,EAAE,EAAE,YAAY,EAChB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,SAAI,EACX,OAAO,SAAK,GACX,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CA0ClC;AAsBD,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EACtB,SAAS,SAAM,EACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC,CAuCf;AAoBD,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,YAAY,EAChB,SAAS,SAAO,EAChB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,mBAgBtD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAIpD"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.openOrCreateMbtiles = openOrCreateMbtiles;
|
|
40
|
+
exports.getMBTilesForPolygon = getMBTilesForPolygon;
|
|
41
|
+
exports.deleteTilesInChunks = deleteTilesInChunks;
|
|
42
|
+
exports.purgeAllOrphanImages = purgeAllOrphanImages;
|
|
43
|
+
exports.vacuumMbtiles = vacuumMbtiles;
|
|
44
|
+
const fs_1 = require("fs");
|
|
45
|
+
const path_1 = __importDefault(require("path"));
|
|
46
|
+
const bbox_1 = __importDefault(require("@turf/bbox"));
|
|
47
|
+
const boolean_intersects_1 = __importDefault(require("@turf/boolean-intersects"));
|
|
48
|
+
const chartDownloaderTileHelpers_1 = require("./chartDownloaderTileHelpers");
|
|
49
|
+
let MBTiles = null;
|
|
50
|
+
async function loadMBTiles() {
|
|
51
|
+
if (MBTiles === null) {
|
|
52
|
+
const module = await Promise.resolve().then(() => __importStar(require('@signalk/mbtiles')));
|
|
53
|
+
MBTiles = (module.default || module);
|
|
54
|
+
}
|
|
55
|
+
return MBTiles;
|
|
56
|
+
}
|
|
57
|
+
async function openOrCreateMbtiles(mbtilesPath, provider) {
|
|
58
|
+
(0, fs_1.mkdirSync)(path_1.default.dirname(mbtilesPath), { recursive: true });
|
|
59
|
+
const MBTilesCtor = await loadMBTiles();
|
|
60
|
+
return new Promise((resolve, reject) => {
|
|
61
|
+
new MBTilesCtor(`${mbtilesPath}?mode=rwc`, (err, mbtiles) => {
|
|
62
|
+
if (err) {
|
|
63
|
+
return reject(err);
|
|
64
|
+
}
|
|
65
|
+
// MBTiles is an EventEmitter over a raw sqlite handle. Without an
|
|
66
|
+
// 'error' listener a runtime DB error (ENOSPC/EIO on an SD card mid
|
|
67
|
+
// write) is an unhandled 'error' event, which crashes the process.
|
|
68
|
+
// Demote it to a log so a flaky write surface can't take the server
|
|
69
|
+
// down. Attached before startWriting so an error during open is caught.
|
|
70
|
+
mbtiles.on('error', (e) => {
|
|
71
|
+
console.error(`MBTiles write handle error (${mbtilesPath}):`, e.message);
|
|
72
|
+
});
|
|
73
|
+
mbtiles.startWriting((err) => {
|
|
74
|
+
if (err) {
|
|
75
|
+
return reject(err);
|
|
76
|
+
}
|
|
77
|
+
mbtiles._db?.exec('PRAGMA journal_mode = WAL');
|
|
78
|
+
mbtiles._db?.exec('PRAGMA synchronous = NORMAL');
|
|
79
|
+
mbtiles._db?.exec('PRAGMA temp_store = MEMORY');
|
|
80
|
+
// NORMAL locking_mode rather than EXCLUSIVE: WAL + single-writer
|
|
81
|
+
// already serialises us, and EXCLUSIVE blocks any second connection
|
|
82
|
+
// attempt — including a plugin reload that races a previous
|
|
83
|
+
// connection's close on the same file (which happens in tests
|
|
84
|
+
// running mocha serially, and in production on a quick disable/
|
|
85
|
+
// enable cycle).
|
|
86
|
+
mbtiles._db?.exec('PRAGMA locking_mode = NORMAL');
|
|
87
|
+
mbtiles._db?.exec('PRAGMA cache_size = -20000'); // ~20MB RAM cache
|
|
88
|
+
mbtiles._db?.exec('PRAGMA page_size = 4096');
|
|
89
|
+
mbtiles._db?.exec('PRAGMA mmap_size = 268435456'); // 256MB mmap if supported
|
|
90
|
+
mbtiles._db?.exec('PRAGMA auto_vacuum = FULL');
|
|
91
|
+
const entries = [
|
|
92
|
+
['name', provider.name],
|
|
93
|
+
['type', 'tileLayer'],
|
|
94
|
+
['version', '1.0'],
|
|
95
|
+
['format', provider.format ? provider.format : 'png'],
|
|
96
|
+
['minzoom', String(provider.minzoom)],
|
|
97
|
+
['maxzoom', String(provider.maxzoom)]
|
|
98
|
+
// ['bounds', bbox.map(n => n.toFixed(7)).join(',')]
|
|
99
|
+
];
|
|
100
|
+
const metadata = Object.fromEntries(entries);
|
|
101
|
+
mbtiles.putInfo(metadata, (err) => {
|
|
102
|
+
if (err) {
|
|
103
|
+
return reject(err);
|
|
104
|
+
}
|
|
105
|
+
resolve(mbtiles);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function* getMBTilesForPolygon(db, geojson, zoomMin = 1, zoomMax = 14) {
|
|
112
|
+
// Prepared statement is identical across the per-feature / per-zoom loops;
|
|
113
|
+
// the bind values change but the SQL text doesn't. Hoisted so we don't
|
|
114
|
+
// pay sqlite's prepare cost once per zoom level (~14× per call before).
|
|
115
|
+
const stmt = db.prepare(`
|
|
116
|
+
SELECT tile_column, tile_row
|
|
117
|
+
FROM map
|
|
118
|
+
WHERE zoom_level = ?
|
|
119
|
+
AND tile_column BETWEEN ? AND ?
|
|
120
|
+
AND tile_row BETWEEN ? AND ?
|
|
121
|
+
`);
|
|
122
|
+
for (const feature of geojson.features) {
|
|
123
|
+
if (feature.geometry.type !== 'Polygon' &&
|
|
124
|
+
feature.geometry.type !== 'MultiPolygon') {
|
|
125
|
+
console.warn('Skipping non-polygon feature');
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
const polygon = feature.geometry;
|
|
129
|
+
const boundingBox = (0, bbox_1.default)(polygon);
|
|
130
|
+
for (let z = zoomMin; z <= zoomMax; z++) {
|
|
131
|
+
const [minX, minY] = (0, chartDownloaderTileHelpers_1.lonLatToTileXY)(boundingBox[0], boundingBox[3], z); // top-left
|
|
132
|
+
const [maxX, maxY] = (0, chartDownloaderTileHelpers_1.lonLatToTileXY)(boundingBox[2], boundingBox[1], z); // bottom-right
|
|
133
|
+
const tmsMinY = xyzToTmsY(z, maxY);
|
|
134
|
+
const tmsMaxY = xyzToTmsY(z, minY);
|
|
135
|
+
const rows = stmt.all(z, minX, maxX, tmsMinY, tmsMaxY);
|
|
136
|
+
for (const row of rows) {
|
|
137
|
+
const x = row.tile_column;
|
|
138
|
+
const y = tmsToXyzY(z, row.tile_row);
|
|
139
|
+
const tileBbox = (0, chartDownloaderTileHelpers_1.tileToBBox)(x, y, z);
|
|
140
|
+
const tilePoly = (0, chartDownloaderTileHelpers_1.bboxPolygon)(tileBbox);
|
|
141
|
+
if ((0, boolean_intersects_1.default)(feature, tilePoly)) {
|
|
142
|
+
yield { x, y, z };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async function takeChunk(gen, size) {
|
|
149
|
+
const chunk = [];
|
|
150
|
+
for (let i = 0; i < size; i++) {
|
|
151
|
+
const { value, done } = await gen.next();
|
|
152
|
+
if (done)
|
|
153
|
+
break;
|
|
154
|
+
chunk.push(value);
|
|
155
|
+
}
|
|
156
|
+
return chunk;
|
|
157
|
+
}
|
|
158
|
+
function xyzToTmsY(z, y) {
|
|
159
|
+
return (1 << z) - 1 - y;
|
|
160
|
+
}
|
|
161
|
+
function tmsToXyzY(z, y) {
|
|
162
|
+
return (1 << z) - 1 - y;
|
|
163
|
+
}
|
|
164
|
+
async function deleteTilesInChunks(db, tiles, chunkSize = 100, onProgress) {
|
|
165
|
+
let deleted = 0;
|
|
166
|
+
// Prepared statement reused across all chunks; SQL text is identical, only
|
|
167
|
+
// bind values change. Was being re-prepared per chunk before.
|
|
168
|
+
const stmt = db.prepare(`
|
|
169
|
+
DELETE FROM map
|
|
170
|
+
WHERE zoom_level = ?
|
|
171
|
+
AND tile_column = ?
|
|
172
|
+
AND tile_row = ?
|
|
173
|
+
`);
|
|
174
|
+
let chunk = await takeChunk(tiles, chunkSize);
|
|
175
|
+
while (chunk.length > 0) {
|
|
176
|
+
db.exec('BEGIN TRANSACTION');
|
|
177
|
+
try {
|
|
178
|
+
for (const { z, x, y } of chunk) {
|
|
179
|
+
stmt.run(z, x, xyzToTmsY(z, y));
|
|
180
|
+
}
|
|
181
|
+
db.exec('COMMIT');
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
// Abort the open transaction so SQLite isn't left in an
|
|
185
|
+
// implicit-rollback state holding the write lock for the rest of
|
|
186
|
+
// the run. Rethrow so the caller knows the chunk failed; partial
|
|
187
|
+
// mid-chunk deletes are reverted.
|
|
188
|
+
try {
|
|
189
|
+
db.exec('ROLLBACK');
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
// ROLLBACK can race a SQLite-internal abort and throw "no
|
|
193
|
+
// transaction is active". Safe to ignore: the transaction is
|
|
194
|
+
// gone either way, and surfacing this would mask the real err.
|
|
195
|
+
}
|
|
196
|
+
throw err;
|
|
197
|
+
}
|
|
198
|
+
deleted += chunk.length;
|
|
199
|
+
onProgress?.(deleted);
|
|
200
|
+
// Yield to event loop so UI stays responsive
|
|
201
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
202
|
+
chunk = await takeChunk(tiles, chunkSize);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function purgeOrphanImagesChunk(db, limit) {
|
|
206
|
+
const stmt = db.prepare(`
|
|
207
|
+
DELETE FROM images
|
|
208
|
+
WHERE tile_id IN (
|
|
209
|
+
SELECT tile_id
|
|
210
|
+
FROM images
|
|
211
|
+
WHERE tile_id NOT IN (SELECT tile_id FROM map)
|
|
212
|
+
LIMIT ?
|
|
213
|
+
)
|
|
214
|
+
`);
|
|
215
|
+
const result = stmt.run(limit);
|
|
216
|
+
return result.changes;
|
|
217
|
+
}
|
|
218
|
+
async function purgeAllOrphanImages(db, chunkSize = 1000, onProgress) {
|
|
219
|
+
let total = 0;
|
|
220
|
+
let deleted;
|
|
221
|
+
while ((deleted = Number(await purgeOrphanImagesChunk(db, chunkSize))) > 0) {
|
|
222
|
+
total += deleted;
|
|
223
|
+
onProgress?.(deleted, total);
|
|
224
|
+
// Yield to event loop → app stays responsive
|
|
225
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
226
|
+
}
|
|
227
|
+
db.exec('PRAGMA wal_checkpoint(TRUNCATE)');
|
|
228
|
+
return total;
|
|
229
|
+
}
|
|
230
|
+
function vacuumMbtiles(db) {
|
|
231
|
+
db.exec('PRAGMA journal_mode=DELETE');
|
|
232
|
+
db.exec('VACUUM');
|
|
233
|
+
db.exec('PRAGMA journal_mode=WAL');
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=chartDownloaderMBTilesHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartDownloaderMBTilesHelpers.js","sourceRoot":"","sources":["../src/chartDownloaderMBTilesHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BBox, FeatureCollection, Polygon, Feature } from 'geojson';
|
|
2
|
+
export interface Tile {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
}
|
|
7
|
+
export type TileGeneratorFactory = () => Generator<Tile, void, undefined>;
|
|
8
|
+
/**
|
|
9
|
+
* Get tiles intersecting features in a GeoJSON FeatureCollection.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getTilesForGeoJSON(geojson: FeatureCollection, zoomMin?: number, zoomMax?: number): Generator<Tile, void, undefined>;
|
|
12
|
+
export declare function countTiles(tiles: TileGeneratorFactory, upperLimit?: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Convert a region object (with a .feature) into a FeatureCollection of Polygons.
|
|
15
|
+
* Note: requires external splitGeoJSON helper.
|
|
16
|
+
*/
|
|
17
|
+
export declare function convertFeatureToGeoJSON(feature: GeoJSON.Feature<GeoJSON.Geometry>): FeatureCollection;
|
|
18
|
+
/**
|
|
19
|
+
* Convert a bounding box to a GeoJSON Polygon Feature.
|
|
20
|
+
*
|
|
21
|
+
* @param bbox - [minLon, minLat, maxLon, maxLat]
|
|
22
|
+
* @param properties - Optional properties to attach to the feature
|
|
23
|
+
* @returns GeoJSON Polygon Feature
|
|
24
|
+
*/
|
|
25
|
+
export declare function convertBboxToGeoJSON(bbox: BBox, properties?: Record<string, any>): FeatureCollection;
|
|
26
|
+
export declare function lonLatToTileXY(lon: number, lat: number, zoom: number): [number, number];
|
|
27
|
+
export declare function tileToBBox(x: number, y: number, z: number): BBox;
|
|
28
|
+
export declare function bboxPolygon(boundingBox: BBox): Feature<Polygon, import("geojson").GeoJsonProperties>;
|
|
29
|
+
export declare function countTilesAdaptiveIterative(geojson: FeatureCollection, minZoom: number, maxZoom: number): number;
|
|
30
|
+
//# sourceMappingURL=chartDownloaderTileHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartDownloaderTileHelpers.d.ts","sourceRoot":"","sources":["../src/chartDownloaderTileHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,iBAAiB,EACjB,OAAO,EAEP,OAAO,EAER,MAAM,SAAS,CAAA;AAMhB,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;AAIzE;;GAEG;AACH,wBAAiB,kBAAkB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,SAAI,EACX,OAAO,SAAK,GACX,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CA6BlC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,oBAAoB,EAC3B,UAAU,GAAE,MAAiC,GAC5C,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GACzC,iBAAiB,CAoCnB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GACnC,iBAAiB,CAyBnB;AAyCD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,CAAC,MAAM,EAAE,MAAM,CAAC,CAalB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAShE;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,IAAI,yDAW5C;AAiED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,CAuDR"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getTilesForGeoJSON = getTilesForGeoJSON;
|
|
7
|
+
exports.countTiles = countTiles;
|
|
8
|
+
exports.convertFeatureToGeoJSON = convertFeatureToGeoJSON;
|
|
9
|
+
exports.convertBboxToGeoJSON = convertBboxToGeoJSON;
|
|
10
|
+
exports.lonLatToTileXY = lonLatToTileXY;
|
|
11
|
+
exports.tileToBBox = tileToBBox;
|
|
12
|
+
exports.bboxPolygon = bboxPolygon;
|
|
13
|
+
exports.countTilesAdaptiveIterative = countTilesAdaptiveIterative;
|
|
14
|
+
const geojson_antimeridian_cut_1 = __importDefault(require("geojson-antimeridian-cut"));
|
|
15
|
+
const boolean_intersects_1 = __importDefault(require("@turf/boolean-intersects"));
|
|
16
|
+
const bbox_1 = __importDefault(require("@turf/bbox"));
|
|
17
|
+
const helpers_1 = require("@turf/helpers");
|
|
18
|
+
/**
|
|
19
|
+
* Get tiles intersecting features in a GeoJSON FeatureCollection.
|
|
20
|
+
*/
|
|
21
|
+
function* getTilesForGeoJSON(geojson, zoomMin = 1, zoomMax = 14) {
|
|
22
|
+
// Fix all the polygons received from leaflet to be between -180 and 180
|
|
23
|
+
for (const feature of geojson.features) {
|
|
24
|
+
if (feature.geometry.type !== 'Polygon' &&
|
|
25
|
+
feature.geometry.type !== 'MultiPolygon') {
|
|
26
|
+
console.warn('Skipping non-polygon feature');
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const boundingBox = (0, bbox_1.default)(feature.geometry); // [minX, minY, maxX, maxY]
|
|
30
|
+
for (let z = zoomMin; z <= zoomMax; z++) {
|
|
31
|
+
const [minX, minY] = lonLatToTileXY(boundingBox[0], boundingBox[3], z); // top-left
|
|
32
|
+
const [maxX, maxY] = lonLatToTileXY(boundingBox[2], boundingBox[1], z); // bottom-right
|
|
33
|
+
for (let x = minX; x <= maxX; x++) {
|
|
34
|
+
for (let y = minY; y <= maxY; y++) {
|
|
35
|
+
const tileBbox = tileToBBox(x, y, z);
|
|
36
|
+
const tilePoly = bboxPolygon(tileBbox);
|
|
37
|
+
if ((0, boolean_intersects_1.default)(feature, tilePoly)) {
|
|
38
|
+
yield { x, y, z };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function countTiles(tiles, upperLimit = Number.POSITIVE_INFINITY) {
|
|
46
|
+
let count = 0;
|
|
47
|
+
const tileIterator = tiles();
|
|
48
|
+
for (let r = tileIterator.next(); !r.done; r = tileIterator.next()) {
|
|
49
|
+
count++;
|
|
50
|
+
if (count >= upperLimit) {
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return count;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Convert a region object (with a .feature) into a FeatureCollection of Polygons.
|
|
58
|
+
* Note: requires external splitGeoJSON helper.
|
|
59
|
+
*/
|
|
60
|
+
function convertFeatureToGeoJSON(feature) {
|
|
61
|
+
const normalizedFeature = normalizeGeoJSONLongitudes(feature);
|
|
62
|
+
const splitGeoFeature = (0, geojson_antimeridian_cut_1.default)(normalizedFeature);
|
|
63
|
+
const features = [];
|
|
64
|
+
const pushFeaturePolygon = (orig, coords, idx) => {
|
|
65
|
+
const poly = {
|
|
66
|
+
type: 'Feature',
|
|
67
|
+
id: idx != null && orig.id ? `${orig.id}-${idx}` : orig.id,
|
|
68
|
+
geometry: {
|
|
69
|
+
type: 'Polygon',
|
|
70
|
+
coordinates: coords
|
|
71
|
+
},
|
|
72
|
+
properties: orig.properties || {}
|
|
73
|
+
};
|
|
74
|
+
features.push(poly);
|
|
75
|
+
};
|
|
76
|
+
const f = splitGeoFeature;
|
|
77
|
+
if (f.geometry && f.geometry.type === 'MultiPolygon') {
|
|
78
|
+
const coords = f.geometry.coordinates;
|
|
79
|
+
for (let i = 0; i < coords.length; i++) {
|
|
80
|
+
pushFeaturePolygon(f, coords[i], i);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (f.geometry && f.geometry.type === 'Polygon') {
|
|
84
|
+
features.push(f);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
type: 'FeatureCollection',
|
|
88
|
+
features
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Convert a bounding box to a GeoJSON Polygon Feature.
|
|
93
|
+
*
|
|
94
|
+
* @param bbox - [minLon, minLat, maxLon, maxLat]
|
|
95
|
+
* @param properties - Optional properties to attach to the feature
|
|
96
|
+
* @returns GeoJSON Polygon Feature
|
|
97
|
+
*/
|
|
98
|
+
function convertBboxToGeoJSON(bbox, properties = {}) {
|
|
99
|
+
const [minLon, minLat, maxLon, maxLat] = bbox;
|
|
100
|
+
// Polygon coordinates must be an array of linear rings
|
|
101
|
+
// First (and only) ring is the outer boundary
|
|
102
|
+
const coordinates = [
|
|
103
|
+
[
|
|
104
|
+
[minLon, minLat], // bottom-left
|
|
105
|
+
[maxLon, minLat], // bottom-right
|
|
106
|
+
[maxLon, maxLat], // top-right
|
|
107
|
+
[minLon, maxLat], // top-left
|
|
108
|
+
[minLon, minLat] // close ring
|
|
109
|
+
]
|
|
110
|
+
];
|
|
111
|
+
const geojson = {
|
|
112
|
+
type: 'Feature',
|
|
113
|
+
geometry: {
|
|
114
|
+
type: 'Polygon',
|
|
115
|
+
coordinates
|
|
116
|
+
},
|
|
117
|
+
properties
|
|
118
|
+
};
|
|
119
|
+
return convertFeatureToGeoJSON(geojson);
|
|
120
|
+
}
|
|
121
|
+
function normalizeGeoJSONLongitudes(feature) {
|
|
122
|
+
const geom = feature.geometry;
|
|
123
|
+
switch (geom.type) {
|
|
124
|
+
case 'Polygon':
|
|
125
|
+
normalizePolygon(geom.coordinates);
|
|
126
|
+
break;
|
|
127
|
+
case 'MultiPolygon':
|
|
128
|
+
for (const polygon of geom.coordinates) {
|
|
129
|
+
normalizePolygon(polygon);
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
// }
|
|
136
|
+
return feature;
|
|
137
|
+
}
|
|
138
|
+
function normalizePolygon(rings) {
|
|
139
|
+
for (const ring of rings) {
|
|
140
|
+
for (const coord of ring) {
|
|
141
|
+
coord[0] = normalizeLon(coord[0]);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function normalizeLon(lon) {
|
|
146
|
+
if (lon < -180)
|
|
147
|
+
return lon + 360;
|
|
148
|
+
if (lon > 180)
|
|
149
|
+
return lon - 360;
|
|
150
|
+
return lon;
|
|
151
|
+
}
|
|
152
|
+
/* Coordinate / tile conversions kept as standalone functions */
|
|
153
|
+
function lonLatToTileXY(lon, lat, zoom) {
|
|
154
|
+
const n = 2 ** zoom;
|
|
155
|
+
const x = Math.floor(((lon + 180) / 360) * n);
|
|
156
|
+
const y = Math.floor(((1 -
|
|
157
|
+
Math.log(Math.tan((lat * Math.PI) / 180) + 1 / Math.cos((lat * Math.PI) / 180)) /
|
|
158
|
+
Math.PI) /
|
|
159
|
+
2) *
|
|
160
|
+
n);
|
|
161
|
+
return [x, y];
|
|
162
|
+
}
|
|
163
|
+
function tileToBBox(x, y, z) {
|
|
164
|
+
const n = 2 ** z;
|
|
165
|
+
const lon1 = (x / n) * 360 - 180;
|
|
166
|
+
const lat1 = (Math.atan(Math.sinh(Math.PI * (1 - (2 * y) / n))) * 180) / Math.PI;
|
|
167
|
+
const lon2 = ((x + 1) / n) * 360 - 180;
|
|
168
|
+
const lat2 = (Math.atan(Math.sinh(Math.PI * (1 - (2 * (y + 1)) / n))) * 180) / Math.PI;
|
|
169
|
+
return [lon1, lat2, lon2, lat1];
|
|
170
|
+
}
|
|
171
|
+
function bboxPolygon(boundingBox) {
|
|
172
|
+
const [minLon, minLat, maxLon, maxLat] = boundingBox;
|
|
173
|
+
return (0, helpers_1.polygon)([
|
|
174
|
+
[
|
|
175
|
+
[minLon, minLat],
|
|
176
|
+
[maxLon, minLat],
|
|
177
|
+
[maxLon, maxLat],
|
|
178
|
+
[minLon, maxLat],
|
|
179
|
+
[minLon, minLat]
|
|
180
|
+
]
|
|
181
|
+
]);
|
|
182
|
+
}
|
|
183
|
+
function pointInRing(pt, ring) {
|
|
184
|
+
const [x, y] = pt;
|
|
185
|
+
let inside = false;
|
|
186
|
+
for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
|
|
187
|
+
const [xi, yi] = ring[i];
|
|
188
|
+
const [xj, yj] = ring[j];
|
|
189
|
+
const intersect = yi > y !== yj > y &&
|
|
190
|
+
x < ((xj - xi) * (y - yi)) / (yj - yi + Number.EPSILON) + xi;
|
|
191
|
+
if (intersect)
|
|
192
|
+
inside = !inside;
|
|
193
|
+
}
|
|
194
|
+
return inside;
|
|
195
|
+
}
|
|
196
|
+
function pointInPolygonFeature(pt, feature) {
|
|
197
|
+
const geom = feature;
|
|
198
|
+
if (geom.type === 'Polygon') {
|
|
199
|
+
const [outer, ...holes] = geom.coordinates;
|
|
200
|
+
if (!pointInRing(pt, outer))
|
|
201
|
+
return false;
|
|
202
|
+
for (const hole of holes) {
|
|
203
|
+
if (pointInRing(pt, hole))
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
function bboxIntersects(a, b) {
|
|
211
|
+
return !(a[2] < b[0] || a[0] > b[2] || a[3] < b[1] || a[1] > b[3]);
|
|
212
|
+
}
|
|
213
|
+
function isTileFullyInside(tileBBox, feature) {
|
|
214
|
+
const [minLon, minLat, maxLon, maxLat] = tileBBox;
|
|
215
|
+
return (pointInPolygonFeature([minLon, minLat], feature) &&
|
|
216
|
+
pointInPolygonFeature([minLon, maxLat], feature) &&
|
|
217
|
+
pointInPolygonFeature([maxLon, minLat], feature) &&
|
|
218
|
+
pointInPolygonFeature([maxLon, maxLat], feature));
|
|
219
|
+
}
|
|
220
|
+
function subdivide(tile) {
|
|
221
|
+
const { x, y, z } = tile;
|
|
222
|
+
const z2 = z + 1;
|
|
223
|
+
return [
|
|
224
|
+
{ x: x * 2, y: y * 2, z: z2 },
|
|
225
|
+
{ x: x * 2 + 1, y: y * 2, z: z2 },
|
|
226
|
+
{ x: x * 2, y: y * 2 + 1, z: z2 },
|
|
227
|
+
{ x: x * 2 + 1, y: y * 2 + 1, z: z2 }
|
|
228
|
+
];
|
|
229
|
+
}
|
|
230
|
+
function countTilesAdaptiveIterative(geojson, minZoom, maxZoom) {
|
|
231
|
+
let count = 0;
|
|
232
|
+
for (const feature of geojson.features) {
|
|
233
|
+
if (feature.geometry.type !== 'Polygon' &&
|
|
234
|
+
feature.geometry.type !== 'MultiPolygon') {
|
|
235
|
+
console.warn('Skipping non-polygon feature');
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
const polygonBBox = (0, bbox_1.default)(feature.geometry);
|
|
239
|
+
const stack = [];
|
|
240
|
+
const minTile = lonLatToTileXY(polygonBBox[0], polygonBBox[3], minZoom);
|
|
241
|
+
const maxTile = lonLatToTileXY(polygonBBox[2], polygonBBox[1], minZoom);
|
|
242
|
+
for (let x = minTile[0]; x <= maxTile[0]; x++) {
|
|
243
|
+
for (let y = minTile[1]; y <= maxTile[1]; y++) {
|
|
244
|
+
stack.push({ x, y, z: minZoom });
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
while (stack.length > 0) {
|
|
248
|
+
const tile = stack.pop();
|
|
249
|
+
const tileBBox = tileToBBox(tile.x, tile.y, tile.z);
|
|
250
|
+
// Fast bbox reject
|
|
251
|
+
if (!bboxIntersects(tileBBox, polygonBBox)) {
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
// This assumes that if all for corners of a tile is inside the polygon, then the whole tile is inside. This is not always true (e.g. a C shaped polygon), but should be good enough for estimation.
|
|
255
|
+
if (isTileFullyInside(tileBBox, feature.geometry)) {
|
|
256
|
+
const levels = maxZoom - tile.z;
|
|
257
|
+
count += (Math.pow(4, levels + 1) - 1) / 3;
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
const tilePoly = bboxPolygon(tileBBox);
|
|
261
|
+
if (!(0, boolean_intersects_1.default)(feature, tilePoly)) {
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
count++;
|
|
265
|
+
if (tile.z < maxZoom) {
|
|
266
|
+
const children = subdivide(tile);
|
|
267
|
+
for (let i = children.length - 1; i >= 0; i--) {
|
|
268
|
+
// children was just produced by subdivide(); the index is in-range,
|
|
269
|
+
// so the non-null assertion is safe under noUncheckedIndexedAccess.
|
|
270
|
+
stack.push(children[i]);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return count;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=chartDownloaderTileHelpers.js.map
|