@loaders.gl/wkt 4.0.0-beta.3 → 4.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +4 -28
- package/dist/index.cjs +2 -0
- package/dist/lib/parse-wkt.js.map +1 -1
- package/dist/wkt-worker.js +3 -1
- package/package.json +4 -4
- package/src/lib/parse-wkt.ts +2 -0
package/dist/dist.dev.js
CHANGED
|
@@ -197,7 +197,6 @@ var __exports__ = (() => {
|
|
|
197
197
|
worker: true,
|
|
198
198
|
extensions: [],
|
|
199
199
|
mimeTypes: ["text/plain"],
|
|
200
|
-
// category: 'json',
|
|
201
200
|
text: true,
|
|
202
201
|
options: {
|
|
203
202
|
"wkt-crs": {}
|
|
@@ -210,16 +209,7 @@ var __exports__ = (() => {
|
|
|
210
209
|
// src/lib/parse-wkt.ts
|
|
211
210
|
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
212
211
|
var tuples = new RegExp("^" + numberRegexp.source + "(\\s" + numberRegexp.source + "){1,}");
|
|
213
|
-
var WKT_MAGIC_STRINGS = [
|
|
214
|
-
"POINT(",
|
|
215
|
-
"LINESTRING(",
|
|
216
|
-
"POLYGON(",
|
|
217
|
-
"MULTIPOINT(",
|
|
218
|
-
"MULTILINESTRING(",
|
|
219
|
-
"MULTIPOLYGON(",
|
|
220
|
-
"GEOMETRYCOLLECTION("
|
|
221
|
-
// We only support this "geojson" subset of the OGC simple features standard
|
|
222
|
-
];
|
|
212
|
+
var WKT_MAGIC_STRINGS = ["POINT(", "LINESTRING(", "POLYGON(", "MULTIPOINT(", "MULTILINESTRING(", "MULTIPOLYGON(", "GEOMETRYCOLLECTION("];
|
|
223
213
|
function isWKT(input) {
|
|
224
214
|
return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));
|
|
225
215
|
}
|
|
@@ -322,7 +312,6 @@ var __exports__ = (() => {
|
|
|
322
312
|
white(state);
|
|
323
313
|
return {
|
|
324
314
|
type: "MultiLineString",
|
|
325
|
-
// @ts-expect-error
|
|
326
315
|
coordinates: c
|
|
327
316
|
};
|
|
328
317
|
}
|
|
@@ -337,7 +326,6 @@ var __exports__ = (() => {
|
|
|
337
326
|
}
|
|
338
327
|
return {
|
|
339
328
|
type: "Polygon",
|
|
340
|
-
// @ts-expect-error
|
|
341
329
|
coordinates: c
|
|
342
330
|
};
|
|
343
331
|
}
|
|
@@ -352,7 +340,6 @@ var __exports__ = (() => {
|
|
|
352
340
|
}
|
|
353
341
|
return {
|
|
354
342
|
type: "MultiPolygon",
|
|
355
|
-
// @ts-expect-error
|
|
356
343
|
coordinates: c
|
|
357
344
|
};
|
|
358
345
|
}
|
|
@@ -522,7 +509,6 @@ var __exports__ = (() => {
|
|
|
522
509
|
module: "wkt",
|
|
523
510
|
version: VERSION,
|
|
524
511
|
extensions: ["wkt"],
|
|
525
|
-
// @ts-expect-error
|
|
526
512
|
encodeSync: encodeWKT,
|
|
527
513
|
options: {
|
|
528
514
|
wkt: {}
|
|
@@ -634,7 +620,7 @@ var __exports__ = (() => {
|
|
|
634
620
|
var EWKB_FLAG_M = 1073741824;
|
|
635
621
|
var EWKB_FLAG_SRID = 536870912;
|
|
636
622
|
var MAX_SRID = 1e4;
|
|
637
|
-
var WKBGeometryType =
|
|
623
|
+
var WKBGeometryType = function(WKBGeometryType2) {
|
|
638
624
|
WKBGeometryType2[WKBGeometryType2["Point"] = 1] = "Point";
|
|
639
625
|
WKBGeometryType2[WKBGeometryType2["LineString"] = 2] = "LineString";
|
|
640
626
|
WKBGeometryType2[WKBGeometryType2["Polygon"] = 3] = "Polygon";
|
|
@@ -1006,7 +992,6 @@ var __exports__ = (() => {
|
|
|
1006
992
|
category: "geometry",
|
|
1007
993
|
extensions: ["wkb"],
|
|
1008
994
|
mimeTypes: [],
|
|
1009
|
-
// TODO can we define static, serializable tests, eg. some binary strings?
|
|
1010
995
|
tests: [isWKB],
|
|
1011
996
|
options: {
|
|
1012
997
|
wkb: {
|
|
@@ -1102,7 +1087,6 @@ var __exports__ = (() => {
|
|
|
1102
1087
|
this.dataView.setFloat64(this.byteOffset, value, BE);
|
|
1103
1088
|
this.byteOffset += 8;
|
|
1104
1089
|
}
|
|
1105
|
-
/** A varint uses a variable number of bytes */
|
|
1106
1090
|
writeVarInt(value) {
|
|
1107
1091
|
let length = 1;
|
|
1108
1092
|
while ((value & 4294967168) !== 0) {
|
|
@@ -1113,14 +1097,12 @@ var __exports__ = (() => {
|
|
|
1113
1097
|
this.writeUInt8(value & 127);
|
|
1114
1098
|
return length;
|
|
1115
1099
|
}
|
|
1116
|
-
/** Append another ArrayBuffer to this ArrayBuffer */
|
|
1117
1100
|
writeBuffer(arrayBuffer) {
|
|
1118
1101
|
this._ensureSize(arrayBuffer.byteLength);
|
|
1119
1102
|
const tempArray = new Uint8Array(this.arrayBuffer);
|
|
1120
1103
|
tempArray.set(new Uint8Array(arrayBuffer), this.byteOffset);
|
|
1121
1104
|
this.byteOffset += arrayBuffer.byteLength;
|
|
1122
1105
|
}
|
|
1123
|
-
/** Resizes this.arrayBuffer if not enough space */
|
|
1124
1106
|
_ensureSize(size) {
|
|
1125
1107
|
if (this.arrayBuffer.byteLength < this.byteOffset + size) {
|
|
1126
1108
|
if (this.allowResize) {
|
|
@@ -1136,7 +1118,7 @@ var __exports__ = (() => {
|
|
|
1136
1118
|
};
|
|
1137
1119
|
|
|
1138
1120
|
// src/lib/encode-wkb.ts
|
|
1139
|
-
var WKB =
|
|
1121
|
+
var WKB = function(WKB2) {
|
|
1140
1122
|
WKB2[WKB2["Point"] = 1] = "Point";
|
|
1141
1123
|
WKB2[WKB2["LineString"] = 2] = "LineString";
|
|
1142
1124
|
WKB2[WKB2["Polygon"] = 3] = "Polygon";
|
|
@@ -1451,7 +1433,6 @@ var __exports__ = (() => {
|
|
|
1451
1433
|
options: WKBLoader.options,
|
|
1452
1434
|
text: true,
|
|
1453
1435
|
testText: isHexWKB,
|
|
1454
|
-
// TODO - encoding here seems wasteful - extend hex transcoder?
|
|
1455
1436
|
parse: async (arrayBuffer) => parseHexWKB(new TextDecoder().decode(arrayBuffer)),
|
|
1456
1437
|
parseTextSync: parseHexWKB
|
|
1457
1438
|
};
|
|
@@ -1800,7 +1781,6 @@ var __exports__ = (() => {
|
|
|
1800
1781
|
category: "geometry",
|
|
1801
1782
|
extensions: ["twkb"],
|
|
1802
1783
|
mimeTypes: [],
|
|
1803
|
-
// TODO can we define static, serializable tests, eg. some binary strings?
|
|
1804
1784
|
tests: [isTWKB],
|
|
1805
1785
|
options: {
|
|
1806
1786
|
wkb: {
|
|
@@ -2000,13 +1980,9 @@ var __exports__ = (() => {
|
|
|
2000
1980
|
module: "wkt",
|
|
2001
1981
|
version: VERSION,
|
|
2002
1982
|
extensions: ["twkb"],
|
|
2003
|
-
// @ts-expect-error not implemented yet
|
|
2004
1983
|
encodeSync: async (data, options) => encodeTWKB,
|
|
2005
1984
|
options: {
|
|
2006
|
-
twkb: {
|
|
2007
|
-
// hasZ: false,
|
|
2008
|
-
// hasM: false
|
|
2009
|
-
}
|
|
1985
|
+
twkb: {}
|
|
2010
1986
|
}
|
|
2011
1987
|
};
|
|
2012
1988
|
return __toCommonJS(src_exports);
|
package/dist/index.cjs
CHANGED
|
@@ -313,6 +313,7 @@ function parseMultiLineString(state) {
|
|
|
313
313
|
}
|
|
314
314
|
white(state);
|
|
315
315
|
return {
|
|
316
|
+
// @ts-ignore
|
|
316
317
|
type: "MultiLineString",
|
|
317
318
|
// @ts-expect-error
|
|
318
319
|
coordinates: c
|
|
@@ -328,6 +329,7 @@ function parsePolygon(state) {
|
|
|
328
329
|
return null;
|
|
329
330
|
}
|
|
330
331
|
return {
|
|
332
|
+
// @ts-ignore
|
|
331
333
|
type: "Polygon",
|
|
332
334
|
// @ts-expect-error
|
|
333
335
|
coordinates: c
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-wkt.js","names":["numberRegexp","tuples","RegExp","source","WKT_MAGIC_STRINGS","isWKT","input","some","magicString","startsWith","parseWKT","options","parseWKTToGeometry","_options$wkt","parts","split","_","pop","srid","shift","state","i","geometry","parseGeometry","wkt","crs","addCRS","parsePoint","parseLineString","parsePolygon","parseMultiPoint","parseMultiLineString","parseMultiPolygon","parseGeometryCollection","obj","match","type","properties","name","$","white","c","coords","coordinates","_state$_","_state$_2","newCoordsFormat","substring","indexOf","length","replace","multicoords","geometries","push","depth","rings","stack","pointer","elem","isNaN","Array","prototype","apply","map","parseFloat","list","item","pt","regexp","_state$_3"],"sources":["../../src/lib/parse-wkt.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n\nimport {Geometry} from '@loaders.gl/schema';\n\n/* eslint-disable */\n// @ts-nocheck\n\nconst numberRegexp = /[-+]?([0-9]*\\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;\n// Matches sequences like '100 100' or '100 100 100'.\nconst tuples = new RegExp('^' + numberRegexp.source + '(\\\\s' + numberRegexp.source + '){1,}');\n\nexport const WKT_MAGIC_STRINGS = [\n 'POINT(',\n 'LINESTRING(',\n 'POLYGON(',\n 'MULTIPOINT(',\n 'MULTILINESTRING(',\n 'MULTIPOLYGON(',\n 'GEOMETRYCOLLECTION('\n // We only support this \"geojson\" subset of the OGC simple features standard\n];\n\nexport type ParseWKTOptions = {\n wkt?: {\n /** Whether to add any CRS, if found, as undocumented CRS property on the return geometry */\n crs?: boolean;\n };\n};\n\n/** \n * Check if a string is WKT.\n * @param input A potential WKT geometry string\n * @return `true` if input appears to be a WKT geometry string, `false` otherwise\n\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n * @todo Does not handle leading spaces which appear to be permitted per the spec:\n * \"A WKT string contains no white space outside of double quotes. \n * However padding with white space to improve human readability is permitted; \n * the examples of WKT that are included in this document have \n * spaces and line feeds inserted to improve clarity. Any padding is stripped out or ignored by parsers.\"\n */\nexport function isWKT(input: string): boolean {\n return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));\n}\n\n/**\n * Parse WKT and return GeoJSON.\n * @param input A WKT geometry string\n * @return A GeoJSON geometry object\n *\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n **/\nexport function parseWKT(input: string, options?: ParseWKTOptions): Geometry {\n // TODO handle options.wkt.shape\n return parseWKTToGeometry(input, options)!;\n}\n\n/** State of parser, passed around between parser functions */\ntype ParseWKTState = {\n parts: string[];\n _: string | undefined;\n i: number;\n};\n\n/** Parse into GeoJSON geometry */\nfunction parseWKTToGeometry(input: string, options?: ParseWKTOptions): Geometry | null {\n const parts = input.split(';');\n let _ = parts.pop();\n const srid = (parts.shift() || '').split('=').pop();\n\n const state: ParseWKTState = {parts, _, i: 0};\n\n const geometry = parseGeometry(state);\n\n return options?.wkt?.crs ? addCRS(geometry, srid) : geometry;\n}\n\nfunction parseGeometry(state: ParseWKTState): Geometry | null {\n return (\n parsePoint(state) ||\n parseLineString(state) ||\n parsePolygon(state) ||\n parseMultiPoint(state) ||\n parseMultiLineString(state) ||\n parseMultiPolygon(state) ||\n parseGeometryCollection(state)\n );\n}\n\n/** Adds a coordinate reference system as an undocumented */\nfunction addCRS(obj: Geometry | null, srid?: string): Geometry | null {\n if (obj && srid?.match(/\\d+/)) {\n const crs = {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::' + srid\n }\n };\n // @ts-expect-error we assign an undocumented property on the geometry\n obj.crs = crs;\n }\n\n return obj;\n}\n\n// GEOMETRIES\n\nfunction parsePoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(POINT(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n white(state);\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'Point',\n coordinates: c[0]\n };\n}\n\nfunction parseMultiPoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOINT)/i, state)) {\n return null;\n }\n white(state);\n const newCoordsFormat = state._?.substring(state._?.indexOf('(') + 1, state._.length - 1)\n .replace(/\\(/g, '')\n .replace(/\\)/g, '');\n state._ = 'MULTIPOINT (' + newCoordsFormat + ')';\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n type: 'MultiPoint',\n coordinates: c\n };\n}\n\nfunction parseLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(LINESTRING(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'LineString',\n coordinates: c\n };\n}\n\nfunction parseMultiLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTILINESTRING)/i, state)) return null;\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n type: 'MultiLineString',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parsePolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(POLYGON(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n type: 'Polygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseMultiPolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOLYGON)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n type: 'MultiPolygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseGeometryCollection(state: ParseWKTState): Geometry | null {\n const geometries: Geometry[] = [];\n let geometry: Geometry | null;\n\n if (!$(/^(GEOMETRYCOLLECTION)/i, state)) {\n return null;\n }\n white(state);\n\n if (!$(/^(\\()/, state)) {\n return null;\n }\n while ((geometry = parseGeometry(state))) {\n geometries.push(geometry);\n white(state);\n $(/^(,)/, state);\n white(state);\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n\n return {\n type: 'GeometryCollection',\n geometries: geometries\n };\n}\n\n// COORDINATES\n\nfunction multicoords(state: ParseWKTState): number[][] | null {\n white(state);\n let depth = 0;\n const rings: number[][] = [];\n const stack = [rings];\n let pointer: any = rings;\n let elem;\n\n while ((elem = $(/^(\\()/, state) || $(/^(\\))/, state) || $(/^(,)/, state) || $(tuples, state))) {\n if (elem === '(') {\n stack.push(pointer);\n pointer = [];\n stack[stack.length - 1].push(pointer);\n depth++;\n } else if (elem === ')') {\n // For the case: Polygon(), ...\n if (pointer.length === 0) return null;\n\n // @ts-ignore\n pointer = stack.pop();\n // the stack was empty, input was malformed\n if (!pointer) return null;\n depth--;\n if (depth === 0) break;\n } else if (elem === ',') {\n pointer = [];\n stack[stack.length - 1].push(pointer);\n } else if (!elem.split(/\\s/g).some(isNaN)) {\n Array.prototype.push.apply(pointer, elem.split(/\\s/g).map(parseFloat));\n } else {\n return null;\n }\n white(state);\n }\n\n if (depth !== 0) return null;\n\n return rings;\n}\n\nfunction coords(state: ParseWKTState): number[][] | null {\n const list: number[][] = [];\n let item: any;\n let pt;\n while ((pt = $(tuples, state) || $(/^(,)/, state))) {\n if (pt === ',') {\n list.push(item);\n item = [];\n } else if (!pt.split(/\\s/g).some(isNaN)) {\n if (!item) item = [];\n Array.prototype.push.apply(item, pt.split(/\\s/g).map(parseFloat));\n }\n white(state);\n }\n\n if (item) list.push(item);\n else return null;\n\n return list.length ? list : null;\n}\n\n// HELPERS\n\nfunction $(regexp: RegExp, state: ParseWKTState) {\n const match = state._?.substring(state.i).match(regexp);\n if (!match) return null;\n else {\n state.i += match[0].length;\n return match[0];\n }\n}\n\nfunction white(state: ParseWKTState) {\n $(/^\\s*/, state);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-wkt.js","names":["numberRegexp","tuples","RegExp","source","WKT_MAGIC_STRINGS","isWKT","input","some","magicString","startsWith","parseWKT","options","parseWKTToGeometry","_options$wkt","parts","split","_","pop","srid","shift","state","i","geometry","parseGeometry","wkt","crs","addCRS","parsePoint","parseLineString","parsePolygon","parseMultiPoint","parseMultiLineString","parseMultiPolygon","parseGeometryCollection","obj","match","type","properties","name","$","white","c","coords","coordinates","_state$_","_state$_2","newCoordsFormat","substring","indexOf","length","replace","multicoords","geometries","push","depth","rings","stack","pointer","elem","isNaN","Array","prototype","apply","map","parseFloat","list","item","pt","regexp","_state$_3"],"sources":["../../src/lib/parse-wkt.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Fork of https://github.com/mapbox/wellknown under ISC license (MIT/BSD-2-clause equivalent)\n\nimport {Geometry} from '@loaders.gl/schema';\n\n/* eslint-disable */\n// @ts-nocheck\n\nconst numberRegexp = /[-+]?([0-9]*\\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;\n// Matches sequences like '100 100' or '100 100 100'.\nconst tuples = new RegExp('^' + numberRegexp.source + '(\\\\s' + numberRegexp.source + '){1,}');\n\nexport const WKT_MAGIC_STRINGS = [\n 'POINT(',\n 'LINESTRING(',\n 'POLYGON(',\n 'MULTIPOINT(',\n 'MULTILINESTRING(',\n 'MULTIPOLYGON(',\n 'GEOMETRYCOLLECTION('\n // We only support this \"geojson\" subset of the OGC simple features standard\n];\n\nexport type ParseWKTOptions = {\n wkt?: {\n /** Whether to add any CRS, if found, as undocumented CRS property on the return geometry */\n crs?: boolean;\n };\n};\n\n/** \n * Check if a string is WKT.\n * @param input A potential WKT geometry string\n * @return `true` if input appears to be a WKT geometry string, `false` otherwise\n\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n * @todo Does not handle leading spaces which appear to be permitted per the spec:\n * \"A WKT string contains no white space outside of double quotes. \n * However padding with white space to improve human readability is permitted; \n * the examples of WKT that are included in this document have \n * spaces and line feeds inserted to improve clarity. Any padding is stripped out or ignored by parsers.\"\n */\nexport function isWKT(input: string): boolean {\n return WKT_MAGIC_STRINGS.some((magicString) => input.startsWith(magicString));\n}\n\n/**\n * Parse WKT and return GeoJSON.\n * @param input A WKT geometry string\n * @return A GeoJSON geometry object\n *\n * @note We only support the \"geojson\" subset of the OGC simple features standard\n **/\nexport function parseWKT(input: string, options?: ParseWKTOptions): Geometry {\n // TODO handle options.wkt.shape\n return parseWKTToGeometry(input, options)!;\n}\n\n/** State of parser, passed around between parser functions */\ntype ParseWKTState = {\n parts: string[];\n _: string | undefined;\n i: number;\n};\n\n/** Parse into GeoJSON geometry */\nfunction parseWKTToGeometry(input: string, options?: ParseWKTOptions): Geometry | null {\n const parts = input.split(';');\n let _ = parts.pop();\n const srid = (parts.shift() || '').split('=').pop();\n\n const state: ParseWKTState = {parts, _, i: 0};\n\n const geometry = parseGeometry(state);\n\n return options?.wkt?.crs ? addCRS(geometry, srid) : geometry;\n}\n\nfunction parseGeometry(state: ParseWKTState): Geometry | null {\n return (\n parsePoint(state) ||\n parseLineString(state) ||\n parsePolygon(state) ||\n parseMultiPoint(state) ||\n parseMultiLineString(state) ||\n parseMultiPolygon(state) ||\n parseGeometryCollection(state)\n );\n}\n\n/** Adds a coordinate reference system as an undocumented */\nfunction addCRS(obj: Geometry | null, srid?: string): Geometry | null {\n if (obj && srid?.match(/\\d+/)) {\n const crs = {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::' + srid\n }\n };\n // @ts-expect-error we assign an undocumented property on the geometry\n obj.crs = crs;\n }\n\n return obj;\n}\n\n// GEOMETRIES\n\nfunction parsePoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(POINT(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n white(state);\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'Point',\n coordinates: c[0]\n };\n}\n\nfunction parseMultiPoint(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOINT)/i, state)) {\n return null;\n }\n white(state);\n const newCoordsFormat = state._?.substring(state._?.indexOf('(') + 1, state._.length - 1)\n .replace(/\\(/g, '')\n .replace(/\\)/g, '');\n state._ = 'MULTIPOINT (' + newCoordsFormat + ')';\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n type: 'MultiPoint',\n coordinates: c\n };\n}\n\nfunction parseLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(LINESTRING(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n if (!$(/^(\\()/, state)) {\n return null;\n }\n const c = coords(state);\n if (!c) {\n return null;\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n return {\n type: 'LineString',\n coordinates: c\n };\n}\n\nfunction parseMultiLineString(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTILINESTRING)/i, state)) return null;\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n white(state);\n return {\n // @ts-ignore\n type: 'MultiLineString',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parsePolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(POLYGON(\\sz)?)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n // @ts-ignore\n type: 'Polygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseMultiPolygon(state: ParseWKTState): Geometry | null {\n if (!$(/^(MULTIPOLYGON)/i, state)) {\n return null;\n }\n white(state);\n const c = multicoords(state);\n if (!c) {\n return null;\n }\n return {\n type: 'MultiPolygon',\n // @ts-expect-error\n coordinates: c\n };\n}\n\nfunction parseGeometryCollection(state: ParseWKTState): Geometry | null {\n const geometries: Geometry[] = [];\n let geometry: Geometry | null;\n\n if (!$(/^(GEOMETRYCOLLECTION)/i, state)) {\n return null;\n }\n white(state);\n\n if (!$(/^(\\()/, state)) {\n return null;\n }\n while ((geometry = parseGeometry(state))) {\n geometries.push(geometry);\n white(state);\n $(/^(,)/, state);\n white(state);\n }\n if (!$(/^(\\))/, state)) {\n return null;\n }\n\n return {\n type: 'GeometryCollection',\n geometries: geometries\n };\n}\n\n// COORDINATES\n\nfunction multicoords(state: ParseWKTState): number[][] | null {\n white(state);\n let depth = 0;\n const rings: number[][] = [];\n const stack = [rings];\n let pointer: any = rings;\n let elem;\n\n while ((elem = $(/^(\\()/, state) || $(/^(\\))/, state) || $(/^(,)/, state) || $(tuples, state))) {\n if (elem === '(') {\n stack.push(pointer);\n pointer = [];\n stack[stack.length - 1].push(pointer);\n depth++;\n } else if (elem === ')') {\n // For the case: Polygon(), ...\n if (pointer.length === 0) return null;\n\n // @ts-ignore\n pointer = stack.pop();\n // the stack was empty, input was malformed\n if (!pointer) return null;\n depth--;\n if (depth === 0) break;\n } else if (elem === ',') {\n pointer = [];\n stack[stack.length - 1].push(pointer);\n } else if (!elem.split(/\\s/g).some(isNaN)) {\n Array.prototype.push.apply(pointer, elem.split(/\\s/g).map(parseFloat));\n } else {\n return null;\n }\n white(state);\n }\n\n if (depth !== 0) return null;\n\n return rings;\n}\n\nfunction coords(state: ParseWKTState): number[][] | null {\n const list: number[][] = [];\n let item: any;\n let pt;\n while ((pt = $(tuples, state) || $(/^(,)/, state))) {\n if (pt === ',') {\n list.push(item);\n item = [];\n } else if (!pt.split(/\\s/g).some(isNaN)) {\n if (!item) item = [];\n Array.prototype.push.apply(item, pt.split(/\\s/g).map(parseFloat));\n }\n white(state);\n }\n\n if (item) list.push(item);\n else return null;\n\n return list.length ? list : null;\n}\n\n// HELPERS\n\nfunction $(regexp: RegExp, state: ParseWKTState) {\n const match = state._?.substring(state.i).match(regexp);\n if (!match) return null;\n else {\n state.i += match[0].length;\n return match[0];\n }\n}\n\nfunction white(state: ParseWKTState) {\n $(/^\\s*/, state);\n}\n"],"mappings":"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"}
|
package/dist/wkt-worker.js
CHANGED
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
// src/lib/utils/version.ts
|
|
203
|
-
var VERSION = true ? "4.0.0-beta.
|
|
203
|
+
var VERSION = true ? "4.0.0-beta.5" : "latest";
|
|
204
204
|
|
|
205
205
|
// src/lib/parse-wkt.ts
|
|
206
206
|
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
@@ -312,6 +312,7 @@
|
|
|
312
312
|
}
|
|
313
313
|
white(state);
|
|
314
314
|
return {
|
|
315
|
+
// @ts-ignore
|
|
315
316
|
type: "MultiLineString",
|
|
316
317
|
// @ts-expect-error
|
|
317
318
|
coordinates: c
|
|
@@ -327,6 +328,7 @@
|
|
|
327
328
|
return null;
|
|
328
329
|
}
|
|
329
330
|
return {
|
|
331
|
+
// @ts-ignore
|
|
330
332
|
type: "Polygon",
|
|
331
333
|
// @ts-expect-error
|
|
332
334
|
coordinates: c
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/wkt",
|
|
3
3
|
"description": "Loader and Writer for the WKT (Well Known Text) Format",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.5",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"publishConfig": {
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"fuzzer": "^0.2.1"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@loaders.gl/loader-utils": "4.0.0-beta.
|
|
47
|
-
"@loaders.gl/schema": "4.0.0-beta.
|
|
46
|
+
"@loaders.gl/loader-utils": "4.0.0-beta.5",
|
|
47
|
+
"@loaders.gl/schema": "4.0.0-beta.5"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "a6f5a0d1a316cc22396e5a4d480c14329d1ef146"
|
|
50
50
|
}
|
package/src/lib/parse-wkt.ts
CHANGED
|
@@ -178,6 +178,7 @@ function parseMultiLineString(state: ParseWKTState): Geometry | null {
|
|
|
178
178
|
}
|
|
179
179
|
white(state);
|
|
180
180
|
return {
|
|
181
|
+
// @ts-ignore
|
|
181
182
|
type: 'MultiLineString',
|
|
182
183
|
// @ts-expect-error
|
|
183
184
|
coordinates: c
|
|
@@ -194,6 +195,7 @@ function parsePolygon(state: ParseWKTState): Geometry | null {
|
|
|
194
195
|
return null;
|
|
195
196
|
}
|
|
196
197
|
return {
|
|
198
|
+
// @ts-ignore
|
|
197
199
|
type: 'Polygon',
|
|
198
200
|
// @ts-expect-error
|
|
199
201
|
coordinates: c
|