dgeoutils 2.4.18 → 2.4.21

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.
@@ -34,6 +34,10 @@ export declare class DPoint {
34
34
  static parseFromWKT(wkt: string): DPoint;
35
35
  static random(): DPoint;
36
36
  static getTileFromQuadKey(quadKey: string): DPoint;
37
+ toDegreesMinutesSeconds(): {
38
+ x: string;
39
+ y: string;
40
+ };
37
41
  getTileFromCoords(zoom?: number): DPoint;
38
42
  getQuadKeyFromTile(zoom?: number): string;
39
43
  getCoordsFromTile(zoom?: number): DPoint;
@@ -125,6 +129,7 @@ export declare class DPoint {
125
129
  set alt(v: number | undefined);
126
130
  simple<T extends Record<string, number>>(xKey?: string, yKey?: string, zKey?: string): T;
127
131
  setIfLessThan(p: DPoint): DPoint;
132
+ setIfMoreThan(p: DPoint): DPoint;
128
133
  minus(): DPoint;
129
134
  orthodromicPath(point: DPoint, pointsCount?: number): DPolygon;
130
135
  sortByDistance(p: DPolygon): DPolygon;
@@ -139,6 +139,12 @@ var DPoint = (function () {
139
139
  }
140
140
  return p;
141
141
  };
142
+ DPoint.prototype.toDegreesMinutesSeconds = function () {
143
+ return {
144
+ x: (0, utils_1.toDegreesMinutesSeconds)(this.x),
145
+ y: (0, utils_1.toDegreesMinutesSeconds)(this.y)
146
+ };
147
+ };
142
148
  DPoint.prototype.getTileFromCoords = function (zoom) {
143
149
  if (zoom === void 0) { zoom = this.z; }
144
150
  (0, utils_1.checkFunction)('getTileFromCoords')
@@ -733,6 +739,11 @@ var DPoint = (function () {
733
739
  this.y = Math.max(this.y, p.y);
734
740
  return this;
735
741
  };
742
+ DPoint.prototype.setIfMoreThan = function (p) {
743
+ this.x = Math.min(this.x, p.x);
744
+ this.y = Math.min(this.y, p.y);
745
+ return this;
746
+ };
736
747
  DPoint.prototype.minus = function () {
737
748
  return this.scale(-1);
738
749
  };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="offscreencanvas" />
2
- import { DCoord, DPoint, LatLng } from './DPoint';
2
+ import { DCoord, DPoint, LatLng, XYZ } from './DPoint';
3
3
  import { DLine } from './DLine';
4
4
  import { DPolygonLoop } from './DPolygonLoop';
5
5
  import { True } from './utils';
@@ -98,6 +98,7 @@ export declare class DPolygon {
98
98
  static parse(a: LatLng[], format?: string): DPolygon;
99
99
  static parse(a: number[][], format?: string): DPolygon;
100
100
  static parse(a: DCoord[], format?: string): DPolygon;
101
+ static parse(a: XYZ[], format?: string): DPolygon;
101
102
  static parse(a: GeoJsonGeometry | Feature | FeatureCollection<LineString | Polygon>, format?: string): DPolygon | DeepArray<DPolygon>;
102
103
  toArrayOfCoords(format?: string): DCoord[];
103
104
  toGeoJSONFeature(format?: string): Feature<LineString | Polygon>;
@@ -7,4 +7,4 @@ export * from './FastSearch';
7
7
  export * from './TraceMatrix';
8
8
  export * from './DPolygonLoop';
9
9
  export * from './DPlane';
10
- export { gaussianElimination, createCanvas, createArray, createMatrix, isDefAndNotNull, cartesianProduct, getCombinations, DGeo } from './utils';
10
+ export { gaussianElimination, createCanvas, createArray, createMatrix, isDefAndNotNull, cartesianProduct, getCombinations, parseDegreesMinutesSeconds, DGeo } from './utils';
package/dist/cjs/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.DGeo = exports.getCombinations = exports.cartesianProduct = exports.isDefAndNotNull = exports.createMatrix = exports.createArray = exports.createCanvas = exports.gaussianElimination = void 0;
17
+ exports.DGeo = exports.parseDegreesMinutesSeconds = exports.getCombinations = exports.cartesianProduct = exports.isDefAndNotNull = exports.createMatrix = exports.createArray = exports.createCanvas = exports.gaussianElimination = void 0;
18
18
  __exportStar(require("./DCircle"), exports);
19
19
  __exportStar(require("./DLine"), exports);
20
20
  __exportStar(require("./DNumbers"), exports);
@@ -32,4 +32,5 @@ Object.defineProperty(exports, "createMatrix", { enumerable: true, get: function
32
32
  Object.defineProperty(exports, "isDefAndNotNull", { enumerable: true, get: function () { return utils_1.isDefAndNotNull; } });
33
33
  Object.defineProperty(exports, "cartesianProduct", { enumerable: true, get: function () { return utils_1.cartesianProduct; } });
34
34
  Object.defineProperty(exports, "getCombinations", { enumerable: true, get: function () { return utils_1.getCombinations; } });
35
+ Object.defineProperty(exports, "parseDegreesMinutesSeconds", { enumerable: true, get: function () { return utils_1.parseDegreesMinutesSeconds; } });
35
36
  Object.defineProperty(exports, "DGeo", { enumerable: true, get: function () { return utils_1.DGeo; } });
@@ -44,4 +44,6 @@ export declare const cartesianProduct: {
44
44
  };
45
45
  export declare const getCombinations: <T>(arr: T[][]) => T[][];
46
46
  export declare const div: (a: number, b: number) => number;
47
+ export declare const toDegreesMinutesSeconds: (v: number) => string;
48
+ export declare const parseDegreesMinutesSeconds: (i: string) => number;
47
49
  export {};
package/dist/cjs/utils.js CHANGED
@@ -24,8 +24,19 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
24
  }
25
25
  return to.concat(ar || Array.prototype.slice.call(from));
26
26
  };
27
+ var __values = (this && this.__values) || function(o) {
28
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
29
+ if (m) return m.call(o);
30
+ if (o && typeof o.length === "number") return {
31
+ next: function () {
32
+ if (o && i >= o.length) o = void 0;
33
+ return { value: o && o[i++], done: !o };
34
+ }
35
+ };
36
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
37
+ };
27
38
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.div = exports.getCombinations = exports.cartesianProduct = exports.createCanvas = exports.gaussianElimination = exports.createMatrix = exports.createArray = exports.checkFunction = exports.isDefAndNotNull = exports.warn = exports.DGeo = void 0;
39
+ exports.parseDegreesMinutesSeconds = exports.toDegreesMinutesSeconds = exports.div = exports.getCombinations = exports.cartesianProduct = exports.createCanvas = exports.gaussianElimination = exports.createMatrix = exports.createArray = exports.checkFunction = exports.isDefAndNotNull = exports.warn = exports.DGeo = void 0;
29
40
  var DPoint_1 = require("./DPoint");
30
41
  exports.DGeo = {
31
42
  DEBUG: false,
@@ -223,3 +234,46 @@ var getCombinations = function (arr) {
223
234
  exports.getCombinations = getCombinations;
224
235
  var div = function (a, b) { return Math.floor(a / b); };
225
236
  exports.div = div;
237
+ var toDegreesMinutesSeconds = function (v) {
238
+ var degrees = Math.floor(v);
239
+ var t = (v % 1) * 60;
240
+ var minutes = Math.floor(t);
241
+ var t2 = (t % 1) * 60;
242
+ var seconds = t2.toFixed(2);
243
+ return "".concat(degrees, "\u00B0 ").concat(minutes, "' ").concat(seconds, "\"");
244
+ };
245
+ exports.toDegreesMinutesSeconds = toDegreesMinutesSeconds;
246
+ var parseDegreesMinutesSeconds = function (i) {
247
+ var e_1, _a;
248
+ var _b, _c, _d, _e, _f, _g, _h;
249
+ var parts = i.matchAll(/(?<value>-?\d+(?<tail>\.\d{1,})?)(?<type>°|'|")/gmiu);
250
+ var d = 0;
251
+ var m = 0;
252
+ var s = 0;
253
+ try {
254
+ for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
255
+ var part = parts_1_1.value;
256
+ switch ((_b = part === null || part === void 0 ? void 0 : part.groups) === null || _b === void 0 ? void 0 : _b.type) {
257
+ case '°':
258
+ d = Number((_d = (_c = part === null || part === void 0 ? void 0 : part.groups) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : '0');
259
+ break;
260
+ case '\'':
261
+ m = Number((_f = (_e = part === null || part === void 0 ? void 0 : part.groups) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : '0');
262
+ break;
263
+ case '"':
264
+ s = Number((_h = (_g = part === null || part === void 0 ? void 0 : part.groups) === null || _g === void 0 ? void 0 : _g.value) !== null && _h !== void 0 ? _h : '0');
265
+ break;
266
+ default:
267
+ }
268
+ }
269
+ }
270
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
271
+ finally {
272
+ try {
273
+ if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
274
+ }
275
+ finally { if (e_1) throw e_1.error; }
276
+ }
277
+ return d + m / 60 + s / 3600;
278
+ };
279
+ exports.parseDegreesMinutesSeconds = parseDegreesMinutesSeconds;
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import { DLine } from './DLine';
13
13
  import { DPolygon } from './DPolygon';
14
- import { checkFunction, createArray, DGeo, div, isDefAndNotNull } from './utils';
14
+ import { checkFunction, createArray, DGeo, div, isDefAndNotNull, toDegreesMinutesSeconds } from './utils';
15
15
  const diff = 0;
16
16
  const radiansPolygon = new DPolygon();
17
17
  const pseudoMercatorPolygon = new DPolygon();
@@ -106,6 +106,12 @@ export class DPoint {
106
106
  }
107
107
  return p;
108
108
  }
109
+ toDegreesMinutesSeconds() {
110
+ return {
111
+ x: toDegreesMinutesSeconds(this.x),
112
+ y: toDegreesMinutesSeconds(this.y)
113
+ };
114
+ }
109
115
  getTileFromCoords(zoom = this.z) {
110
116
  checkFunction('getTileFromCoords')
111
117
  .checkArgument('this')
@@ -610,6 +616,11 @@ export class DPoint {
610
616
  this.y = Math.max(this.y, p.y);
611
617
  return this;
612
618
  }
619
+ setIfMoreThan(p) {
620
+ this.x = Math.min(this.x, p.x);
621
+ this.y = Math.min(this.y, p.y);
622
+ return this;
623
+ }
613
624
  minus() {
614
625
  return this.scale(-1);
615
626
  }
@@ -7,4 +7,4 @@ export * from './FastSearch';
7
7
  export * from './TraceMatrix';
8
8
  export * from './DPolygonLoop';
9
9
  export * from './DPlane';
10
- export { gaussianElimination, createCanvas, createArray, createMatrix, isDefAndNotNull, cartesianProduct, getCombinations, DGeo } from './utils';
10
+ export { gaussianElimination, createCanvas, createArray, createMatrix, isDefAndNotNull, cartesianProduct, getCombinations, parseDegreesMinutesSeconds, DGeo } from './utils';
@@ -174,3 +174,33 @@ export const getCombinations = (arr) => {
174
174
  return ans;
175
175
  };
176
176
  export const div = (a, b) => Math.floor(a / b);
177
+ export const toDegreesMinutesSeconds = (v) => {
178
+ const degrees = Math.floor(v);
179
+ const t = (v % 1) * 60;
180
+ const minutes = Math.floor(t);
181
+ const t2 = (t % 1) * 60;
182
+ const seconds = t2.toFixed(2);
183
+ return `${degrees}° ${minutes}' ${seconds}"`;
184
+ };
185
+ export const parseDegreesMinutesSeconds = (i) => {
186
+ var _a, _b, _c, _d, _e, _f, _g;
187
+ const parts = i.matchAll(/(?<value>-?\d+(?<tail>\.\d{1,})?)(?<type>°|'|")/gmiu);
188
+ let d = 0;
189
+ let m = 0;
190
+ let s = 0;
191
+ for (const part of parts) {
192
+ switch ((_a = part === null || part === void 0 ? void 0 : part.groups) === null || _a === void 0 ? void 0 : _a.type) {
193
+ case '°':
194
+ d = Number((_c = (_b = part === null || part === void 0 ? void 0 : part.groups) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : '0');
195
+ break;
196
+ case '\'':
197
+ m = Number((_e = (_d = part === null || part === void 0 ? void 0 : part.groups) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : '0');
198
+ break;
199
+ case '"':
200
+ s = Number((_g = (_f = part === null || part === void 0 ? void 0 : part.groups) === null || _f === void 0 ? void 0 : _f.value) !== null && _g !== void 0 ? _g : '0');
201
+ break;
202
+ default:
203
+ }
204
+ }
205
+ return d + m / 60 + s / 3600;
206
+ };
@@ -38,7 +38,7 @@ var __read = (this && this.__read) || function (o, n) {
38
38
  };
39
39
  import { DLine } from './DLine';
40
40
  import { DPolygon } from './DPolygon';
41
- import { checkFunction, createArray, DGeo, div, isDefAndNotNull } from './utils';
41
+ import { checkFunction, createArray, DGeo, div, isDefAndNotNull, toDegreesMinutesSeconds } from './utils';
42
42
  var diff = 0;
43
43
  var radiansPolygon = new DPolygon();
44
44
  var pseudoMercatorPolygon = new DPolygon();
@@ -136,6 +136,12 @@ var DPoint = (function () {
136
136
  }
137
137
  return p;
138
138
  };
139
+ DPoint.prototype.toDegreesMinutesSeconds = function () {
140
+ return {
141
+ x: toDegreesMinutesSeconds(this.x),
142
+ y: toDegreesMinutesSeconds(this.y)
143
+ };
144
+ };
139
145
  DPoint.prototype.getTileFromCoords = function (zoom) {
140
146
  if (zoom === void 0) { zoom = this.z; }
141
147
  checkFunction('getTileFromCoords')
@@ -730,6 +736,11 @@ var DPoint = (function () {
730
736
  this.y = Math.max(this.y, p.y);
731
737
  return this;
732
738
  };
739
+ DPoint.prototype.setIfMoreThan = function (p) {
740
+ this.x = Math.min(this.x, p.x);
741
+ this.y = Math.min(this.y, p.y);
742
+ return this;
743
+ };
733
744
  DPoint.prototype.minus = function () {
734
745
  return this.scale(-1);
735
746
  };
package/dist/esm/index.js CHANGED
@@ -7,4 +7,4 @@ export * from './FastSearch';
7
7
  export * from './TraceMatrix';
8
8
  export * from './DPolygonLoop';
9
9
  export * from './DPlane';
10
- export { gaussianElimination, createCanvas, createArray, createMatrix, isDefAndNotNull, cartesianProduct, getCombinations, DGeo } from './utils';
10
+ export { gaussianElimination, createCanvas, createArray, createMatrix, isDefAndNotNull, cartesianProduct, getCombinations, parseDegreesMinutesSeconds, DGeo } from './utils';
package/dist/esm/utils.js CHANGED
@@ -23,6 +23,17 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
23
23
  }
24
24
  return to.concat(ar || Array.prototype.slice.call(from));
25
25
  };
26
+ var __values = (this && this.__values) || function(o) {
27
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
28
+ if (m) return m.call(o);
29
+ if (o && typeof o.length === "number") return {
30
+ next: function () {
31
+ if (o && i >= o.length) o = void 0;
32
+ return { value: o && o[i++], done: !o };
33
+ }
34
+ };
35
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
36
+ };
26
37
  import { DPoint } from './DPoint';
27
38
  export var DGeo = {
28
39
  DEBUG: false,
@@ -210,3 +221,44 @@ export var getCombinations = function (arr) {
210
221
  return ans;
211
222
  };
212
223
  export var div = function (a, b) { return Math.floor(a / b); };
224
+ export var toDegreesMinutesSeconds = function (v) {
225
+ var degrees = Math.floor(v);
226
+ var t = (v % 1) * 60;
227
+ var minutes = Math.floor(t);
228
+ var t2 = (t % 1) * 60;
229
+ var seconds = t2.toFixed(2);
230
+ return "".concat(degrees, "\u00B0 ").concat(minutes, "' ").concat(seconds, "\"");
231
+ };
232
+ export var parseDegreesMinutesSeconds = function (i) {
233
+ var e_1, _a;
234
+ var _b, _c, _d, _e, _f, _g, _h;
235
+ var parts = i.matchAll(/(?<value>-?\d+(?<tail>\.\d{1,})?)(?<type>°|'|")/gmiu);
236
+ var d = 0;
237
+ var m = 0;
238
+ var s = 0;
239
+ try {
240
+ for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
241
+ var part = parts_1_1.value;
242
+ switch ((_b = part === null || part === void 0 ? void 0 : part.groups) === null || _b === void 0 ? void 0 : _b.type) {
243
+ case '°':
244
+ d = Number((_d = (_c = part === null || part === void 0 ? void 0 : part.groups) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : '0');
245
+ break;
246
+ case '\'':
247
+ m = Number((_f = (_e = part === null || part === void 0 ? void 0 : part.groups) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : '0');
248
+ break;
249
+ case '"':
250
+ s = Number((_h = (_g = part === null || part === void 0 ? void 0 : part.groups) === null || _g === void 0 ? void 0 : _g.value) !== null && _h !== void 0 ? _h : '0');
251
+ break;
252
+ default:
253
+ }
254
+ }
255
+ }
256
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
257
+ finally {
258
+ try {
259
+ if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
260
+ }
261
+ finally { if (e_1) throw e_1.error; }
262
+ }
263
+ return d + m / 60 + s / 3600;
264
+ };