@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 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,CAW3B;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,cAAc,CAoChB"}
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"}
@@ -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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"}
@@ -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: 'binary-geometry' | 'geometry';
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,iBAAiB,GAAG,UAAU,CAAC;KACvC,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"}
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"}
@@ -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: 'binary-geometry' | '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'\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"}
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"}
@@ -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
- shape: 'binary-geometry' | 'geometry';
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<BinaryGeometry | Geometry, never, WKBLoaderOptions>;
12
+ export declare const WKBWorkerLoader: Loader<Geometry | BinaryGeometry, never, WKBLoaderOptions>;
12
13
  /**
13
14
  * Loader for WKB (Well-Known Binary)
14
15
  */
@@ -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;KACvC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAgBtF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,cAAc,GAAG,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAI1F,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"}
@@ -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<BinaryGeometry | Geometry, 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'\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;AAWb,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"}
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"}
@@ -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
- /** Whether to add any CRS, if found, as undocumented CRS property on the return geometry */
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
  /**
@@ -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,4FAA4F;QAC5F,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAiBrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAIzE,CAAC"}
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"}
@@ -15,6 +15,7 @@ export const WKTWorkerLoader = {
15
15
  testText: isWKT,
16
16
  options: {
17
17
  wkt: {
18
+ shape: 'geojson-geometry',
18
19
  crs: true
19
20
  }
20
21
  }
@@ -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 return geometry */\n crs?: boolean;\n };\n};\n\n/**\n * Well-Known text 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 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;AAahC,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,GAAG,EAAE;IACP;EACF;AACF,CAAC;AAKD,OAAO,MAAMC,SAA8D,GAAG;EAC5E,GAAGf,eAAe;EAClBgB,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEL,OAAO,KAAKf,QAAQ,CAAC,IAAIqB,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,WAAW,CAAC,EAAEL,OAAO,CAAC;EAC/FQ,aAAa,EAAEvB;AACjB,CAAC"}
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"}
@@ -198,7 +198,7 @@
198
198
  }
199
199
 
200
200
  // src/lib/utils/version.ts
201
- var VERSION = true ? "4.0.4" : "latest";
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",
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.4",
47
- "@loaders.gl/schema": "4.0.4"
46
+ "@loaders.gl/loader-utils": "4.1.0-alpha.2",
47
+ "@loaders.gl/schema": "4.1.0-alpha.2"
48
48
  },
49
- "gitHead": "4dc810fa04bb400f4aedfef98a83c7ef882ed3d7"
49
+ "gitHead": "a248382edd20e846c1ccb23c15d089fb9b368dbc"
50
50
  }
@@ -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);
@@ -8,7 +8,7 @@ import {parseTWKBGeometry, isTWKB} from './lib/parse-twkb';
8
8
 
9
9
  export type WKBLoaderOptions = LoaderOptions & {
10
10
  wkb?: {
11
- shape: 'binary-geometry' | 'geometry';
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
- shape: 'binary-geometry' | 'geometry';
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<BinaryGeometry | Geometry, never, WKBLoaderOptions> = {
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
- /** Whether to add any CRS, if found, as undocumented CRS property on the return geometry */
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
  }