@math.gl/crs 4.2.0-alpha.5 → 4.2.0-alpha.6
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/README.md +22 -0
- package/dist/index.cjs +70 -2
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/proj-string.js +8 -1
- package/dist/proj-string.js.map +1 -1
- package/dist/spatial-reference.d.ts +104 -0
- package/dist/spatial-reference.d.ts.map +1 -0
- package/dist/spatial-reference.js +86 -0
- package/dist/spatial-reference.js.map +1 -0
- package/dist/wkt-crs.js +4 -1
- package/dist/wkt-crs.js.map +1 -1
- package/package.json +4 -3
- package/src/index.ts +15 -0
- package/src/proj-string.ts +8 -1
- package/src/spatial-reference.ts +221 -0
- package/src/wkt-crs.ts +4 -1
package/README.md
CHANGED
|
@@ -31,6 +31,26 @@ const wkt = parseWKTCRS('GEOGCRS["WGS 84",ID["EPSG",4326]]');
|
|
|
31
31
|
const proj = parsePROJString('+proj=longlat +datum=WGS84 +no_defs');
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
+
`SpatialReference` adds format-neutral discovery state around those definitions. It distinguishes
|
|
35
|
+
explicit definitions, specification defaults, explicitly unknown CRS values, and absent metadata;
|
|
36
|
+
it can also retain alternate representations, coordinate epoch, coordinate frame, stored
|
|
37
|
+
component order, and units.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import {createSpatialReference} from '@math.gl/crs';
|
|
41
|
+
|
|
42
|
+
const spatialReference = createSpatialReference({
|
|
43
|
+
crs: {
|
|
44
|
+
state: 'explicit',
|
|
45
|
+
definition: 'EPSG:4326',
|
|
46
|
+
representation: 'identifier',
|
|
47
|
+
provenance: 'metadata'
|
|
48
|
+
},
|
|
49
|
+
coordinateFrame: 'geographic',
|
|
50
|
+
coordinateOrder: ['x', 'y']
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
34
54
|
The official PROJJSON v0.7 JSON Schema is vendored unchanged under its MIT license and exported as
|
|
35
55
|
`@math.gl/crs/projjson.schema.json`. It is the source of truth for the checked-in generated
|
|
36
56
|
TypeScript declarations. This package has no runtime dependencies. Its runtime APIs parse, encode,
|
|
@@ -38,3 +58,5 @@ and validate serialization syntax only: they do not perform registry lookup, sem
|
|
|
38
58
|
coordinate transformation, or general conversion between WKT, PROJ, and PROJJSON.
|
|
39
59
|
|
|
40
60
|
See the [PROJJSON specification](https://proj.org/en/stable/specifications/projjson.html).
|
|
61
|
+
See the math.gl [Coordinate Reference Systems guide](https://math.gl/docs/developer-guide/geospatial/coordinate-reference-systems)
|
|
62
|
+
for representations, epochs, axis order, vertical CRS, and transformation guidance.
|
package/dist/index.cjs
CHANGED
|
@@ -24,8 +24,10 @@ __export(index_exports, {
|
|
|
24
24
|
PROJStringSyntaxError: () => PROJStringSyntaxError,
|
|
25
25
|
WKTCRSSyntaxError: () => WKTCRSSyntaxError,
|
|
26
26
|
WKTCRSValidationError: () => WKTCRSValidationError,
|
|
27
|
+
createSpatialReference: () => createSpatialReference,
|
|
27
28
|
encodePROJString: () => encodePROJString,
|
|
28
29
|
encodeWKTCRS: () => encodeWKTCRS,
|
|
30
|
+
inferCRSRepresentation: () => inferCRSRepresentation,
|
|
29
31
|
parsePROJString: () => parsePROJString,
|
|
30
32
|
parseWKTCRS: () => parseWKTCRS,
|
|
31
33
|
validateWKTCRS: () => validateWKTCRS
|
|
@@ -36,6 +38,62 @@ module.exports = __toCommonJS(index_exports);
|
|
|
36
38
|
var PROJJSON_SCHEMA_VERSION = "0.7";
|
|
37
39
|
var PROJJSON_SCHEMA_URL = "https://proj.org/schemas/v0.7/projjson.schema.json";
|
|
38
40
|
|
|
41
|
+
// dist/spatial-reference.js
|
|
42
|
+
function createSpatialReference(options = {}) {
|
|
43
|
+
if (options.coordinateEpoch !== void 0 && !Number.isFinite(options.coordinateEpoch)) {
|
|
44
|
+
throw new Error("Spatial reference coordinate epoch must be a finite decimal year");
|
|
45
|
+
}
|
|
46
|
+
return Object.freeze({
|
|
47
|
+
crs: freezeCRSReference(options.crs || { state: "absent", provenance: "unknown" }),
|
|
48
|
+
vertical: options.vertical ? freezeCRSReference(options.vertical) : void 0,
|
|
49
|
+
coordinateEpoch: options.coordinateEpoch,
|
|
50
|
+
coordinateFrame: options.coordinateFrame || "unknown",
|
|
51
|
+
coordinateOrder: Object.freeze([...options.coordinateOrder || []]),
|
|
52
|
+
units: options.units ? Object.freeze([...options.units]) : void 0
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function inferCRSRepresentation(definition) {
|
|
56
|
+
if (typeof definition === "object") {
|
|
57
|
+
return "projjson";
|
|
58
|
+
}
|
|
59
|
+
const text = definition.trim();
|
|
60
|
+
if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
|
|
61
|
+
return "wkt";
|
|
62
|
+
}
|
|
63
|
+
if (/(?:^|\s)\+?proj=/i.test(text)) {
|
|
64
|
+
return "proj-string";
|
|
65
|
+
}
|
|
66
|
+
if (/^[A-Z][A-Z0-9._-]*(?::[A-Z0-9._-]+)+$/i.test(text) || /^urn:ogc:def:crs:/i.test(text) || /^https?:\/\//i.test(text) || /^[A-Z][A-Z0-9._-]*$/i.test(text)) {
|
|
67
|
+
return "identifier";
|
|
68
|
+
}
|
|
69
|
+
return "opaque";
|
|
70
|
+
}
|
|
71
|
+
function freezeCRSReference(reference) {
|
|
72
|
+
if (reference.state === "explicit" || reference.state === "default") {
|
|
73
|
+
return Object.freeze({
|
|
74
|
+
...reference,
|
|
75
|
+
definition: cloneAndFreezeDefinition(reference.definition),
|
|
76
|
+
alternatives: reference.alternatives ? Object.freeze(reference.alternatives.map((alternative) => Object.freeze({
|
|
77
|
+
...alternative,
|
|
78
|
+
definition: cloneAndFreezeDefinition(alternative.definition)
|
|
79
|
+
}))) : void 0
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return Object.freeze({ ...reference });
|
|
83
|
+
}
|
|
84
|
+
function cloneAndFreezeDefinition(definition) {
|
|
85
|
+
return typeof definition === "string" ? definition : cloneAndFreezeJsonValue(definition);
|
|
86
|
+
}
|
|
87
|
+
function cloneAndFreezeJsonValue(value) {
|
|
88
|
+
if (Array.isArray(value)) {
|
|
89
|
+
return Object.freeze(value.map((item) => cloneAndFreezeJsonValue(item)));
|
|
90
|
+
}
|
|
91
|
+
if (value && typeof value === "object") {
|
|
92
|
+
return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneAndFreezeJsonValue(item)])));
|
|
93
|
+
}
|
|
94
|
+
return value;
|
|
95
|
+
}
|
|
96
|
+
|
|
39
97
|
// dist/wkt-crs.js
|
|
40
98
|
var WKTCRSSyntaxError = class extends SyntaxError {
|
|
41
99
|
/** Create a WKT syntax error at a source location. */
|
|
@@ -368,13 +426,16 @@ var WKTParser = class {
|
|
|
368
426
|
return this.parseString();
|
|
369
427
|
}
|
|
370
428
|
const start = this.offset;
|
|
371
|
-
while (this.offset < this.source.length && !/[\s,\[\]()]/.test(this.source[this.offset])) {
|
|
429
|
+
while (this.offset < this.source.length && !/[\s,\[\]()"]/.test(this.source[this.offset])) {
|
|
372
430
|
this.offset++;
|
|
373
431
|
}
|
|
374
432
|
if (start === this.offset) {
|
|
375
433
|
this.fail("Expected a WKT value");
|
|
376
434
|
}
|
|
377
435
|
const value = this.source.slice(start, this.offset);
|
|
436
|
+
if (this.source[this.offset] === '"') {
|
|
437
|
+
this.fail("Unexpected quote in unquoted WKT value");
|
|
438
|
+
}
|
|
378
439
|
this.skipWhitespace();
|
|
379
440
|
if (this.source[this.offset] === "[" || this.source[this.offset] === "(") {
|
|
380
441
|
if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(value)) {
|
|
@@ -672,7 +733,11 @@ function validateRawParameterValue(rawValue) {
|
|
|
672
733
|
}
|
|
673
734
|
return;
|
|
674
735
|
}
|
|
736
|
+
if (rawValue.length < 2) {
|
|
737
|
+
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
738
|
+
}
|
|
675
739
|
let escaped = false;
|
|
740
|
+
let closingQuoteFound = false;
|
|
676
741
|
for (let index = 1; index < rawValue.length; index++) {
|
|
677
742
|
const character = rawValue[index];
|
|
678
743
|
if (escaped) {
|
|
@@ -686,8 +751,11 @@ function validateRawParameterValue(rawValue) {
|
|
|
686
751
|
if (character === first && index !== rawValue.length - 1) {
|
|
687
752
|
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
688
753
|
}
|
|
754
|
+
if (character === first) {
|
|
755
|
+
closingQuoteFound = true;
|
|
756
|
+
}
|
|
689
757
|
}
|
|
690
|
-
if (escaped || rawValue[rawValue.length - 1] !== first) {
|
|
758
|
+
if (escaped || !closingQuoteFound || rawValue[rawValue.length - 1] !== first) {
|
|
691
759
|
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
692
760
|
}
|
|
693
761
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/index.ts", "../src/projjson-schema-constants.ts", "../src/wkt-crs.ts", "../src/proj-string.ts"],
|
|
4
|
-
"mappings": "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",
|
|
3
|
+
"sources": ["../src/index.ts", "../src/projjson-schema-constants.ts", "../src/spatial-reference.ts", "../src/wkt-crs.ts", "../src/proj-string.ts"],
|
|
4
|
+
"mappings": "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;EACA;CACD;AAED,IAAM,0BAA0B,oBAAI,IAAI;EACtC,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;CACD;AAID,IAAM,gBAAgB,oBAAI,IAAI;EAC5B,GAAG;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,8BAA8B,oBAAI,IAAI;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AAED,IAAM,qBAAqB,IAAI,IAC7B,CAAC,GAAG,aAAa,EAAE,OAAO,aAAW,CAAC,4BAA4B,IAAI,OAAO,CAAC,CAAC;AAGjF,IAAM,wBAAoE;EACxE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAGf,IAAM,mBAA+D;EACnE,MAAM;EACN,MAAM;EACN,MAAM;EACN,aAAa;EACb,aAAa;;AAIT,SAAU,YAAY,MAAc,SAA4B;AACpE,QAAM,SAAS,IAAI,UAAU,IAAI;AACjC,QAAM,MAAiB,EAAC,MAAM,WAAW,MAAM,OAAO,MAAK,EAAE;AAE7D,MAAI,mCAAS,QAAQ;AACnB,UAAM,SAAS,eAAe,KAAK;MACjC,SAAS,QAAQ;MACjB,iBAAiB;KAClB;AACD,QAAI,OAAO,SAAS,GAAG;AACrB,YAAM,IAAI,sBAAsB,MAAM;IACxC;EACF;AAEA,SAAO;AACT;AAGM,SAAU,aAAa,KAAgB,SAA6B;AAnU1E;AAoUE,MAAI,CAAC,OAAO,IAAI,SAAS,eAAa,SAAI,SA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",
|
|
5
5
|
"names": ["getSourceLocation"]
|
|
6
6
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { PROJJSON_SCHEMA_URL, PROJJSON_SCHEMA_VERSION } from "./projjson-schema-constants.js";
|
|
2
2
|
export type { CRSDefinition, CRSIdentifier, CRSStringDefinition, PROJJSONCRS, PROJJSONCRSByType, PROJJSONCRSType, PROJStringDefinition, WKTCRSDefinition } from "./crs.js";
|
|
3
|
+
export type { CreateSpatialReferenceOptions, CRSReference, KnownCRSReference, ReadonlyCRSDefinition, ReadonlyPROJJSONCRS, SpatialReference, SpatialReferenceAlternative, SpatialReferenceCoordinateFrame, SpatialReferenceProvenance, SpatialReferenceRepresentation, SpatialReferenceState, UnresolvedCRSReference } from "./spatial-reference.js";
|
|
4
|
+
export { createSpatialReference, inferCRSRepresentation } from "./spatial-reference.js";
|
|
3
5
|
export type { EncodeWKTCRSOptions, ParseWKTCRSOptions, ValidateWKTCRSOptions, WKTCRSAst, WKTCRSDelimiter, WKTCRSEnumeration, WKTCRSNode, WKTCRSNumber, WKTCRSProfile, WKTCRSString, WKTCRSValidationIssue, WKTCRSValidationIssueCode, WKTCRSValue } from "./wkt-crs.js";
|
|
4
6
|
export { encodeWKTCRS, parseWKTCRS, validateWKTCRS, WKTCRSSyntaxError, WKTCRSValidationError } from "./wkt-crs.js";
|
|
5
7
|
export type { EncodePROJStringOptions, PROJParameter, PROJStringAst } from "./proj-string.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AACrC,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,iBAAc;AACf,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACZ,qBAAkB;AACnB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AACnB,YAAY,EAAC,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAC,yBAAsB;AACzF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AACrC,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EACjB,iBAAc;AACf,YAAY,EACV,6BAA6B,EAC7B,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACvB,+BAA4B;AAC7B,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AACnF,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,WAAW,EACZ,qBAAkB;AACnB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AACnB,YAAY,EAAC,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAC,yBAAsB;AACzF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
export { PROJJSON_SCHEMA_URL, PROJJSON_SCHEMA_VERSION } from "./projjson-schema-constants.js";
|
|
5
|
+
export { createSpatialReference, inferCRSRepresentation } from "./spatial-reference.js";
|
|
5
6
|
export { encodeWKTCRS, parseWKTCRS, validateWKTCRS, WKTCRSSyntaxError, WKTCRSValidationError } from "./wkt-crs.js";
|
|
6
7
|
export { encodePROJString, parsePROJString, PROJStringSyntaxError } from "./proj-string.js";
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACxB,uCAAoC;AAyBrC,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,+BAA4B;AAgBnF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,qBAAkB;AAEnB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACtB,yBAAsB"}
|
package/dist/proj-string.js
CHANGED
|
@@ -61,7 +61,11 @@ function validateRawParameterValue(rawValue) {
|
|
|
61
61
|
}
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
|
+
if (rawValue.length < 2) {
|
|
65
|
+
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
66
|
+
}
|
|
64
67
|
let escaped = false;
|
|
68
|
+
let closingQuoteFound = false;
|
|
65
69
|
for (let index = 1; index < rawValue.length; index++) {
|
|
66
70
|
const character = rawValue[index];
|
|
67
71
|
if (escaped) {
|
|
@@ -75,8 +79,11 @@ function validateRawParameterValue(rawValue) {
|
|
|
75
79
|
if (character === first && index !== rawValue.length - 1) {
|
|
76
80
|
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
77
81
|
}
|
|
82
|
+
if (character === first) {
|
|
83
|
+
closingQuoteFound = true;
|
|
84
|
+
}
|
|
78
85
|
}
|
|
79
|
-
if (escaped || rawValue[rawValue.length - 1] !== first) {
|
|
86
|
+
if (escaped || !closingQuoteFound || rawValue[rawValue.length - 1] !== first) {
|
|
80
87
|
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
81
88
|
}
|
|
82
89
|
}
|
package/dist/proj-string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proj-string.js","sourceRoot":"","sources":["../src/proj-string.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"proj-string.js","sourceRoot":"","sources":["../src/proj-string.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type { CRSStringDefinition, PROJJSONCRS } from "./crs.js";
|
|
2
|
+
/** Recursively readonly view of a JSON-compatible type. */
|
|
3
|
+
type DeepReadonly<T> = T extends readonly (infer Item)[] ? readonly DeepReadonly<Item>[] : T extends object ? {
|
|
4
|
+
readonly [Key in keyof T]: DeepReadonly<T[Key]>;
|
|
5
|
+
} : T;
|
|
6
|
+
/** A deeply readonly PROJJSON CRS object. */
|
|
7
|
+
export type ReadonlyPROJJSONCRS<T extends PROJJSONCRS = PROJJSONCRS> = DeepReadonly<T>;
|
|
8
|
+
/** A serialized CRS definition or deeply readonly PROJJSON CRS object. */
|
|
9
|
+
export type ReadonlyCRSDefinition<T extends PROJJSONCRS = PROJJSONCRS> = CRSStringDefinition | ReadonlyPROJJSONCRS<T>;
|
|
10
|
+
/** Serialization or naming form in which a CRS definition was supplied. */
|
|
11
|
+
export type SpatialReferenceRepresentation = 'identifier' | 'wkt' | 'proj-string' | 'projjson' | 'opaque';
|
|
12
|
+
/** Whether a CRS was declared, supplied by a specification default, unknown, or absent. */
|
|
13
|
+
export type SpatialReferenceState = 'explicit' | 'default' | 'unknown' | 'absent';
|
|
14
|
+
/** Origin of a normalized CRS reference. */
|
|
15
|
+
export type SpatialReferenceProvenance = 'metadata' | 'format-default' | 'caller-override' | 'legacy-assumption' | 'unknown';
|
|
16
|
+
/** Broad coordinate frame used by a spatial dataset. */
|
|
17
|
+
export type SpatialReferenceCoordinateFrame = 'geographic' | 'geocentric' | 'projected' | 'local' | 'unknown';
|
|
18
|
+
/** One alternate serialization of the same CRS retained by the source. */
|
|
19
|
+
export type SpatialReferenceAlternative = Readonly<{
|
|
20
|
+
/** Original alternate CRS definition. */
|
|
21
|
+
definition: ReadonlyCRSDefinition;
|
|
22
|
+
/** Representation used by the alternate definition. */
|
|
23
|
+
representation: SpatialReferenceRepresentation;
|
|
24
|
+
}>;
|
|
25
|
+
/** A known CRS and its source representation. */
|
|
26
|
+
export type KnownCRSReference = Readonly<{
|
|
27
|
+
/** A known definition is either explicitly declared or established by a specification default. */
|
|
28
|
+
state: 'explicit' | 'default';
|
|
29
|
+
/** Preferred definition selected without discarding alternate source representations. */
|
|
30
|
+
definition: ReadonlyCRSDefinition;
|
|
31
|
+
/** Representation used by the preferred definition. */
|
|
32
|
+
representation: SpatialReferenceRepresentation;
|
|
33
|
+
/** How the preferred definition was established. */
|
|
34
|
+
provenance: SpatialReferenceProvenance;
|
|
35
|
+
/** Additional equivalent serializations carried by the source metadata. */
|
|
36
|
+
alternatives?: readonly SpatialReferenceAlternative[];
|
|
37
|
+
}>;
|
|
38
|
+
/** An unknown or absent CRS that must not be replaced by an implicit WGS84 assumption. */
|
|
39
|
+
export type UnresolvedCRSReference = Readonly<{
|
|
40
|
+
/** `unknown` preserves an explicit unknown value; `absent` means no value was supplied. */
|
|
41
|
+
state: 'unknown' | 'absent';
|
|
42
|
+
/** How the unresolved state was established. */
|
|
43
|
+
provenance: SpatialReferenceProvenance;
|
|
44
|
+
}>;
|
|
45
|
+
/** Normalized CRS state, discriminated without comparing definition strings. */
|
|
46
|
+
export type CRSReference = KnownCRSReference | UnresolvedCRSReference;
|
|
47
|
+
/**
|
|
48
|
+
* Format-neutral spatial-reference metadata.
|
|
49
|
+
*
|
|
50
|
+
* The descriptor reports how source coordinates are defined. It does not claim that coordinates,
|
|
51
|
+
* bounds, or heights have been transformed. Format-specific metadata remains responsible for
|
|
52
|
+
* lossless preservation of fields that cannot be represented here.
|
|
53
|
+
*/
|
|
54
|
+
export type SpatialReference = Readonly<{
|
|
55
|
+
/** Primary horizontal or compound CRS state. */
|
|
56
|
+
crs: CRSReference;
|
|
57
|
+
/** Independently declared vertical CRS state. */
|
|
58
|
+
vertical?: CRSReference;
|
|
59
|
+
/** Coordinate epoch associated with source coordinates, expressed as a decimal year. */
|
|
60
|
+
coordinateEpoch?: number;
|
|
61
|
+
/** Broad frame in which source coordinates are stored. */
|
|
62
|
+
coordinateFrame: SpatialReferenceCoordinateFrame;
|
|
63
|
+
/** Component order used by stored arrays, independent of authoritative CRS axis order. */
|
|
64
|
+
coordinateOrder: readonly string[];
|
|
65
|
+
/** Per-component units when declared by the source. */
|
|
66
|
+
units?: readonly string[];
|
|
67
|
+
}>;
|
|
68
|
+
/** Values accepted by {@link createSpatialReference}. */
|
|
69
|
+
export type CreateSpatialReferenceOptions = Readonly<{
|
|
70
|
+
/** Primary horizontal or compound CRS state. Defaults to absent. */
|
|
71
|
+
crs?: CRSReference;
|
|
72
|
+
/** Independently declared vertical CRS state. */
|
|
73
|
+
vertical?: CRSReference;
|
|
74
|
+
/** Coordinate epoch associated with source coordinates. */
|
|
75
|
+
coordinateEpoch?: number;
|
|
76
|
+
/** Broad stored coordinate frame. Defaults to unknown. */
|
|
77
|
+
coordinateFrame?: SpatialReferenceCoordinateFrame;
|
|
78
|
+
/** Stored component order. Defaults to an empty, unknown order. */
|
|
79
|
+
coordinateOrder?: readonly string[];
|
|
80
|
+
/** Per-component units. */
|
|
81
|
+
units?: readonly string[];
|
|
82
|
+
}>;
|
|
83
|
+
/**
|
|
84
|
+
* Creates an immutable format-neutral spatial-reference descriptor.
|
|
85
|
+
*
|
|
86
|
+
* PROJJSON definitions and descriptor-owned arrays are cloned and recursively frozen. The
|
|
87
|
+
* function does not parse definitions, resolve identifiers, or determine semantic equivalence.
|
|
88
|
+
*
|
|
89
|
+
* @param options - Spatial-reference discovery results to normalize.
|
|
90
|
+
* @returns A readonly descriptor with cloned definitions and arrays.
|
|
91
|
+
*/
|
|
92
|
+
export declare function createSpatialReference(options?: CreateSpatialReferenceOptions): SpatialReference;
|
|
93
|
+
/**
|
|
94
|
+
* Infers a CRS representation from runtime syntax without resolving its meaning.
|
|
95
|
+
*
|
|
96
|
+
* Format adapters should pass an explicit representation when their metadata identifies one.
|
|
97
|
+
* Unrecognized free-form strings are classified as `opaque`, not assumed to be identifiers.
|
|
98
|
+
*
|
|
99
|
+
* @param definition - CRS definition to classify syntactically.
|
|
100
|
+
* @returns The apparent serialized representation.
|
|
101
|
+
*/
|
|
102
|
+
export declare function inferCRSRepresentation(definition: ReadonlyCRSDefinition): SpatialReferenceRepresentation;
|
|
103
|
+
export {};
|
|
104
|
+
//# sourceMappingURL=spatial-reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spatial-reference.d.ts","sourceRoot":"","sources":["../src/spatial-reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
/**
|
|
5
|
+
* Creates an immutable format-neutral spatial-reference descriptor.
|
|
6
|
+
*
|
|
7
|
+
* PROJJSON definitions and descriptor-owned arrays are cloned and recursively frozen. The
|
|
8
|
+
* function does not parse definitions, resolve identifiers, or determine semantic equivalence.
|
|
9
|
+
*
|
|
10
|
+
* @param options - Spatial-reference discovery results to normalize.
|
|
11
|
+
* @returns A readonly descriptor with cloned definitions and arrays.
|
|
12
|
+
*/
|
|
13
|
+
export function createSpatialReference(options = {}) {
|
|
14
|
+
if (options.coordinateEpoch !== undefined && !Number.isFinite(options.coordinateEpoch)) {
|
|
15
|
+
throw new Error('Spatial reference coordinate epoch must be a finite decimal year');
|
|
16
|
+
}
|
|
17
|
+
return Object.freeze({
|
|
18
|
+
crs: freezeCRSReference(options.crs || { state: 'absent', provenance: 'unknown' }),
|
|
19
|
+
vertical: options.vertical ? freezeCRSReference(options.vertical) : undefined,
|
|
20
|
+
coordinateEpoch: options.coordinateEpoch,
|
|
21
|
+
coordinateFrame: options.coordinateFrame || 'unknown',
|
|
22
|
+
coordinateOrder: Object.freeze([...(options.coordinateOrder || [])]),
|
|
23
|
+
units: options.units ? Object.freeze([...options.units]) : undefined
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Infers a CRS representation from runtime syntax without resolving its meaning.
|
|
28
|
+
*
|
|
29
|
+
* Format adapters should pass an explicit representation when their metadata identifies one.
|
|
30
|
+
* Unrecognized free-form strings are classified as `opaque`, not assumed to be identifiers.
|
|
31
|
+
*
|
|
32
|
+
* @param definition - CRS definition to classify syntactically.
|
|
33
|
+
* @returns The apparent serialized representation.
|
|
34
|
+
*/
|
|
35
|
+
export function inferCRSRepresentation(definition) {
|
|
36
|
+
if (typeof definition === 'object') {
|
|
37
|
+
return 'projjson';
|
|
38
|
+
}
|
|
39
|
+
const text = definition.trim();
|
|
40
|
+
if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
|
|
41
|
+
return 'wkt';
|
|
42
|
+
}
|
|
43
|
+
if (/(?:^|\s)\+?proj=/i.test(text)) {
|
|
44
|
+
return 'proj-string';
|
|
45
|
+
}
|
|
46
|
+
if (/^[A-Z][A-Z0-9._-]*(?::[A-Z0-9._-]+)+$/i.test(text) ||
|
|
47
|
+
/^urn:ogc:def:crs:/i.test(text) ||
|
|
48
|
+
/^https?:\/\//i.test(text) ||
|
|
49
|
+
/^[A-Z][A-Z0-9._-]*$/i.test(text)) {
|
|
50
|
+
return 'identifier';
|
|
51
|
+
}
|
|
52
|
+
return 'opaque';
|
|
53
|
+
}
|
|
54
|
+
/** Clone and freeze one CRS reference without mutating caller-owned objects. */
|
|
55
|
+
function freezeCRSReference(reference) {
|
|
56
|
+
if (reference.state === 'explicit' || reference.state === 'default') {
|
|
57
|
+
return Object.freeze({
|
|
58
|
+
...reference,
|
|
59
|
+
definition: cloneAndFreezeDefinition(reference.definition),
|
|
60
|
+
alternatives: reference.alternatives
|
|
61
|
+
? Object.freeze(reference.alternatives.map(alternative => Object.freeze({
|
|
62
|
+
...alternative,
|
|
63
|
+
definition: cloneAndFreezeDefinition(alternative.definition)
|
|
64
|
+
})))
|
|
65
|
+
: undefined
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return Object.freeze({ ...reference });
|
|
69
|
+
}
|
|
70
|
+
/** Clone and recursively freeze a JSON CRS object while leaving string definitions unchanged. */
|
|
71
|
+
function cloneAndFreezeDefinition(definition) {
|
|
72
|
+
return typeof definition === 'string'
|
|
73
|
+
? definition
|
|
74
|
+
: cloneAndFreezeJsonValue(definition);
|
|
75
|
+
}
|
|
76
|
+
/** Clone and freeze the JSON-compatible values used by PROJJSON definitions. */
|
|
77
|
+
function cloneAndFreezeJsonValue(value) {
|
|
78
|
+
if (Array.isArray(value)) {
|
|
79
|
+
return Object.freeze(value.map(item => cloneAndFreezeJsonValue(item)));
|
|
80
|
+
}
|
|
81
|
+
if (value && typeof value === 'object') {
|
|
82
|
+
return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneAndFreezeJsonValue(item)])));
|
|
83
|
+
}
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=spatial-reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spatial-reference.js","sourceRoot":"","sources":["../src/spatial-reference.ts"],"names":[],"mappings":"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"}
|
package/dist/wkt-crs.js
CHANGED
|
@@ -336,13 +336,16 @@ class WKTParser {
|
|
|
336
336
|
return this.parseString();
|
|
337
337
|
}
|
|
338
338
|
const start = this.offset;
|
|
339
|
-
while (this.offset < this.source.length && !/[\s,\[\]()]/.test(this.source[this.offset])) {
|
|
339
|
+
while (this.offset < this.source.length && !/[\s,\[\]()"]/.test(this.source[this.offset])) {
|
|
340
340
|
this.offset++;
|
|
341
341
|
}
|
|
342
342
|
if (start === this.offset) {
|
|
343
343
|
this.fail('Expected a WKT value');
|
|
344
344
|
}
|
|
345
345
|
const value = this.source.slice(start, this.offset);
|
|
346
|
+
if (this.source[this.offset] === '"') {
|
|
347
|
+
this.fail('Unexpected quote in unquoted WKT value');
|
|
348
|
+
}
|
|
346
349
|
this.skipWhitespace();
|
|
347
350
|
if (this.source[this.offset] === '[' || this.source[this.offset] === '(') {
|
|
348
351
|
if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(value)) {
|
package/dist/wkt-crs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-crs.js","sourceRoot":"","sources":["../src/wkt-crs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wkt-crs.js","sourceRoot":"","sources":["../src/wkt-crs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@math.gl/crs",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "Coordinate reference system types, syntax codecs, and metadata descriptors for math.gl",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
|
-
"version": "4.2.0-alpha.
|
|
9
|
+
"version": "4.2.0-alpha.6",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"geospatial",
|
|
12
12
|
"coordinate reference system",
|
|
13
13
|
"CRS",
|
|
14
14
|
"WKT",
|
|
15
|
+
"PROJ",
|
|
15
16
|
"PROJJSON"
|
|
16
17
|
],
|
|
17
18
|
"repository": {
|
|
@@ -36,5 +37,5 @@
|
|
|
36
37
|
"README.md"
|
|
37
38
|
],
|
|
38
39
|
"sideEffects": false,
|
|
39
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "b1d477a0afa7033ce6ac837bb4c811b425e99566"
|
|
40
41
|
}
|
package/src/index.ts
CHANGED
|
@@ -16,6 +16,21 @@ export type {
|
|
|
16
16
|
PROJStringDefinition,
|
|
17
17
|
WKTCRSDefinition
|
|
18
18
|
} from './crs';
|
|
19
|
+
export type {
|
|
20
|
+
CreateSpatialReferenceOptions,
|
|
21
|
+
CRSReference,
|
|
22
|
+
KnownCRSReference,
|
|
23
|
+
ReadonlyCRSDefinition,
|
|
24
|
+
ReadonlyPROJJSONCRS,
|
|
25
|
+
SpatialReference,
|
|
26
|
+
SpatialReferenceAlternative,
|
|
27
|
+
SpatialReferenceCoordinateFrame,
|
|
28
|
+
SpatialReferenceProvenance,
|
|
29
|
+
SpatialReferenceRepresentation,
|
|
30
|
+
SpatialReferenceState,
|
|
31
|
+
UnresolvedCRSReference
|
|
32
|
+
} from './spatial-reference';
|
|
33
|
+
export {createSpatialReference, inferCRSRepresentation} from './spatial-reference';
|
|
19
34
|
export type {
|
|
20
35
|
EncodeWKTCRSOptions,
|
|
21
36
|
ParseWKTCRSOptions,
|
package/src/proj-string.ts
CHANGED
|
@@ -92,7 +92,11 @@ function validateRawParameterValue(rawValue: string): void {
|
|
|
92
92
|
}
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
|
+
if (rawValue.length < 2) {
|
|
96
|
+
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
97
|
+
}
|
|
95
98
|
let escaped = false;
|
|
99
|
+
let closingQuoteFound = false;
|
|
96
100
|
for (let index = 1; index < rawValue.length; index++) {
|
|
97
101
|
const character = rawValue[index];
|
|
98
102
|
if (escaped) {
|
|
@@ -106,8 +110,11 @@ function validateRawParameterValue(rawValue: string): void {
|
|
|
106
110
|
if (character === first && index !== rawValue.length - 1) {
|
|
107
111
|
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
108
112
|
}
|
|
113
|
+
if (character === first) {
|
|
114
|
+
closingQuoteFound = true;
|
|
115
|
+
}
|
|
109
116
|
}
|
|
110
|
-
if (escaped || rawValue[rawValue.length - 1] !== first) {
|
|
117
|
+
if (escaped || !closingQuoteFound || rawValue[rawValue.length - 1] !== first) {
|
|
111
118
|
throw new TypeError(`Invalid PROJ raw parameter value: ${rawValue}`);
|
|
112
119
|
}
|
|
113
120
|
}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
// math.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import type {CRSStringDefinition, PROJJSONCRS} from './crs';
|
|
6
|
+
|
|
7
|
+
/** Recursively readonly view of a JSON-compatible type. */
|
|
8
|
+
type DeepReadonly<T> = T extends readonly (infer Item)[]
|
|
9
|
+
? readonly DeepReadonly<Item>[]
|
|
10
|
+
: T extends object
|
|
11
|
+
? {readonly [Key in keyof T]: DeepReadonly<T[Key]>}
|
|
12
|
+
: T;
|
|
13
|
+
|
|
14
|
+
/** A deeply readonly PROJJSON CRS object. */
|
|
15
|
+
export type ReadonlyPROJJSONCRS<T extends PROJJSONCRS = PROJJSONCRS> = DeepReadonly<T>;
|
|
16
|
+
|
|
17
|
+
/** A serialized CRS definition or deeply readonly PROJJSON CRS object. */
|
|
18
|
+
export type ReadonlyCRSDefinition<T extends PROJJSONCRS = PROJJSONCRS> =
|
|
19
|
+
| CRSStringDefinition
|
|
20
|
+
| ReadonlyPROJJSONCRS<T>;
|
|
21
|
+
|
|
22
|
+
/** Serialization or naming form in which a CRS definition was supplied. */
|
|
23
|
+
export type SpatialReferenceRepresentation =
|
|
24
|
+
| 'identifier'
|
|
25
|
+
| 'wkt'
|
|
26
|
+
| 'proj-string'
|
|
27
|
+
| 'projjson'
|
|
28
|
+
| 'opaque';
|
|
29
|
+
|
|
30
|
+
/** Whether a CRS was declared, supplied by a specification default, unknown, or absent. */
|
|
31
|
+
export type SpatialReferenceState = 'explicit' | 'default' | 'unknown' | 'absent';
|
|
32
|
+
|
|
33
|
+
/** Origin of a normalized CRS reference. */
|
|
34
|
+
export type SpatialReferenceProvenance =
|
|
35
|
+
| 'metadata'
|
|
36
|
+
| 'format-default'
|
|
37
|
+
| 'caller-override'
|
|
38
|
+
| 'legacy-assumption'
|
|
39
|
+
| 'unknown';
|
|
40
|
+
|
|
41
|
+
/** Broad coordinate frame used by a spatial dataset. */
|
|
42
|
+
export type SpatialReferenceCoordinateFrame =
|
|
43
|
+
| 'geographic'
|
|
44
|
+
| 'geocentric'
|
|
45
|
+
| 'projected'
|
|
46
|
+
| 'local'
|
|
47
|
+
| 'unknown';
|
|
48
|
+
|
|
49
|
+
/** One alternate serialization of the same CRS retained by the source. */
|
|
50
|
+
export type SpatialReferenceAlternative = Readonly<{
|
|
51
|
+
/** Original alternate CRS definition. */
|
|
52
|
+
definition: ReadonlyCRSDefinition;
|
|
53
|
+
/** Representation used by the alternate definition. */
|
|
54
|
+
representation: SpatialReferenceRepresentation;
|
|
55
|
+
}>;
|
|
56
|
+
|
|
57
|
+
/** A known CRS and its source representation. */
|
|
58
|
+
export type KnownCRSReference = Readonly<{
|
|
59
|
+
/** A known definition is either explicitly declared or established by a specification default. */
|
|
60
|
+
state: 'explicit' | 'default';
|
|
61
|
+
/** Preferred definition selected without discarding alternate source representations. */
|
|
62
|
+
definition: ReadonlyCRSDefinition;
|
|
63
|
+
/** Representation used by the preferred definition. */
|
|
64
|
+
representation: SpatialReferenceRepresentation;
|
|
65
|
+
/** How the preferred definition was established. */
|
|
66
|
+
provenance: SpatialReferenceProvenance;
|
|
67
|
+
/** Additional equivalent serializations carried by the source metadata. */
|
|
68
|
+
alternatives?: readonly SpatialReferenceAlternative[];
|
|
69
|
+
}>;
|
|
70
|
+
|
|
71
|
+
/** An unknown or absent CRS that must not be replaced by an implicit WGS84 assumption. */
|
|
72
|
+
export type UnresolvedCRSReference = Readonly<{
|
|
73
|
+
/** `unknown` preserves an explicit unknown value; `absent` means no value was supplied. */
|
|
74
|
+
state: 'unknown' | 'absent';
|
|
75
|
+
/** How the unresolved state was established. */
|
|
76
|
+
provenance: SpatialReferenceProvenance;
|
|
77
|
+
}>;
|
|
78
|
+
|
|
79
|
+
/** Normalized CRS state, discriminated without comparing definition strings. */
|
|
80
|
+
export type CRSReference = KnownCRSReference | UnresolvedCRSReference;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Format-neutral spatial-reference metadata.
|
|
84
|
+
*
|
|
85
|
+
* The descriptor reports how source coordinates are defined. It does not claim that coordinates,
|
|
86
|
+
* bounds, or heights have been transformed. Format-specific metadata remains responsible for
|
|
87
|
+
* lossless preservation of fields that cannot be represented here.
|
|
88
|
+
*/
|
|
89
|
+
export type SpatialReference = Readonly<{
|
|
90
|
+
/** Primary horizontal or compound CRS state. */
|
|
91
|
+
crs: CRSReference;
|
|
92
|
+
/** Independently declared vertical CRS state. */
|
|
93
|
+
vertical?: CRSReference;
|
|
94
|
+
/** Coordinate epoch associated with source coordinates, expressed as a decimal year. */
|
|
95
|
+
coordinateEpoch?: number;
|
|
96
|
+
/** Broad frame in which source coordinates are stored. */
|
|
97
|
+
coordinateFrame: SpatialReferenceCoordinateFrame;
|
|
98
|
+
/** Component order used by stored arrays, independent of authoritative CRS axis order. */
|
|
99
|
+
coordinateOrder: readonly string[];
|
|
100
|
+
/** Per-component units when declared by the source. */
|
|
101
|
+
units?: readonly string[];
|
|
102
|
+
}>;
|
|
103
|
+
|
|
104
|
+
/** Values accepted by {@link createSpatialReference}. */
|
|
105
|
+
export type CreateSpatialReferenceOptions = Readonly<{
|
|
106
|
+
/** Primary horizontal or compound CRS state. Defaults to absent. */
|
|
107
|
+
crs?: CRSReference;
|
|
108
|
+
/** Independently declared vertical CRS state. */
|
|
109
|
+
vertical?: CRSReference;
|
|
110
|
+
/** Coordinate epoch associated with source coordinates. */
|
|
111
|
+
coordinateEpoch?: number;
|
|
112
|
+
/** Broad stored coordinate frame. Defaults to unknown. */
|
|
113
|
+
coordinateFrame?: SpatialReferenceCoordinateFrame;
|
|
114
|
+
/** Stored component order. Defaults to an empty, unknown order. */
|
|
115
|
+
coordinateOrder?: readonly string[];
|
|
116
|
+
/** Per-component units. */
|
|
117
|
+
units?: readonly string[];
|
|
118
|
+
}>;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Creates an immutable format-neutral spatial-reference descriptor.
|
|
122
|
+
*
|
|
123
|
+
* PROJJSON definitions and descriptor-owned arrays are cloned and recursively frozen. The
|
|
124
|
+
* function does not parse definitions, resolve identifiers, or determine semantic equivalence.
|
|
125
|
+
*
|
|
126
|
+
* @param options - Spatial-reference discovery results to normalize.
|
|
127
|
+
* @returns A readonly descriptor with cloned definitions and arrays.
|
|
128
|
+
*/
|
|
129
|
+
export function createSpatialReference(
|
|
130
|
+
options: CreateSpatialReferenceOptions = {}
|
|
131
|
+
): SpatialReference {
|
|
132
|
+
if (options.coordinateEpoch !== undefined && !Number.isFinite(options.coordinateEpoch)) {
|
|
133
|
+
throw new Error('Spatial reference coordinate epoch must be a finite decimal year');
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return Object.freeze({
|
|
137
|
+
crs: freezeCRSReference(options.crs || {state: 'absent', provenance: 'unknown'}),
|
|
138
|
+
vertical: options.vertical ? freezeCRSReference(options.vertical) : undefined,
|
|
139
|
+
coordinateEpoch: options.coordinateEpoch,
|
|
140
|
+
coordinateFrame: options.coordinateFrame || 'unknown',
|
|
141
|
+
coordinateOrder: Object.freeze([...(options.coordinateOrder || [])]),
|
|
142
|
+
units: options.units ? Object.freeze([...options.units]) : undefined
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Infers a CRS representation from runtime syntax without resolving its meaning.
|
|
148
|
+
*
|
|
149
|
+
* Format adapters should pass an explicit representation when their metadata identifies one.
|
|
150
|
+
* Unrecognized free-form strings are classified as `opaque`, not assumed to be identifiers.
|
|
151
|
+
*
|
|
152
|
+
* @param definition - CRS definition to classify syntactically.
|
|
153
|
+
* @returns The apparent serialized representation.
|
|
154
|
+
*/
|
|
155
|
+
export function inferCRSRepresentation(
|
|
156
|
+
definition: ReadonlyCRSDefinition
|
|
157
|
+
): SpatialReferenceRepresentation {
|
|
158
|
+
if (typeof definition === 'object') {
|
|
159
|
+
return 'projjson';
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const text = definition.trim();
|
|
163
|
+
if (/^[A-Z][A-Z0-9_]*\s*[\[(]/i.test(text)) {
|
|
164
|
+
return 'wkt';
|
|
165
|
+
}
|
|
166
|
+
if (/(?:^|\s)\+?proj=/i.test(text)) {
|
|
167
|
+
return 'proj-string';
|
|
168
|
+
}
|
|
169
|
+
if (
|
|
170
|
+
/^[A-Z][A-Z0-9._-]*(?::[A-Z0-9._-]+)+$/i.test(text) ||
|
|
171
|
+
/^urn:ogc:def:crs:/i.test(text) ||
|
|
172
|
+
/^https?:\/\//i.test(text) ||
|
|
173
|
+
/^[A-Z][A-Z0-9._-]*$/i.test(text)
|
|
174
|
+
) {
|
|
175
|
+
return 'identifier';
|
|
176
|
+
}
|
|
177
|
+
return 'opaque';
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/** Clone and freeze one CRS reference without mutating caller-owned objects. */
|
|
181
|
+
function freezeCRSReference(reference: CRSReference): CRSReference {
|
|
182
|
+
if (reference.state === 'explicit' || reference.state === 'default') {
|
|
183
|
+
return Object.freeze({
|
|
184
|
+
...reference,
|
|
185
|
+
definition: cloneAndFreezeDefinition(reference.definition),
|
|
186
|
+
alternatives: reference.alternatives
|
|
187
|
+
? Object.freeze(
|
|
188
|
+
reference.alternatives.map(alternative =>
|
|
189
|
+
Object.freeze({
|
|
190
|
+
...alternative,
|
|
191
|
+
definition: cloneAndFreezeDefinition(alternative.definition)
|
|
192
|
+
})
|
|
193
|
+
)
|
|
194
|
+
)
|
|
195
|
+
: undefined
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return Object.freeze({...reference});
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** Clone and recursively freeze a JSON CRS object while leaving string definitions unchanged. */
|
|
202
|
+
function cloneAndFreezeDefinition(definition: ReadonlyCRSDefinition): ReadonlyCRSDefinition {
|
|
203
|
+
return typeof definition === 'string'
|
|
204
|
+
? definition
|
|
205
|
+
: (cloneAndFreezeJsonValue(definition) as ReadonlyCRSDefinition);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/** Clone and freeze the JSON-compatible values used by PROJJSON definitions. */
|
|
209
|
+
function cloneAndFreezeJsonValue(value: unknown): unknown {
|
|
210
|
+
if (Array.isArray(value)) {
|
|
211
|
+
return Object.freeze(value.map(item => cloneAndFreezeJsonValue(item)));
|
|
212
|
+
}
|
|
213
|
+
if (value && typeof value === 'object') {
|
|
214
|
+
return Object.freeze(
|
|
215
|
+
Object.fromEntries(
|
|
216
|
+
Object.entries(value).map(([key, item]) => [key, cloneAndFreezeJsonValue(item)])
|
|
217
|
+
)
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
return value;
|
|
221
|
+
}
|
package/src/wkt-crs.ts
CHANGED
|
@@ -463,13 +463,16 @@ class WKTParser {
|
|
|
463
463
|
}
|
|
464
464
|
|
|
465
465
|
const start = this.offset;
|
|
466
|
-
while (this.offset < this.source.length && !/[\s,\[\]()]/.test(this.source[this.offset])) {
|
|
466
|
+
while (this.offset < this.source.length && !/[\s,\[\]()"]/.test(this.source[this.offset])) {
|
|
467
467
|
this.offset++;
|
|
468
468
|
}
|
|
469
469
|
if (start === this.offset) {
|
|
470
470
|
this.fail('Expected a WKT value');
|
|
471
471
|
}
|
|
472
472
|
const value = this.source.slice(start, this.offset);
|
|
473
|
+
if (this.source[this.offset] === '"') {
|
|
474
|
+
this.fail('Unexpected quote in unquoted WKT value');
|
|
475
|
+
}
|
|
473
476
|
this.skipWhitespace();
|
|
474
477
|
if (this.source[this.offset] === '[' || this.source[this.offset] === '(') {
|
|
475
478
|
if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(value)) {
|