@map-colonies/mc-utils 1.0.2 → 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 +49 -0
- package/README.md +9 -7
- package/dist/communication/http/httpClient.d.ts +10 -9
- package/dist/communication/http/httpClient.d.ts.map +1 -1
- package/dist/communication/http/httpClient.js +46 -20
- package/dist/communication/http/httpClient.js.map +1 -1
- package/dist/geo/bboxUtils.d.ts +8 -1
- package/dist/geo/bboxUtils.d.ts.map +1 -1
- package/dist/geo/bboxUtils.js +39 -8
- package/dist/geo/bboxUtils.js.map +1 -1
- package/dist/geo/geoConvertor.d.ts.map +1 -1
- package/dist/geo/geoConvertor.js +4 -3
- package/dist/geo/geoConvertor.js.map +1 -1
- package/dist/geo/geoHash.js +11 -11
- package/dist/geo/geoHash.js.map +1 -1
- package/dist/geo/index.d.ts +1 -0
- package/dist/geo/index.d.ts.map +1 -1
- package/dist/geo/index.js +1 -0
- package/dist/geo/index.js.map +1 -1
- package/dist/geo/tileRanger.d.ts +40 -0
- package/dist/geo/tileRanger.d.ts.map +1 -0
- package/dist/geo/tileRanger.js +255 -0
- package/dist/geo/tileRanger.js.map +1 -0
- package/dist/geo/tiles.d.ts +7 -0
- package/dist/geo/tiles.d.ts.map +1 -1
- package/dist/geo/tiles.js +14 -2
- package/dist/geo/tiles.js.map +1 -1
- package/dist/geo/tilesGenerator.d.ts +3 -0
- package/dist/geo/tilesGenerator.d.ts.map +1 -0
- package/dist/geo/tilesGenerator.js +95 -0
- package/dist/geo/tilesGenerator.js.map +1 -0
- package/dist/models/interfaces/geo/iTile.d.ts +7 -0
- package/dist/models/interfaces/geo/iTile.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
## [1.3.0](https://github.com/MapColonies/mc-utils/compare/v1.1.2...v1.3.0) (2021-12-30)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* support basic auth and external headers ([#7](https://github.com/MapColonies/mc-utils/issues/7)) ([26b0c5d](https://github.com/MapColonies/mc-utils/commit/26b0c5d79ab38c6346de611dd415cf9e64bf1123))
|
|
11
|
+
|
|
12
|
+
## [1.2.0](https://github.com/MapColonies/mc-utils/compare/v1.1.2...v1.2.0) (2021-12-01)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* support basic auth and external headers ([#7](https://github.com/MapColonies/mc-utils/issues/7)) ([26b0c5d](https://github.com/MapColonies/mc-utils/commit/26b0c5d79ab38c6346de611dd415cf9e64bf1123))
|
|
18
|
+
|
|
19
|
+
### [1.1.2](https://github.com/MapColonies/mc-utils/compare/v1.1.0...v1.1.2) (2021-08-31)
|
|
20
|
+
|
|
21
|
+
### [1.1.1](https://github.com/MapColonies/mc-utils/compare/v1.1.0...v1.1.1) (2021-08-31)
|
|
22
|
+
|
|
23
|
+
## [1.1.0](https://github.com/MapColonies/mc-utils/compare/v1.0.2...v1.1.0) (2021-08-12)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Features
|
|
27
|
+
|
|
28
|
+
* Tile calculations ([#5](https://github.com/MapColonies/mc-utils/issues/5)) ([ea4c5ac](https://github.com/MapColonies/mc-utils/commit/ea4c5ac0941c7ee3d7c999e4034c0c44339db643))
|
|
29
|
+
|
|
30
|
+
### [1.0.2](https://github.com/MapColonies/mc-utils/compare/v1.0.1...v1.0.2) (2021-08-05)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* prepublish for npm v7 ([#4](https://github.com/MapColonies/mc-utils/issues/4)) ([382bf72](https://github.com/MapColonies/mc-utils/commit/382bf7236622668fd213bfa86911288d33cb24da))
|
|
36
|
+
|
|
37
|
+
### [1.0.1](https://github.com/MapColonies/mc-utils/compare/v1.0.0...v1.0.1) (2021-08-05)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* release command ([#2](https://github.com/MapColonies/mc-utils/issues/2)) ([8bad6a9](https://github.com/MapColonies/mc-utils/commit/8bad6a98de6359aa94ca22723a5ab7968e8b22a1))
|
|
43
|
+
|
|
44
|
+
## 1.0.0 (2021-07-28)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Features
|
|
48
|
+
|
|
49
|
+
* added http client ([#1](https://github.com/MapColonies/mc-utils/issues/1)) ([48ebf45](https://github.com/MapColonies/mc-utils/commit/48ebf45a62f07ae71cb1b23e8a6ad662da56590f))
|
package/README.md
CHANGED
|
@@ -18,19 +18,21 @@ this is general utilities for usage in Map Colonies project.
|
|
|
18
18
|
-```axiosOptions``` the options used by axios when sending requests
|
|
19
19
|
|
|
20
20
|
the class have the protected methods for sending http requests:
|
|
21
|
-
- ```protected async get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
22
|
-
- ```protected async post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
23
|
-
- ```protected async put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
24
|
-
- ```protected async delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
25
|
-
- ```protected async head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
26
|
-
- ```protected async options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
27
|
-
- ```protected async patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>```
|
|
21
|
+
- ```protected async get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
22
|
+
- ```protected async post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
23
|
+
- ```protected async put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
24
|
+
- ```protected async delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
25
|
+
- ```protected async head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
26
|
+
- ```protected async options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
27
|
+
- ```protected async patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>```
|
|
28
28
|
|
|
29
29
|
function parameters list:
|
|
30
30
|
- `url`: url path to send the request to (not including the base url).
|
|
31
31
|
- `body`: optional object to be used as request body (in relevant request types).
|
|
32
32
|
- `queryParams`: optional dictionary with query parameters and value.
|
|
33
33
|
- `retryConfig`: optional override to the class retry configuration.
|
|
34
|
+
- `auth`: optional basic authentication object (username, password).
|
|
35
|
+
- `headers`: optional headers to proceed to the request.
|
|
34
36
|
|
|
35
37
|
usage example:
|
|
36
38
|
```typescript
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxiosRequestConfig } from 'axios';
|
|
1
|
+
import { AxiosBasicCredentials, AxiosRequestConfig } from 'axios';
|
|
2
2
|
import { IAxiosRetryConfig } from 'axios-retry';
|
|
3
3
|
import { ILogger } from '../../models/interfaces/iLogger';
|
|
4
4
|
export interface IHttpRetryConfig {
|
|
@@ -9,16 +9,17 @@ export interface IHttpRetryConfig {
|
|
|
9
9
|
export declare abstract class HttpClient {
|
|
10
10
|
protected readonly logger: ILogger;
|
|
11
11
|
private readonly targetService;
|
|
12
|
+
private readonly disableDebugLogs;
|
|
12
13
|
protected axiosOptions: AxiosRequestConfig;
|
|
13
14
|
private readonly axiosClient;
|
|
14
|
-
constructor(logger: ILogger, baseUrl: string, targetService?: string, retryConfig?: IHttpRetryConfig);
|
|
15
|
-
protected get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
16
|
-
protected post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
17
|
-
protected put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
18
|
-
protected delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
19
|
-
protected head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
20
|
-
protected options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
21
|
-
protected patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig): Promise<T>;
|
|
15
|
+
constructor(logger: ILogger, baseUrl: string, targetService?: string, retryConfig?: IHttpRetryConfig, disableDebugLogs?: boolean);
|
|
16
|
+
protected get<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
17
|
+
protected post<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
18
|
+
protected put<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
19
|
+
protected delete<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
20
|
+
protected head<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
21
|
+
protected options<T>(url: string, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
22
|
+
protected patch<T>(url: string, body?: unknown, queryParams?: Record<string, unknown>, retryConfig?: IAxiosRetryConfig, auth?: AxiosBasicCredentials, headers?: unknown): Promise<T>;
|
|
22
23
|
private wrapError;
|
|
23
24
|
private parseConfig;
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAA6B,kBAAkB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,12 +76,14 @@ var axios_retry_1 = __importStar(require("axios-retry"));
|
|
|
76
76
|
var lodash_1 = require("lodash");
|
|
77
77
|
var error_types_1 = require("@map-colonies/error-types");
|
|
78
78
|
var HttpClient = /** @class */ (function () {
|
|
79
|
-
function HttpClient(logger, baseUrl, targetService, retryConfig) {
|
|
79
|
+
function HttpClient(logger, baseUrl, targetService, retryConfig, disableDebugLogs) {
|
|
80
80
|
var _this = this;
|
|
81
81
|
if (targetService === void 0) { targetService = ''; }
|
|
82
|
+
if (disableDebugLogs === void 0) { disableDebugLogs = false; }
|
|
82
83
|
var _a;
|
|
83
84
|
this.logger = logger;
|
|
84
85
|
this.targetService = targetService;
|
|
86
|
+
this.disableDebugLogs = disableDebugLogs;
|
|
85
87
|
this.axiosOptions = {};
|
|
86
88
|
this.axiosClient = axios_1.default.create();
|
|
87
89
|
this.axiosOptions.baseURL = baseUrl;
|
|
@@ -92,12 +94,12 @@ var HttpClient = /** @class */ (function () {
|
|
|
92
94
|
};
|
|
93
95
|
var delayFunc = (_a = axiosRetryConfig.retryDelay) !== null && _a !== void 0 ? _a : (function () { return 0; });
|
|
94
96
|
axiosRetryConfig.retryDelay = function (retryCount, error) {
|
|
95
|
-
_this.logger.error("error from "
|
|
97
|
+
_this.logger.error("error from ".concat(_this.targetService, ". retries: ").concat(retryCount, ". error: ").concat(error.message));
|
|
96
98
|
return delayFunc(retryCount, error);
|
|
97
99
|
};
|
|
98
|
-
axios_retry_1.default(this.axiosClient, axiosRetryConfig);
|
|
100
|
+
(0, axios_retry_1.default)(this.axiosClient, axiosRetryConfig);
|
|
99
101
|
}
|
|
100
|
-
HttpClient.prototype.get = function (url, queryParams, retryConfig) {
|
|
102
|
+
HttpClient.prototype.get = function (url, queryParams, retryConfig, auth, headers) {
|
|
101
103
|
return __awaiter(this, void 0, void 0, function () {
|
|
102
104
|
var reqConfig, res, err_1, error;
|
|
103
105
|
return __generator(this, function (_a) {
|
|
@@ -106,6 +108,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
106
108
|
_a.trys.push([0, 2, , 3]);
|
|
107
109
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : __assign({}, this.axiosOptions);
|
|
108
110
|
reqConfig.params = queryParams;
|
|
111
|
+
reqConfig.auth = auth;
|
|
112
|
+
reqConfig.headers = headers;
|
|
109
113
|
return [4 /*yield*/, this.axiosClient.get(url, reqConfig)];
|
|
110
114
|
case 1:
|
|
111
115
|
res = _a.sent();
|
|
@@ -119,7 +123,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
119
123
|
});
|
|
120
124
|
});
|
|
121
125
|
};
|
|
122
|
-
HttpClient.prototype.post = function (url, body, queryParams, retryConfig) {
|
|
126
|
+
HttpClient.prototype.post = function (url, body, queryParams, retryConfig, auth, headers) {
|
|
123
127
|
return __awaiter(this, void 0, void 0, function () {
|
|
124
128
|
var reqConfig, res, err_2, error;
|
|
125
129
|
return __generator(this, function (_a) {
|
|
@@ -128,6 +132,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
128
132
|
_a.trys.push([0, 2, , 3]);
|
|
129
133
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
130
134
|
reqConfig.params = queryParams;
|
|
135
|
+
reqConfig.auth = auth;
|
|
136
|
+
reqConfig.headers = headers;
|
|
131
137
|
return [4 /*yield*/, this.axiosClient.post(url, body, reqConfig)];
|
|
132
138
|
case 1:
|
|
133
139
|
res = _a.sent();
|
|
@@ -141,7 +147,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
141
147
|
});
|
|
142
148
|
});
|
|
143
149
|
};
|
|
144
|
-
HttpClient.prototype.put = function (url, body, queryParams, retryConfig) {
|
|
150
|
+
HttpClient.prototype.put = function (url, body, queryParams, retryConfig, auth, headers) {
|
|
145
151
|
return __awaiter(this, void 0, void 0, function () {
|
|
146
152
|
var reqConfig, res, err_3, error;
|
|
147
153
|
return __generator(this, function (_a) {
|
|
@@ -150,6 +156,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
150
156
|
_a.trys.push([0, 2, , 3]);
|
|
151
157
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
152
158
|
reqConfig.params = queryParams;
|
|
159
|
+
reqConfig.auth = auth;
|
|
160
|
+
reqConfig.headers = headers;
|
|
153
161
|
return [4 /*yield*/, this.axiosClient.put(url, body, reqConfig)];
|
|
154
162
|
case 1:
|
|
155
163
|
res = _a.sent();
|
|
@@ -163,7 +171,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
163
171
|
});
|
|
164
172
|
});
|
|
165
173
|
};
|
|
166
|
-
HttpClient.prototype.delete = function (url, queryParams, retryConfig) {
|
|
174
|
+
HttpClient.prototype.delete = function (url, queryParams, retryConfig, auth, headers) {
|
|
167
175
|
return __awaiter(this, void 0, void 0, function () {
|
|
168
176
|
var reqConfig, res, err_4, error;
|
|
169
177
|
return __generator(this, function (_a) {
|
|
@@ -172,6 +180,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
172
180
|
_a.trys.push([0, 2, , 3]);
|
|
173
181
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
174
182
|
reqConfig.params = queryParams;
|
|
183
|
+
reqConfig.auth = auth;
|
|
184
|
+
reqConfig.headers = headers;
|
|
175
185
|
return [4 /*yield*/, this.axiosClient.delete(url, reqConfig)];
|
|
176
186
|
case 1:
|
|
177
187
|
res = _a.sent();
|
|
@@ -185,7 +195,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
185
195
|
});
|
|
186
196
|
});
|
|
187
197
|
};
|
|
188
|
-
HttpClient.prototype.head = function (url, queryParams, retryConfig) {
|
|
198
|
+
HttpClient.prototype.head = function (url, queryParams, retryConfig, auth, headers) {
|
|
189
199
|
return __awaiter(this, void 0, void 0, function () {
|
|
190
200
|
var reqConfig, res, err_5, error;
|
|
191
201
|
return __generator(this, function (_a) {
|
|
@@ -194,6 +204,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
194
204
|
_a.trys.push([0, 2, , 3]);
|
|
195
205
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
196
206
|
reqConfig.params = queryParams;
|
|
207
|
+
reqConfig.auth = auth;
|
|
208
|
+
reqConfig.headers = headers;
|
|
197
209
|
return [4 /*yield*/, this.axiosClient.head(url, reqConfig)];
|
|
198
210
|
case 1:
|
|
199
211
|
res = _a.sent();
|
|
@@ -207,7 +219,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
207
219
|
});
|
|
208
220
|
});
|
|
209
221
|
};
|
|
210
|
-
HttpClient.prototype.options = function (url, queryParams, retryConfig) {
|
|
222
|
+
HttpClient.prototype.options = function (url, queryParams, retryConfig, auth, headers) {
|
|
211
223
|
return __awaiter(this, void 0, void 0, function () {
|
|
212
224
|
var reqConfig, res, err_6, error;
|
|
213
225
|
return __generator(this, function (_a) {
|
|
@@ -216,6 +228,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
216
228
|
_a.trys.push([0, 2, , 3]);
|
|
217
229
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
218
230
|
reqConfig.params = queryParams;
|
|
231
|
+
reqConfig.auth = auth;
|
|
232
|
+
reqConfig.headers = headers;
|
|
219
233
|
return [4 /*yield*/, this.axiosClient.options(url, reqConfig)];
|
|
220
234
|
case 1:
|
|
221
235
|
res = _a.sent();
|
|
@@ -229,7 +243,7 @@ var HttpClient = /** @class */ (function () {
|
|
|
229
243
|
});
|
|
230
244
|
});
|
|
231
245
|
};
|
|
232
|
-
HttpClient.prototype.patch = function (url, body, queryParams, retryConfig) {
|
|
246
|
+
HttpClient.prototype.patch = function (url, body, queryParams, retryConfig, auth, headers) {
|
|
233
247
|
return __awaiter(this, void 0, void 0, function () {
|
|
234
248
|
var reqConfig, res, err_7, error;
|
|
235
249
|
return __generator(this, function (_a) {
|
|
@@ -238,6 +252,8 @@ var HttpClient = /** @class */ (function () {
|
|
|
238
252
|
_a.trys.push([0, 2, , 3]);
|
|
239
253
|
reqConfig = retryConfig ? __assign(__assign({}, this.axiosOptions), { 'axios-retry': retryConfig }) : this.axiosOptions;
|
|
240
254
|
reqConfig.params = queryParams;
|
|
255
|
+
reqConfig.auth = auth;
|
|
256
|
+
reqConfig.headers = headers;
|
|
241
257
|
return [4 /*yield*/, this.axiosClient.patch(url, body, reqConfig)];
|
|
242
258
|
case 1:
|
|
243
259
|
res = _a.sent();
|
|
@@ -253,36 +269,46 @@ var HttpClient = /** @class */ (function () {
|
|
|
253
269
|
};
|
|
254
270
|
HttpClient.prototype.wrapError = function (url, err, body) {
|
|
255
271
|
var _a;
|
|
256
|
-
var message = lodash_1.get(err, 'response.data.message', undefined);
|
|
272
|
+
var message = (0, lodash_1.get)(err, 'response.data.message', undefined);
|
|
257
273
|
switch ((_a = err.response) === null || _a === void 0 ? void 0 : _a.status) {
|
|
258
274
|
case http_status_codes_1.default.BAD_REQUEST:
|
|
259
275
|
if (body !== undefined) {
|
|
260
276
|
body = JSON.stringify(body);
|
|
261
|
-
|
|
277
|
+
if (!this.disableDebugLogs) {
|
|
278
|
+
this.logger.debug("invalid request sent to ".concat(this.targetService, " at ").concat(url, ". body: ").concat(body, ". error: ").concat(err.message));
|
|
279
|
+
}
|
|
262
280
|
}
|
|
263
|
-
else {
|
|
264
|
-
this.logger.debug("invalid request sent to "
|
|
281
|
+
else if (!this.disableDebugLogs) {
|
|
282
|
+
this.logger.debug("invalid request sent to ".concat(this.targetService, " at ").concat(url, ". error: ").concat(err.message));
|
|
265
283
|
}
|
|
266
284
|
return new error_types_1.BadRequestError(err, message);
|
|
267
285
|
case http_status_codes_1.default.NOT_FOUND:
|
|
268
|
-
|
|
286
|
+
if (!this.disableDebugLogs) {
|
|
287
|
+
this.logger.debug("request url not found for service ".concat(this.targetService, ", target url: ").concat(url, ", error: ").concat(err.message));
|
|
288
|
+
}
|
|
269
289
|
return new error_types_1.NotFoundError(err, message);
|
|
270
290
|
case http_status_codes_1.default.CONFLICT:
|
|
271
|
-
|
|
291
|
+
if (!this.disableDebugLogs) {
|
|
292
|
+
this.logger.debug("request url conflicted, for service ".concat(this.targetService, ", target url: ").concat(url, ", error: ").concat(err.message));
|
|
293
|
+
}
|
|
272
294
|
return new error_types_1.ConflictError(err, message);
|
|
273
295
|
case http_status_codes_1.default.FORBIDDEN:
|
|
274
|
-
|
|
296
|
+
if (!this.disableDebugLogs) {
|
|
297
|
+
this.logger.debug("forbidden request sent service ".concat(this.targetService, ", target url: ").concat(url, ", error: ").concat(err.message));
|
|
298
|
+
}
|
|
275
299
|
throw new error_types_1.ForbiddenError(err, message);
|
|
276
300
|
case http_status_codes_1.default.UNAUTHORIZED:
|
|
277
|
-
|
|
301
|
+
if (!this.disableDebugLogs) {
|
|
302
|
+
this.logger.debug("unauthorized request sent service ".concat(this.targetService, ", target url: ").concat(url, ", error: ").concat(err.message));
|
|
303
|
+
}
|
|
278
304
|
throw new error_types_1.UnauthorizedError(err, message);
|
|
279
305
|
default:
|
|
280
306
|
if (body !== undefined) {
|
|
281
307
|
body = JSON.stringify(body);
|
|
282
|
-
this.logger.error("error from "
|
|
308
|
+
this.logger.error("error from ".concat(this.targetService, " at ").concat(url, ". body: ").concat(body, ". error: ").concat(err.message));
|
|
283
309
|
}
|
|
284
310
|
else {
|
|
285
|
-
this.logger.error("error from "
|
|
311
|
+
this.logger.error("error from ".concat(this.targetService, " at ").concat(url, ". error: ").concat(err.message));
|
|
286
312
|
}
|
|
287
313
|
return new error_types_1.InternalServerError(err);
|
|
288
314
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../../src/communication/http/httpClient.ts"],"names":[],"mappings":"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"}
|
package/dist/geo/bboxUtils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BBox2d } from '@turf/helpers/dist/js/lib/geojson';
|
|
2
|
-
import { ITile } from '../models/interfaces/geo/iTile';
|
|
2
|
+
import { ITile, ITileRange } from '../models/interfaces/geo/iTile';
|
|
3
3
|
/**
|
|
4
4
|
* rounds bbox to grid
|
|
5
5
|
* @param bbox original bbox
|
|
@@ -14,4 +14,11 @@ export declare const snapBBoxToTileGrid: (bbox: BBox2d, zoomLevel: number) => BB
|
|
|
14
14
|
* @returns
|
|
15
15
|
*/
|
|
16
16
|
export declare const bboxFromTiles: (minTile: ITile, maxTile: ITile) => BBox2d;
|
|
17
|
+
/**
|
|
18
|
+
* coverts bbox to covering tile range of specified zoom level
|
|
19
|
+
* @param bbox
|
|
20
|
+
* @param zoom target zoom level
|
|
21
|
+
* @returns covering tile range
|
|
22
|
+
*/
|
|
23
|
+
export declare const bboxToTileRange: (bbox: BBox2d, zoom: number) => ITileRange;
|
|
17
24
|
//# sourceMappingURL=bboxUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bboxUtils.d.ts","sourceRoot":"","sources":["../../src/geo/bboxUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"bboxUtils.d.ts","sourceRoot":"","sources":["../../src/geo/bboxUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AASnE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,4BAA6B,MAAM,WAuBjE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,YAAa,KAAK,WAAW,KAAK,WAa3D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,uBAAwB,MAAM,KAAG,UAuB5D,CAAC"}
|
package/dist/geo/bboxUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.bboxFromTiles = exports.snapBBoxToTileGrid = void 0;
|
|
3
|
+
exports.bboxToTileRange = exports.bboxFromTiles = exports.snapBBoxToTileGrid = void 0;
|
|
4
4
|
var geoConvertor_1 = require("./geoConvertor");
|
|
5
5
|
var tiles_1 = require("./tiles");
|
|
6
6
|
var snapMinCordToTileGrid = function (cord, tileRes) {
|
|
@@ -18,16 +18,22 @@ var snapBBoxToTileGrid = function (bbox, zoomLevel) {
|
|
|
18
18
|
var minLat = Math.min(bbox[1], bbox[3]);
|
|
19
19
|
var maxLon = Math.max(bbox[0], bbox[2]);
|
|
20
20
|
var maxLat = Math.max(bbox[1], bbox[3]);
|
|
21
|
-
var tileRes = tiles_1.degreesPerTile(zoomLevel);
|
|
21
|
+
var tileRes = (0, tiles_1.degreesPerTile)(zoomLevel);
|
|
22
22
|
bbox[0] = snapMinCordToTileGrid(minLon, tileRes);
|
|
23
|
-
bbox[1] = snapMinCordToTileGrid(minLat, tileRes);
|
|
24
23
|
bbox[2] = snapMinCordToTileGrid(maxLon, tileRes);
|
|
25
24
|
if (bbox[2] != maxLon) {
|
|
26
25
|
bbox[2] += tileRes;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
bbox[3]
|
|
27
|
+
if (zoomLevel === 0) {
|
|
28
|
+
bbox[1] = -90;
|
|
29
|
+
bbox[3] = 90;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
bbox[1] = snapMinCordToTileGrid(minLat, tileRes);
|
|
33
|
+
bbox[3] = snapMinCordToTileGrid(maxLat, tileRes);
|
|
34
|
+
if (bbox[3] != maxLat) {
|
|
35
|
+
bbox[3] += tileRes;
|
|
36
|
+
}
|
|
31
37
|
}
|
|
32
38
|
return bbox;
|
|
33
39
|
};
|
|
@@ -42,8 +48,8 @@ var bboxFromTiles = function (minTile, maxTile) {
|
|
|
42
48
|
if (minTile.zoom !== maxTile.zoom) {
|
|
43
49
|
throw new Error("Could not calcualte bbox from tiles due to not matching zoom levels");
|
|
44
50
|
}
|
|
45
|
-
var minPoint = geoConvertor_1.tileToDegrees(minTile);
|
|
46
|
-
var maxPoint = geoConvertor_1.tileToDegrees({
|
|
51
|
+
var minPoint = (0, geoConvertor_1.tileToDegrees)(minTile);
|
|
52
|
+
var maxPoint = (0, geoConvertor_1.tileToDegrees)({
|
|
47
53
|
x: maxTile.x + 1,
|
|
48
54
|
y: maxTile.y + 1,
|
|
49
55
|
zoom: maxTile.zoom,
|
|
@@ -51,4 +57,29 @@ var bboxFromTiles = function (minTile, maxTile) {
|
|
|
51
57
|
return [minPoint.longitude, minPoint.latitude, maxPoint.longitude, maxPoint.latitude];
|
|
52
58
|
};
|
|
53
59
|
exports.bboxFromTiles = bboxFromTiles;
|
|
60
|
+
/**
|
|
61
|
+
* coverts bbox to covering tile range of specified zoom level
|
|
62
|
+
* @param bbox
|
|
63
|
+
* @param zoom target zoom level
|
|
64
|
+
* @returns covering tile range
|
|
65
|
+
*/
|
|
66
|
+
var bboxToTileRange = function (bbox, zoom) {
|
|
67
|
+
bbox = (0, exports.snapBBoxToTileGrid)(bbox, zoom);
|
|
68
|
+
var minTile = (0, geoConvertor_1.degreesToTile)({
|
|
69
|
+
longitude: bbox[0],
|
|
70
|
+
latitude: bbox[1],
|
|
71
|
+
}, zoom);
|
|
72
|
+
var maxTile = (0, geoConvertor_1.degreesToTile)({
|
|
73
|
+
longitude: bbox[2],
|
|
74
|
+
latitude: bbox[3],
|
|
75
|
+
}, zoom);
|
|
76
|
+
return {
|
|
77
|
+
minX: minTile.x,
|
|
78
|
+
minY: minTile.y,
|
|
79
|
+
maxX: maxTile.x,
|
|
80
|
+
maxY: maxTile.y,
|
|
81
|
+
zoom: zoom,
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
exports.bboxToTileRange = bboxToTileRange;
|
|
54
85
|
//# sourceMappingURL=bboxUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bboxUtils.js","sourceRoot":"","sources":["../../src/geo/bboxUtils.ts"],"names":[],"mappings":";;;AAEA,+
|
|
1
|
+
{"version":3,"file":"bboxUtils.js","sourceRoot":"","sources":["../../src/geo/bboxUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoConvertor.d.ts","sourceRoot":"","sources":["../../src/geo/geoConvertor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,aAAa,MAAM,WAAU,UAAU,KAA2B,
|
|
1
|
+
{"version":3,"file":"geoConvertor.d.ts","sourceRoot":"","sources":["../../src/geo/geoConvertor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,aAAa,MAAM,WAAU,UAAU,KAA2B,KAgB5G,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAU,KAAK,WAAU,UAAU,KAA2B,MAevF,CAAC"}
|
package/dist/geo/geoConvertor.js
CHANGED
|
@@ -12,13 +12,14 @@ var tiles_1 = require("./tiles");
|
|
|
12
12
|
*/
|
|
13
13
|
var degreesToTile = function (point, zoomLevel, origin) {
|
|
14
14
|
if (origin === void 0) { origin = tileOrigin_1.TileOrigin.LOWER_LEFT; }
|
|
15
|
-
var resolution = tiles_1.degreesPerTile(zoomLevel);
|
|
15
|
+
var resolution = (0, tiles_1.degreesPerTile)(zoomLevel);
|
|
16
16
|
var lat = point.latitude;
|
|
17
17
|
if (origin === tileOrigin_1.TileOrigin.UPPER_LEFT) {
|
|
18
18
|
lat = -lat;
|
|
19
19
|
}
|
|
20
20
|
var xTile = point.longitude / resolution + (1 << zoomLevel);
|
|
21
|
-
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
22
|
+
var yTile = zoomLevel != 0 ? lat / resolution + (1 << (zoomLevel - 1)) : lat / resolution + 0.5;
|
|
22
23
|
return {
|
|
23
24
|
x: Math.floor(xTile),
|
|
24
25
|
y: Math.floor(yTile),
|
|
@@ -36,7 +37,7 @@ var tileToDegrees = function (tile, origin) {
|
|
|
36
37
|
if (origin === void 0) { origin = tileOrigin_1.TileOrigin.LOWER_LEFT; }
|
|
37
38
|
var maxLon = 180;
|
|
38
39
|
var maxLat = 90;
|
|
39
|
-
var degPerTile = tiles_1.degreesPerTile(tile.zoom);
|
|
40
|
+
var degPerTile = (0, tiles_1.degreesPerTile)(tile.zoom);
|
|
40
41
|
var lon = tile.x * degPerTile - maxLon;
|
|
41
42
|
var lat = tile.y * degPerTile - maxLat;
|
|
42
43
|
if (origin === tileOrigin_1.TileOrigin.UPPER_LEFT) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoConvertor.js","sourceRoot":"","sources":["../../src/geo/geoConvertor.ts"],"names":[],"mappings":";;;AAAA,6DAA4D;AAG5D,iCAAyC;AAEzC;;;;;;GAMG;AACI,IAAM,aAAa,GAAG,UAAC,KAAa,EAAE,SAAiB,EAAE,MAA0C;IAA1C,uBAAA,EAAA,SAAqB,uBAAU,CAAC,UAAU;IACxG,IAAM,UAAU,GAAG,sBAAc,
|
|
1
|
+
{"version":3,"file":"geoConvertor.js","sourceRoot":"","sources":["../../src/geo/geoConvertor.ts"],"names":[],"mappings":";;;AAAA,6DAA4D;AAG5D,iCAAyC;AAEzC;;;;;;GAMG;AACI,IAAM,aAAa,GAAG,UAAC,KAAa,EAAE,SAAiB,EAAE,MAA0C;IAA1C,uBAAA,EAAA,SAAqB,uBAAU,CAAC,UAAU;IACxG,IAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;IACzB,IAAI,MAAM,KAAK,uBAAU,CAAC,UAAU,EAAE;QACpC,GAAG,GAAG,CAAC,GAAG,CAAC;KACZ;IAED,IAAM,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;IAC9D,+DAA+D;IAC/D,IAAM,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IAElG,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACpB,IAAI,EAAE,SAAS;KAChB,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB;AAEF;;;;;GAKG;AACI,IAAM,aAAa,GAAG,UAAC,IAAW,EAAE,MAA0C;IAA1C,uBAAA,EAAA,SAAqB,uBAAU,CAAC,UAAU;IACnF,IAAM,MAAM,GAAG,GAAG,CAAC;IACnB,IAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,GAAG,MAAM,CAAC;IACzC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,GAAG,MAAM,CAAC;IAEvC,IAAI,MAAM,KAAK,uBAAU,CAAC,UAAU,EAAE;QACpC,GAAG,GAAG,CAAC,GAAG,CAAC;KACZ;IAED,OAAO;QACL,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,GAAG;KACf,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,aAAa,iBAexB"}
|
package/dist/geo/geoHash.js
CHANGED
|
@@ -91,14 +91,14 @@ function geoHash(precision, maxPrecision, polygon, bbox, parentHash) {
|
|
|
91
91
|
case 2:
|
|
92
92
|
if (!!hashes_1_1.done) return [3 /*break*/, 7];
|
|
93
93
|
hash = hashes_1_1.value;
|
|
94
|
-
hashBbox = exports.decodeGeoHash(hash);
|
|
95
|
-
hashPoly = turf_1.bboxPolygon(hashBbox);
|
|
96
|
-
intersection = turf_1.intersect(polygon, hashPoly);
|
|
94
|
+
hashBbox = (0, exports.decodeGeoHash)(hash);
|
|
95
|
+
hashPoly = (0, turf_1.bboxPolygon)(hashBbox);
|
|
96
|
+
intersection = (0, turf_1.intersect)(polygon, hashPoly);
|
|
97
97
|
if (intersection === null || !isSubHash(hash, parentHash)) {
|
|
98
98
|
return [3 /*break*/, 6];
|
|
99
99
|
}
|
|
100
|
-
intArea = turf_1.area(intersection);
|
|
101
|
-
hashArea = turf_1.area(
|
|
100
|
+
intArea = (0, turf_1.area)(intersection);
|
|
101
|
+
hashArea = (0, turf_1.area)(hashPoly);
|
|
102
102
|
if (!(intArea == hashArea || precision == maxPrecision)) return [3 /*break*/, 4];
|
|
103
103
|
return [4 /*yield*/, hash];
|
|
104
104
|
case 3:
|
|
@@ -148,8 +148,8 @@ exports.decodeGeoHash = decodeGeoHash;
|
|
|
148
148
|
*/
|
|
149
149
|
var createGeoHashGenerator = function (polygon, maxTileZoom) {
|
|
150
150
|
if (maxTileZoom === void 0) { maxTileZoom = MAX_STANDARD_ZOOM; }
|
|
151
|
-
var bbox = turf_1.bbox(polygon);
|
|
152
|
-
bbox = bboxUtils_1.snapBBoxToTileGrid(bbox, maxTileZoom);
|
|
151
|
+
var bbox = (0, turf_1.bbox)(polygon);
|
|
152
|
+
bbox = (0, bboxUtils_1.snapBBoxToTileGrid)(bbox, maxTileZoom);
|
|
153
153
|
//at this precision ea geo hash is a tile or smaller
|
|
154
154
|
/* eslint-disable @typescript-eslint/no-magic-numbers */
|
|
155
155
|
var zoomPrecision = Math.floor((2 / 5) * (maxTileZoom + 1));
|
|
@@ -177,7 +177,7 @@ function tileGenerator(polygon, tileZoom, origin) {
|
|
|
177
177
|
return __generator(this, function (_b) {
|
|
178
178
|
switch (_b.label) {
|
|
179
179
|
case 0:
|
|
180
|
-
hashGen = exports.createGeoHashGenerator(polygon, tileZoom);
|
|
180
|
+
hashGen = (0, exports.createGeoHashGenerator)(polygon, tileZoom);
|
|
181
181
|
_b.label = 1;
|
|
182
182
|
case 1:
|
|
183
183
|
_b.trys.push([1, 10, 11, 12]);
|
|
@@ -186,12 +186,12 @@ function tileGenerator(polygon, tileZoom, origin) {
|
|
|
186
186
|
case 2:
|
|
187
187
|
if (!!hashGen_1_1.done) return [3 /*break*/, 9];
|
|
188
188
|
hash = hashGen_1_1.value;
|
|
189
|
-
bbox = exports.decodeGeoHash(hash);
|
|
190
|
-
minTile = geoConvertor_1.degreesToTile({
|
|
189
|
+
bbox = (0, exports.decodeGeoHash)(hash);
|
|
190
|
+
minTile = (0, geoConvertor_1.degreesToTile)({
|
|
191
191
|
longitude: bbox[0],
|
|
192
192
|
latitude: bbox[1],
|
|
193
193
|
}, tileZoom, origin);
|
|
194
|
-
maxTile = geoConvertor_1.degreesToTile({
|
|
194
|
+
maxTile = (0, geoConvertor_1.degreesToTile)({
|
|
195
195
|
longitude: bbox[2],
|
|
196
196
|
latitude: bbox[3],
|
|
197
197
|
}, tileZoom, origin);
|
package/dist/geo/geoHash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoHash.js","sourceRoot":"","sources":["../../src/geo/geoHash.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAiH;AAEjH,iDAAqC;AAErC,6DAA4D;AAC5D,+CAA+C;AAC/C,yCAAiD;AAEjD,IAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,IAAM,gBAAgB,GAAG,UAAC,KAAa,EAAE,KAAa;IACpD,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,MAAc;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,SAAU,OAAO,CACf,SAAiB,EACjB,YAAoB,EACpB,OAAkD,EAClD,IAAY,EACZ,UAAe;;;IAAf,2BAAA,EAAA,eAAe;;;;gBAGT,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;qBAC1E,CAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA,EAAjB,yBAAiB;;;;gBACA,WAAA,SAAA,MAAM,CAAA;;;;gBAAd,IAAI;gBACP,QAAQ,GAAG,qBAAa,
|
|
1
|
+
{"version":3,"file":"geoHash.js","sourceRoot":"","sources":["../../src/geo/geoHash.ts"],"names":[],"mappings":"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"}
|
package/dist/geo/index.d.ts
CHANGED
package/dist/geo/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
package/dist/geo/index.js
CHANGED
|
@@ -14,4 +14,5 @@ __exportStar(require("./bboxUtils"), exports);
|
|
|
14
14
|
__exportStar(require("./geoConvertor"), exports);
|
|
15
15
|
__exportStar(require("./geoHash"), exports);
|
|
16
16
|
__exportStar(require("./tiles"), exports);
|
|
17
|
+
__exportStar(require("./tileRanger"), exports);
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
package/dist/geo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,4CAA0B;AAC1B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geo/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,4CAA0B;AAC1B,0CAAwB;AACxB,+CAA6B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BBox2d } from '@turf/helpers/dist/js/lib/geojson';
|
|
2
|
+
import { Feature, MultiPolygon, Polygon } from '@turf/turf';
|
|
3
|
+
import { ITile, ITileRange } from '../models/interfaces/geo/iTile';
|
|
4
|
+
/**
|
|
5
|
+
* class for generating and decoding tile hashes
|
|
6
|
+
*/
|
|
7
|
+
export declare class TileRanger {
|
|
8
|
+
/**
|
|
9
|
+
* converts tile to tile range of specified zoom level
|
|
10
|
+
* @param tile
|
|
11
|
+
* @param zoom target tile range zoom
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
tileToRange(tile: ITile, zoom: number): ITileRange;
|
|
15
|
+
/**
|
|
16
|
+
* generate tile hashes
|
|
17
|
+
* @param footprint footprint to cover with generated tile hashes
|
|
18
|
+
* @param zoom max hash zoom
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
encodeFootprint(footprint: Polygon | Feature<Polygon | MultiPolygon>, zoom: number): Generator<ITileRange>;
|
|
22
|
+
/**
|
|
23
|
+
* generate tile
|
|
24
|
+
* @param bbox bbox to cover with generated tiles
|
|
25
|
+
* @param zoom target tiles zoom level
|
|
26
|
+
*/
|
|
27
|
+
generateTiles(bbox: BBox2d, zoom: number): Generator<ITile>;
|
|
28
|
+
/**
|
|
29
|
+
* generate tile
|
|
30
|
+
* @param footprint footprint to cover with generated tiles
|
|
31
|
+
* @param zoom target tiles zoom level
|
|
32
|
+
*/
|
|
33
|
+
generateTiles(footprint: Polygon | Feature<Polygon | MultiPolygon>, zoom: number): Generator<ITile>;
|
|
34
|
+
private generateRanges;
|
|
35
|
+
private optimizeHash;
|
|
36
|
+
private generateSubTiles;
|
|
37
|
+
private readonly tileFootprintIntersection;
|
|
38
|
+
private isBbox;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=tileRanger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tileRanger.d.ts","sourceRoot":"","sources":["../../src/geo/tileRanger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAA0D,OAAO,EAAa,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/H,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAkBnE;;GAEG;AACH,qBAAa,UAAU;IACrB;;;;;OAKG;IACI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IA4BzD;;;;;OAKG;IACK,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC;IAalH;;;;OAIG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;IAClE;;;;OAIG;IACI,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;IAW1G,OAAO,CAAE,cAAc;IA8BvB,OAAO,CAAE,YAAY;IAiBrB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAgBxC;IAEF,OAAO,CAAC,MAAM;CAKf"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
3
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
4
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
5
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
6
|
+
function step(op) {
|
|
7
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
8
|
+
while (_) try {
|
|
9
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
10
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
11
|
+
switch (op[0]) {
|
|
12
|
+
case 0: case 1: t = op; break;
|
|
13
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
14
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
15
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
16
|
+
default:
|
|
17
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
18
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
19
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
20
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
21
|
+
if (t[2]) _.ops.pop();
|
|
22
|
+
_.trys.pop(); continue;
|
|
23
|
+
}
|
|
24
|
+
op = body.call(thisArg, _);
|
|
25
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
26
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var __values = (this && this.__values) || function(o) {
|
|
30
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
31
|
+
if (m) return m.call(o);
|
|
32
|
+
if (o && typeof o.length === "number") return {
|
|
33
|
+
next: function () {
|
|
34
|
+
if (o && i >= o.length) o = void 0;
|
|
35
|
+
return { value: o && o[i++], done: !o };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
39
|
+
};
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.TileRanger = void 0;
|
|
42
|
+
var turf_1 = require("@turf/turf");
|
|
43
|
+
var bboxUtils_1 = require("./bboxUtils");
|
|
44
|
+
var tiles_1 = require("./tiles");
|
|
45
|
+
var tilesGenerator_1 = require("./tilesGenerator");
|
|
46
|
+
var TileIntersectionState;
|
|
47
|
+
(function (TileIntersectionState) {
|
|
48
|
+
TileIntersectionState["FULL"] = "full";
|
|
49
|
+
TileIntersectionState["PARTIAL"] = "partial";
|
|
50
|
+
TileIntersectionState["NONE"] = "none";
|
|
51
|
+
})(TileIntersectionState || (TileIntersectionState = {}));
|
|
52
|
+
/**
|
|
53
|
+
* class for generating and decoding tile hashes
|
|
54
|
+
*/
|
|
55
|
+
var TileRanger = /** @class */ (function () {
|
|
56
|
+
function TileRanger() {
|
|
57
|
+
this.tileFootprintIntersection = function (tile, intersectionParams) {
|
|
58
|
+
var tileBbox = (0, tiles_1.tileToBbox)(tile);
|
|
59
|
+
var tilePoly = (0, turf_1.bboxPolygon)(tileBbox);
|
|
60
|
+
var intersection = (0, turf_1.intersect)(intersectionParams.footprint, tilePoly);
|
|
61
|
+
if (intersection === null) {
|
|
62
|
+
return TileIntersectionState.NONE;
|
|
63
|
+
}
|
|
64
|
+
if (tile.zoom === intersectionParams.maxZoom) {
|
|
65
|
+
return TileIntersectionState.FULL;
|
|
66
|
+
}
|
|
67
|
+
var intArea = (0, turf_1.area)(intersection);
|
|
68
|
+
var hashArea = (0, turf_1.area)(tilePoly);
|
|
69
|
+
if (intArea == hashArea) {
|
|
70
|
+
return TileIntersectionState.FULL;
|
|
71
|
+
}
|
|
72
|
+
return TileIntersectionState.PARTIAL;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* converts tile to tile range of specified zoom level
|
|
77
|
+
* @param tile
|
|
78
|
+
* @param zoom target tile range zoom
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
TileRanger.prototype.tileToRange = function (tile, zoom) {
|
|
82
|
+
var minX, minY, maxX, maxY;
|
|
83
|
+
minX = tile.x;
|
|
84
|
+
maxX = tile.x + 1;
|
|
85
|
+
minY = tile.y;
|
|
86
|
+
maxY = tile.y + 1;
|
|
87
|
+
if (tile.zoom < zoom) {
|
|
88
|
+
var dz = zoom - tile.zoom;
|
|
89
|
+
minX = minX << dz;
|
|
90
|
+
maxX = maxX << dz;
|
|
91
|
+
minY = minY << dz;
|
|
92
|
+
maxY = maxY << dz;
|
|
93
|
+
}
|
|
94
|
+
else if (tile.zoom > zoom) {
|
|
95
|
+
var dz = tile.zoom - zoom;
|
|
96
|
+
minX = minX >> dz;
|
|
97
|
+
minY = minY >> dz;
|
|
98
|
+
maxX = minX + 1;
|
|
99
|
+
maxY = minY + 1;
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
minX: minX,
|
|
103
|
+
minY: minY,
|
|
104
|
+
maxX: maxX,
|
|
105
|
+
maxY: maxY,
|
|
106
|
+
zoom: zoom,
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* generate tile hashes
|
|
111
|
+
* @param footprint footprint to cover with generated tile hashes
|
|
112
|
+
* @param zoom max hash zoom
|
|
113
|
+
* @returns
|
|
114
|
+
*/
|
|
115
|
+
TileRanger.prototype.encodeFootprint = function (footprint, zoom) {
|
|
116
|
+
var bbox, intersectionParams;
|
|
117
|
+
return __generator(this, function (_a) {
|
|
118
|
+
switch (_a.label) {
|
|
119
|
+
case 0:
|
|
120
|
+
bbox = (0, turf_1.bbox)(footprint);
|
|
121
|
+
if (!this.isBbox(footprint)) return [3 /*break*/, 2];
|
|
122
|
+
return [4 /*yield*/, (0, bboxUtils_1.bboxToTileRange)(bbox, zoom)];
|
|
123
|
+
case 1:
|
|
124
|
+
_a.sent();
|
|
125
|
+
return [3 /*break*/, 4];
|
|
126
|
+
case 2:
|
|
127
|
+
intersectionParams = {
|
|
128
|
+
footprint: footprint,
|
|
129
|
+
maxZoom: zoom,
|
|
130
|
+
};
|
|
131
|
+
return [5 /*yield**/, __values(this.generateRanges(bbox, zoom, intersectionParams, this.tileFootprintIntersection))];
|
|
132
|
+
case 3:
|
|
133
|
+
_a.sent();
|
|
134
|
+
_a.label = 4;
|
|
135
|
+
case 4: return [2 /*return*/];
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
TileRanger.prototype.generateTiles = function (area, zoom) {
|
|
140
|
+
var gen;
|
|
141
|
+
if (Array.isArray(area)) {
|
|
142
|
+
gen = [(0, bboxUtils_1.bboxToTileRange)(area, zoom)];
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
gen = this.encodeFootprint(area, zoom);
|
|
146
|
+
}
|
|
147
|
+
return (0, tilesGenerator_1.tilesGenerator)(gen);
|
|
148
|
+
};
|
|
149
|
+
TileRanger.prototype.generateRanges = function (bbox, zoom, intersectionTarget, intersectionFunction) {
|
|
150
|
+
var boundingRange, dx, dy, minXZoom, minYZoom, minZoom, minimalRange, x, y, tile, intersection;
|
|
151
|
+
return __generator(this, function (_a) {
|
|
152
|
+
switch (_a.label) {
|
|
153
|
+
case 0:
|
|
154
|
+
boundingRange = (0, bboxUtils_1.bboxToTileRange)(bbox, zoom);
|
|
155
|
+
dx = boundingRange.maxX - boundingRange.minX;
|
|
156
|
+
dy = boundingRange.maxY - boundingRange.minY;
|
|
157
|
+
minXZoom = Math.max(Math.floor(Math.log2(1 << (zoom + 1)) / dx) - 1, 0);
|
|
158
|
+
minYZoom = Math.max(Math.floor(Math.log2(1 << zoom) / dy), 0);
|
|
159
|
+
minZoom = Math.min(minXZoom, minYZoom);
|
|
160
|
+
minimalRange = (0, bboxUtils_1.bboxToTileRange)(bbox, minZoom);
|
|
161
|
+
x = minimalRange.minX;
|
|
162
|
+
_a.label = 1;
|
|
163
|
+
case 1:
|
|
164
|
+
if (!(x < minimalRange.maxX)) return [3 /*break*/, 8];
|
|
165
|
+
y = minimalRange.minY;
|
|
166
|
+
_a.label = 2;
|
|
167
|
+
case 2:
|
|
168
|
+
if (!(y < minimalRange.maxY)) return [3 /*break*/, 7];
|
|
169
|
+
tile = { x: x, y: y, zoom: minimalRange.zoom };
|
|
170
|
+
intersection = intersectionFunction(tile, intersectionTarget);
|
|
171
|
+
if (!(intersection === TileIntersectionState.FULL)) return [3 /*break*/, 4];
|
|
172
|
+
return [4 /*yield*/, this.tileToRange(tile, zoom)];
|
|
173
|
+
case 3:
|
|
174
|
+
_a.sent();
|
|
175
|
+
return [3 /*break*/, 6];
|
|
176
|
+
case 4:
|
|
177
|
+
if (!(intersection === TileIntersectionState.PARTIAL)) return [3 /*break*/, 6];
|
|
178
|
+
//optimize partial base hashes
|
|
179
|
+
return [5 /*yield**/, __values(this.optimizeHash(tile, zoom, intersectionTarget, intersectionFunction))];
|
|
180
|
+
case 5:
|
|
181
|
+
//optimize partial base hashes
|
|
182
|
+
_a.sent();
|
|
183
|
+
_a.label = 6;
|
|
184
|
+
case 6:
|
|
185
|
+
y++;
|
|
186
|
+
return [3 /*break*/, 2];
|
|
187
|
+
case 7:
|
|
188
|
+
x++;
|
|
189
|
+
return [3 /*break*/, 1];
|
|
190
|
+
case 8: return [2 /*return*/];
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
TileRanger.prototype.optimizeHash = function (tile, targetZoom, intersectionTarget, intersectionFunction) {
|
|
195
|
+
var tiles, tiles_2, tiles_2_1, subTile, intersection, e_1_1;
|
|
196
|
+
var e_1, _a;
|
|
197
|
+
return __generator(this, function (_b) {
|
|
198
|
+
switch (_b.label) {
|
|
199
|
+
case 0:
|
|
200
|
+
tiles = this.generateSubTiles(tile);
|
|
201
|
+
_b.label = 1;
|
|
202
|
+
case 1:
|
|
203
|
+
_b.trys.push([1, 8, 9, 10]);
|
|
204
|
+
tiles_2 = __values(tiles), tiles_2_1 = tiles_2.next();
|
|
205
|
+
_b.label = 2;
|
|
206
|
+
case 2:
|
|
207
|
+
if (!!tiles_2_1.done) return [3 /*break*/, 7];
|
|
208
|
+
subTile = tiles_2_1.value;
|
|
209
|
+
intersection = intersectionFunction(subTile, intersectionTarget);
|
|
210
|
+
if (!(intersection === TileIntersectionState.FULL)) return [3 /*break*/, 4];
|
|
211
|
+
return [4 /*yield*/, this.tileToRange(subTile, targetZoom)];
|
|
212
|
+
case 3:
|
|
213
|
+
_b.sent();
|
|
214
|
+
return [3 /*break*/, 6];
|
|
215
|
+
case 4:
|
|
216
|
+
if (!(intersection === TileIntersectionState.PARTIAL)) return [3 /*break*/, 6];
|
|
217
|
+
return [5 /*yield**/, __values(this.optimizeHash(subTile, targetZoom, intersectionTarget, intersectionFunction))];
|
|
218
|
+
case 5:
|
|
219
|
+
_b.sent();
|
|
220
|
+
_b.label = 6;
|
|
221
|
+
case 6:
|
|
222
|
+
tiles_2_1 = tiles_2.next();
|
|
223
|
+
return [3 /*break*/, 2];
|
|
224
|
+
case 7: return [3 /*break*/, 10];
|
|
225
|
+
case 8:
|
|
226
|
+
e_1_1 = _b.sent();
|
|
227
|
+
e_1 = { error: e_1_1 };
|
|
228
|
+
return [3 /*break*/, 10];
|
|
229
|
+
case 9:
|
|
230
|
+
try {
|
|
231
|
+
if (tiles_2_1 && !tiles_2_1.done && (_a = tiles_2.return)) _a.call(tiles_2);
|
|
232
|
+
}
|
|
233
|
+
finally { if (e_1) throw e_1.error; }
|
|
234
|
+
return [7 /*endfinally*/];
|
|
235
|
+
case 10: return [2 /*return*/];
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
};
|
|
239
|
+
TileRanger.prototype.generateSubTiles = function (tile) {
|
|
240
|
+
var tile0 = { x: tile.x << 1, y: tile.y << 1, zoom: tile.zoom + 1 };
|
|
241
|
+
var tile1 = { x: tile0.x + 1, y: tile0.y, zoom: tile0.zoom };
|
|
242
|
+
var tile2 = { x: tile0.x, y: tile0.y + 1, zoom: tile0.zoom };
|
|
243
|
+
var tile3 = { x: tile0.x + 1, y: tile0.y + 1, zoom: tile0.zoom };
|
|
244
|
+
var tiles = [tile0, tile1, tile2, tile3];
|
|
245
|
+
return tiles;
|
|
246
|
+
};
|
|
247
|
+
TileRanger.prototype.isBbox = function (footprint) {
|
|
248
|
+
var bbox = (0, turf_1.bbox)(footprint);
|
|
249
|
+
var bboxPoly = (0, turf_1.bboxPolygon)(bbox);
|
|
250
|
+
return (0, turf_1.booleanEqual)(footprint, bboxPoly);
|
|
251
|
+
};
|
|
252
|
+
return TileRanger;
|
|
253
|
+
}());
|
|
254
|
+
exports.TileRanger = TileRanger;
|
|
255
|
+
//# sourceMappingURL=tileRanger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tileRanger.js","sourceRoot":"","sources":["../../src/geo/tileRanger.ts"],"names":[],"mappings":"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"}
|
package/dist/geo/tiles.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BBox2d } from '@turf/helpers/dist/js/lib/geojson';
|
|
1
2
|
import { ITile } from '../models/interfaces/geo/iTile';
|
|
2
3
|
/**
|
|
3
4
|
* calculates tile size (resolution) in degrees
|
|
@@ -23,4 +24,10 @@ export declare function flipYAxis(tile: ITile): ITile;
|
|
|
23
24
|
* @returns zoom level for given pixel size
|
|
24
25
|
*/
|
|
25
26
|
export declare function degreesPerPixelToZoomLevel(resolution: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* returns bbox of given tile
|
|
29
|
+
* @param tile
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
export declare function tileToBbox(tile: ITile): BBox2d;
|
|
26
33
|
//# 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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"tiles.d.ts","sourceRoot":"","sources":["../../src/geo/tiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD;;;;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,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAI9C"}
|
package/dist/geo/tiles.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.degreesPerPixelToZoomLevel = exports.flipYAxis = exports.degreesPerPixel = exports.degreesPerTile = void 0;
|
|
3
|
+
exports.tileToBbox = exports.degreesPerPixelToZoomLevel = exports.flipYAxis = exports.degreesPerPixel = exports.degreesPerTile = void 0;
|
|
4
|
+
var geoConvertor_1 = require("./geoConvertor");
|
|
4
5
|
/**
|
|
5
6
|
* calculates tile size (resolution) in degrees
|
|
6
7
|
* @param zoomLevel zoom level of returned tile size
|
|
@@ -46,9 +47,20 @@ function degreesPerPixelToZoomLevel(resolution) {
|
|
|
46
47
|
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
47
48
|
var zoomLevel = Math.ceil(Math.log2(180 / (resolution * 256)));
|
|
48
49
|
if (zoomLevel < MIN_ZOOM_LEVEL) {
|
|
49
|
-
throw new Error("Invalid zoom level "
|
|
50
|
+
throw new Error("Invalid zoom level ".concat(zoomLevel, " for resolution ").concat(resolution));
|
|
50
51
|
}
|
|
51
52
|
return zoomLevel;
|
|
52
53
|
}
|
|
53
54
|
exports.degreesPerPixelToZoomLevel = degreesPerPixelToZoomLevel;
|
|
55
|
+
/**
|
|
56
|
+
* returns bbox of given tile
|
|
57
|
+
* @param tile
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
function tileToBbox(tile) {
|
|
61
|
+
var minPoint = (0, geoConvertor_1.tileToDegrees)(tile);
|
|
62
|
+
var tileSize = degreesPerTile(tile.zoom);
|
|
63
|
+
return [minPoint.longitude, minPoint.latitude, minPoint.longitude + tileSize, minPoint.latitude + tileSize];
|
|
64
|
+
}
|
|
65
|
+
exports.tileToBbox = tileToBbox;
|
|
54
66
|
//# 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":";;;AAEA;;;;GAIG;AACH,SAAgB,cAAc,CAAC,SAAiB;IAC9C,IAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,OAAO,QAAQ,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;AACrC,CAAC;AAHD,wCAGC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,SAAiB;IAC/C,IAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,IAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,OAAO,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAJD,0CAIC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAW;IACnC,IAAM,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IAC9B,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAPD,8BAOC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,UAAkB;IAC3D,IAAM,cAAc,GAAG,CAAC,CAAC;IACzB,+DAA+D;IAC/D,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,SAAS,GAAG,cAAc,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"tiles.js","sourceRoot":"","sources":["../../src/geo/tiles.ts"],"names":[],"mappings":";;;AAEA,+CAA+C;AAE/C;;;;GAIG;AACH,SAAgB,cAAc,CAAC,SAAiB;IAC9C,IAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,OAAO,QAAQ,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;AACrC,CAAC;AAHD,wCAGC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,SAAiB;IAC/C,IAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,IAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,OAAO,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAJD,0CAIC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAW;IACnC,IAAM,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;IAC9B,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;AACJ,CAAC;AAPD,8BAOC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,UAAkB;IAC3D,IAAM,cAAc,GAAG,CAAC,CAAC;IACzB,+DAA+D;IAC/D,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,SAAS,GAAG,cAAc,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,6BAAsB,SAAS,6BAAmB,UAAU,CAAE,CAAC,CAAC;KACjF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,gEAQC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAW;IACpC,IAAM,QAAQ,GAAG,IAAA,4BAAa,EAAC,IAAI,CAAC,CAAC;IACrC,IAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC9G,CAAC;AAJD,gCAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tilesGenerator.d.ts","sourceRoot":"","sources":["../../src/geo/tilesGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEnE,wBAAiB,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAYhF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
3
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
4
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
5
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
6
|
+
function step(op) {
|
|
7
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
8
|
+
while (_) try {
|
|
9
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
10
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
11
|
+
switch (op[0]) {
|
|
12
|
+
case 0: case 1: t = op; break;
|
|
13
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
14
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
15
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
16
|
+
default:
|
|
17
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
18
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
19
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
20
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
21
|
+
if (t[2]) _.ops.pop();
|
|
22
|
+
_.trys.pop(); continue;
|
|
23
|
+
}
|
|
24
|
+
op = body.call(thisArg, _);
|
|
25
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
26
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
var __values = (this && this.__values) || function(o) {
|
|
30
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
31
|
+
if (m) return m.call(o);
|
|
32
|
+
if (o && typeof o.length === "number") return {
|
|
33
|
+
next: function () {
|
|
34
|
+
if (o && i >= o.length) o = void 0;
|
|
35
|
+
return { value: o && o[i++], done: !o };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
39
|
+
};
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.tilesGenerator = void 0;
|
|
42
|
+
function tilesGenerator(rangeGen) {
|
|
43
|
+
var rangeGen_1, rangeGen_1_1, range, x, y, e_1_1;
|
|
44
|
+
var e_1, _a;
|
|
45
|
+
return __generator(this, function (_b) {
|
|
46
|
+
switch (_b.label) {
|
|
47
|
+
case 0:
|
|
48
|
+
_b.trys.push([0, 9, 10, 11]);
|
|
49
|
+
rangeGen_1 = __values(rangeGen), rangeGen_1_1 = rangeGen_1.next();
|
|
50
|
+
_b.label = 1;
|
|
51
|
+
case 1:
|
|
52
|
+
if (!!rangeGen_1_1.done) return [3 /*break*/, 8];
|
|
53
|
+
range = rangeGen_1_1.value;
|
|
54
|
+
x = range.minX;
|
|
55
|
+
_b.label = 2;
|
|
56
|
+
case 2:
|
|
57
|
+
if (!(x < range.maxX)) return [3 /*break*/, 7];
|
|
58
|
+
y = range.minY;
|
|
59
|
+
_b.label = 3;
|
|
60
|
+
case 3:
|
|
61
|
+
if (!(y < range.maxY)) return [3 /*break*/, 6];
|
|
62
|
+
return [4 /*yield*/, {
|
|
63
|
+
x: x,
|
|
64
|
+
y: y,
|
|
65
|
+
zoom: range.zoom,
|
|
66
|
+
}];
|
|
67
|
+
case 4:
|
|
68
|
+
_b.sent();
|
|
69
|
+
_b.label = 5;
|
|
70
|
+
case 5:
|
|
71
|
+
y++;
|
|
72
|
+
return [3 /*break*/, 3];
|
|
73
|
+
case 6:
|
|
74
|
+
x++;
|
|
75
|
+
return [3 /*break*/, 2];
|
|
76
|
+
case 7:
|
|
77
|
+
rangeGen_1_1 = rangeGen_1.next();
|
|
78
|
+
return [3 /*break*/, 1];
|
|
79
|
+
case 8: return [3 /*break*/, 11];
|
|
80
|
+
case 9:
|
|
81
|
+
e_1_1 = _b.sent();
|
|
82
|
+
e_1 = { error: e_1_1 };
|
|
83
|
+
return [3 /*break*/, 11];
|
|
84
|
+
case 10:
|
|
85
|
+
try {
|
|
86
|
+
if (rangeGen_1_1 && !rangeGen_1_1.done && (_a = rangeGen_1.return)) _a.call(rangeGen_1);
|
|
87
|
+
}
|
|
88
|
+
finally { if (e_1) throw e_1.error; }
|
|
89
|
+
return [7 /*endfinally*/];
|
|
90
|
+
case 11: return [2 /*return*/];
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
exports.tilesGenerator = tilesGenerator;
|
|
95
|
+
//# sourceMappingURL=tilesGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tilesGenerator.js","sourceRoot":"","sources":["../../src/geo/tilesGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAiB,cAAc,CAAC,QAA8B;;;;;;;gBACxC,aAAA,SAAA,QAAQ,CAAA;;;;gBAAjB,KAAK;gBACL,CAAC,GAAG,KAAK,CAAC,IAAI;;;qBAAE,CAAA,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;gBAC5B,CAAC,GAAG,KAAK,CAAC,IAAI;;;qBAAE,CAAA,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;gBACrC,qBAAM;wBACJ,CAAC,GAAA;wBACD,CAAC,GAAA;wBACD,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,EAAA;;gBAJD,SAIC,CAAC;;;gBALqC,CAAC,EAAE,CAAA;;;gBADL,CAAC,EAAE,CAAA;;;;;;;;;;;;;;;;;;;CAU/C;AAZD,wCAYC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iTile.d.ts","sourceRoot":"","sources":["../../../../src/models/interfaces/geo/iTile.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
1
|
+
{"version":3,"file":"iTile.d.ts","sourceRoot":"","sources":["../../../../src/models/interfaces/geo/iTile.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
|