@loaders.gl/wkt 4.0.3 → 4.1.0-alpha.1
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/lib/utils/base64-encoder.d.ts.map +1 -1
- package/dist/lib/utils/base64-encoder.js.map +1 -1
- package/dist/lib/utils/binary-reader.d.ts.map +1 -1
- package/dist/lib/utils/binary-reader.js.map +1 -1
- package/dist/lib/utils/hex-transcoder.d.ts.map +1 -1
- package/dist/lib/utils/hex-transcoder.js.map +1 -1
- package/dist/lib/utils/version.d.ts.map +1 -1
- package/dist/lib/utils/version.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 +5 -14
- package/package.json +4 -4
- package/src/lib/parse-wkb.ts +3 -0
- package/src/lib/utils/base64-encoder.ts +3 -0
- package/src/lib/utils/binary-reader.ts +3 -0
- package/src/lib/utils/hex-transcoder.ts +3 -0
- package/src/lib/utils/version.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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base64-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/base64-encoder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base64-encoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/base64-encoder.ts"],"names":[],"mappings":"AAyBA,qBAAa,aAAa;IACxB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAI3C,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW;CAC/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base64-encoder.js","names":["Base64Encoder","getDecodedLength","array","Math","ceil","byteLength","decode","target"],"sources":["../../../src/lib/utils/base64-encoder.ts"],"sourcesContent":["/* \nconst binary_to_b64_map = [\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',\n 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',\n 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a',\n 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',\n 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1',\n '2', '3', '4', '5', '6', '7', '8', '9', '+',\n '/', '='\n];\nconst b64_to_binary_map = {\n '0': 52, '1': 53, '2': 54, '3': 55, '4': 56, '5': 57, '6': 58, '7': 59, '8': 60, '9': 61,\n A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6, H: 7, I: 8, J: 9, K: 10, L: 11, M: 12, N: 13, O: 14,\n P: 15, Q: 16, R: 17, S: 18, T: 19, U: 20, V: 21, W: 22, X: 23, Y: 24, Z: 25, a: 26, b: 27,\n c: 28, d: 29, e: 30, f: 31, g: 32, h: 33, i: 34, j: 35, k: 36, l: 37, m: 38, n: 39, o: 40,\n p: 41, q: 42, r: 43, s: 44, t: 45, u: 46, v: 47, w: 48, x: 49, y: 50, z: 51, '+': 62, '/': 63,\n '=': 64\n};\n\n*/\n\nexport class Base64Encoder {\n getDecodedLength(array: Uint8Array): number {\n return Math.ceil(array.byteLength / 4) * 3;\n }\n\n decode(array: Uint8Array, target?: ArrayBuffer) {} // eslint-disable-line\n}\n\n/*\n\n//generates an array iterator that returns 3 elements at a time. Use to loop through the Uint8Array Array Buffer\n// to be converted to Base64. (binary array buffer) 8bits * 3 = 6bits * 4 (base64 representation)\nconst generateTripleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=3) {\n let result = [];\n result.push(arr[n]);\n\n if(n+1 < arr.length)\n result.push(arr[n+1]);\n if(n+2 < arr.length)\n result.push(arr[n+2]);\n\n yield result;\n }\n }\n };\n};\n\n//generates an array iterator that returns 4 elements at a time. Use to loop through\n// Base64 string because Base64 string is multiples of 4 characters.\nconst generateQuadrupleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=4) {\n yield [...arr.slice(n, n+4)];\n }\n }\n };\n};\n\n// Converts a triple of 8 bits into a quadruple of 6 bits. use to convert binary to base64 representation\nconst tripleConvert = (first, second, third) => {\n let [] = triple;\n let binary = null, a = null, b = null, c = null, d = null;\n if (triple.length === 1) {\n binary = (first << 4);\n a = ((binary & 4032) >>> 6);\n b = (binary & 63);\n c = 64;\n d = 64;\n } else if (triple.length === 2) {\n binary = ((first << 10) | (second << 2));\n a = ((binary & 258048) >>> 12);\n b = ((binary & 4032) >>> 6);\n c = (binary & 63);\n d = 64;\n } else {\n binary = ((first << 16) | (second << 8) | third);\n a = ((binary & 16515072) >>> 18);\n b = ((binary & 258048) >>> 12);\n c = ((binary & 4032) >>> 6);\n d = (binary & 63);\n }\n\n return [a, b, c, d];\n};\n\n// Converts a quadruple of 6 bits into a triple of 8 bits. use to convert base64 representation into binary\nconst quadrupleConvert = (quadruple) => {\n let [a, b, c, d] = quadruple;\n let binary = null, first = null, second = null, third = null;\n\n if(c === 64 && d === 64) {\n //two padding\n binary = ((a << 6) | b);\n first = (binary >> 4); //shift off 4 bits, 2 bits per padding\n } else if(d === 64) {\n //one padding\n binary = ((a << 12) | (b << 6) | c );\n binary = (binary >> 2); //shift off 2 bits\n first = binary >> 8;\n second = ((binary << 24) >>> 24);\n } else {\n //no padding\n binary = ((a << 18) | (b << 12) | (c << 6) | d );\n first = (binary >>> 16);\n second = ((binary << 16) >>> 24);\n third = ((binary << 24) >>> 24);\n }\n\n return [first, second, third];\n};\n\n// Convert 8Bits Array Buffer to Base64 string\nexport const ab2b64 = (buffer) => {\n const b64strArray = [];\n const view = new Uint8Array(buffer);\n let iterator = generateTripleIterator(view);\n for(let triple of iterator) {\n b64strArray.push(...tripleConvert(triple));\n }\n return b64strArray.map(b64CharCodePoint => binary_to_b64_map[b64CharCodePoint]).join(\"\");\n};\n\n// Convert Base64 String to 8Bits Array Buffer\nexport const b642ab = (b64str) => {\n let buffer_length = (b64str.length / 4) * 3;\n if(b64str.slice(-2) === '==') {\n buffer_length -= 2;\n } else if(b64str.slice(-1) === '=') {\n buffer_length -= 1;\n }\n\n let buffer = new ArrayBuffer(buffer_length);\n const view = new Uint8Array(buffer);\n let iterator = generateQuadrupleIterator(b64str.split(\"\").map(b64char => b64_to_binary_map[b64char]));\n let byteIndex = 0;\n for(let quadruple of iterator) {\n quadrupleConvert(quadruple).forEach(byte => {\n if(byte != null) {\n view[byteIndex] = byte;\n byteIndex++;\n }\n });\n }\n return buffer;\n};\n\n*/\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"base64-encoder.js","names":["Base64Encoder","getDecodedLength","array","Math","ceil","byteLength","decode","target"],"sources":["../../../src/lib/utils/base64-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/* \nconst binary_to_b64_map = [\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',\n 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',\n 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a',\n 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',\n 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1',\n '2', '3', '4', '5', '6', '7', '8', '9', '+',\n '/', '='\n];\nconst b64_to_binary_map = {\n '0': 52, '1': 53, '2': 54, '3': 55, '4': 56, '5': 57, '6': 58, '7': 59, '8': 60, '9': 61,\n A: 0, B: 1, C: 2, D: 3, E: 4, F: 5, G: 6, H: 7, I: 8, J: 9, K: 10, L: 11, M: 12, N: 13, O: 14,\n P: 15, Q: 16, R: 17, S: 18, T: 19, U: 20, V: 21, W: 22, X: 23, Y: 24, Z: 25, a: 26, b: 27,\n c: 28, d: 29, e: 30, f: 31, g: 32, h: 33, i: 34, j: 35, k: 36, l: 37, m: 38, n: 39, o: 40,\n p: 41, q: 42, r: 43, s: 44, t: 45, u: 46, v: 47, w: 48, x: 49, y: 50, z: 51, '+': 62, '/': 63,\n '=': 64\n};\n\n*/\n\nexport class Base64Encoder {\n getDecodedLength(array: Uint8Array): number {\n return Math.ceil(array.byteLength / 4) * 3;\n }\n\n decode(array: Uint8Array, target?: ArrayBuffer) {} // eslint-disable-line\n}\n\n/*\n\n//generates an array iterator that returns 3 elements at a time. Use to loop through the Uint8Array Array Buffer\n// to be converted to Base64. (binary array buffer) 8bits * 3 = 6bits * 4 (base64 representation)\nconst generateTripleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=3) {\n let result = [];\n result.push(arr[n]);\n\n if(n+1 < arr.length)\n result.push(arr[n+1]);\n if(n+2 < arr.length)\n result.push(arr[n+2]);\n\n yield result;\n }\n }\n };\n};\n\n//generates an array iterator that returns 4 elements at a time. Use to loop through\n// Base64 string because Base64 string is multiples of 4 characters.\nconst generateQuadrupleIterator = (arr) => {\n return {\n *[Symbol.iterator]() {\n for(let n = 0; n < arr.length; n+=4) {\n yield [...arr.slice(n, n+4)];\n }\n }\n };\n};\n\n// Converts a triple of 8 bits into a quadruple of 6 bits. use to convert binary to base64 representation\nconst tripleConvert = (first, second, third) => {\n let [] = triple;\n let binary = null, a = null, b = null, c = null, d = null;\n if (triple.length === 1) {\n binary = (first << 4);\n a = ((binary & 4032) >>> 6);\n b = (binary & 63);\n c = 64;\n d = 64;\n } else if (triple.length === 2) {\n binary = ((first << 10) | (second << 2));\n a = ((binary & 258048) >>> 12);\n b = ((binary & 4032) >>> 6);\n c = (binary & 63);\n d = 64;\n } else {\n binary = ((first << 16) | (second << 8) | third);\n a = ((binary & 16515072) >>> 18);\n b = ((binary & 258048) >>> 12);\n c = ((binary & 4032) >>> 6);\n d = (binary & 63);\n }\n\n return [a, b, c, d];\n};\n\n// Converts a quadruple of 6 bits into a triple of 8 bits. use to convert base64 representation into binary\nconst quadrupleConvert = (quadruple) => {\n let [a, b, c, d] = quadruple;\n let binary = null, first = null, second = null, third = null;\n\n if(c === 64 && d === 64) {\n //two padding\n binary = ((a << 6) | b);\n first = (binary >> 4); //shift off 4 bits, 2 bits per padding\n } else if(d === 64) {\n //one padding\n binary = ((a << 12) | (b << 6) | c );\n binary = (binary >> 2); //shift off 2 bits\n first = binary >> 8;\n second = ((binary << 24) >>> 24);\n } else {\n //no padding\n binary = ((a << 18) | (b << 12) | (c << 6) | d );\n first = (binary >>> 16);\n second = ((binary << 16) >>> 24);\n third = ((binary << 24) >>> 24);\n }\n\n return [first, second, third];\n};\n\n// Convert 8Bits Array Buffer to Base64 string\nexport const ab2b64 = (buffer) => {\n const b64strArray = [];\n const view = new Uint8Array(buffer);\n let iterator = generateTripleIterator(view);\n for(let triple of iterator) {\n b64strArray.push(...tripleConvert(triple));\n }\n return b64strArray.map(b64CharCodePoint => binary_to_b64_map[b64CharCodePoint]).join(\"\");\n};\n\n// Convert Base64 String to 8Bits Array Buffer\nexport const b642ab = (b64str) => {\n let buffer_length = (b64str.length / 4) * 3;\n if(b64str.slice(-2) === '==') {\n buffer_length -= 2;\n } else if(b64str.slice(-1) === '=') {\n buffer_length -= 1;\n }\n\n let buffer = new ArrayBuffer(buffer_length);\n const view = new Uint8Array(buffer);\n let iterator = generateQuadrupleIterator(b64str.split(\"\").map(b64char => b64_to_binary_map[b64char]));\n let byteIndex = 0;\n for(let quadruple of iterator) {\n quadrupleConvert(quadruple).forEach(byte => {\n if(byte != null) {\n view[byteIndex] = byte;\n byteIndex++;\n }\n });\n }\n return buffer;\n};\n\n*/\n"],"mappings":"AAyBA,OAAO,MAAMA,aAAa,CAAC;EACzBC,gBAAgBA,CAACC,KAAiB,EAAU;IAC1C,OAAOC,IAAI,CAACC,IAAI,CAACF,KAAK,CAACG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;EAC5C;EAEAC,MAAMA,CAACJ,KAAiB,EAAEK,MAAoB,EAAE,CAAC;AACnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/binary-reader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary-reader.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/binary-reader.ts"],"names":[],"mappings":"AAGA,uDAAuD;AACvD,qBAAa,YAAY;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;gBAEV,WAAW,EAAE,WAAW,EAAE,WAAW,GAAE,OAAe;IAOlE,SAAS;IAKT,UAAU;IAKV,UAAU;IAKV,QAAQ;IAKR,SAAS;IAKT,SAAS;IAKT,SAAS;IAKT,UAAU;IAMV,UAAU;CAgBX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-reader.js","names":["BinaryReader","constructor","arrayBuffer","isBigEndian","arguments","length","undefined","dataView","byteOffset","littleEndian","DataView","readUInt8","value","getUint8","readUInt16","getUint16","readUInt32","getUint32","readInt8","getInt8","readInt16","getInt16","readInt32","getInt32","readFloat","getFloat32","readDouble","getFloat64","readVarInt","result","bytesRead","nextByte"],"sources":["../../../src/lib/utils/binary-reader.ts"],"sourcesContent":["/** A DataView that tracks byte offset when reading. */\nexport class BinaryReader {\n arrayBuffer: ArrayBuffer;\n dataView: DataView;\n byteOffset: number;\n littleEndian: boolean;\n\n constructor(arrayBuffer: ArrayBuffer, isBigEndian: boolean = false) {\n this.arrayBuffer = arrayBuffer;\n this.dataView = new DataView(arrayBuffer);\n this.byteOffset = 0;\n this.littleEndian = !isBigEndian;\n }\n\n readUInt8() {\n const value = this.dataView.getUint8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readUInt16() {\n const value = this.dataView.getUint16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readUInt32() {\n const value = this.dataView.getUint32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readInt8() {\n const value = this.dataView.getInt8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readInt16() {\n const value = this.dataView.getInt16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readInt32() {\n const value = this.dataView.getInt32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readFloat() {\n const value = this.dataView.getFloat32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readDouble() {\n const value = this.dataView.getFloat64(this.byteOffset, this.littleEndian);\n this.byteOffset += 8;\n return value;\n }\n\n readVarInt() {\n let result = 0;\n let bytesRead = 0;\n\n let nextByte;\n do {\n // TODO - this needs to be accessed via data view?\n nextByte = this.dataView.getUint8(this.byteOffset + bytesRead);\n result += (nextByte & 0x7f) << (7 * bytesRead);\n bytesRead++;\n } while (nextByte >= 0x80);\n\n this.byteOffset += bytesRead;\n\n return result;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"binary-reader.js","names":["BinaryReader","constructor","arrayBuffer","isBigEndian","arguments","length","undefined","dataView","byteOffset","littleEndian","DataView","readUInt8","value","getUint8","readUInt16","getUint16","readUInt32","getUint32","readInt8","getInt8","readInt16","getInt16","readInt32","getInt32","readFloat","getFloat32","readDouble","getFloat64","readVarInt","result","bytesRead","nextByte"],"sources":["../../../src/lib/utils/binary-reader.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/** A DataView that tracks byte offset when reading. */\nexport class BinaryReader {\n arrayBuffer: ArrayBuffer;\n dataView: DataView;\n byteOffset: number;\n littleEndian: boolean;\n\n constructor(arrayBuffer: ArrayBuffer, isBigEndian: boolean = false) {\n this.arrayBuffer = arrayBuffer;\n this.dataView = new DataView(arrayBuffer);\n this.byteOffset = 0;\n this.littleEndian = !isBigEndian;\n }\n\n readUInt8() {\n const value = this.dataView.getUint8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readUInt16() {\n const value = this.dataView.getUint16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readUInt32() {\n const value = this.dataView.getUint32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readInt8() {\n const value = this.dataView.getInt8(this.byteOffset);\n this.byteOffset += 1;\n return value;\n }\n readInt16() {\n const value = this.dataView.getInt16(this.byteOffset, this.littleEndian);\n this.byteOffset += 2;\n return value;\n }\n readInt32() {\n const value = this.dataView.getInt32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readFloat() {\n const value = this.dataView.getFloat32(this.byteOffset, this.littleEndian);\n this.byteOffset += 4;\n return value;\n }\n readDouble() {\n const value = this.dataView.getFloat64(this.byteOffset, this.littleEndian);\n this.byteOffset += 8;\n return value;\n }\n\n readVarInt() {\n let result = 0;\n let bytesRead = 0;\n\n let nextByte;\n do {\n // TODO - this needs to be accessed via data view?\n nextByte = this.dataView.getUint8(this.byteOffset + bytesRead);\n result += (nextByte & 0x7f) << (7 * bytesRead);\n bytesRead++;\n } while (nextByte >= 0x80);\n\n this.byteOffset += bytesRead;\n\n return result;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hex-transcoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/hex-transcoder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hex-transcoder.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/hex-transcoder.ts"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQnD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAUpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hex-transcoder.js","names":["alphabet","encodeLookup","decodeLookup","i","encodeHex","array","length","string","decodeHex","sizeof","Uint8Array","n","charCodeAt"],"sources":["../../../src/lib/utils/hex-transcoder.ts"],"sourcesContent":["// Forked from https://github.com/jessetane/hex-transcoder under MIT license\n\nconst alphabet = '0123456789abcdef';\nconst encodeLookup: string[] = [];\nconst decodeLookup: number[] = [];\n\nfor (let i = 0; i < 256; i++) {\n encodeLookup[i] = alphabet[(i >> 4) & 0xf] + alphabet[i & 0xf];\n if (i < 16) {\n if (i < 10) {\n decodeLookup[0x30 + i] = i;\n } else {\n decodeLookup[0x61 - 10 + i] = i;\n }\n }\n}\n\n/**\n * Encode a Uint8Array to a hex string\n *\n * @param array Bytes to encode to string\n * @return hex string\n */\nexport function encodeHex(array: Uint8Array): string {\n const length = array.length;\n let string = '';\n let i = 0;\n while (i < length) {\n string += encodeLookup[array[i++]];\n }\n return string;\n}\n\n/**\n * Decodes a hex string to a Uint8Array\n *\n * @param string hex string to decode to Uint8Array\n * @return Uint8Array\n */\nexport function decodeHex(string: string): Uint8Array {\n const sizeof = string.length >> 1;\n const length = sizeof << 1;\n const array = new Uint8Array(sizeof);\n let n = 0;\n let i = 0;\n while (i < length) {\n array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)];\n }\n return array;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"hex-transcoder.js","names":["alphabet","encodeLookup","decodeLookup","i","encodeHex","array","length","string","decodeHex","sizeof","Uint8Array","n","charCodeAt"],"sources":["../../../src/lib/utils/hex-transcoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// Forked from https://github.com/jessetane/hex-transcoder under MIT license\n\nconst alphabet = '0123456789abcdef';\nconst encodeLookup: string[] = [];\nconst decodeLookup: number[] = [];\n\nfor (let i = 0; i < 256; i++) {\n encodeLookup[i] = alphabet[(i >> 4) & 0xf] + alphabet[i & 0xf];\n if (i < 16) {\n if (i < 10) {\n decodeLookup[0x30 + i] = i;\n } else {\n decodeLookup[0x61 - 10 + i] = i;\n }\n }\n}\n\n/**\n * Encode a Uint8Array to a hex string\n *\n * @param array Bytes to encode to string\n * @return hex string\n */\nexport function encodeHex(array: Uint8Array): string {\n const length = array.length;\n let string = '';\n let i = 0;\n while (i < length) {\n string += encodeLookup[array[i++]];\n }\n return string;\n}\n\n/**\n * Decodes a hex string to a Uint8Array\n *\n * @param string hex string to decode to Uint8Array\n * @return Uint8Array\n */\nexport function decodeHex(string: string): Uint8Array {\n const sizeof = string.length >> 1;\n const length = sizeof << 1;\n const array = new Uint8Array(sizeof);\n let n = 0;\n let i = 0;\n while (i < length) {\n array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)];\n }\n return array;\n}\n"],"mappings":"AAKA,MAAMA,QAAQ,GAAG,kBAAkB;AACnC,MAAMC,YAAsB,GAAG,EAAE;AACjC,MAAMC,YAAsB,GAAG,EAAE;AAEjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAAE;EAC5BF,YAAY,CAACE,CAAC,CAAC,GAAGH,QAAQ,CAAEG,CAAC,IAAI,CAAC,GAAI,GAAG,CAAC,GAAGH,QAAQ,CAACG,CAAC,GAAG,GAAG,CAAC;EAC9D,IAAIA,CAAC,GAAG,EAAE,EAAE;IACV,IAAIA,CAAC,GAAG,EAAE,EAAE;MACVD,YAAY,CAAC,IAAI,GAAGC,CAAC,CAAC,GAAGA,CAAC;IAC5B,CAAC,MAAM;MACLD,YAAY,CAAC,IAAI,GAAG,EAAE,GAAGC,CAAC,CAAC,GAAGA,CAAC;IACjC;EACF;AACF;AAQA,OAAO,SAASC,SAASA,CAACC,KAAiB,EAAU;EACnD,MAAMC,MAAM,GAAGD,KAAK,CAACC,MAAM;EAC3B,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIJ,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGG,MAAM,EAAE;IACjBC,MAAM,IAAIN,YAAY,CAACI,KAAK,CAACF,CAAC,EAAE,CAAC,CAAC;EACpC;EACA,OAAOI,MAAM;AACf;AAQA,OAAO,SAASC,SAASA,CAACD,MAAc,EAAc;EACpD,MAAME,MAAM,GAAGF,MAAM,CAACD,MAAM,IAAI,CAAC;EACjC,MAAMA,MAAM,GAAGG,MAAM,IAAI,CAAC;EAC1B,MAAMJ,KAAK,GAAG,IAAIK,UAAU,CAACD,MAAM,CAAC;EACpC,IAAIE,CAAC,GAAG,CAAC;EACT,IAAIR,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGG,MAAM,EAAE;IACjBD,KAAK,CAACM,CAAC,EAAE,CAAC,GAAIT,YAAY,CAACK,MAAM,CAACK,UAAU,CAACT,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAID,YAAY,CAACK,MAAM,CAACK,UAAU,CAACT,CAAC,EAAE,CAAC,CAAC;EACjG;EACA,OAAOE,KAAK;AACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/version.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,KAA8D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","names":["VERSION","__VERSION__"],"sources":["../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.js","names":["VERSION","__VERSION__"],"sources":["../../../src/lib/utils/version.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"mappings":"AAMA,OAAO,MAAMA,OAAO,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAGA,WAAW,GAAG,QAAQ"}
|
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
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
(() => {
|
|
3
|
+
// ../worker-utils/src/lib/node/worker_threads-browser.ts
|
|
4
|
+
var parentPort = null;
|
|
5
|
+
|
|
3
6
|
// ../worker-utils/src/lib/worker-utils/get-transfer-list.ts
|
|
4
7
|
function getTransferList(object, recursive = true, transfers) {
|
|
5
8
|
const transfersSet = transfers || /* @__PURE__ */ new Set();
|
|
@@ -37,19 +40,6 @@
|
|
|
37
40
|
|
|
38
41
|
// ../worker-utils/src/lib/worker-farm/worker-body.ts
|
|
39
42
|
async function getParentPort() {
|
|
40
|
-
let parentPort;
|
|
41
|
-
try {
|
|
42
|
-
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
43
|
-
parentPort = globalThis.parentPort;
|
|
44
|
-
} catch {
|
|
45
|
-
try {
|
|
46
|
-
eval("globalThis.workerThreadsPromise = import('worker_threads')");
|
|
47
|
-
const workerThreads = await globalThis.workerThreadsPromise;
|
|
48
|
-
parentPort = workerThreads.parentPort;
|
|
49
|
-
} catch (error) {
|
|
50
|
-
console.error(error.message);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
43
|
return parentPort;
|
|
54
44
|
}
|
|
55
45
|
var onMessageWrapperMap = /* @__PURE__ */ new Map();
|
|
@@ -208,7 +198,7 @@
|
|
|
208
198
|
}
|
|
209
199
|
|
|
210
200
|
// src/lib/utils/version.ts
|
|
211
|
-
var VERSION = true ? "4.0.
|
|
201
|
+
var VERSION = true ? "4.1.0-alpha.1" : "latest";
|
|
212
202
|
|
|
213
203
|
// src/lib/parse-wkt.ts
|
|
214
204
|
var numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
|
|
@@ -466,6 +456,7 @@
|
|
|
466
456
|
testText: isWKT,
|
|
467
457
|
options: {
|
|
468
458
|
wkt: {
|
|
459
|
+
shape: "geojson-geometry",
|
|
469
460
|
crs: true
|
|
470
461
|
}
|
|
471
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.1",
|
|
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.1",
|
|
47
|
+
"@loaders.gl/schema": "4.1.0-alpha.1"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "6a4d3da93d45115ad99861474a43c3f4a0b280a7"
|
|
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/lib/utils/version.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
1
4
|
// Version constant cannot be imported, it needs to correspond to the build version of **this** module.
|
|
2
5
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
3
6
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
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
|
}
|