@map-colonies/mc-utils 1.8.1 → 1.9.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/dist/geo/tiles.d.ts +39 -1
- package/dist/geo/tiles.d.ts.map +1 -1
- package/dist/geo/tiles.js +106 -1
- package/dist/geo/tiles.js.map +1 -1
- package/package.json +1 -1
package/dist/geo/tiles.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BBox2d } from '@turf/helpers/dist/js/lib/geojson';
|
|
2
|
-
import {
|
|
2
|
+
import { Feature, FeatureCollection, MultiPolygon, Polygon } from '@turf/turf';
|
|
3
|
+
import { ITile, ITileRange } from '../models/interfaces/geo/iTile';
|
|
3
4
|
/**
|
|
4
5
|
* calculates tile size (resolution) in degrees
|
|
5
6
|
* @param zoomLevel zoom level of returned tile size
|
|
@@ -42,4 +43,41 @@ export declare function degreesPerPixelToZoomLevel(resolution: number): number;
|
|
|
42
43
|
* @returns
|
|
43
44
|
*/
|
|
44
45
|
export declare function tileToBbox(tile: ITile): BBox2d;
|
|
46
|
+
/**
|
|
47
|
+
* returns the batch area
|
|
48
|
+
* @param ITileRange
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
export declare function tileRangeToTilesCount(batch: ITileRange): number;
|
|
52
|
+
/**
|
|
53
|
+
* returns tiles amount of given feature and zoom ranges - based on 2:1 tile scheme
|
|
54
|
+
* use the bboxToTileRange method and provide sanitized bbox coverage of tiles
|
|
55
|
+
* @param feature
|
|
56
|
+
* If feature's properties include attributes of "maxResolutionDeg" and "minResolutionDeg" or just one of them -
|
|
57
|
+
* It will be converted to maxZoom and minZoom instead of default params to calculate
|
|
58
|
+
* minResolutionDeg >= 0.703125
|
|
59
|
+
* maxResolutionDeg <= 0.000000167638063430786
|
|
60
|
+
* @param layerFootprint - referenced layer geometry to snap on the bbox
|
|
61
|
+
* @param defaultMaxZoom optional - default is 22 - if maxResolutionDeg property was provided, the param will be ignored
|
|
62
|
+
* @param defaultMinZoom optional - default is 0 - if minResolutionDeg property was provided, the param will be ignored
|
|
63
|
+
* @returns tile count included on provided feature and zooms ranges
|
|
64
|
+
*/
|
|
65
|
+
export declare function featureToTilesCount(feature: Feature<Polygon | MultiPolygon>, defaultMaxZoom?: number, defaultMinZoom?: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* returns tiles amount of given featureCollection [each feature may include maxResolutionDeg and minResolutionDeg
|
|
68
|
+
* if no resolutions in property will calculate all features with optional argument]
|
|
69
|
+
* based on 2:1 tile scheme
|
|
70
|
+
* use the bboxToTileRange method and provide sanitized bbox coverage of tiles
|
|
71
|
+
* @param fc - FeatureCollection
|
|
72
|
+
* foreach feature in featuresCollection features array:
|
|
73
|
+
* If feature's properties include attributes of "maxResolutionDeg" and "minResolutionDeg" or just one of them -
|
|
74
|
+
* It will be converted to maxZoom and minZoom instead of default params to calculate
|
|
75
|
+
* minResolutionDeg >= 0.703125
|
|
76
|
+
* maxResolutionDeg <= 0.000000167638063430786
|
|
77
|
+
* for current feature in the array
|
|
78
|
+
* @param defaultMaxZoom optional - default is 22 - if maxResolutionDeg property was provided, the param will be ignored
|
|
79
|
+
* @param defaultMinZoom optional - default is 0 - if minResolutionDeg property was provided, the param will be ignored
|
|
80
|
+
* @returns tile count included on provided feature and zooms ranges
|
|
81
|
+
*/
|
|
82
|
+
export declare function featureCollectionToTilesCount(fc: FeatureCollection, defaultMaxZoom?: number, defaultMinZoom?: number): number;
|
|
45
83
|
//# sourceMappingURL=tiles.d.ts.map
|
package/dist/geo/tiles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiles.d.ts","sourceRoot":"","sources":["../../src/geo/tiles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tiles.d.ts","sourceRoot":"","sources":["../../src/geo/tiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAQ,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAwDnE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,CAO5C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAI9C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,cAAc,SAAK,EAAE,cAAc,SAAI,GAAG,MAAM,CA2B7H;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,iBAAiB,EAAE,cAAc,SAAK,EAAE,cAAc,SAAI,GAAG,MAAM,CAWpH"}
|
package/dist/geo/tiles.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __values = (this && this.__values) || function(o) {
|
|
3
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
+
if (m) return m.call(o);
|
|
5
|
+
if (o && typeof o.length === "number") return {
|
|
6
|
+
next: function () {
|
|
7
|
+
if (o && i >= o.length) o = void 0;
|
|
8
|
+
return { value: o && o[i++], done: !o };
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tileToBbox = exports.degreesPerPixelToZoomLevel = exports.zoomLevelToResolutionMeter = exports.zoomLevelToResolutionDeg = exports.flipYAxis = exports.degreesPerPixel = exports.degreesPerTile = void 0;
|
|
14
|
+
exports.featureCollectionToTilesCount = exports.featureToTilesCount = exports.tileRangeToTilesCount = exports.tileToBbox = exports.degreesPerPixelToZoomLevel = exports.zoomLevelToResolutionMeter = exports.zoomLevelToResolutionDeg = exports.flipYAxis = exports.degreesPerPixel = exports.degreesPerTile = void 0;
|
|
15
|
+
var turf_1 = require("@turf/turf");
|
|
16
|
+
var bboxUtils_1 = require("./bboxUtils");
|
|
4
17
|
var geoConvertor_1 = require("./geoConvertor");
|
|
5
18
|
var zoomToResolutionDegMapper = {
|
|
6
19
|
0: 0.703125,
|
|
@@ -131,4 +144,96 @@ function tileToBbox(tile) {
|
|
|
131
144
|
return [minPoint.longitude, minPoint.latitude, minPoint.longitude + tileSize, minPoint.latitude + tileSize];
|
|
132
145
|
}
|
|
133
146
|
exports.tileToBbox = tileToBbox;
|
|
147
|
+
/**
|
|
148
|
+
* returns the batch area
|
|
149
|
+
* @param ITileRange
|
|
150
|
+
* @returns
|
|
151
|
+
*/
|
|
152
|
+
function tileRangeToTilesCount(batch) {
|
|
153
|
+
return (batch.maxX - batch.minX) * (batch.maxY - batch.minY);
|
|
154
|
+
}
|
|
155
|
+
exports.tileRangeToTilesCount = tileRangeToTilesCount;
|
|
156
|
+
/**
|
|
157
|
+
* returns tiles amount of given feature and zoom ranges - based on 2:1 tile scheme
|
|
158
|
+
* use the bboxToTileRange method and provide sanitized bbox coverage of tiles
|
|
159
|
+
* @param feature
|
|
160
|
+
* If feature's properties include attributes of "maxResolutionDeg" and "minResolutionDeg" or just one of them -
|
|
161
|
+
* It will be converted to maxZoom and minZoom instead of default params to calculate
|
|
162
|
+
* minResolutionDeg >= 0.703125
|
|
163
|
+
* maxResolutionDeg <= 0.000000167638063430786
|
|
164
|
+
* @param layerFootprint - referenced layer geometry to snap on the bbox
|
|
165
|
+
* @param defaultMaxZoom optional - default is 22 - if maxResolutionDeg property was provided, the param will be ignored
|
|
166
|
+
* @param defaultMinZoom optional - default is 0 - if minResolutionDeg property was provided, the param will be ignored
|
|
167
|
+
* @returns tile count included on provided feature and zooms ranges
|
|
168
|
+
*/
|
|
169
|
+
function featureToTilesCount(feature, defaultMaxZoom, defaultMinZoom) {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
if (defaultMaxZoom === void 0) { defaultMaxZoom = 22; }
|
|
172
|
+
if (defaultMinZoom === void 0) { defaultMinZoom = 0; }
|
|
173
|
+
var tilesTotalAmount = 0;
|
|
174
|
+
if (defaultMaxZoom > 22 || defaultMinZoom < 0) {
|
|
175
|
+
throw new RangeError("Un supported zoom levels values, min-max zoom should be [0-22] but actual [".concat(defaultMinZoom, ":").concat(defaultMaxZoom, "]"));
|
|
176
|
+
}
|
|
177
|
+
if (defaultMinZoom > defaultMaxZoom) {
|
|
178
|
+
throw new RangeError("Illegal - defaultMinZoom[".concat(defaultMinZoom, "] is larger than defaultMaxZoom[").concat(defaultMaxZoom, "]"));
|
|
179
|
+
}
|
|
180
|
+
try {
|
|
181
|
+
var targetMaxZoom = ((_a = feature.properties) === null || _a === void 0 ? void 0 : _a.maxResolutionDeg) !== undefined ? degreesPerPixelToZoomLevel(feature.properties.maxResolutionDeg) : defaultMaxZoom;
|
|
182
|
+
var targetMinZoom = ((_b = feature.properties) === null || _b === void 0 ? void 0 : _b.minResolutionDeg) !== undefined ? degreesPerPixelToZoomLevel(feature.properties.minResolutionDeg) : defaultMinZoom;
|
|
183
|
+
var sanitized = (0, bboxUtils_1.snapBBoxToTileGrid)((0, turf_1.bbox)(feature.geometry), targetMaxZoom);
|
|
184
|
+
for (var i = targetMinZoom; i <= targetMaxZoom; i++) {
|
|
185
|
+
var zoomTilesBatch = (0, bboxUtils_1.bboxToTileRange)(sanitized, i);
|
|
186
|
+
tilesTotalAmount += tileRangeToTilesCount(zoomTilesBatch);
|
|
187
|
+
}
|
|
188
|
+
return tilesTotalAmount;
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
var message = "Error occurred while trying to calculate tiles amount - encodeFootprint error: ".concat(JSON.stringify(error));
|
|
192
|
+
throw new Error(message);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
exports.featureToTilesCount = featureToTilesCount;
|
|
196
|
+
/**
|
|
197
|
+
* returns tiles amount of given featureCollection [each feature may include maxResolutionDeg and minResolutionDeg
|
|
198
|
+
* if no resolutions in property will calculate all features with optional argument]
|
|
199
|
+
* based on 2:1 tile scheme
|
|
200
|
+
* use the bboxToTileRange method and provide sanitized bbox coverage of tiles
|
|
201
|
+
* @param fc - FeatureCollection
|
|
202
|
+
* foreach feature in featuresCollection features array:
|
|
203
|
+
* If feature's properties include attributes of "maxResolutionDeg" and "minResolutionDeg" or just one of them -
|
|
204
|
+
* It will be converted to maxZoom and minZoom instead of default params to calculate
|
|
205
|
+
* minResolutionDeg >= 0.703125
|
|
206
|
+
* maxResolutionDeg <= 0.000000167638063430786
|
|
207
|
+
* for current feature in the array
|
|
208
|
+
* @param defaultMaxZoom optional - default is 22 - if maxResolutionDeg property was provided, the param will be ignored
|
|
209
|
+
* @param defaultMinZoom optional - default is 0 - if minResolutionDeg property was provided, the param will be ignored
|
|
210
|
+
* @returns tile count included on provided feature and zooms ranges
|
|
211
|
+
*/
|
|
212
|
+
function featureCollectionToTilesCount(fc, defaultMaxZoom, defaultMinZoom) {
|
|
213
|
+
var e_1, _a;
|
|
214
|
+
if (defaultMaxZoom === void 0) { defaultMaxZoom = 22; }
|
|
215
|
+
if (defaultMinZoom === void 0) { defaultMinZoom = 0; }
|
|
216
|
+
var tilesTotalAmount = 0;
|
|
217
|
+
try {
|
|
218
|
+
try {
|
|
219
|
+
for (var _b = __values(fc.features), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
220
|
+
var feature = _c.value;
|
|
221
|
+
tilesTotalAmount += featureToTilesCount(feature, defaultMaxZoom, defaultMinZoom);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
225
|
+
finally {
|
|
226
|
+
try {
|
|
227
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
228
|
+
}
|
|
229
|
+
finally { if (e_1) throw e_1.error; }
|
|
230
|
+
}
|
|
231
|
+
return tilesTotalAmount;
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
var message = "Error occurred while trying to calculate tiles amount - encodeFootprint error: ".concat(JSON.stringify(error));
|
|
235
|
+
throw new Error(message);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
exports.featureCollectionToTilesCount = featureCollectionToTilesCount;
|
|
134
239
|
//# sourceMappingURL=tiles.js.map
|
package/dist/geo/tiles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../../src/geo/tiles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../../src/geo/tiles.ts"],"names":[],"mappings":"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"}
|