@loaders.gl/wkt 4.0.4 → 4.1.0-alpha.2
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 -0
- package/dist/index.cjs +6 -0
- package/dist/lib/parse-wkb.d.ts.map +1 -1
- package/dist/lib/parse-wkb.js +3 -0
- package/dist/lib/parse-wkb.js.map +1 -1
- package/dist/twkb-loader.d.ts +1 -1
- package/dist/twkb-loader.d.ts.map +1 -1
- package/dist/twkb-loader.js.map +1 -1
- package/dist/wkb-loader.d.ts +3 -2
- package/dist/wkb-loader.d.ts.map +1 -1
- package/dist/wkb-loader.js.map +1 -1
- package/dist/wkt-loader.d.ts +3 -2
- package/dist/wkt-loader.d.ts.map +1 -1
- package/dist/wkt-loader.js +1 -0
- package/dist/wkt-loader.js.map +1 -1
- package/dist/wkt-worker.js +2 -1
- package/package.json +4 -4
- package/src/lib/parse-wkb.ts +3 -0
- package/src/twkb-loader.ts +2 -2
- package/src/wkb-loader.ts +4 -3
- package/src/wkt-loader.ts +4 -2
package/dist/dist.dev.js
CHANGED
|
@@ -452,6 +452,7 @@ var __exports__ = (() => {
|
|
|
452
452
|
testText: isWKT,
|
|
453
453
|
options: {
|
|
454
454
|
wkt: {
|
|
455
|
+
shape: "geojson-geometry",
|
|
455
456
|
crs: true
|
|
456
457
|
}
|
|
457
458
|
}
|
|
@@ -728,7 +729,10 @@ var __exports__ = (() => {
|
|
|
728
729
|
switch (shape) {
|
|
729
730
|
case "binary-geometry":
|
|
730
731
|
return binaryGeometry;
|
|
732
|
+
case "geojson-geometry":
|
|
733
|
+
return binaryToGeometry(binaryGeometry);
|
|
731
734
|
case "geometry":
|
|
735
|
+
console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
|
|
732
736
|
return binaryToGeometry(binaryGeometry);
|
|
733
737
|
default:
|
|
734
738
|
throw new Error(shape);
|
package/dist/index.cjs
CHANGED
|
@@ -460,6 +460,7 @@ var WKTWorkerLoader = {
|
|
|
460
460
|
testText: isWKT,
|
|
461
461
|
options: {
|
|
462
462
|
wkt: {
|
|
463
|
+
shape: "geojson-geometry",
|
|
463
464
|
crs: true
|
|
464
465
|
}
|
|
465
466
|
}
|
|
@@ -631,7 +632,10 @@ function parseWKB(arrayBuffer, options) {
|
|
|
631
632
|
switch (shape) {
|
|
632
633
|
case "binary-geometry":
|
|
633
634
|
return binaryGeometry;
|
|
635
|
+
case "geojson-geometry":
|
|
636
|
+
return (0, import_gis.binaryToGeometry)(binaryGeometry);
|
|
634
637
|
case "geometry":
|
|
638
|
+
console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
|
|
635
639
|
return (0, import_gis.binaryToGeometry)(binaryGeometry);
|
|
636
640
|
default:
|
|
637
641
|
throw new Error(shape);
|
|
@@ -857,6 +861,7 @@ var WKBWorkerLoader = {
|
|
|
857
861
|
options: {
|
|
858
862
|
wkb: {
|
|
859
863
|
shape: "binary-geometry"
|
|
864
|
+
// 'geojson-geometry'
|
|
860
865
|
}
|
|
861
866
|
}
|
|
862
867
|
};
|
|
@@ -1601,6 +1606,7 @@ var TWKBWorkerLoader = {
|
|
|
1601
1606
|
options: {
|
|
1602
1607
|
wkb: {
|
|
1603
1608
|
shape: "binary-geometry"
|
|
1609
|
+
// 'geojson-geometry'
|
|
1604
1610
|
}
|
|
1605
1611
|
}
|
|
1606
1612
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-wkb.d.ts","sourceRoot":"","sources":["../../src/lib/parse-wkb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EAId,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAIpD,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"parse-wkb.d.ts","sourceRoot":"","sources":["../../src/lib/parse-wkb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,cAAc,EAId,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAIpD,wBAAgB,QAAQ,CACtB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,GAAG,QAAQ,CAc3B;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAoChB"}
|
package/dist/lib/parse-wkb.js
CHANGED
|
@@ -7,7 +7,10 @@ export function parseWKB(arrayBuffer, options) {
|
|
|
7
7
|
switch (shape) {
|
|
8
8
|
case 'binary-geometry':
|
|
9
9
|
return binaryGeometry;
|
|
10
|
+
case 'geojson-geometry':
|
|
11
|
+
return binaryToGeometry(binaryGeometry);
|
|
10
12
|
case 'geometry':
|
|
13
|
+
console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
|
|
11
14
|
return binaryToGeometry(binaryGeometry);
|
|
12
15
|
default:
|
|
13
16
|
throw new Error(shape);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-wkb.js","names":["binaryToGeometry","parseWKBHeader","WKBGeometryType","parseWKB","arrayBuffer","options","_options$wkb","binaryGeometry","parseWKBToBinary","shape","wkb","Error","dataView","DataView","wkbHeader","geometryType","dimensions","littleEndian","offset","byteOffset","Point","point","parsePoint","geometry","LineString","line","parseLineString","Polygon","polygon","parsePolygon","MultiPoint","multiPoint","parseMultiPoint","type","MultiLineString","multiLine","parseMultiLineString","MultiPolygon","multiPolygon","parseMultiPolygon","dimension","positions","Float64Array","i","getFloat64","value","size","nPoints","getUint32","pathIndices","push","Uint16Array","cumulativeSum","sum","nRings","rings","parsed","concatenatedPositions","concatTypedArrays","buffer","polygonIndices","length","primitivePolygonIndices","map","l","unshift","binaryPointGeometries","littleEndianPoint","getUint8","concatenateBinaryPointGeometries","nLines","binaryLineGeometries","littleEndianLine","concatenateBinaryLineGeometries","nPolygons","binaryPolygonGeometries","littleEndianPolygon","concatenateBinaryPolygonGeometries","lines","polygons","primitivePolygons","binaryPolygon","p","primitivePolygon","filter","x","arrays","byteLength","Uint8Array","data","j"],"sources":["../../src/lib/parse-wkb.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {\n TypedArray,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry,\n Geometry\n} from '@loaders.gl/schema';\nimport {binaryToGeometry} from '@loaders.gl/gis';\nimport type {WKBLoaderOptions} from '../wkb-loader';\n\nimport {parseWKBHeader, WKBGeometryType} from './parse-wkb-header';\n\nexport function parseWKB(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry | Geometry {\n const binaryGeometry = parseWKBToBinary(arrayBuffer, options);\n const shape = options?.wkb?.shape || 'binary-geometry';\n switch (shape) {\n case 'binary-geometry':\n return binaryGeometry;\n case 'geometry':\n return binaryToGeometry(binaryGeometry);\n default:\n throw new Error(shape);\n }\n}\n\nexport function parseWKBToBinary(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry {\n const dataView = new DataView(arrayBuffer);\n\n const wkbHeader = parseWKBHeader(dataView);\n\n const {geometryType, dimensions, littleEndian} = wkbHeader;\n const offset = wkbHeader.byteOffset;\n\n switch (geometryType) {\n case WKBGeometryType.Point:\n const point = parsePoint(dataView, offset, dimensions, littleEndian);\n return point.geometry;\n case WKBGeometryType.LineString:\n const line = parseLineString(dataView, offset, dimensions, littleEndian);\n return line.geometry;\n case WKBGeometryType.Polygon:\n const polygon = parsePolygon(dataView, offset, dimensions, littleEndian);\n return polygon.geometry;\n case WKBGeometryType.MultiPoint:\n const multiPoint = parseMultiPoint(dataView, offset, dimensions, littleEndian);\n multiPoint.type = 'Point';\n return multiPoint;\n case WKBGeometryType.MultiLineString:\n const multiLine = parseMultiLineString(dataView, offset, dimensions, littleEndian);\n multiLine.type = 'LineString';\n return multiLine;\n case WKBGeometryType.MultiPolygon:\n const multiPolygon = parseMultiPolygon(dataView, offset, dimensions, littleEndian);\n multiPolygon.type = 'Polygon';\n return multiPolygon;\n // case WKBGeometryType.GeometryCollection:\n // TODO: handle GeometryCollections\n // return parseGeometryCollection(dataView, offset, dimensions, littleEndian);\n default:\n throw new Error(`WKB: Unsupported geometry type: ${geometryType}`);\n }\n}\n\n// Primitives; parse point and linear ring\nfunction parsePoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPointGeometry; offset: number} {\n const positions = new Float64Array(dimension);\n for (let i = 0; i < dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n return {\n geometry: {type: 'Point', positions: {value: positions, size: dimension}},\n offset\n };\n}\n\nfunction parseLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryLineGeometry; offset: number} {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n // Instantiate array\n const positions = new Float64Array(nPoints * dimension);\n for (let i = 0; i < nPoints * dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n const pathIndices = [0];\n if (nPoints > 0) {\n pathIndices.push(nPoints);\n }\n\n return {\n geometry: {\n type: 'LineString',\n positions: {value: positions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n },\n offset\n };\n}\n\n// https://stackoverflow.com/a/55261098\nconst cumulativeSum = (sum: number) => (value: number) => (sum += value);\n\nfunction parsePolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPolygonGeometry; offset: number} {\n const nRings = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const rings: TypedArray[] = [];\n for (let i = 0; i < nRings; i++) {\n const parsed = parseLineString(dataView, offset, dimension, littleEndian);\n const {positions} = parsed.geometry;\n offset = parsed.offset;\n rings.push(positions.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);\n const polygonIndices = [0];\n if (concatenatedPositions.length > 0) {\n polygonIndices.push(concatenatedPositions.length / dimension);\n }\n const primitivePolygonIndices = rings.map((l) => l.length / dimension).map(cumulativeSum(0));\n primitivePolygonIndices.unshift(0);\n\n return {\n geometry: {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {\n value: new Uint16Array(polygonIndices),\n size: 1\n },\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n },\n offset\n };\n}\n\nfunction parseMultiPoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPointGeometry {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPointGeometries: BinaryPointGeometry[] = [];\n for (let i = 0; i < nPoints; i++) {\n // Byte order for point\n const littleEndianPoint = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert point type\n if (dataView.getUint32(offset, littleEndianPoint) % 1000 !== 1) {\n throw new Error('WKB: Inner geometries of MultiPoint not of type Point');\n }\n\n offset += 4;\n\n const parsed = parsePoint(dataView, offset, dimension, littleEndianPoint);\n offset = parsed.offset;\n binaryPointGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPointGeometries(binaryPointGeometries, dimension);\n}\n\nfunction parseMultiLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryLineGeometry {\n const nLines = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryLineGeometries: BinaryLineGeometry[] = [];\n for (let i = 0; i < nLines; i++) {\n // Byte order for line\n const littleEndianLine = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type LineString\n if (dataView.getUint32(offset, littleEndianLine) % 1000 !== 2) {\n throw new Error('WKB: Inner geometries of MultiLineString not of type LineString');\n }\n offset += 4;\n\n const parsed = parseLineString(dataView, offset, dimension, littleEndianLine);\n offset = parsed.offset;\n binaryLineGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryLineGeometries(binaryLineGeometries, dimension);\n}\n\nfunction parseMultiPolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPolygonGeometry {\n const nPolygons = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPolygonGeometries: BinaryPolygonGeometry[] = [];\n for (let i = 0; i < nPolygons; i++) {\n // Byte order for polygon\n const littleEndianPolygon = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type Polygon\n if (dataView.getUint32(offset, littleEndianPolygon) % 1000 !== 3) {\n throw new Error('WKB: Inner geometries of MultiPolygon not of type Polygon');\n }\n offset += 4;\n\n const parsed = parsePolygon(dataView, offset, dimension, littleEndianPolygon);\n offset = parsed.offset;\n binaryPolygonGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension);\n}\n\n// TODO - move to loaders.gl/schema/gis\n\nfunction concatenateBinaryPointGeometries(\n binaryPointGeometries: BinaryPointGeometry[],\n dimension: number\n): BinaryPointGeometry {\n const positions: TypedArray[] = binaryPointGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);\n\n return {\n type: 'Point',\n positions: {value: concatenatedPositions, size: dimension}\n };\n}\n\nfunction concatenateBinaryLineGeometries(\n binaryLineGeometries: BinaryLineGeometry[],\n dimension: number\n): BinaryLineGeometry {\n const lines: TypedArray[] = binaryLineGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);\n const pathIndices = lines.map((line) => line.length / dimension).map(cumulativeSum(0));\n pathIndices.unshift(0);\n\n return {\n type: 'LineString',\n positions: {value: concatenatedPositions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n };\n}\n\nfunction concatenateBinaryPolygonGeometries(\n binaryPolygonGeometries: BinaryPolygonGeometry[],\n dimension: number\n): BinaryPolygonGeometry {\n const polygons: TypedArray[] = [];\n const primitivePolygons: TypedArray[] = [];\n\n for (const binaryPolygon of binaryPolygonGeometries) {\n const {positions, primitivePolygonIndices} = binaryPolygon;\n polygons.push(positions.value);\n primitivePolygons.push(primitivePolygonIndices.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);\n const polygonIndices = polygons.map((p) => p.length / dimension).map(cumulativeSum(0));\n polygonIndices.unshift(0);\n\n // Combine primitivePolygonIndices from each individual polygon\n const primitivePolygonIndices = [0];\n for (const primitivePolygon of primitivePolygons) {\n primitivePolygonIndices.push(\n ...primitivePolygon\n .filter((x: number) => x > 0)\n .map((x: number) => x + primitivePolygonIndices[primitivePolygonIndices.length - 1])\n );\n }\n\n return {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {value: new Uint16Array(polygonIndices), size: 1},\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n };\n}\n\n// TODO: remove copy; import from typed-array-utils\n// modules/math/src/geometry/typed-arrays/typed-array-utils.js\nfunction concatTypedArrays(arrays: TypedArray[]): TypedArray {\n let byteLength = 0;\n for (let i = 0; i < arrays.length; ++i) {\n byteLength += arrays[i].byteLength;\n }\n const buffer = new Uint8Array(byteLength);\n\n let byteOffset = 0;\n for (let i = 0; i < arrays.length; ++i) {\n const data = new Uint8Array(arrays[i].buffer);\n byteLength = data.length;\n for (let j = 0; j < byteLength; ++j) {\n buffer[byteOffset++] = data[j];\n }\n }\n return buffer;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-wkb.js","names":["binaryToGeometry","parseWKBHeader","WKBGeometryType","parseWKB","arrayBuffer","options","_options$wkb","binaryGeometry","parseWKBToBinary","shape","wkb","console","error","Error","dataView","DataView","wkbHeader","geometryType","dimensions","littleEndian","offset","byteOffset","Point","point","parsePoint","geometry","LineString","line","parseLineString","Polygon","polygon","parsePolygon","MultiPoint","multiPoint","parseMultiPoint","type","MultiLineString","multiLine","parseMultiLineString","MultiPolygon","multiPolygon","parseMultiPolygon","dimension","positions","Float64Array","i","getFloat64","value","size","nPoints","getUint32","pathIndices","push","Uint16Array","cumulativeSum","sum","nRings","rings","parsed","concatenatedPositions","concatTypedArrays","buffer","polygonIndices","length","primitivePolygonIndices","map","l","unshift","binaryPointGeometries","littleEndianPoint","getUint8","concatenateBinaryPointGeometries","nLines","binaryLineGeometries","littleEndianLine","concatenateBinaryLineGeometries","nPolygons","binaryPolygonGeometries","littleEndianPolygon","concatenateBinaryPolygonGeometries","lines","polygons","primitivePolygons","binaryPolygon","p","primitivePolygon","filter","x","arrays","byteLength","Uint8Array","data","j"],"sources":["../../src/lib/parse-wkb.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {\n TypedArray,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry,\n Geometry\n} from '@loaders.gl/schema';\nimport {binaryToGeometry} from '@loaders.gl/gis';\nimport type {WKBLoaderOptions} from '../wkb-loader';\n\nimport {parseWKBHeader, WKBGeometryType} from './parse-wkb-header';\n\nexport function parseWKB(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry | Geometry {\n const binaryGeometry = parseWKBToBinary(arrayBuffer, options);\n const shape = options?.wkb?.shape || 'binary-geometry';\n switch (shape) {\n case 'binary-geometry':\n return binaryGeometry;\n case 'geojson-geometry':\n return binaryToGeometry(binaryGeometry);\n case 'geometry':\n console.error('WKBLoader: \"geometry\" shape is deprecated, use \"binary-geometry\" instead');\n return binaryToGeometry(binaryGeometry);\n default:\n throw new Error(shape);\n }\n}\n\nexport function parseWKBToBinary(\n arrayBuffer: ArrayBuffer,\n options?: WKBLoaderOptions\n): BinaryGeometry {\n const dataView = new DataView(arrayBuffer);\n\n const wkbHeader = parseWKBHeader(dataView);\n\n const {geometryType, dimensions, littleEndian} = wkbHeader;\n const offset = wkbHeader.byteOffset;\n\n switch (geometryType) {\n case WKBGeometryType.Point:\n const point = parsePoint(dataView, offset, dimensions, littleEndian);\n return point.geometry;\n case WKBGeometryType.LineString:\n const line = parseLineString(dataView, offset, dimensions, littleEndian);\n return line.geometry;\n case WKBGeometryType.Polygon:\n const polygon = parsePolygon(dataView, offset, dimensions, littleEndian);\n return polygon.geometry;\n case WKBGeometryType.MultiPoint:\n const multiPoint = parseMultiPoint(dataView, offset, dimensions, littleEndian);\n multiPoint.type = 'Point';\n return multiPoint;\n case WKBGeometryType.MultiLineString:\n const multiLine = parseMultiLineString(dataView, offset, dimensions, littleEndian);\n multiLine.type = 'LineString';\n return multiLine;\n case WKBGeometryType.MultiPolygon:\n const multiPolygon = parseMultiPolygon(dataView, offset, dimensions, littleEndian);\n multiPolygon.type = 'Polygon';\n return multiPolygon;\n // case WKBGeometryType.GeometryCollection:\n // TODO: handle GeometryCollections\n // return parseGeometryCollection(dataView, offset, dimensions, littleEndian);\n default:\n throw new Error(`WKB: Unsupported geometry type: ${geometryType}`);\n }\n}\n\n// Primitives; parse point and linear ring\nfunction parsePoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPointGeometry; offset: number} {\n const positions = new Float64Array(dimension);\n for (let i = 0; i < dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n return {\n geometry: {type: 'Point', positions: {value: positions, size: dimension}},\n offset\n };\n}\n\nfunction parseLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryLineGeometry; offset: number} {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n // Instantiate array\n const positions = new Float64Array(nPoints * dimension);\n for (let i = 0; i < nPoints * dimension; i++) {\n positions[i] = dataView.getFloat64(offset, littleEndian);\n offset += 8;\n }\n\n const pathIndices = [0];\n if (nPoints > 0) {\n pathIndices.push(nPoints);\n }\n\n return {\n geometry: {\n type: 'LineString',\n positions: {value: positions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n },\n offset\n };\n}\n\n// https://stackoverflow.com/a/55261098\nconst cumulativeSum = (sum: number) => (value: number) => (sum += value);\n\nfunction parsePolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): {geometry: BinaryPolygonGeometry; offset: number} {\n const nRings = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const rings: TypedArray[] = [];\n for (let i = 0; i < nRings; i++) {\n const parsed = parseLineString(dataView, offset, dimension, littleEndian);\n const {positions} = parsed.geometry;\n offset = parsed.offset;\n rings.push(positions.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(rings).buffer);\n const polygonIndices = [0];\n if (concatenatedPositions.length > 0) {\n polygonIndices.push(concatenatedPositions.length / dimension);\n }\n const primitivePolygonIndices = rings.map((l) => l.length / dimension).map(cumulativeSum(0));\n primitivePolygonIndices.unshift(0);\n\n return {\n geometry: {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {\n value: new Uint16Array(polygonIndices),\n size: 1\n },\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n },\n offset\n };\n}\n\nfunction parseMultiPoint(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPointGeometry {\n const nPoints = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPointGeometries: BinaryPointGeometry[] = [];\n for (let i = 0; i < nPoints; i++) {\n // Byte order for point\n const littleEndianPoint = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert point type\n if (dataView.getUint32(offset, littleEndianPoint) % 1000 !== 1) {\n throw new Error('WKB: Inner geometries of MultiPoint not of type Point');\n }\n\n offset += 4;\n\n const parsed = parsePoint(dataView, offset, dimension, littleEndianPoint);\n offset = parsed.offset;\n binaryPointGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPointGeometries(binaryPointGeometries, dimension);\n}\n\nfunction parseMultiLineString(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryLineGeometry {\n const nLines = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryLineGeometries: BinaryLineGeometry[] = [];\n for (let i = 0; i < nLines; i++) {\n // Byte order for line\n const littleEndianLine = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type LineString\n if (dataView.getUint32(offset, littleEndianLine) % 1000 !== 2) {\n throw new Error('WKB: Inner geometries of MultiLineString not of type LineString');\n }\n offset += 4;\n\n const parsed = parseLineString(dataView, offset, dimension, littleEndianLine);\n offset = parsed.offset;\n binaryLineGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryLineGeometries(binaryLineGeometries, dimension);\n}\n\nfunction parseMultiPolygon(\n dataView: DataView,\n offset: number,\n dimension: number,\n littleEndian: boolean\n): BinaryPolygonGeometry {\n const nPolygons = dataView.getUint32(offset, littleEndian);\n offset += 4;\n\n const binaryPolygonGeometries: BinaryPolygonGeometry[] = [];\n for (let i = 0; i < nPolygons; i++) {\n // Byte order for polygon\n const littleEndianPolygon = dataView.getUint8(offset) === 1;\n offset++;\n\n // Assert type Polygon\n if (dataView.getUint32(offset, littleEndianPolygon) % 1000 !== 3) {\n throw new Error('WKB: Inner geometries of MultiPolygon not of type Polygon');\n }\n offset += 4;\n\n const parsed = parsePolygon(dataView, offset, dimension, littleEndianPolygon);\n offset = parsed.offset;\n binaryPolygonGeometries.push(parsed.geometry);\n }\n\n return concatenateBinaryPolygonGeometries(binaryPolygonGeometries, dimension);\n}\n\n// TODO - move to loaders.gl/schema/gis\n\nfunction concatenateBinaryPointGeometries(\n binaryPointGeometries: BinaryPointGeometry[],\n dimension: number\n): BinaryPointGeometry {\n const positions: TypedArray[] = binaryPointGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(positions).buffer);\n\n return {\n type: 'Point',\n positions: {value: concatenatedPositions, size: dimension}\n };\n}\n\nfunction concatenateBinaryLineGeometries(\n binaryLineGeometries: BinaryLineGeometry[],\n dimension: number\n): BinaryLineGeometry {\n const lines: TypedArray[] = binaryLineGeometries.map((geometry) => geometry.positions.value);\n const concatenatedPositions = new Float64Array(concatTypedArrays(lines).buffer);\n const pathIndices = lines.map((line) => line.length / dimension).map(cumulativeSum(0));\n pathIndices.unshift(0);\n\n return {\n type: 'LineString',\n positions: {value: concatenatedPositions, size: dimension},\n pathIndices: {value: new Uint16Array(pathIndices), size: 1}\n };\n}\n\nfunction concatenateBinaryPolygonGeometries(\n binaryPolygonGeometries: BinaryPolygonGeometry[],\n dimension: number\n): BinaryPolygonGeometry {\n const polygons: TypedArray[] = [];\n const primitivePolygons: TypedArray[] = [];\n\n for (const binaryPolygon of binaryPolygonGeometries) {\n const {positions, primitivePolygonIndices} = binaryPolygon;\n polygons.push(positions.value);\n primitivePolygons.push(primitivePolygonIndices.value);\n }\n\n const concatenatedPositions = new Float64Array(concatTypedArrays(polygons).buffer);\n const polygonIndices = polygons.map((p) => p.length / dimension).map(cumulativeSum(0));\n polygonIndices.unshift(0);\n\n // Combine primitivePolygonIndices from each individual polygon\n const primitivePolygonIndices = [0];\n for (const primitivePolygon of primitivePolygons) {\n primitivePolygonIndices.push(\n ...primitivePolygon\n .filter((x: number) => x > 0)\n .map((x: number) => x + primitivePolygonIndices[primitivePolygonIndices.length - 1])\n );\n }\n\n return {\n type: 'Polygon',\n positions: {value: concatenatedPositions, size: dimension},\n polygonIndices: {value: new Uint16Array(polygonIndices), size: 1},\n primitivePolygonIndices: {value: new Uint16Array(primitivePolygonIndices), size: 1}\n };\n}\n\n// TODO: remove copy; import from typed-array-utils\n// modules/math/src/geometry/typed-arrays/typed-array-utils.js\nfunction concatTypedArrays(arrays: TypedArray[]): TypedArray {\n let byteLength = 0;\n for (let i = 0; i < arrays.length; ++i) {\n byteLength += arrays[i].byteLength;\n }\n const buffer = new Uint8Array(byteLength);\n\n let byteOffset = 0;\n for (let i = 0; i < arrays.length; ++i) {\n const data = new Uint8Array(arrays[i].buffer);\n byteLength = data.length;\n for (let j = 0; j < byteLength; ++j) {\n buffer[byteOffset++] = data[j];\n }\n }\n return buffer;\n}\n"],"mappings":"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"}
|
package/dist/twkb-loader.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Loader, LoaderWithParser, LoaderOptions } from '@loaders.gl/loader
|
|
|
2
2
|
import { BinaryGeometry, Geometry } from '@loaders.gl/schema';
|
|
3
3
|
export type WKBLoaderOptions = LoaderOptions & {
|
|
4
4
|
wkb?: {
|
|
5
|
-
shape: '
|
|
5
|
+
shape: 'geojson-geometry' | 'binary-geometry';
|
|
6
6
|
};
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twkb-loader.d.ts","sourceRoot":"","sources":["../src/twkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAI5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"twkb-loader.d.ts","sourceRoot":"","sources":["../src/twkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAI5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;KAC/C,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAgBtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAI3F,CAAC"}
|
package/dist/twkb-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twkb-loader.js","names":["VERSION","parseTWKBGeometry","isTWKB","TWKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","TWKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/twkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n shape: '
|
|
1
|
+
{"version":3,"file":"twkb-loader.js","names":["VERSION","parseTWKBGeometry","isTWKB","TWKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","TWKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/twkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n shape: 'geojson-geometry' | 'binary-geometry';\n };\n};\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const TWKBWorkerLoader: Loader<Geometry, never, WKBLoaderOptions> = {\n name: 'TWKB (Tiny Well-Known Binary)',\n id: 'twkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['twkb'],\n mimeTypes: [],\n // TODO can we define static, serializable tests, eg. some binary strings?\n tests: [isTWKB],\n options: {\n wkb: {\n shape: 'binary-geometry' // 'geojson-geometry'\n }\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const TWKBLoader: LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {\n ...TWKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseTWKBGeometry(arrayBuffer),\n parseSync: parseTWKBGeometry\n};\n"],"mappings":"SAKQA,OAAO;AAAA,SACPC,iBAAiB,EAAEC,MAAM;AAWjC,OAAO,MAAMC,gBAA2D,GAAG;EACzEC,IAAI,EAAE,+BAA+B;EACrCC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEP,OAAO;EAChBQ,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,EAAE;EAEbC,KAAK,EAAE,CAACV,MAAM,CAAC;EACfW,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,UAAgF,GAAG;EAC9F,GAAGb,gBAAgB;EACnBc,KAAK,EAAE,MAAOC,WAAwB,IAAKjB,iBAAiB,CAACiB,WAAW,CAAC;EACzEC,SAAS,EAAElB;AACb,CAAC"}
|
package/dist/wkb-loader.d.ts
CHANGED
|
@@ -2,13 +2,14 @@ import type { Loader, LoaderWithParser, LoaderOptions } from '@loaders.gl/loader
|
|
|
2
2
|
import { BinaryGeometry, Geometry } from '@loaders.gl/schema';
|
|
3
3
|
export type WKBLoaderOptions = LoaderOptions & {
|
|
4
4
|
wkb?: {
|
|
5
|
-
|
|
5
|
+
/** 'geometry' is deprecated use 'geojson-geometry' */
|
|
6
|
+
shape: 'geojson-geometry' | 'binary-geometry' | 'geometry';
|
|
6
7
|
};
|
|
7
8
|
};
|
|
8
9
|
/**
|
|
9
10
|
* Worker loader for WKB (Well-Known Binary)
|
|
10
11
|
*/
|
|
11
|
-
export declare const WKBWorkerLoader: Loader<
|
|
12
|
+
export declare const WKBWorkerLoader: Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions>;
|
|
12
13
|
/**
|
|
13
14
|
* Loader for WKB (Well-Known Binary)
|
|
14
15
|
*/
|
package/dist/wkb-loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkb-loader.d.ts","sourceRoot":"","sources":["../src/wkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAK5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"wkb-loader.d.ts","sourceRoot":"","sources":["../src/wkb-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAK5D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,sDAAsD;QACtD,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,UAAU,CAAC;KAC5D,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc,EAAE,KAAK,EAAE,gBAAgB,CAgBtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAI1F,CAAC"}
|
package/dist/wkb-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkb-loader.js","names":["VERSION","parseWKB","isWKB","WKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","WKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/wkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKB} from './lib/parse-wkb';\nimport {isWKB} from './lib/parse-wkb-header';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n shape: 'binary-geometry' | 'geometry';\n };\n};\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const WKBWorkerLoader: Loader<
|
|
1
|
+
{"version":3,"file":"wkb-loader.js","names":["VERSION","parseWKB","isWKB","WKBWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","tests","options","wkb","shape","WKBLoader","parse","arrayBuffer","parseSync"],"sources":["../src/wkb-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {BinaryGeometry, Geometry} from '@loaders.gl/schema';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKB} from './lib/parse-wkb';\nimport {isWKB} from './lib/parse-wkb-header';\n\nexport type WKBLoaderOptions = LoaderOptions & {\n wkb?: {\n /** 'geometry' is deprecated use 'geojson-geometry' */\n shape: 'geojson-geometry' | 'binary-geometry' | 'geometry';\n };\n};\n\n/**\n * Worker loader for WKB (Well-Known Binary)\n */\nexport const WKBWorkerLoader: Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions> = {\n name: 'WKB',\n id: 'wkb',\n module: 'wkt',\n version: VERSION,\n worker: true,\n category: 'geometry',\n extensions: ['wkb'],\n mimeTypes: [],\n // TODO can we define static, serializable tests, eg. some binary strings?\n tests: [isWKB],\n options: {\n wkb: {\n shape: 'binary-geometry' // 'geojson-geometry'\n }\n }\n};\n\n/**\n * Loader for WKB (Well-Known Binary)\n */\nexport const WKBLoader: LoaderWithParser<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {\n ...WKBWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer) => parseWKB(arrayBuffer),\n parseSync: parseWKB\n};\n"],"mappings":"SAKQA,OAAO;AAAA,SACPC,QAAQ;AAAA,SACRC,KAAK;AAYb,OAAO,MAAMC,eAA2E,GAAG;EACzFC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEP,OAAO;EAChBQ,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,EAAE;EAEbC,KAAK,EAAE,CAACV,KAAK,CAAC;EACdW,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE;IACT;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,SAA+E,GAAG;EAC7F,GAAGb,eAAe;EAClBc,KAAK,EAAE,MAAOC,WAAwB,IAAKjB,QAAQ,CAACiB,WAAW,CAAC;EAChEC,SAAS,EAAElB;AACb,CAAC"}
|
package/dist/wkt-loader.d.ts
CHANGED
|
@@ -3,12 +3,13 @@ import { Geometry } from '@loaders.gl/schema';
|
|
|
3
3
|
export type WKTLoaderOptions = LoaderOptions & {
|
|
4
4
|
/** Options for the WKT parser */
|
|
5
5
|
wkt?: {
|
|
6
|
-
|
|
6
|
+
shape?: 'geojson-geometry';
|
|
7
|
+
/** Whether to add any CRS, if found, as undocumented CRS property on the returned geometry */
|
|
7
8
|
crs?: boolean;
|
|
8
9
|
};
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
|
-
* Well-Known text loader
|
|
12
|
+
* Well-Known text worker loader
|
|
12
13
|
*/
|
|
13
14
|
export declare const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions>;
|
|
14
15
|
/**
|
package/dist/wkt-loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAG5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,iCAAiC;IACjC,GAAG,CAAC,EAAE;QACJ,
|
|
1
|
+
{"version":3,"file":"wkt-loader.d.ts","sourceRoot":"","sources":["../src/wkt-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAG5C,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,iCAAiC;IACjC,GAAG,CAAC,EAAE;QACJ,KAAK,CAAC,EAAE,kBAAkB,CAAC;QAC3B,8FAA8F;QAC9F,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAkBrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAIzE,CAAC"}
|
package/dist/wkt-loader.js
CHANGED
package/dist/wkt-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wkt-loader.js","names":["VERSION","parseWKT","isWKT","WKT_MAGIC_STRINGS","WKTWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","tests","testText","options","wkt","crs","WKTLoader","parse","arrayBuffer","TextDecoder","decode","parseTextSync"],"sources":["../src/wkt-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKT} from './lib/parse-wkt';\nimport {Geometry} from '@loaders.gl/schema';\nimport {isWKT, WKT_MAGIC_STRINGS} from './lib/parse-wkt';\n\nexport type WKTLoaderOptions = LoaderOptions & {\n /** Options for the WKT parser */\n wkt?: {\n /** Whether to add any CRS, if found, as undocumented CRS property on the
|
|
1
|
+
{"version":3,"file":"wkt-loader.js","names":["VERSION","parseWKT","isWKT","WKT_MAGIC_STRINGS","WKTWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","tests","testText","options","wkt","shape","crs","WKTLoader","parse","arrayBuffer","TextDecoder","decode","parseTextSync"],"sources":["../src/wkt-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseWKT} from './lib/parse-wkt';\nimport {Geometry} from '@loaders.gl/schema';\nimport {isWKT, WKT_MAGIC_STRINGS} from './lib/parse-wkt';\n\nexport type WKTLoaderOptions = LoaderOptions & {\n /** Options for the WKT parser */\n wkt?: {\n shape?: 'geojson-geometry'; // 'binary-geometry'\n /** Whether to add any CRS, if found, as undocumented CRS property on the returned geometry */\n crs?: boolean;\n };\n};\n\n/**\n * Well-Known text worker loader\n */\nexport const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions> = {\n name: 'WKT (Well-Known Text)',\n id: 'wkt',\n module: 'wkt',\n version: VERSION,\n worker: true,\n extensions: ['wkt'],\n mimeTypes: ['text/plain'],\n category: 'geometry',\n text: true,\n tests: WKT_MAGIC_STRINGS,\n testText: isWKT,\n options: {\n wkt: {\n shape: 'geojson-geometry',\n crs: true\n }\n }\n};\n\n/**\n * Well-Known text loader\n */\nexport const WKTLoader: LoaderWithParser<Geometry, never, WKTLoaderOptions> = {\n ...WKTWorkerLoader,\n parse: async (arrayBuffer, options) => parseWKT(new TextDecoder().decode(arrayBuffer), options),\n parseTextSync: parseWKT\n};\n"],"mappings":"SAIQA,OAAO;AAAA,SACPC,QAAQ;AAAA,SAERC,KAAK,EAAEC,iBAAiB;AAchC,OAAO,MAAMC,eAA0D,GAAG;EACxEC,IAAI,EAAE,uBAAuB;EAC7BC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAER,OAAO;EAChBS,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,YAAY,CAAC;EACzBC,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAEX,iBAAiB;EACxBY,QAAQ,EAAEb,KAAK;EACfc,OAAO,EAAE;IACPC,GAAG,EAAE;MACHC,KAAK,EAAE,kBAAkB;MACzBC,GAAG,EAAE;IACP;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,SAA8D,GAAG;EAC5E,GAAGhB,eAAe;EAClBiB,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEN,OAAO,KAAKf,QAAQ,CAAC,IAAIsB,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEN,OAAO,CAAC;EAC/FS,aAAa,EAAExB;AACjB,CAAC"}
|
package/dist/wkt-worker.js
CHANGED
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
// src/lib/utils/version.ts
|
|
201
|
-
var VERSION = true ? "4.0.
|
|
201
|
+
var VERSION = true ? "4.1.0-alpha.2" : "latest";
|
|
202
202
|
|
|
203
203
|
// src/lib/parse-wkt.ts
|
|
204
204
|
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
@@ -456,6 +456,7 @@
|
|
|
456
456
|
testText: isWKT,
|
|
457
457
|
options: {
|
|
458
458
|
wkt: {
|
|
459
|
+
shape: "geojson-geometry",
|
|
459
460
|
crs: true
|
|
460
461
|
}
|
|
461
462
|
}
|
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.
|
|
4
|
+
"version": "4.1.0-alpha.2",
|
|
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.
|
|
47
|
-
"@loaders.gl/schema": "4.0.
|
|
46
|
+
"@loaders.gl/loader-utils": "4.1.0-alpha.2",
|
|
47
|
+
"@loaders.gl/schema": "4.1.0-alpha.2"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "a248382edd20e846c1ccb23c15d089fb9b368dbc"
|
|
50
50
|
}
|
package/src/lib/parse-wkb.ts
CHANGED
|
@@ -23,7 +23,10 @@ export function parseWKB(
|
|
|
23
23
|
switch (shape) {
|
|
24
24
|
case 'binary-geometry':
|
|
25
25
|
return binaryGeometry;
|
|
26
|
+
case 'geojson-geometry':
|
|
27
|
+
return binaryToGeometry(binaryGeometry);
|
|
26
28
|
case 'geometry':
|
|
29
|
+
console.error('WKBLoader: "geometry" shape is deprecated, use "binary-geometry" instead');
|
|
27
30
|
return binaryToGeometry(binaryGeometry);
|
|
28
31
|
default:
|
|
29
32
|
throw new Error(shape);
|
package/src/twkb-loader.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';
|
|
|
8
8
|
|
|
9
9
|
export type WKBLoaderOptions = LoaderOptions & {
|
|
10
10
|
wkb?: {
|
|
11
|
-
shape: '
|
|
11
|
+
shape: 'geojson-geometry' | 'binary-geometry';
|
|
12
12
|
};
|
|
13
13
|
};
|
|
14
14
|
|
|
@@ -28,7 +28,7 @@ export const TWKBWorkerLoader: Loader<Geometry, never, WKBLoaderOptions> = {
|
|
|
28
28
|
tests: [isTWKB],
|
|
29
29
|
options: {
|
|
30
30
|
wkb: {
|
|
31
|
-
shape: 'binary-geometry'
|
|
31
|
+
shape: 'binary-geometry' // 'geojson-geometry'
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
};
|
package/src/wkb-loader.ts
CHANGED
|
@@ -9,14 +9,15 @@ import {isWKB} from './lib/parse-wkb-header';
|
|
|
9
9
|
|
|
10
10
|
export type WKBLoaderOptions = LoaderOptions & {
|
|
11
11
|
wkb?: {
|
|
12
|
-
|
|
12
|
+
/** 'geometry' is deprecated use 'geojson-geometry' */
|
|
13
|
+
shape: 'geojson-geometry' | 'binary-geometry' | 'geometry';
|
|
13
14
|
};
|
|
14
15
|
};
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Worker loader for WKB (Well-Known Binary)
|
|
18
19
|
*/
|
|
19
|
-
export const WKBWorkerLoader: Loader<
|
|
20
|
+
export const WKBWorkerLoader: Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions> = {
|
|
20
21
|
name: 'WKB',
|
|
21
22
|
id: 'wkb',
|
|
22
23
|
module: 'wkt',
|
|
@@ -29,7 +30,7 @@ export const WKBWorkerLoader: Loader<BinaryGeometry | Geometry, never, WKBLoader
|
|
|
29
30
|
tests: [isWKB],
|
|
30
31
|
options: {
|
|
31
32
|
wkb: {
|
|
32
|
-
shape: 'binary-geometry'
|
|
33
|
+
shape: 'binary-geometry' // 'geojson-geometry'
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
};
|
package/src/wkt-loader.ts
CHANGED
|
@@ -10,13 +10,14 @@ import {isWKT, WKT_MAGIC_STRINGS} from './lib/parse-wkt';
|
|
|
10
10
|
export type WKTLoaderOptions = LoaderOptions & {
|
|
11
11
|
/** Options for the WKT parser */
|
|
12
12
|
wkt?: {
|
|
13
|
-
|
|
13
|
+
shape?: 'geojson-geometry'; // 'binary-geometry'
|
|
14
|
+
/** Whether to add any CRS, if found, as undocumented CRS property on the returned geometry */
|
|
14
15
|
crs?: boolean;
|
|
15
16
|
};
|
|
16
17
|
};
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
|
-
* Well-Known text loader
|
|
20
|
+
* Well-Known text worker loader
|
|
20
21
|
*/
|
|
21
22
|
export const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions> = {
|
|
22
23
|
name: 'WKT (Well-Known Text)',
|
|
@@ -32,6 +33,7 @@ export const WKTWorkerLoader: Loader<Geometry, never, WKTLoaderOptions> = {
|
|
|
32
33
|
testText: isWKT,
|
|
33
34
|
options: {
|
|
34
35
|
wkt: {
|
|
36
|
+
shape: 'geojson-geometry',
|
|
35
37
|
crs: true
|
|
36
38
|
}
|
|
37
39
|
}
|