@basemaps/shared 6.39.0 → 6.41.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/build/__tests__/api.test.js +17 -2
  3. package/build/__tests__/api.test.js.map +1 -1
  4. package/build/__tests__/util.test.js +10 -1
  5. package/build/__tests__/util.test.js.map +1 -1
  6. package/build/api.d.ts +2 -0
  7. package/build/api.d.ts.map +1 -1
  8. package/build/api.js +10 -0
  9. package/build/api.js.map +1 -1
  10. package/build/cli/base.d.ts +0 -8
  11. package/build/cli/base.d.ts.map +1 -1
  12. package/build/cli/base.js +3 -14
  13. package/build/cli/base.js.map +1 -1
  14. package/build/cli/info.d.ts +10 -0
  15. package/build/cli/info.d.ts.map +1 -0
  16. package/build/cli/info.js +14 -0
  17. package/build/cli/info.js.map +1 -0
  18. package/build/index.d.ts +1 -3
  19. package/build/index.d.ts.map +1 -1
  20. package/build/index.js +1 -3
  21. package/build/index.js.map +1 -1
  22. package/build/util.d.ts +3 -2
  23. package/build/util.d.ts.map +1 -1
  24. package/build/util.js +19 -4
  25. package/build/util.js.map +1 -1
  26. package/package.json +8 -10
  27. package/build/proj/__tests__/projection.test.d.ts +0 -2
  28. package/build/proj/__tests__/projection.test.d.ts.map +0 -1
  29. package/build/proj/__tests__/projection.test.js +0 -113
  30. package/build/proj/__tests__/projection.test.js.map +0 -1
  31. package/build/proj/__tests__/projection.tile.matrix.set.test.d.ts +0 -2
  32. package/build/proj/__tests__/projection.tile.matrix.set.test.d.ts.map +0 -1
  33. package/build/proj/__tests__/projection.tile.matrix.set.test.js +0 -234
  34. package/build/proj/__tests__/projection.tile.matrix.set.test.js.map +0 -1
  35. package/build/proj/__tests__/test.util.d.ts +0 -6
  36. package/build/proj/__tests__/test.util.d.ts.map +0 -1
  37. package/build/proj/__tests__/test.util.js +0 -26
  38. package/build/proj/__tests__/test.util.js.map +0 -1
  39. package/build/proj/citm2000.d.ts +0 -7
  40. package/build/proj/citm2000.d.ts.map +0 -1
  41. package/build/proj/citm2000.js +0 -29
  42. package/build/proj/citm2000.js.map +0 -1
  43. package/build/proj/nztm2000.d.ts +0 -7
  44. package/build/proj/nztm2000.d.ts.map +0 -1
  45. package/build/proj/nztm2000.js +0 -27
  46. package/build/proj/nztm2000.js.map +0 -1
  47. package/build/proj/projection.d.ts +0 -110
  48. package/build/proj/projection.d.ts.map +0 -1
  49. package/build/proj/projection.js +0 -233
  50. package/build/proj/projection.js.map +0 -1
  51. package/build/proj/tile.set.name.d.ts +0 -5
  52. package/build/proj/tile.set.name.d.ts.map +0 -1
  53. package/build/proj/tile.set.name.js +0 -8
  54. package/build/proj/tile.set.name.js.map +0 -1
@@ -1,234 +0,0 @@
1
- import { Bounds, GoogleTms, Nztm2000QuadTms, Nztm2000Tms, QuadKey } from '@basemaps/geo';
2
- import { Approx } from '@basemaps/test';
3
- import { round } from '@basemaps/test/build/rounding.js';
4
- import o from 'ospec';
5
- import { Projection } from '../projection.js';
6
- const TileSize = 256;
7
- /**
8
- * Get the raster bounds for a WebMercator zoom level
9
- *
10
- * @param extent Extent in meters in the format of [minX,minY,maxX,maxY]
11
- * @param zoom Web mercator zoom level
12
- */
13
- function getPixelsBoundsFromMeters(extent, zoom) {
14
- const upperLeftMeters = GoogleTms.sourceToPixels(extent[0], extent[3], zoom);
15
- const lowerRightMeters = GoogleTms.sourceToPixels(extent[2], extent[1], zoom);
16
- return Bounds.fromUpperLeftLowerRight(upperLeftMeters, lowerRightMeters);
17
- }
18
- /** Convert a XYZ tile into a screen bounding box */
19
- function getPixelsFromTile(x, y) {
20
- return new Bounds(x * TileSize, y * TileSize, TileSize, TileSize);
21
- }
22
- function isValidLatLong(x) {
23
- o(x.lat <= 90).equals(true)(`lat: ${x.lat} <= 90`);
24
- o(x.lat >= -90).equals(true)(`lat: ${x.lat} >= -90`);
25
- o(x.lon <= 180).equals(true)(`lon: ${x.lon} <= 180`);
26
- o(x.lon >= -180).equals(true)(`lon: ${x.lon} >= -180`);
27
- }
28
- o.spec('ProjectionTileMatrixSet', () => {
29
- o('getTiffResZoom', () => {
30
- o(Projection.getTiffResZoom(GoogleTms, 10)).equals(14);
31
- o(Projection.getTiffResZoom(GoogleTms, 10 * 2)).equals(13);
32
- o(Projection.getTiffResZoom(GoogleTms, 0.075)).equals(21);
33
- o(Projection.getTiffResZoom(Nztm2000Tms, 10)).equals(10);
34
- o(Projection.getTiffResZoom(Nztm2000Tms, 10 * 2)).equals(9);
35
- o(Projection.getTiffResZoom(Nztm2000Tms, 0.075)).equals(16);
36
- });
37
- [Nztm2000QuadTms, GoogleTms].forEach((tms) => {
38
- o(`should getTiffResZoom when floating errors happen (${tms.identifier})`, () => {
39
- // Shift the resolution by a very small amount
40
- const shiftAmount = 1e-9;
41
- for (let i = 0; i < tms.maxZoom; i++) {
42
- o(Projection.getTiffResZoom(tms, tms.pixelScale(i) - shiftAmount)).equals(i);
43
- o(Projection.getTiffResZoom(tms, tms.pixelScale(i) + shiftAmount)).equals(i);
44
- }
45
- });
46
- });
47
- o('getTileSize', async () => {
48
- o(Projection.getImagePixelWidth(GoogleTms, { x: 0, y: 0, z: 5 }, 10)).equals(16384);
49
- o(Projection.getImagePixelWidth(GoogleTms, { x: 0, y: 0, z: 13 }, 20)).equals(65536);
50
- o(Projection.getImagePixelWidth(Nztm2000Tms, { x: 0, y: 0, z: 5 }, 10)).equals(20480);
51
- o(Projection.getImagePixelWidth(Nztm2000Tms, { x: 0, y: 0, z: 13 }, 16)).equals(5120);
52
- });
53
- o('findAlignmentLevels', () => {
54
- o(Projection.findAlignmentLevels(GoogleTms, { x: 2, y: 0, z: 5 }, 0.075)).equals(15);
55
- o(Projection.findAlignmentLevels(GoogleTms, { x: 2, y: 0, z: 5 }, 0.5)).equals(13);
56
- o(Projection.findAlignmentLevels(GoogleTms, { x: 2, y: 0, z: 3 }, 1)).equals(14);
57
- o(Projection.findAlignmentLevels(GoogleTms, { x: 2, y: 0, z: 8 }, 10)).equals(5);
58
- o(Projection.findAlignmentLevels(GoogleTms, { x: 2, y: 0, z: 14 }, 10)).equals(0);
59
- o(Projection.findAlignmentLevels(Nztm2000Tms, { x: 2, y: 0, z: 1 }, 0.075)).equals(14);
60
- o(Projection.findAlignmentLevels(Nztm2000Tms, { x: 2, y: 0, z: 5 }, 0.5)).equals(8);
61
- o(Projection.findAlignmentLevels(Nztm2000Tms, { x: 2, y: 0, z: 3 }, 7)).equals(6);
62
- o(Projection.findAlignmentLevels(Nztm2000Tms, { x: 2, y: 0, z: 8 }, 14)).equals(0);
63
- });
64
- o.spec('tileCenterToLatLon', () => {
65
- o('should create centers for web mercator', () => {
66
- const center = Projection.tileCenterToLatLon(GoogleTms, QuadKey.toTile('3120123'));
67
- isValidLatLong(center);
68
- o(round(center, 6)).deepEquals({
69
- lat: -47.989922,
70
- lon: 105.46875,
71
- });
72
- });
73
- o('should create centers for NZTM', () => {
74
- const center = Projection.tileCenterToLatLon(Nztm2000Tms, { x: 2295, y: 5119, z: 10 });
75
- isValidLatLong(center);
76
- const centerB = Projection.tileCenterToLatLon(Nztm2000Tms, { x: 20, y: 20, z: 10 });
77
- isValidLatLong(centerB);
78
- });
79
- o('should create centers for NZTMQuad', () => {
80
- const center = Projection.tileCenterToLatLon(Nztm2000QuadTms, { x: 200, y: 500, z: 10 });
81
- isValidLatLong(center);
82
- o(round(center, 7)).deepEquals({ lat: -35.7940688, lon: 141.3785792 });
83
- const centerB = Projection.tileCenterToLatLon(Nztm2000QuadTms, { x: 1000, y: 1000, z: 10 });
84
- isValidLatLong(centerB);
85
- });
86
- });
87
- o.spec('wrapLatLon', () => {
88
- o('should wrap longitude', () => {
89
- o(Projection.wrapLatLon(0, 1)).deepEquals({ lat: 0, lon: 1 });
90
- o(Projection.wrapLatLon(0, 181)).deepEquals({ lat: 0, lon: -179 });
91
- o(Projection.wrapLatLon(0, 271)).deepEquals({ lat: 0, lon: -89 });
92
- o(Projection.wrapLatLon(0, 361)).deepEquals({ lat: 0, lon: 1 });
93
- o(Projection.wrapLatLon(0, 631)).deepEquals({ lat: 0, lon: -89 });
94
- o(Projection.wrapLatLon(0, 721)).deepEquals({ lat: 0, lon: 1 });
95
- o(Projection.wrapLatLon(0, -1)).deepEquals({ lat: 0, lon: -1 });
96
- o(Projection.wrapLatLon(0, -181)).deepEquals({ lat: 0, lon: 179 });
97
- o(Projection.wrapLatLon(0, -271)).deepEquals({ lat: 0, lon: 89 });
98
- o(Projection.wrapLatLon(0, -361)).deepEquals({ lat: 0, lon: -1 });
99
- o(Projection.wrapLatLon(0, -631)).deepEquals({ lat: 0, lon: 89 });
100
- o(Projection.wrapLatLon(0, -721)).deepEquals({ lat: 0, lon: -1 });
101
- });
102
- o('should wrap latitude', () => {
103
- o(Projection.wrapLatLon(1, 0)).deepEquals({ lat: 1, lon: 0 });
104
- o(Projection.wrapLatLon(91, 0)).deepEquals({ lat: 89, lon: 180 });
105
- o(Projection.wrapLatLon(181, 0)).deepEquals({ lat: -1, lon: 180 });
106
- o(Projection.wrapLatLon(271, 0)).deepEquals({ lat: -89, lon: 0 });
107
- o(Projection.wrapLatLon(361, 0)).deepEquals({ lat: 1, lon: 0 });
108
- o(Projection.wrapLatLon(631, 0)).deepEquals({ lat: -89, lon: 0 });
109
- o(Projection.wrapLatLon(721, 0)).deepEquals({ lat: 1, lon: 0 });
110
- o(Projection.wrapLatLon(-1, 0)).deepEquals({ lat: -1, lon: 0 });
111
- o(Projection.wrapLatLon(-91, 0)).deepEquals({ lat: -89, lon: 180 });
112
- o(Projection.wrapLatLon(-181, 0)).deepEquals({ lat: 1, lon: 180 });
113
- o(Projection.wrapLatLon(-271, 0)).deepEquals({ lat: 89, lon: 0 });
114
- o(Projection.wrapLatLon(-361, 0)).deepEquals({ lat: -1, lon: 0 });
115
- o(Projection.wrapLatLon(-631, 0)).deepEquals({ lat: 89, lon: 0 });
116
- o(Projection.wrapLatLon(-721, 0)).deepEquals({ lat: -1, lon: 0 });
117
- });
118
- });
119
- o.spec('tileToWgs84Bbox', () => {
120
- o('should handle antimeridian', () => {
121
- const pt = Projection.tileToWgs84Bbox(Nztm2000Tms, { x: 2, y: 1, z: 1 });
122
- o(round(pt)).deepEquals([170.05982382, -20.71836222, -179.34441047, -10.28396555]);
123
- });
124
- o('should convert base tiles', () => {
125
- const pt = Projection.tileToWgs84Bbox(GoogleTms, { x: 0, y: 0, z: 0 });
126
- o(round(pt)).deepEquals([-180, -85.05112878, 180, 85.05112878]);
127
- });
128
- });
129
- o.spec('TilingBounds', () => {
130
- // Approximate bounding box of new zealand
131
- const tifBoundingBox = [18494091.86765497, -6051366.655280836, 19986142.659781612, -4016307.214216303];
132
- const expectedBaseSize = Bounds.fromJson({ width: 9.53125, height: 13, y: 153.65625, x: 246.14062500000006 });
133
- o('should tile 0,0,0', () => {
134
- const bounds = getPixelsBoundsFromMeters(tifBoundingBox, 0);
135
- Approx.bounds(bounds, expectedBaseSize);
136
- const screenBounds = getPixelsFromTile(0, 0);
137
- const intersection = bounds.intersection(screenBounds);
138
- Approx.bounds(intersection, expectedBaseSize);
139
- });
140
- o('should tile 1,1,1', () => {
141
- const [x, y, z] = [1, 1, 1];
142
- const bounds = getPixelsBoundsFromMeters(tifBoundingBox, z);
143
- const expectedBaseSizeScaled = expectedBaseSize.scale(2, 2);
144
- Approx.bounds(bounds, expectedBaseSizeScaled);
145
- const screenBounds = getPixelsFromTile(x, y);
146
- const intersection = bounds.intersection(screenBounds);
147
- Approx.bounds(intersection, expectedBaseSizeScaled);
148
- });
149
- /**
150
- * XYZ tiles 15,9,4 & 15,10,4 provide a top/bottom tiles for this bounding box
151
- *
152
- * 15
153
- * |-------|
154
- * | XXX | 9
155
- * |-------|
156
- * | XXX | 10
157
- * |-------|
158
- */
159
- o('should tile [15, 9, 4] & [15, 10, 4]', () => {
160
- const [x, z] = [15, 4];
161
- const bounds = getPixelsBoundsFromMeters(tifBoundingBox, z);
162
- const expectedBaseSizeScaled = expectedBaseSize.scale(2 ** z, 2 ** z);
163
- Approx.bounds(bounds, expectedBaseSizeScaled);
164
- const screenBounds9 = getPixelsFromTile(x, 9);
165
- const screenBounds10 = getPixelsFromTile(x, 10);
166
- o(screenBounds9.toJson()).deepEquals({ width: 256, height: 256, y: 2304, x: 3840 });
167
- o(screenBounds10.toJson()).deepEquals({ width: 256, height: 256, y: 2560, x: 3840 });
168
- const intersection9 = bounds.intersection(screenBounds9);
169
- const intersection10 = bounds.intersection(screenBounds10);
170
- if (intersection9 == null || intersection10 == null) {
171
- throw new Error('Intersections are null');
172
- }
173
- // the image is split in two so the intersection should combine into the total height of the image
174
- const totalIntersectionHeight = intersection9.height + intersection10.height;
175
- o(totalIntersectionHeight).equals(bounds.height);
176
- // The image is not split horizontally so the width should be the same for both intersections
177
- o(intersection9.width).equals(bounds.width);
178
- o(intersection10.width).equals(bounds.width);
179
- Approx.equal(intersection9.height, 101.5, 'height');
180
- Approx.equal(intersection10.height, 106.5, 'height');
181
- });
182
- /**
183
- * XYZ tiles [30, 19, 5], [31, 19, 5], [30, 20, 5], [31, 20, 5]
184
- * provide a top, bottom, left & right tiles for this bounding box
185
- *
186
- * 30 31
187
- * |-------|-------|
188
- * | XXXXX|XXXX | 19
189
- * |-------|-------|
190
- * | XXXXX|XXXX | 20
191
- * |-------|-------|
192
- */
193
- o('should tile [30, 19, 5], [31, 19, 5], [30, 20, 5], [31, 20, 5]', () => {
194
- const z = 5;
195
- const tileBounds = new Bounds(30, 19, 1, 1);
196
- const bounds = getPixelsBoundsFromMeters(tifBoundingBox, z);
197
- const expectedBaseSizeScaled = expectedBaseSize.scale(2 ** z, 2 ** z);
198
- Approx.bounds(bounds, expectedBaseSizeScaled);
199
- const screenTopLeft = getPixelsFromTile(tileBounds.x, tileBounds.y);
200
- const screenTopRight = getPixelsFromTile(tileBounds.right, tileBounds.y);
201
- o(screenTopLeft.toJson()).deepEquals({ width: 256, height: 256, y: 4864, x: 7680 });
202
- o(screenTopRight.toJson()).deepEquals({ width: 256, height: 256, y: 4864, x: 7936 });
203
- const intersectionTopLeft = bounds.intersection(screenTopLeft);
204
- const intersectionTopRight = bounds.intersection(screenTopRight);
205
- if (intersectionTopLeft == null || intersectionTopRight == null) {
206
- throw new Error('Intersections are null');
207
- }
208
- // the image is split in two so the intersection should combine into the total width of the image
209
- const totalTopIntersectionWidth = intersectionTopLeft.width + intersectionTopRight.width;
210
- o(totalTopIntersectionWidth).equals(bounds.width);
211
- o(intersectionTopLeft.height).equals(203);
212
- o(intersectionTopRight.height).equals(203);
213
- const screenBottomLeft = getPixelsFromTile(tileBounds.x, tileBounds.bottom);
214
- const screenBottomRight = getPixelsFromTile(tileBounds.right, tileBounds.bottom);
215
- o(screenBottomLeft.toJson()).deepEquals({ width: 256, height: 256, y: 5120, x: 7680 });
216
- o(screenBottomRight.toJson()).deepEquals({ width: 256, height: 256, y: 5120, x: 7936 });
217
- const intersectionBottomLeft = bounds.intersection(screenBottomLeft);
218
- const intersectionBottomRight = bounds.intersection(screenBottomRight);
219
- if (intersectionBottomLeft == null || intersectionBottomRight == null) {
220
- throw new Error('Bottom intersections are null');
221
- }
222
- // the image is split in two so the intersection should combine into the total width of the image
223
- const totalBottomIntersectionWidth = intersectionBottomLeft.width + intersectionBottomRight.width;
224
- o(totalBottomIntersectionWidth).equals(bounds.width);
225
- Approx.equal(intersectionBottomLeft.height, 213, 'height');
226
- Approx.equal(intersectionBottomRight.height, 213, 'height');
227
- const totalLeftIntersectionHeight = intersectionTopLeft.height + intersectionBottomLeft.height;
228
- const totalRightIntersectionHeight = intersectionTopRight.height + intersectionBottomRight.height;
229
- o(totalLeftIntersectionHeight).equals(bounds.height);
230
- o(totalRightIntersectionHeight).equals(bounds.height);
231
- });
232
- });
233
- });
234
- //# sourceMappingURL=projection.tile.matrix.set.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.tile.matrix.set.test.js","sourceRoot":"","sources":["../../../src/proj/__tests__/projection.tile.matrix.set.test.ts"],"names":[],"mappings":"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C;YAChE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAEhE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACnE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC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"}
@@ -1,6 +0,0 @@
1
- import { TileMatrixSet, Tile, NamedBounds } from '@basemaps/geo';
2
- export declare function qkToName(qk: string): string;
3
- export declare function qkToNamedBounds(quadKeys: string[]): NamedBounds[];
4
- export declare function tileNamesToNamedBounds(tileNames: string[], tms?: TileMatrixSet): NamedBounds[];
5
- export declare function genTileNames(topLeftTile: Tile, xTotal: number, yTotal?: number, tms?: TileMatrixSet): NamedBounds[];
6
- //# sourceMappingURL=test.util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.util.d.ts","sourceRoot":"","sources":["../../../src/proj/__tests__/test.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,IAAI,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpG,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAGjE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,gBAAsC,GAAG,WAAW,EAAE,CAEpH;AAED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,IAAI,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,SAAI,EACV,GAAG,gBAAsC,GACxC,WAAW,EAAE,CAef"}
@@ -1,26 +0,0 @@
1
- import { EpsgCode, QuadKey, TileMatrixSet, TileMatrixSets } from '@basemaps/geo';
2
- export function qkToName(qk) {
3
- return TileMatrixSet.tileToName(QuadKey.toTile(qk));
4
- }
5
- export function qkToNamedBounds(quadKeys) {
6
- const tms = TileMatrixSets.get(EpsgCode.Google);
7
- return quadKeys.map((qk) => ({ name: qkToName(qk), ...tms.tileToSourceBounds(QuadKey.toTile(qk)) }));
8
- }
9
- export function tileNamesToNamedBounds(tileNames, tms = TileMatrixSets.get(EpsgCode.Google)) {
10
- return tileNames.map((name) => ({ name, ...tms.tileToSourceBounds(TileMatrixSet.nameToTile(name)) }));
11
- }
12
- export function genTileNames(topLeftTile, xTotal, yTotal = 1, tms = TileMatrixSets.get(EpsgCode.Google)) {
13
- const bounds = [];
14
- yTotal += topLeftTile.y;
15
- xTotal += topLeftTile.x;
16
- const tile = { ...topLeftTile };
17
- for (let y = topLeftTile.y; y < yTotal; ++y) {
18
- tile.y = y;
19
- for (let x = topLeftTile.x; x < xTotal; ++x) {
20
- tile.x = x;
21
- bounds.push({ name: TileMatrixSet.tileToName(tile), ...tms.tileToSourceBounds(tile) });
22
- }
23
- }
24
- return bounds;
25
- }
26
- //# sourceMappingURL=test.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.util.js","sourceRoot":"","sources":["../../../src/proj/__tests__/test.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAQ,cAAc,EAAe,MAAM,eAAe,CAAC;AAEpG,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,OAAO,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAmB,EAAE,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;IACnG,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,WAAiB,EACjB,MAAc,EACd,MAAM,GAAG,CAAC,EACV,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;IAEzC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;QAC3C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;YAC3C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACxF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Well known text for NZGD2000 / Chatham Islands TM 2000
3
- *
4
- * @see https://epsg.io/3793
5
- */
6
- export declare const Citm2000 = "PROJCS[\"NZGD2000 / Chatham Islands TM 2000\",\nGEOGCS[\"NZGD2000\",\n DATUM[\"New_Zealand_Geodetic_Datum_2000\",\n SPHEROID[\"GRS 1980\",6378137,298.257222101,\n AUTHORITY[\"EPSG\",\"7019\"]],\n TOWGS84[0,0,0,0,0,0,0],\n AUTHORITY[\"EPSG\",\"6167\"]],\n PRIMEM[\"Greenwich\",0,\n AUTHORITY[\"EPSG\",\"8901\"]],\n UNIT[\"degree\",0.01745329251994328,\n AUTHORITY[\"EPSG\",\"9122\"]],\n AUTHORITY[\"EPSG\",\"4167\"]],\n UNIT[\"metre\",1,\n AUTHORITY[\"EPSG\",\"9001\"]],\nPROJECTION[\"Transverse_Mercator\"],\nPARAMETER[\"latitude_of_origin\",0],\nPARAMETER[\"central_meridian\",-176.5],\nPARAMETER[\"scale_factor\",1],\nPARAMETER[\"false_easting\",3500000],\nPARAMETER[\"false_northing\",10000000],\nAUTHORITY[\"EPSG\",\"3793\"],\nAXIS[\"Easting\",EAST],\nAXIS[\"Northing\",NORTH]]";
7
- //# sourceMappingURL=citm2000.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"citm2000.d.ts","sourceRoot":"","sources":["../../src/proj/citm2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,QAAQ,s1BAsBG,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Well known text for NZGD2000 / Chatham Islands TM 2000
3
- *
4
- * @see https://epsg.io/3793
5
- */
6
- export const Citm2000 = `PROJCS["NZGD2000 / Chatham Islands TM 2000",
7
- GEOGCS["NZGD2000",
8
- DATUM["New_Zealand_Geodetic_Datum_2000",
9
- SPHEROID["GRS 1980",6378137,298.257222101,
10
- AUTHORITY["EPSG","7019"]],
11
- TOWGS84[0,0,0,0,0,0,0],
12
- AUTHORITY["EPSG","6167"]],
13
- PRIMEM["Greenwich",0,
14
- AUTHORITY["EPSG","8901"]],
15
- UNIT["degree",0.01745329251994328,
16
- AUTHORITY["EPSG","9122"]],
17
- AUTHORITY["EPSG","4167"]],
18
- UNIT["metre",1,
19
- AUTHORITY["EPSG","9001"]],
20
- PROJECTION["Transverse_Mercator"],
21
- PARAMETER["latitude_of_origin",0],
22
- PARAMETER["central_meridian",-176.5],
23
- PARAMETER["scale_factor",1],
24
- PARAMETER["false_easting",3500000],
25
- PARAMETER["false_northing",10000000],
26
- AUTHORITY["EPSG","3793"],
27
- AXIS["Easting",EAST],
28
- AXIS["Northing",NORTH]]`;
29
- //# sourceMappingURL=citm2000.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"citm2000.js","sourceRoot":"","sources":["../../src/proj/citm2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;wBAsBA,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Well known text for NZGD2000
3
- *
4
- * @see https://epsg.io/2193
5
- */
6
- export declare const Nztm2000 = "PROJCS[\"NZGD2000 / New Zealand Transverse Mercator 2000\",\nGEOGCS[\"NZGD2000\",\n DATUM[\"New_Zealand_Geodetic_Datum_2000\",\n SPHEROID[\"GRS 1980\",6378137,298.257222101,\n AUTHORITY[\"EPSG\",\"7019\"]],\n TOWGS84[0,0,0,0,0,0,0],\n AUTHORITY[\"EPSG\",\"6167\"]],\n PRIMEM[\"Greenwich\",0,\n AUTHORITY[\"EPSG\",\"8901\"]],\n UNIT[\"degree\",0.0174532925199433,\n AUTHORITY[\"EPSG\",\"9122\"]],\n AUTHORITY[\"EPSG\",\"4167\"]],\nPROJECTION[\"Transverse_Mercator\"],\nPARAMETER[\"latitude_of_origin\",0],\nPARAMETER[\"central_meridian\",173],\nPARAMETER[\"scale_factor\",0.9996],\nPARAMETER[\"false_easting\",1600000],\nPARAMETER[\"false_northing\",10000000],\nUNIT[\"metre\",1,\n AUTHORITY[\"EPSG\",\"9001\"]],\nAUTHORITY[\"EPSG\",\"2193\"]]";
7
- //# sourceMappingURL=nztm2000.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nztm2000.d.ts","sourceRoot":"","sources":["../../src/proj/nztm2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,QAAQ,wyBAoBK,CAAC"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Well known text for NZGD2000
3
- *
4
- * @see https://epsg.io/2193
5
- */
6
- export const Nztm2000 = `PROJCS["NZGD2000 / New Zealand Transverse Mercator 2000",
7
- GEOGCS["NZGD2000",
8
- DATUM["New_Zealand_Geodetic_Datum_2000",
9
- SPHEROID["GRS 1980",6378137,298.257222101,
10
- AUTHORITY["EPSG","7019"]],
11
- TOWGS84[0,0,0,0,0,0,0],
12
- AUTHORITY["EPSG","6167"]],
13
- PRIMEM["Greenwich",0,
14
- AUTHORITY["EPSG","8901"]],
15
- UNIT["degree",0.0174532925199433,
16
- AUTHORITY["EPSG","9122"]],
17
- AUTHORITY["EPSG","4167"]],
18
- PROJECTION["Transverse_Mercator"],
19
- PARAMETER["latitude_of_origin",0],
20
- PARAMETER["central_meridian",173],
21
- PARAMETER["scale_factor",0.9996],
22
- PARAMETER["false_easting",1600000],
23
- PARAMETER["false_northing",10000000],
24
- UNIT["metre",1,
25
- AUTHORITY["EPSG","9001"]],
26
- AUTHORITY["EPSG","2193"]]`;
27
- //# sourceMappingURL=nztm2000.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nztm2000.js","sourceRoot":"","sources":["../../src/proj/nztm2000.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;0BAoBE,CAAC"}
@@ -1,110 +0,0 @@
1
- import { BoundingBox, Epsg, EpsgCode, TileMatrixSet, Tile, NamedBounds } from '@basemaps/geo';
2
- import { BBox, BBoxFeature, BBoxFeatureCollection } from '@linzjs/geojson';
3
- import { Position } from 'geojson';
4
- export interface LatLon {
5
- lat: number;
6
- lon: number;
7
- }
8
- export declare class Projection {
9
- /** If floating point numbers differ by this amount they are close enough */
10
- static AllowedFloatingError: number;
11
- /** EPSG code for the projection other than Epsg.Wgs84 */
12
- epsg: Epsg;
13
- /** Transform coordinates to and from Wgs84 */
14
- private projection;
15
- /**
16
- * Wrapper around TileMatrixSet with utilities for converting Points and Polygons
17
- */
18
- private constructor();
19
- /** Ensure that a transformation in proj4.js is defined */
20
- static define(epsg: Epsg, def: string): void;
21
- /**
22
- * Get the Projection instance for a specified code,
23
- *
24
- * throws a exception if the code is not recognized
25
- *
26
- * @param epsgCode
27
- */
28
- static get(epsgCode: Epsg | EpsgCode | TileMatrixSet): Projection;
29
- /**
30
- * Try to find a corresponding Projection for a number
31
- * @param epsgCode
32
- */
33
- static tryGet(unk?: Epsg | EpsgCode | TileMatrixSet): Projection | null;
34
- /**
35
- * Project the points in a MultiPolygon array to the `targetProjection`.
36
- *
37
- * @return if multipoly is not projected return it verbatim otherwise creates a new multi
38
- * polygon
39
- */
40
- projectMultipolygon(multipoly: Position[][][], targetProjection: Projection): Position[][][];
41
- /**
42
- * Convert source `[x, y]` coordinates to `[lon, lat]`
43
- */
44
- get toWgs84(): (coordinates: Position) => Position;
45
- /**
46
- * Convert `[lon, lat]` coordinates to source `[x, y]`
47
- */
48
- get fromWgs84(): (coordinates: Position) => Position;
49
- /**
50
- * Convert a source Bounds to GeoJSON WGS84 BoundingBox. In particular if the bounds crosses the
51
- * anti-meridian then the east component will be less than the west component.
52
- *
53
- * @param source
54
- * @returns [west, south, east, north]
55
- */
56
- boundsToWgs84BoundingBox(source: BoundingBox): BBox;
57
- /**
58
- * Convert a source bounds to a WSG84 GeoJSON Feature
59
- *
60
- * @param bounds in source epsg
61
- * @param properties any properties to include in the feature such as name
62
- *
63
- * @returns If `bounds` crosses the antimeridian then and east and west pair of non crossing
64
- * polygons will be returned; otherwise a single Polygon will be returned.
65
- */
66
- boundsToGeoJsonFeature(bounds: BoundingBox, properties?: {}): BBoxFeature;
67
- /** Convert a tile covering to a GeoJSON FeatureCollection */
68
- toGeoJson(files: NamedBounds[]): BBoxFeatureCollection;
69
- /**
70
- * Find the closest zoom level to `pixelScale` that is at
71
- * least as good as `pixelScale` or within the error bounds (+- 1e-8)
72
- *
73
- * @see Projection.AllowedFloatingError.
74
- *
75
- * @param pixelScale A pixel's resolution in metres
76
- */
77
- static getTiffResZoom(tms: TileMatrixSet, pixelScale: number): number;
78
- /** Convert a tile to the wgs84 bounds */
79
- static tileToWgs84Bbox(tms: TileMatrixSet, tile: Tile): BBox;
80
- /**
81
- * return the `lat`, `lon` of a Tile's center
82
- */
83
- static tileCenterToLatLon(tms: TileMatrixSet, tile: Tile): LatLon;
84
- /**
85
- * Reused from : https://github.com/pelias/api/blob/6a7751f35882698eb885b93635656ec0c2941633/sanitizer/wrap.js
86
- *
87
- * Normalize co-ordinates that lie outside of the normal ranges.
88
- *
89
- * longitude wrapping simply requires adding +- 360 to the value until it comes in to range.
90
- * for the latitude values we need to flip the longitude whenever the latitude
91
- * crosses a pole.
92
- *
93
- */
94
- static wrapLatLon(lat: number, lon: number): LatLon;
95
- /**
96
- * Find the number of alignment levels required to render the tile. Min 0
97
- *
98
- * @param tile
99
- * @param gsd the pixel resolution of the source imagery
100
- */
101
- static findAlignmentLevels(tms: TileMatrixSet, tile: Tile, gsd: number, blockFactor?: number): number;
102
- /**
103
- * Return the expected width in pixels of an image at the tile resolution.
104
- *
105
- * @param tile
106
- * @param targetZoom The desired zoom level for the imagery
107
- */
108
- static getImagePixelWidth(tms: TileMatrixSet, tile: Tile, targetZoom: number): number;
109
- }
110
- //# sourceMappingURL=projection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/proj/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EACL,IAAI,EACJ,WAAW,EACX,qBAAqB,EAKtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUnC,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAUD,qBAAa,UAAU;IACrB,4EAA4E;IAC5E,MAAM,CAAC,oBAAoB,SAAQ;IAEnC,yDAAyD;IACzD,IAAI,EAAE,IAAI,CAAC;IAEX,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAAkB;IAEpC;;OAEG;IACH,OAAO;IAaP,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU;IAMjE;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI;IAkBvE;;;;;OAKG;IACH,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,UAAU,GAAG,QAAQ,EAAE,EAAE,EAAE;IAS5F;;OAEG;IACH,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAEjD;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,CAAC,WAAW,EAAE,QAAQ,KAAK,QAAQ,CAEnD;IAED;;;;;;OAMG;IACH,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAOnD;;;;;;;;OAQG;IACH,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,KAAK,GAAG,WAAW;IAezE,6DAA6D;IAC7D,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,qBAAqB;IAOtD;;;;;;;OAOG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAQrE,yCAAyC;IACzC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAY5D;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM;IAOjE;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IA8BnD;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,MAAM;IAIhG;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;CAKtF"}