@loaders.gl/flatgeobuf 4.1.0-alpha.9 → 4.2.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 +1 -1
- package/dist/flatgeobuf/3.27.2/column-meta.d.ts +1 -1
- package/dist/flatgeobuf/3.27.2/column-meta.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/column-meta.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/dumptree.js +3 -3
- package/dist/flatgeobuf/3.27.2/dumptree.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/feature.d.ts +1 -1
- package/dist/flatgeobuf/3.27.2/feature.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/feature.js +1 -1
- package/dist/flatgeobuf/3.27.2/feature.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/column.d.ts +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/column.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/column.js +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/column.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.d.ts +2 -2
- package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.js +2 -2
- package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.d.ts +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.js +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/header.d.ts +3 -3
- package/dist/flatgeobuf/3.27.2/flat-geobuf/header.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf/header.js +3 -3
- package/dist/flatgeobuf/3.27.2/flat-geobuf/header.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf.d.ts +5 -5
- package/dist/flatgeobuf/3.27.2/flat-geobuf.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/flat-geobuf.js +5 -5
- package/dist/flatgeobuf/3.27.2/flat-geobuf.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/feature.d.ts +4 -4
- package/dist/flatgeobuf/3.27.2/generic/feature.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/feature.js +3 -3
- package/dist/flatgeobuf/3.27.2/generic/feature.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/featurecollection.d.ts +6 -6
- package/dist/flatgeobuf/3.27.2/generic/featurecollection.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/featurecollection.js +12 -12
- package/dist/flatgeobuf/3.27.2/generic/featurecollection.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/geometry.d.ts +2 -2
- package/dist/flatgeobuf/3.27.2/generic/geometry.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/geometry.js +2 -2
- package/dist/flatgeobuf/3.27.2/generic/geometry.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/header.d.ts +3 -3
- package/dist/flatgeobuf/3.27.2/generic/header.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic/header.js +2 -2
- package/dist/flatgeobuf/3.27.2/generic/header.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic.d.ts +7 -7
- package/dist/flatgeobuf/3.27.2/generic.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/generic.js +4 -4
- package/dist/flatgeobuf/3.27.2/generic.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson/feature.d.ts +3 -3
- package/dist/flatgeobuf/3.27.2/geojson/feature.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson/feature.js +2 -2
- package/dist/flatgeobuf/3.27.2/geojson/feature.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson/featurecollection.d.ts +2 -2
- package/dist/flatgeobuf/3.27.2/geojson/featurecollection.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson/featurecollection.js +6 -6
- package/dist/flatgeobuf/3.27.2/geojson/featurecollection.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson/geometry.d.ts +3 -3
- package/dist/flatgeobuf/3.27.2/geojson/geometry.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson/geometry.js +2 -2
- package/dist/flatgeobuf/3.27.2/geojson/geometry.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson.d.ts +3 -3
- package/dist/flatgeobuf/3.27.2/geojson.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/geojson.js +1 -1
- package/dist/flatgeobuf/3.27.2/geojson.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/header-meta.d.ts +3 -3
- package/dist/flatgeobuf/3.27.2/header-meta.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/header-meta.js +1 -1
- package/dist/flatgeobuf/3.27.2/header-meta.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/header.d.ts +1 -1
- package/dist/flatgeobuf/3.27.2/header.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/header.js +1 -1
- package/dist/flatgeobuf/3.27.2/header.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/http-reader.d.ts +3 -3
- package/dist/flatgeobuf/3.27.2/http-reader.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/http-reader.js +6 -6
- package/dist/flatgeobuf/3.27.2/http-reader.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/index.d.ts +13 -13
- package/dist/flatgeobuf/3.27.2/index.d.ts.map +1 -1
- package/dist/flatgeobuf/3.27.2/index.js +13 -13
- package/dist/flatgeobuf/3.27.2/index.js.map +1 -1
- package/dist/flatgeobuf/3.27.2/packedrtree.js +2 -2
- package/dist/flatgeobuf/3.27.2/packedrtree.js.map +1 -1
- package/dist/flatgeobuf-loader.js +1 -1
- package/dist/flatgeobuf-worker.js +1 -1
- package/dist/lib/get-schema-from-fgb-header.d.ts.map +1 -1
- package/dist/lib/get-schema-from-fgb-header.js.map +1 -1
- package/dist/lib/parse-flatgeobuf.js +2 -2
- package/dist/lib/parse-flatgeobuf.js.map +1 -1
- package/package.json +6 -6
- package/src/flatgeobuf/3.27.2/column-meta.ts +1 -1
- package/src/flatgeobuf/3.27.2/dumptree.ts +3 -3
- package/src/flatgeobuf/3.27.2/feature.ts +1 -1
- package/src/flatgeobuf/3.27.2/flat-geobuf/column.ts +1 -1
- package/src/flatgeobuf/3.27.2/flat-geobuf/feature.ts +2 -2
- package/src/flatgeobuf/3.27.2/flat-geobuf/geometry.ts +1 -1
- package/src/flatgeobuf/3.27.2/flat-geobuf/header.ts +3 -3
- package/src/flatgeobuf/3.27.2/flat-geobuf.ts +5 -5
- package/src/flatgeobuf/3.27.2/generic/feature.ts +5 -5
- package/src/flatgeobuf/3.27.2/generic/featurecollection.ts +17 -17
- package/src/flatgeobuf/3.27.2/generic/geometry.ts +2 -2
- package/src/flatgeobuf/3.27.2/generic/header.ts +4 -4
- package/src/flatgeobuf/3.27.2/generic.ts +7 -7
- package/src/flatgeobuf/3.27.2/geojson/feature.ts +5 -5
- package/src/flatgeobuf/3.27.2/geojson/featurecollection.ts +10 -10
- package/src/flatgeobuf/3.27.2/geojson/geometry.ts +3 -3
- package/src/flatgeobuf/3.27.2/geojson.ts +4 -4
- package/src/flatgeobuf/3.27.2/header-meta.ts +4 -4
- package/src/flatgeobuf/3.27.2/header.ts +1 -1
- package/src/flatgeobuf/3.27.2/http-reader.ts +6 -6
- package/src/flatgeobuf/3.27.2/index.ts +14 -14
- package/src/flatgeobuf/3.27.2/packedrtree.ts +2 -2
- package/src/lib/get-schema-from-fgb-header.ts +2 -0
- package/src/lib/parse-flatgeobuf.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { Column } from './flat-geobuf/column
|
|
2
|
-
export { ColumnType } from './flat-geobuf/column-type
|
|
3
|
-
export { Crs } from './flat-geobuf/crs
|
|
4
|
-
export { GeometryType } from './flat-geobuf/geometry-type
|
|
5
|
-
export { Header } from './flat-geobuf/header
|
|
1
|
+
export { Column } from './flat-geobuf/column';
|
|
2
|
+
export { ColumnType } from './flat-geobuf/column-type';
|
|
3
|
+
export { Crs } from './flat-geobuf/crs';
|
|
4
|
+
export { GeometryType } from './flat-geobuf/geometry-type';
|
|
5
|
+
export { Header } from './flat-geobuf/header';
|
|
6
6
|
//# sourceMappingURL=flat-geobuf.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flat-geobuf.d.ts","sourceRoot":"","sources":["../../../src/flatgeobuf/3.27.2/flat-geobuf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"flat-geobuf.d.ts","sourceRoot":"","sources":["../../../src/flatgeobuf/3.27.2/flat-geobuf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAC,GAAG,EAAC,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { Column } from
|
|
2
|
-
export { ColumnType } from
|
|
3
|
-
export { Crs } from
|
|
4
|
-
export { GeometryType } from
|
|
5
|
-
export { Header } from
|
|
1
|
+
export { Column } from "./flat-geobuf/column.js";
|
|
2
|
+
export { ColumnType } from "./flat-geobuf/column-type.js";
|
|
3
|
+
export { Crs } from "./flat-geobuf/crs.js";
|
|
4
|
+
export { GeometryType } from "./flat-geobuf/geometry-type.js";
|
|
5
|
+
export { Header } from "./flat-geobuf/header.js";
|
|
6
6
|
//# sourceMappingURL=flat-geobuf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flat-geobuf.js","names":["Column","ColumnType","Crs","GeometryType","Header"],"sources":["../../../src/flatgeobuf/3.27.2/flat-geobuf.ts"],"sourcesContent":["// automatically generated by the FlatBuffers compiler, do not modify\n\nexport {Column} from './flat-geobuf/column
|
|
1
|
+
{"version":3,"file":"flat-geobuf.js","names":["Column","ColumnType","Crs","GeometryType","Header"],"sources":["../../../src/flatgeobuf/3.27.2/flat-geobuf.ts"],"sourcesContent":["// automatically generated by the FlatBuffers compiler, do not modify\n\nexport {Column} from './flat-geobuf/column';\nexport {ColumnType} from './flat-geobuf/column-type';\nexport {Crs} from './flat-geobuf/crs';\nexport {GeometryType} from './flat-geobuf/geometry-type';\nexport {Header} from './flat-geobuf/header';\n"],"mappings":"SAEQA,MAAM;AAAA,SACNC,UAAU;AAAA,SACVC,GAAG;AAAA,SACHC,YAAY;AAAA,SACZC,MAAM"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import ColumnMeta from '../column-meta
|
|
2
|
-
import { Feature } from '../flat-geobuf/feature
|
|
3
|
-
import HeaderMeta from '../header-meta
|
|
4
|
-
import { ISimpleGeometry, ICreateGeometry, IParsedGeometry } from './geometry
|
|
1
|
+
import ColumnMeta from '../column-meta';
|
|
2
|
+
import { Feature } from '../flat-geobuf/feature';
|
|
3
|
+
import HeaderMeta from '../header-meta';
|
|
4
|
+
import { ISimpleGeometry, ICreateGeometry, IParsedGeometry } from './geometry';
|
|
5
5
|
export interface IFeature {
|
|
6
6
|
getGeometry?(): ISimpleGeometry;
|
|
7
7
|
getProperties?(): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/feature.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/feature.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAC/C,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAgB,eAAe,EAAE,eAAe,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AAK5F,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,IAAI,eAAe,CAAC;IAChC,aAAa,CAAC,IAAI,GAAG,CAAC;IACtB,aAAa,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;CAC1D;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;CAC9E;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAChD;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,eAAe,EAC/B,aAAa,EAAE,cAAc,GAC5B,QAAQ,CAMV;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,UAAU,GACjB,UAAU,CAyGZ;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0FzB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as flatbuffers from 'flatbuffers';
|
|
2
|
-
import { ColumnType } from
|
|
3
|
-
import { Feature } from
|
|
4
|
-
import { buildGeometry } from
|
|
2
|
+
import { ColumnType } from "../flat-geobuf/column-type.js";
|
|
3
|
+
import { Feature } from "../flat-geobuf/feature.js";
|
|
4
|
+
import { buildGeometry } from "./geometry.js";
|
|
5
5
|
const textEncoder = new TextEncoder();
|
|
6
6
|
const textDecoder = new TextDecoder();
|
|
7
7
|
export function fromFeature(feature, header, createGeometry, createFeature) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.js","names":["flatbuffers","ColumnType","Feature","buildGeometry","textEncoder","TextEncoder","textDecoder","TextDecoder","fromFeature","feature","header","createGeometry","createFeature","columns","geometry","simpleGeometry","geometryType","properties","parseProperties","buildFeature","builder","Builder","offset","capacity","bytes","Uint8Array","view","DataView","buffer","prep","size","Math","max","newBytes","set","i","length","column","value","name","setUint16","type","Bool","setUint8","Short","setInt16","UShort","Int","setInt32","UInt","setUint32","Long","setBigInt64","BigInt","Float","setFloat32","Double","setFloat64","DateTime","String","str","encode","Json","JSON","stringify","Error","propertiesOffset","createPropertiesVector","slice","geometryOffset","startFeature","addGeometry","addProperties","featureOffset","endFeature","finishSizePrefixed","asUint8Array","array","propertiesArray","byteOffset","propertiesLength","getUint16","Boolean","getUint8","Byte","getInt8","UByte","getInt16","getInt32","getUint32","Number","getBigInt64","ULong","getBigUint64","getFloat32","getFloat64","decode","subarray","parse"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/feature.ts"],"sourcesContent":["import * as flatbuffers from 'flatbuffers';\n\nimport ColumnMeta from '../column-meta.js';\nimport {ColumnType} from '../flat-geobuf/column-type.js';\nimport {Feature} from '../flat-geobuf/feature.js';\nimport HeaderMeta from '../header-meta.js';\nimport {buildGeometry, ISimpleGeometry, ICreateGeometry, IParsedGeometry} from './geometry.js';\n\nconst textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\n\nexport interface IFeature {\n getGeometry?(): ISimpleGeometry;\n getProperties?(): any;\n setProperties?(properties: Record<string, unknown>): any;\n}\n\nexport interface ICreateFeature {\n (geometry?: ISimpleGeometry, properties?: Record<string, unknown>): IFeature;\n}\n\nexport interface IProperties {\n [key: string]: boolean | number | string | any;\n}\n\nexport function fromFeature(\n feature: Feature,\n header: HeaderMeta,\n createGeometry: ICreateGeometry,\n createFeature: ICreateFeature\n): IFeature {\n const columns = header.columns;\n const geometry = feature.geometry();\n const simpleGeometry = createGeometry(geometry, header.geometryType);\n const properties = parseProperties(feature, columns as ColumnMeta[]);\n return createFeature(simpleGeometry, properties);\n}\n\nexport function buildFeature(\n geometry: IParsedGeometry,\n properties: IProperties,\n header: HeaderMeta\n): Uint8Array {\n const columns = header.columns;\n const builder = new flatbuffers.Builder();\n\n let offset = 0;\n let capacity = 1024;\n let bytes = new Uint8Array(capacity);\n let view = new DataView(bytes.buffer);\n\n const prep = function (size: number) {\n if (offset + size < capacity) return;\n capacity = Math.max(capacity + size, capacity * 2);\n const newBytes = new Uint8Array(capacity);\n newBytes.set(bytes);\n bytes = newBytes;\n view = new DataView(bytes.buffer);\n };\n\n if (columns) {\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i];\n const value = properties[column.name];\n if (value === null) continue;\n prep(2);\n view.setUint16(offset, i, true);\n offset += 2;\n switch (column.type) {\n case ColumnType.Bool:\n prep(1);\n view.setUint8(offset, value as number);\n offset += 1;\n break;\n case ColumnType.Short:\n prep(2);\n view.setInt16(offset, value as number, true);\n offset += 2;\n break;\n case ColumnType.UShort:\n prep(2);\n view.setUint16(offset, value as number, true);\n offset += 2;\n break;\n case ColumnType.Int:\n prep(4);\n view.setInt32(offset, value as number, true);\n offset += 4;\n break;\n case ColumnType.UInt:\n prep(4);\n view.setUint32(offset, value as number, true);\n offset += 4;\n break;\n case ColumnType.Long:\n prep(8);\n view.setBigInt64(offset, BigInt(value), true);\n offset += 8;\n break;\n case ColumnType.Float:\n prep(4);\n view.setFloat32(offset, value as number, true);\n offset += 4;\n break;\n case ColumnType.Double:\n prep(8);\n view.setFloat64(offset, value as number, true);\n offset += 8;\n break;\n case ColumnType.DateTime:\n case ColumnType.String: {\n const str = textEncoder.encode(value);\n prep(4);\n view.setUint32(offset, str.length, true);\n offset += 4;\n prep(str.length);\n bytes.set(str, offset);\n offset += str.length;\n break;\n }\n case ColumnType.Json: {\n const str = textEncoder.encode(JSON.stringify(value));\n prep(4);\n view.setUint32(offset, str.length, true);\n offset += 4;\n prep(str.length);\n bytes.set(str, offset);\n offset += str.length;\n break;\n }\n default:\n throw new Error(`Unknown type ${column.type}`);\n }\n }\n }\n\n let propertiesOffset: number | null = null;\n if (offset > 0)\n propertiesOffset = Feature.createPropertiesVector(builder, bytes.slice(0, offset));\n\n const geometryOffset = buildGeometry(builder, geometry);\n Feature.startFeature(builder);\n Feature.addGeometry(builder, geometryOffset);\n if (propertiesOffset) Feature.addProperties(builder, propertiesOffset);\n const featureOffset = Feature.endFeature(builder);\n builder.finishSizePrefixed(featureOffset);\n return builder.asUint8Array();\n}\n\nexport function parseProperties(\n feature: Feature,\n columns?: ColumnMeta[] | null\n): Record<string, unknown> {\n const properties: Record<string, unknown> = {};\n if (!columns || columns.length === 0) return properties;\n const array = feature.propertiesArray();\n if (!array) return properties;\n const view = new DataView(array.buffer, array.byteOffset);\n const length = feature.propertiesLength();\n let offset = 0;\n while (offset < length) {\n const i = view.getUint16(offset, true);\n offset += 2;\n const column = columns[i];\n const name = column.name;\n switch (column.type) {\n case ColumnType.Bool: {\n properties[name] = Boolean(view.getUint8(offset));\n offset += 1;\n break;\n }\n case ColumnType.Byte: {\n properties[name] = view.getInt8(offset);\n offset += 1;\n break;\n }\n case ColumnType.UByte: {\n properties[name] = view.getUint8(offset);\n offset += 1;\n break;\n }\n case ColumnType.Short: {\n properties[name] = view.getInt16(offset, true);\n offset += 2;\n break;\n }\n case ColumnType.UShort: {\n properties[name] = view.getUint16(offset, true);\n offset += 2;\n break;\n }\n case ColumnType.Int: {\n properties[name] = view.getInt32(offset, true);\n offset += 4;\n break;\n }\n case ColumnType.UInt: {\n properties[name] = view.getUint32(offset, true);\n offset += 4;\n break;\n }\n case ColumnType.Long: {\n properties[name] = Number(view.getBigInt64(offset, true));\n offset += 8;\n break;\n }\n case ColumnType.ULong: {\n properties[name] = Number(view.getBigUint64(offset, true));\n offset += 8;\n break;\n }\n case ColumnType.Float: {\n properties[name] = view.getFloat32(offset, true);\n offset += 4;\n break;\n }\n case ColumnType.Double: {\n properties[name] = view.getFloat64(offset, true);\n offset += 8;\n break;\n }\n case ColumnType.DateTime:\n case ColumnType.String: {\n const length = view.getUint32(offset, true);\n offset += 4;\n properties[name] = textDecoder.decode(array.subarray(offset, offset + length));\n offset += length;\n break;\n }\n case ColumnType.Json: {\n const length = view.getUint32(offset, true);\n offset += 4;\n const str = textDecoder.decode(array.subarray(offset, offset + length));\n properties[name] = JSON.parse(str);\n offset += length;\n break;\n }\n default:\n throw new Error(`Unknown type ${column.type}`);\n }\n }\n return properties;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feature.js","names":["flatbuffers","ColumnType","Feature","buildGeometry","textEncoder","TextEncoder","textDecoder","TextDecoder","fromFeature","feature","header","createGeometry","createFeature","columns","geometry","simpleGeometry","geometryType","properties","parseProperties","buildFeature","builder","Builder","offset","capacity","bytes","Uint8Array","view","DataView","buffer","prep","size","Math","max","newBytes","set","i","length","column","value","name","setUint16","type","Bool","setUint8","Short","setInt16","UShort","Int","setInt32","UInt","setUint32","Long","setBigInt64","BigInt","Float","setFloat32","Double","setFloat64","DateTime","String","str","encode","Json","JSON","stringify","Error","propertiesOffset","createPropertiesVector","slice","geometryOffset","startFeature","addGeometry","addProperties","featureOffset","endFeature","finishSizePrefixed","asUint8Array","array","propertiesArray","byteOffset","propertiesLength","getUint16","Boolean","getUint8","Byte","getInt8","UByte","getInt16","getInt32","getUint32","Number","getBigInt64","ULong","getBigUint64","getFloat32","getFloat64","decode","subarray","parse"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/feature.ts"],"sourcesContent":["import * as flatbuffers from 'flatbuffers';\n\nimport ColumnMeta from '../column-meta';\nimport {ColumnType} from '../flat-geobuf/column-type';\nimport {Feature} from '../flat-geobuf/feature';\nimport HeaderMeta from '../header-meta';\nimport {buildGeometry, ISimpleGeometry, ICreateGeometry, IParsedGeometry} from './geometry';\n\nconst textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\n\nexport interface IFeature {\n getGeometry?(): ISimpleGeometry;\n getProperties?(): any;\n setProperties?(properties: Record<string, unknown>): any;\n}\n\nexport interface ICreateFeature {\n (geometry?: ISimpleGeometry, properties?: Record<string, unknown>): IFeature;\n}\n\nexport interface IProperties {\n [key: string]: boolean | number | string | any;\n}\n\nexport function fromFeature(\n feature: Feature,\n header: HeaderMeta,\n createGeometry: ICreateGeometry,\n createFeature: ICreateFeature\n): IFeature {\n const columns = header.columns;\n const geometry = feature.geometry();\n const simpleGeometry = createGeometry(geometry, header.geometryType);\n const properties = parseProperties(feature, columns as ColumnMeta[]);\n return createFeature(simpleGeometry, properties);\n}\n\nexport function buildFeature(\n geometry: IParsedGeometry,\n properties: IProperties,\n header: HeaderMeta\n): Uint8Array {\n const columns = header.columns;\n const builder = new flatbuffers.Builder();\n\n let offset = 0;\n let capacity = 1024;\n let bytes = new Uint8Array(capacity);\n let view = new DataView(bytes.buffer);\n\n const prep = function (size: number) {\n if (offset + size < capacity) return;\n capacity = Math.max(capacity + size, capacity * 2);\n const newBytes = new Uint8Array(capacity);\n newBytes.set(bytes);\n bytes = newBytes;\n view = new DataView(bytes.buffer);\n };\n\n if (columns) {\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i];\n const value = properties[column.name];\n if (value === null) continue;\n prep(2);\n view.setUint16(offset, i, true);\n offset += 2;\n switch (column.type) {\n case ColumnType.Bool:\n prep(1);\n view.setUint8(offset, value as number);\n offset += 1;\n break;\n case ColumnType.Short:\n prep(2);\n view.setInt16(offset, value as number, true);\n offset += 2;\n break;\n case ColumnType.UShort:\n prep(2);\n view.setUint16(offset, value as number, true);\n offset += 2;\n break;\n case ColumnType.Int:\n prep(4);\n view.setInt32(offset, value as number, true);\n offset += 4;\n break;\n case ColumnType.UInt:\n prep(4);\n view.setUint32(offset, value as number, true);\n offset += 4;\n break;\n case ColumnType.Long:\n prep(8);\n view.setBigInt64(offset, BigInt(value), true);\n offset += 8;\n break;\n case ColumnType.Float:\n prep(4);\n view.setFloat32(offset, value as number, true);\n offset += 4;\n break;\n case ColumnType.Double:\n prep(8);\n view.setFloat64(offset, value as number, true);\n offset += 8;\n break;\n case ColumnType.DateTime:\n case ColumnType.String: {\n const str = textEncoder.encode(value);\n prep(4);\n view.setUint32(offset, str.length, true);\n offset += 4;\n prep(str.length);\n bytes.set(str, offset);\n offset += str.length;\n break;\n }\n case ColumnType.Json: {\n const str = textEncoder.encode(JSON.stringify(value));\n prep(4);\n view.setUint32(offset, str.length, true);\n offset += 4;\n prep(str.length);\n bytes.set(str, offset);\n offset += str.length;\n break;\n }\n default:\n throw new Error(`Unknown type ${column.type}`);\n }\n }\n }\n\n let propertiesOffset: number | null = null;\n if (offset > 0)\n propertiesOffset = Feature.createPropertiesVector(builder, bytes.slice(0, offset));\n\n const geometryOffset = buildGeometry(builder, geometry);\n Feature.startFeature(builder);\n Feature.addGeometry(builder, geometryOffset);\n if (propertiesOffset) Feature.addProperties(builder, propertiesOffset);\n const featureOffset = Feature.endFeature(builder);\n builder.finishSizePrefixed(featureOffset);\n return builder.asUint8Array();\n}\n\nexport function parseProperties(\n feature: Feature,\n columns?: ColumnMeta[] | null\n): Record<string, unknown> {\n const properties: Record<string, unknown> = {};\n if (!columns || columns.length === 0) return properties;\n const array = feature.propertiesArray();\n if (!array) return properties;\n const view = new DataView(array.buffer, array.byteOffset);\n const length = feature.propertiesLength();\n let offset = 0;\n while (offset < length) {\n const i = view.getUint16(offset, true);\n offset += 2;\n const column = columns[i];\n const name = column.name;\n switch (column.type) {\n case ColumnType.Bool: {\n properties[name] = Boolean(view.getUint8(offset));\n offset += 1;\n break;\n }\n case ColumnType.Byte: {\n properties[name] = view.getInt8(offset);\n offset += 1;\n break;\n }\n case ColumnType.UByte: {\n properties[name] = view.getUint8(offset);\n offset += 1;\n break;\n }\n case ColumnType.Short: {\n properties[name] = view.getInt16(offset, true);\n offset += 2;\n break;\n }\n case ColumnType.UShort: {\n properties[name] = view.getUint16(offset, true);\n offset += 2;\n break;\n }\n case ColumnType.Int: {\n properties[name] = view.getInt32(offset, true);\n offset += 4;\n break;\n }\n case ColumnType.UInt: {\n properties[name] = view.getUint32(offset, true);\n offset += 4;\n break;\n }\n case ColumnType.Long: {\n properties[name] = Number(view.getBigInt64(offset, true));\n offset += 8;\n break;\n }\n case ColumnType.ULong: {\n properties[name] = Number(view.getBigUint64(offset, true));\n offset += 8;\n break;\n }\n case ColumnType.Float: {\n properties[name] = view.getFloat32(offset, true);\n offset += 4;\n break;\n }\n case ColumnType.Double: {\n properties[name] = view.getFloat64(offset, true);\n offset += 8;\n break;\n }\n case ColumnType.DateTime:\n case ColumnType.String: {\n const length = view.getUint32(offset, true);\n offset += 4;\n properties[name] = textDecoder.decode(array.subarray(offset, offset + length));\n offset += length;\n break;\n }\n case ColumnType.Json: {\n const length = view.getUint32(offset, true);\n offset += 4;\n const str = textDecoder.decode(array.subarray(offset, offset + length));\n properties[name] = JSON.parse(str);\n offset += length;\n break;\n }\n default:\n throw new Error(`Unknown type ${column.type}`);\n }\n }\n return properties;\n}\n"],"mappings":"AAAA,OAAO,KAAKA,WAAW,MAAM,aAAa;AAAC,SAGnCC,UAAU;AAAA,SACVC,OAAO;AAAA,SAEPC,aAAa;AAErB,MAAMC,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC;AACrC,MAAMC,WAAW,GAAG,IAAIC,WAAW,CAAC,CAAC;AAgBrC,OAAO,SAASC,WAAWA,CACzBC,OAAgB,EAChBC,MAAkB,EAClBC,cAA+B,EAC/BC,aAA6B,EACnB;EACV,MAAMC,OAAO,GAAGH,MAAM,CAACG,OAAO;EAC9B,MAAMC,QAAQ,GAAGL,OAAO,CAACK,QAAQ,CAAC,CAAC;EACnC,MAAMC,cAAc,GAAGJ,cAAc,CAACG,QAAQ,EAAEJ,MAAM,CAACM,YAAY,CAAC;EACpE,MAAMC,UAAU,GAAGC,eAAe,CAACT,OAAO,EAAEI,OAAuB,CAAC;EACpE,OAAOD,aAAa,CAACG,cAAc,EAAEE,UAAU,CAAC;AAClD;AAEA,OAAO,SAASE,YAAYA,CAC1BL,QAAyB,EACzBG,UAAuB,EACvBP,MAAkB,EACN;EACZ,MAAMG,OAAO,GAAGH,MAAM,CAACG,OAAO;EAC9B,MAAMO,OAAO,GAAG,IAAIpB,WAAW,CAACqB,OAAO,CAAC,CAAC;EAEzC,IAAIC,MAAM,GAAG,CAAC;EACd,IAAIC,QAAQ,GAAG,IAAI;EACnB,IAAIC,KAAK,GAAG,IAAIC,UAAU,CAACF,QAAQ,CAAC;EACpC,IAAIG,IAAI,GAAG,IAAIC,QAAQ,CAACH,KAAK,CAACI,MAAM,CAAC;EAErC,MAAMC,IAAI,GAAG,SAAAA,CAAUC,IAAY,EAAE;IACnC,IAAIR,MAAM,GAAGQ,IAAI,GAAGP,QAAQ,EAAE;IAC9BA,QAAQ,GAAGQ,IAAI,CAACC,GAAG,CAACT,QAAQ,GAAGO,IAAI,EAAEP,QAAQ,GAAG,CAAC,CAAC;IAClD,MAAMU,QAAQ,GAAG,IAAIR,UAAU,CAACF,QAAQ,CAAC;IACzCU,QAAQ,CAACC,GAAG,CAACV,KAAK,CAAC;IACnBA,KAAK,GAAGS,QAAQ;IAChBP,IAAI,GAAG,IAAIC,QAAQ,CAACH,KAAK,CAACI,MAAM,CAAC;EACnC,CAAC;EAED,IAAIf,OAAO,EAAE;IACX,KAAK,IAAIsB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGtB,OAAO,CAACuB,MAAM,EAAED,CAAC,EAAE,EAAE;MACvC,MAAME,MAAM,GAAGxB,OAAO,CAACsB,CAAC,CAAC;MACzB,MAAMG,KAAK,GAAGrB,UAAU,CAACoB,MAAM,CAACE,IAAI,CAAC;MACrC,IAAID,KAAK,KAAK,IAAI,EAAE;MACpBT,IAAI,CAAC,CAAC,CAAC;MACPH,IAAI,CAACc,SAAS,CAAClB,MAAM,EAAEa,CAAC,EAAE,IAAI,CAAC;MAC/Bb,MAAM,IAAI,CAAC;MACX,QAAQe,MAAM,CAACI,IAAI;QACjB,KAAKxC,UAAU,CAACyC,IAAI;UAClBb,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAACiB,QAAQ,CAACrB,MAAM,EAAEgB,KAAe,CAAC;UACtChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAAC2C,KAAK;UACnBf,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAACmB,QAAQ,CAACvB,MAAM,EAAEgB,KAAK,EAAY,IAAI,CAAC;UAC5ChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAAC6C,MAAM;UACpBjB,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAACc,SAAS,CAAClB,MAAM,EAAEgB,KAAK,EAAY,IAAI,CAAC;UAC7ChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAAC8C,GAAG;UACjBlB,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAACsB,QAAQ,CAAC1B,MAAM,EAAEgB,KAAK,EAAY,IAAI,CAAC;UAC5ChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAACgD,IAAI;UAClBpB,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAACwB,SAAS,CAAC5B,MAAM,EAAEgB,KAAK,EAAY,IAAI,CAAC;UAC7ChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAACkD,IAAI;UAClBtB,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAAC0B,WAAW,CAAC9B,MAAM,EAAE+B,MAAM,CAACf,KAAK,CAAC,EAAE,IAAI,CAAC;UAC7ChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAACqD,KAAK;UACnBzB,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAAC6B,UAAU,CAACjC,MAAM,EAAEgB,KAAK,EAAY,IAAI,CAAC;UAC9ChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAACuD,MAAM;UACpB3B,IAAI,CAAC,CAAC,CAAC;UACPH,IAAI,CAAC+B,UAAU,CAACnC,MAAM,EAAEgB,KAAK,EAAY,IAAI,CAAC;UAC9ChB,MAAM,IAAI,CAAC;UACX;QACF,KAAKrB,UAAU,CAACyD,QAAQ;QACxB,KAAKzD,UAAU,CAAC0D,MAAM;UAAE;YACtB,MAAMC,GAAG,GAAGxD,WAAW,CAACyD,MAAM,CAACvB,KAAK,CAAC;YACrCT,IAAI,CAAC,CAAC,CAAC;YACPH,IAAI,CAACwB,SAAS,CAAC5B,MAAM,EAAEsC,GAAG,CAACxB,MAAM,EAAE,IAAI,CAAC;YACxCd,MAAM,IAAI,CAAC;YACXO,IAAI,CAAC+B,GAAG,CAACxB,MAAM,CAAC;YAChBZ,KAAK,CAACU,GAAG,CAAC0B,GAAG,EAAEtC,MAAM,CAAC;YACtBA,MAAM,IAAIsC,GAAG,CAACxB,MAAM;YACpB;UACF;QACA,KAAKnC,UAAU,CAAC6D,IAAI;UAAE;YACpB,MAAMF,GAAG,GAAGxD,WAAW,CAACyD,MAAM,CAACE,IAAI,CAACC,SAAS,CAAC1B,KAAK,CAAC,CAAC;YACrDT,IAAI,CAAC,CAAC,CAAC;YACPH,IAAI,CAACwB,SAAS,CAAC5B,MAAM,EAAEsC,GAAG,CAACxB,MAAM,EAAE,IAAI,CAAC;YACxCd,MAAM,IAAI,CAAC;YACXO,IAAI,CAAC+B,GAAG,CAACxB,MAAM,CAAC;YAChBZ,KAAK,CAACU,GAAG,CAAC0B,GAAG,EAAEtC,MAAM,CAAC;YACtBA,MAAM,IAAIsC,GAAG,CAACxB,MAAM;YACpB;UACF;QACA;UACE,MAAM,IAAI6B,KAAK,CAAE,gBAAe5B,MAAM,CAACI,IAAK,EAAC,CAAC;MAClD;IACF;EACF;EAEA,IAAIyB,gBAA+B,GAAG,IAAI;EAC1C,IAAI5C,MAAM,GAAG,CAAC,EACZ4C,gBAAgB,GAAGhE,OAAO,CAACiE,sBAAsB,CAAC/C,OAAO,EAAEI,KAAK,CAAC4C,KAAK,CAAC,CAAC,EAAE9C,MAAM,CAAC,CAAC;EAEpF,MAAM+C,cAAc,GAAGlE,aAAa,CAACiB,OAAO,EAAEN,QAAQ,CAAC;EACvDZ,OAAO,CAACoE,YAAY,CAAClD,OAAO,CAAC;EAC7BlB,OAAO,CAACqE,WAAW,CAACnD,OAAO,EAAEiD,cAAc,CAAC;EAC5C,IAAIH,gBAAgB,EAAEhE,OAAO,CAACsE,aAAa,CAACpD,OAAO,EAAE8C,gBAAgB,CAAC;EACtE,MAAMO,aAAa,GAAGvE,OAAO,CAACwE,UAAU,CAACtD,OAAO,CAAC;EACjDA,OAAO,CAACuD,kBAAkB,CAACF,aAAa,CAAC;EACzC,OAAOrD,OAAO,CAACwD,YAAY,CAAC,CAAC;AAC/B;AAEA,OAAO,SAAS1D,eAAeA,CAC7BT,OAAgB,EAChBI,OAA6B,EACJ;EACzB,MAAMI,UAAmC,GAAG,CAAC,CAAC;EAC9C,IAAI,CAACJ,OAAO,IAAIA,OAAO,CAACuB,MAAM,KAAK,CAAC,EAAE,OAAOnB,UAAU;EACvD,MAAM4D,KAAK,GAAGpE,OAAO,CAACqE,eAAe,CAAC,CAAC;EACvC,IAAI,CAACD,KAAK,EAAE,OAAO5D,UAAU;EAC7B,MAAMS,IAAI,GAAG,IAAIC,QAAQ,CAACkD,KAAK,CAACjD,MAAM,EAAEiD,KAAK,CAACE,UAAU,CAAC;EACzD,MAAM3C,MAAM,GAAG3B,OAAO,CAACuE,gBAAgB,CAAC,CAAC;EACzC,IAAI1D,MAAM,GAAG,CAAC;EACd,OAAOA,MAAM,GAAGc,MAAM,EAAE;IACtB,MAAMD,CAAC,GAAGT,IAAI,CAACuD,SAAS,CAAC3D,MAAM,EAAE,IAAI,CAAC;IACtCA,MAAM,IAAI,CAAC;IACX,MAAMe,MAAM,GAAGxB,OAAO,CAACsB,CAAC,CAAC;IACzB,MAAMI,IAAI,GAAGF,MAAM,CAACE,IAAI;IACxB,QAAQF,MAAM,CAACI,IAAI;MACjB,KAAKxC,UAAU,CAACyC,IAAI;QAAE;UACpBzB,UAAU,CAACsB,IAAI,CAAC,GAAG2C,OAAO,CAACxD,IAAI,CAACyD,QAAQ,CAAC7D,MAAM,CAAC,CAAC;UACjDA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAACmF,IAAI;QAAE;UACpBnE,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAAC2D,OAAO,CAAC/D,MAAM,CAAC;UACvCA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAACqF,KAAK;QAAE;UACrBrE,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAACyD,QAAQ,CAAC7D,MAAM,CAAC;UACxCA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAAC2C,KAAK;QAAE;UACrB3B,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAAC6D,QAAQ,CAACjE,MAAM,EAAE,IAAI,CAAC;UAC9CA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAAC6C,MAAM;QAAE;UACtB7B,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAACuD,SAAS,CAAC3D,MAAM,EAAE,IAAI,CAAC;UAC/CA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAAC8C,GAAG;QAAE;UACnB9B,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAAC8D,QAAQ,CAAClE,MAAM,EAAE,IAAI,CAAC;UAC9CA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAACgD,IAAI;QAAE;UACpBhC,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAAC+D,SAAS,CAACnE,MAAM,EAAE,IAAI,CAAC;UAC/CA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAACkD,IAAI;QAAE;UACpBlC,UAAU,CAACsB,IAAI,CAAC,GAAGmD,MAAM,CAAChE,IAAI,CAACiE,WAAW,CAACrE,MAAM,EAAE,IAAI,CAAC,CAAC;UACzDA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAAC2F,KAAK;QAAE;UACrB3E,UAAU,CAACsB,IAAI,CAAC,GAAGmD,MAAM,CAAChE,IAAI,CAACmE,YAAY,CAACvE,MAAM,EAAE,IAAI,CAAC,CAAC;UAC1DA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAACqD,KAAK;QAAE;UACrBrC,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAACoE,UAAU,CAACxE,MAAM,EAAE,IAAI,CAAC;UAChDA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAACuD,MAAM;QAAE;UACtBvC,UAAU,CAACsB,IAAI,CAAC,GAAGb,IAAI,CAACqE,UAAU,CAACzE,MAAM,EAAE,IAAI,CAAC;UAChDA,MAAM,IAAI,CAAC;UACX;QACF;MACA,KAAKrB,UAAU,CAACyD,QAAQ;MACxB,KAAKzD,UAAU,CAAC0D,MAAM;QAAE;UACtB,MAAMvB,MAAM,GAAGV,IAAI,CAAC+D,SAAS,CAACnE,MAAM,EAAE,IAAI,CAAC;UAC3CA,MAAM,IAAI,CAAC;UACXL,UAAU,CAACsB,IAAI,CAAC,GAAGjC,WAAW,CAAC0F,MAAM,CAACnB,KAAK,CAACoB,QAAQ,CAAC3E,MAAM,EAAEA,MAAM,GAAGc,MAAM,CAAC,CAAC;UAC9Ed,MAAM,IAAIc,MAAM;UAChB;QACF;MACA,KAAKnC,UAAU,CAAC6D,IAAI;QAAE;UACpB,MAAM1B,MAAM,GAAGV,IAAI,CAAC+D,SAAS,CAACnE,MAAM,EAAE,IAAI,CAAC;UAC3CA,MAAM,IAAI,CAAC;UACX,MAAMsC,GAAG,GAAGtD,WAAW,CAAC0F,MAAM,CAACnB,KAAK,CAACoB,QAAQ,CAAC3E,MAAM,EAAEA,MAAM,GAAGc,MAAM,CAAC,CAAC;UACvEnB,UAAU,CAACsB,IAAI,CAAC,GAAGwB,IAAI,CAACmC,KAAK,CAACtC,GAAG,CAAC;UAClCtC,MAAM,IAAIc,MAAM;UAChB;QACF;MACA;QACE,MAAM,IAAI6B,KAAK,CAAE,gBAAe5B,MAAM,CAACI,IAAK,EAAC,CAAC;IAClD;EACF;EACA,OAAOxB,UAAU;AACnB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import ColumnMeta from '../column-meta
|
|
2
|
-
import { Feature } from '../flat-geobuf/feature
|
|
3
|
-
import HeaderMeta from '../header-meta
|
|
4
|
-
import { IFeature } from './feature
|
|
5
|
-
import { Rect } from '../packedrtree
|
|
6
|
-
import { HeaderMetaFn } from '../generic
|
|
1
|
+
import ColumnMeta from '../column-meta';
|
|
2
|
+
import { Feature } from '../flat-geobuf/feature';
|
|
3
|
+
import HeaderMeta from '../header-meta';
|
|
4
|
+
import { IFeature } from './feature';
|
|
5
|
+
import { Rect } from '../packedrtree';
|
|
6
|
+
import { HeaderMetaFn } from '../generic';
|
|
7
7
|
export type FromFeatureFn = (feature: Feature, header: HeaderMeta) => IFeature;
|
|
8
8
|
/**
|
|
9
9
|
* Serialize generic features to FlatGeobuf
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featurecollection.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/featurecollection.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"featurecollection.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/featurecollection.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAMxC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAC/C,OAAO,UAA4B,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAe,QAAQ,EAAC,MAAM,WAAW,CAAC;AAGjD,OAAO,EAAC,IAAI,EAAe,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAIxC,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,KAAK,QAAQ,CAAC;AAG/E;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,CAsB1D;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,aAAa,EAC1B,YAAY,CAAC,EAAE,YAAY,GAC1B,QAAQ,EAAE,CA0BZ;AAED,wBAAuB,iBAAiB,CACtC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,aAAa,EAC1B,YAAY,CAAC,EAAE,YAAY,GAC1B,cAAc,CAAC,QAAQ,CAAC,CAuB1B;AAED,wBAAuB,mBAAmB,CACxC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,aAAa,EAC1B,YAAY,CAAC,EAAE,YAAY,GAC1B,cAAc,CAAC,QAAQ,CAAC,CAQ1B;AA4BD,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAqB1D;AAaD,wBAAgB,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAahE"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import * as flatbuffers from 'flatbuffers';
|
|
2
2
|
import slice from 'slice-source';
|
|
3
|
-
import { Header } from
|
|
4
|
-
import { Column } from
|
|
5
|
-
import { ColumnType } from
|
|
6
|
-
import { Feature } from
|
|
7
|
-
import { fromByteBuffer } from
|
|
8
|
-
import { buildFeature } from
|
|
9
|
-
import { HttpReader } from
|
|
10
|
-
import Logger from
|
|
11
|
-
import { calcTreeSize } from
|
|
12
|
-
import { parseGeometry } from
|
|
13
|
-
import { magicbytes, SIZE_PREFIX_LEN } from
|
|
14
|
-
import { inferGeometryType } from
|
|
3
|
+
import { Header } from "../flat-geobuf/header.js";
|
|
4
|
+
import { Column } from "../flat-geobuf/column.js";
|
|
5
|
+
import { ColumnType } from "../flat-geobuf/column-type.js";
|
|
6
|
+
import { Feature } from "../flat-geobuf/feature.js";
|
|
7
|
+
import { fromByteBuffer } from "../header-meta.js";
|
|
8
|
+
import { buildFeature } from "./feature.js";
|
|
9
|
+
import { HttpReader } from "../http-reader.js";
|
|
10
|
+
import Logger from "../logger.js";
|
|
11
|
+
import { calcTreeSize } from "../packedrtree.js";
|
|
12
|
+
import { parseGeometry } from "./geometry.js";
|
|
13
|
+
import { magicbytes, SIZE_PREFIX_LEN } from "../constants.js";
|
|
14
|
+
import { inferGeometryType } from "./header.js";
|
|
15
15
|
export function serialize(features) {
|
|
16
16
|
const headerMeta = introspectHeaderMeta(features);
|
|
17
17
|
const header = buildHeader(headerMeta);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featurecollection.js","names":["flatbuffers","slice","Header","Column","ColumnType","Feature","fromByteBuffer","buildFeature","HttpReader","Logger","calcTreeSize","parseGeometry","magicbytes","SIZE_PREFIX_LEN","inferGeometryType","serialize","features","headerMeta","introspectHeaderMeta","header","buildHeader","featureBuffers","map","f","getGeometry","Error","getProperties","geometryType","featuresLength","length","reduce","a","b","uint8","Uint8Array","set","offset","feature","deserialize","bytes","fromFeature","headerMetaFn","subarray","every","v","i","bb","ByteBuffer","headerLength","readUint32","setPosition","indexNodeSize","featuresCount","capacity","featureLength","getRootAsFeature","push","deserializeStream","stream","reader","read","size","treeSize","readFeature","deserializeFiltered","url","rect","open","debug","selectBbox","byteLength","bytesAligned","buildColumn","builder","column","nameOffset","createString","name","startColumn","addName","addType","type","endColumn","Builder","columnOffsets","columns","createColumnsVector","c","startHeader","addFeaturesCount","BigInt","addGeometryType","addIndexNodeSize","addColumns","endHeader","finishSizePrefixed","asUint8Array","valueToType","value","Bool","Int","Double","String","Json","mapColumn","properties","k","title","description","width","precision","scale","nullable","unique","primary_key","sampleFeature","Object","keys","filter","key","envelope","crs","metadata"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/featurecollection.ts"],"sourcesContent":["import * as flatbuffers from 'flatbuffers';\nimport slice from 'slice-source';\n\nimport ColumnMeta from '../column-meta.js';\n\nimport {Header} from '../flat-geobuf/header.js';\n\nimport {Column} from '../flat-geobuf/column.js';\nimport {ColumnType} from '../flat-geobuf/column-type.js';\nimport {Feature} from '../flat-geobuf/feature.js';\nimport HeaderMeta, {fromByteBuffer} from '../header-meta.js';\n\nimport {buildFeature, IFeature} from './feature.js';\nimport {HttpReader} from '../http-reader.js';\nimport Logger from '../logger.js';\nimport {Rect, calcTreeSize} from '../packedrtree.js';\nimport {parseGeometry} from './geometry.js';\nimport {HeaderMetaFn} from '../generic.js';\nimport {magicbytes, SIZE_PREFIX_LEN} from '../constants.js';\nimport {inferGeometryType} from './header.js';\n\nexport type FromFeatureFn = (feature: Feature, header: HeaderMeta) => IFeature;\ntype ReadFn = (size: number, purpose: string) => Promise<ArrayBuffer>;\n\n/**\n * Serialize generic features to FlatGeobuf\n * @param features\n */\nexport function serialize(features: IFeature[]): Uint8Array {\n const headerMeta = introspectHeaderMeta(features);\n const header = buildHeader(headerMeta);\n const featureBuffers: Uint8Array[] = features.map((f) => {\n if (!f.getGeometry) throw new Error('Missing getGeometry implementation');\n if (!f.getProperties) throw new Error('Missing getProperties implementation');\n return buildFeature(\n parseGeometry(f.getGeometry(), headerMeta.geometryType),\n f.getProperties(),\n headerMeta\n );\n });\n const featuresLength = featureBuffers.map((f) => f.length).reduce((a, b) => a + b);\n const uint8 = new Uint8Array(magicbytes.length + header.length + featuresLength);\n uint8.set(header, magicbytes.length);\n let offset = magicbytes.length + header.length;\n for (const feature of featureBuffers) {\n uint8.set(feature, offset);\n offset += feature.length;\n }\n uint8.set(magicbytes);\n return uint8;\n}\n\nexport function deserialize(\n bytes: Uint8Array,\n fromFeature: FromFeatureFn,\n headerMetaFn?: HeaderMetaFn\n): IFeature[] {\n if (!bytes.subarray(0, 3).every((v, i) => magicbytes[i] === v))\n throw new Error('Not a FlatGeobuf file');\n\n const bb = new flatbuffers.ByteBuffer(bytes);\n const headerLength = bb.readUint32(magicbytes.length);\n bb.setPosition(magicbytes.length + SIZE_PREFIX_LEN);\n\n const headerMeta = fromByteBuffer(bb);\n if (headerMetaFn) headerMetaFn(headerMeta);\n\n let offset = magicbytes.length + SIZE_PREFIX_LEN + headerLength;\n\n const {indexNodeSize, featuresCount} = headerMeta;\n if (indexNodeSize > 0) offset += calcTreeSize(featuresCount, indexNodeSize);\n\n const features: IFeature[] = [];\n while (offset < bb.capacity()) {\n const featureLength = bb.readUint32(offset);\n bb.setPosition(offset + SIZE_PREFIX_LEN);\n const feature = Feature.getRootAsFeature(bb);\n features.push(fromFeature(feature, headerMeta));\n offset += SIZE_PREFIX_LEN + featureLength;\n }\n\n return features;\n}\n\nexport async function* deserializeStream(\n stream: ReadableStream,\n fromFeature: FromFeatureFn,\n headerMetaFn?: HeaderMetaFn\n): AsyncGenerator<IFeature> {\n const reader = slice(stream);\n const read: ReadFn = async (size) => await reader.slice(size);\n\n let bytes = new Uint8Array(await read(8, 'magic bytes'));\n if (!bytes.subarray(0, 3).every((v, i) => magicbytes[i] === v))\n throw new Error('Not a FlatGeobuf file');\n bytes = new Uint8Array(await read(4, 'header length'));\n let bb = new flatbuffers.ByteBuffer(bytes);\n const headerLength = bb.readUint32(0);\n bytes = new Uint8Array(await read(headerLength, 'header data'));\n bb = new flatbuffers.ByteBuffer(bytes);\n\n const headerMeta = fromByteBuffer(bb);\n if (headerMetaFn) headerMetaFn(headerMeta);\n\n const {indexNodeSize, featuresCount} = headerMeta;\n if (indexNodeSize > 0) {\n const treeSize = calcTreeSize(featuresCount, indexNodeSize);\n await read(treeSize, 'entire index, w/o rect');\n }\n let feature: IFeature | undefined;\n while ((feature = await readFeature(read, headerMeta, fromFeature))) yield feature;\n}\n\nexport async function* deserializeFiltered(\n url: string,\n rect: Rect,\n fromFeature: FromFeatureFn,\n headerMetaFn?: HeaderMetaFn\n): AsyncGenerator<IFeature> {\n const reader = await HttpReader.open(url);\n Logger.debug('opened reader');\n if (headerMetaFn) headerMetaFn(reader.header);\n\n for await (const feature of reader.selectBbox(rect)) {\n yield fromFeature(feature, reader.header);\n }\n}\n\nasync function readFeature(\n read: ReadFn,\n headerMeta: HeaderMeta,\n fromFeature: FromFeatureFn\n): Promise<IFeature | undefined> {\n let bytes = new Uint8Array(await read(4, 'feature length'));\n if (bytes.byteLength === 0) return;\n let bb = new flatbuffers.ByteBuffer(bytes);\n const featureLength = bb.readUint32(0);\n bytes = new Uint8Array(await read(featureLength, 'feature data'));\n const bytesAligned = new Uint8Array(featureLength + 4);\n bytesAligned.set(bytes, 4);\n bb = new flatbuffers.ByteBuffer(bytesAligned);\n bb.setPosition(SIZE_PREFIX_LEN);\n const feature = Feature.getRootAsFeature(bb);\n return fromFeature(feature, headerMeta);\n}\n\nfunction buildColumn(builder: flatbuffers.Builder, column: ColumnMeta): number {\n const nameOffset = builder.createString(column.name);\n Column.startColumn(builder);\n Column.addName(builder, nameOffset);\n Column.addType(builder, column.type);\n return Column.endColumn(builder);\n}\n\nexport function buildHeader(header: HeaderMeta): Uint8Array {\n const builder = new flatbuffers.Builder();\n\n let columnOffsets: number | null = null;\n if (header.columns)\n columnOffsets = Header.createColumnsVector(\n builder,\n header.columns.map((c) => buildColumn(builder, c))\n );\n\n const nameOffset = builder.createString('L1');\n\n Header.startHeader(builder);\n Header.addFeaturesCount(builder, BigInt(header.featuresCount));\n Header.addGeometryType(builder, header.geometryType);\n Header.addIndexNodeSize(builder, 0);\n if (columnOffsets) Header.addColumns(builder, columnOffsets);\n Header.addName(builder, nameOffset);\n const offset = Header.endHeader(builder);\n builder.finishSizePrefixed(offset);\n return builder.asUint8Array();\n}\n\nfunction valueToType(value: boolean | number | string): ColumnType {\n if (typeof value === 'boolean') return ColumnType.Bool;\n else if (typeof value === 'number')\n if (value % 1 === 0) return ColumnType.Int;\n else return ColumnType.Double;\n else if (typeof value === 'string') return ColumnType.String;\n else if (value === null) return ColumnType.String;\n else if (typeof value === 'object') return ColumnType.Json;\n throw new Error(`Unknown type (value '${value}')`);\n}\n\nexport function mapColumn(properties: any, k: string): ColumnMeta {\n return {\n name: k,\n type: valueToType(properties[k]),\n title: null,\n description: null,\n width: -1,\n precision: -1,\n scale: -1,\n nullable: true,\n unique: false,\n primary_key: false\n };\n}\n\nfunction introspectHeaderMeta(features: IFeature[]): HeaderMeta {\n const sampleFeature = features[0];\n const properties = sampleFeature.getProperties ? sampleFeature.getProperties() : {};\n\n let columns: ColumnMeta[] | null = null;\n if (properties)\n columns = Object.keys(properties)\n .filter((key) => key !== 'geometry')\n .map((k) => mapColumn(properties, k));\n\n const geometryType = inferGeometryType(features);\n const headerMeta: HeaderMeta = {\n geometryType,\n columns,\n envelope: null,\n featuresCount: features.length,\n indexNodeSize: 0,\n crs: null,\n title: null,\n description: null,\n metadata: null\n };\n return headerMeta;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"featurecollection.js","names":["flatbuffers","slice","Header","Column","ColumnType","Feature","fromByteBuffer","buildFeature","HttpReader","Logger","calcTreeSize","parseGeometry","magicbytes","SIZE_PREFIX_LEN","inferGeometryType","serialize","features","headerMeta","introspectHeaderMeta","header","buildHeader","featureBuffers","map","f","getGeometry","Error","getProperties","geometryType","featuresLength","length","reduce","a","b","uint8","Uint8Array","set","offset","feature","deserialize","bytes","fromFeature","headerMetaFn","subarray","every","v","i","bb","ByteBuffer","headerLength","readUint32","setPosition","indexNodeSize","featuresCount","capacity","featureLength","getRootAsFeature","push","deserializeStream","stream","reader","read","size","treeSize","readFeature","deserializeFiltered","url","rect","open","debug","selectBbox","byteLength","bytesAligned","buildColumn","builder","column","nameOffset","createString","name","startColumn","addName","addType","type","endColumn","Builder","columnOffsets","columns","createColumnsVector","c","startHeader","addFeaturesCount","BigInt","addGeometryType","addIndexNodeSize","addColumns","endHeader","finishSizePrefixed","asUint8Array","valueToType","value","Bool","Int","Double","String","Json","mapColumn","properties","k","title","description","width","precision","scale","nullable","unique","primary_key","sampleFeature","Object","keys","filter","key","envelope","crs","metadata"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/featurecollection.ts"],"sourcesContent":["import * as flatbuffers from 'flatbuffers';\nimport slice from 'slice-source';\n\nimport ColumnMeta from '../column-meta';\n\nimport {Header} from '../flat-geobuf/header';\n\nimport {Column} from '../flat-geobuf/column';\nimport {ColumnType} from '../flat-geobuf/column-type';\nimport {Feature} from '../flat-geobuf/feature';\nimport HeaderMeta, {fromByteBuffer} from '../header-meta';\n\nimport {buildFeature, IFeature} from './feature';\nimport {HttpReader} from '../http-reader';\nimport Logger from '../logger';\nimport {Rect, calcTreeSize} from '../packedrtree';\nimport {parseGeometry} from './geometry';\nimport {HeaderMetaFn} from '../generic';\nimport {magicbytes, SIZE_PREFIX_LEN} from '../constants';\nimport {inferGeometryType} from './header';\n\nexport type FromFeatureFn = (feature: Feature, header: HeaderMeta) => IFeature;\ntype ReadFn = (size: number, purpose: string) => Promise<ArrayBuffer>;\n\n/**\n * Serialize generic features to FlatGeobuf\n * @param features\n */\nexport function serialize(features: IFeature[]): Uint8Array {\n const headerMeta = introspectHeaderMeta(features);\n const header = buildHeader(headerMeta);\n const featureBuffers: Uint8Array[] = features.map((f) => {\n if (!f.getGeometry) throw new Error('Missing getGeometry implementation');\n if (!f.getProperties) throw new Error('Missing getProperties implementation');\n return buildFeature(\n parseGeometry(f.getGeometry(), headerMeta.geometryType),\n f.getProperties(),\n headerMeta\n );\n });\n const featuresLength = featureBuffers.map((f) => f.length).reduce((a, b) => a + b);\n const uint8 = new Uint8Array(magicbytes.length + header.length + featuresLength);\n uint8.set(header, magicbytes.length);\n let offset = magicbytes.length + header.length;\n for (const feature of featureBuffers) {\n uint8.set(feature, offset);\n offset += feature.length;\n }\n uint8.set(magicbytes);\n return uint8;\n}\n\nexport function deserialize(\n bytes: Uint8Array,\n fromFeature: FromFeatureFn,\n headerMetaFn?: HeaderMetaFn\n): IFeature[] {\n if (!bytes.subarray(0, 3).every((v, i) => magicbytes[i] === v))\n throw new Error('Not a FlatGeobuf file');\n\n const bb = new flatbuffers.ByteBuffer(bytes);\n const headerLength = bb.readUint32(magicbytes.length);\n bb.setPosition(magicbytes.length + SIZE_PREFIX_LEN);\n\n const headerMeta = fromByteBuffer(bb);\n if (headerMetaFn) headerMetaFn(headerMeta);\n\n let offset = magicbytes.length + SIZE_PREFIX_LEN + headerLength;\n\n const {indexNodeSize, featuresCount} = headerMeta;\n if (indexNodeSize > 0) offset += calcTreeSize(featuresCount, indexNodeSize);\n\n const features: IFeature[] = [];\n while (offset < bb.capacity()) {\n const featureLength = bb.readUint32(offset);\n bb.setPosition(offset + SIZE_PREFIX_LEN);\n const feature = Feature.getRootAsFeature(bb);\n features.push(fromFeature(feature, headerMeta));\n offset += SIZE_PREFIX_LEN + featureLength;\n }\n\n return features;\n}\n\nexport async function* deserializeStream(\n stream: ReadableStream,\n fromFeature: FromFeatureFn,\n headerMetaFn?: HeaderMetaFn\n): AsyncGenerator<IFeature> {\n const reader = slice(stream);\n const read: ReadFn = async (size) => await reader.slice(size);\n\n let bytes = new Uint8Array(await read(8, 'magic bytes'));\n if (!bytes.subarray(0, 3).every((v, i) => magicbytes[i] === v))\n throw new Error('Not a FlatGeobuf file');\n bytes = new Uint8Array(await read(4, 'header length'));\n let bb = new flatbuffers.ByteBuffer(bytes);\n const headerLength = bb.readUint32(0);\n bytes = new Uint8Array(await read(headerLength, 'header data'));\n bb = new flatbuffers.ByteBuffer(bytes);\n\n const headerMeta = fromByteBuffer(bb);\n if (headerMetaFn) headerMetaFn(headerMeta);\n\n const {indexNodeSize, featuresCount} = headerMeta;\n if (indexNodeSize > 0) {\n const treeSize = calcTreeSize(featuresCount, indexNodeSize);\n await read(treeSize, 'entire index, w/o rect');\n }\n let feature: IFeature | undefined;\n while ((feature = await readFeature(read, headerMeta, fromFeature))) yield feature;\n}\n\nexport async function* deserializeFiltered(\n url: string,\n rect: Rect,\n fromFeature: FromFeatureFn,\n headerMetaFn?: HeaderMetaFn\n): AsyncGenerator<IFeature> {\n const reader = await HttpReader.open(url);\n Logger.debug('opened reader');\n if (headerMetaFn) headerMetaFn(reader.header);\n\n for await (const feature of reader.selectBbox(rect)) {\n yield fromFeature(feature, reader.header);\n }\n}\n\nasync function readFeature(\n read: ReadFn,\n headerMeta: HeaderMeta,\n fromFeature: FromFeatureFn\n): Promise<IFeature | undefined> {\n let bytes = new Uint8Array(await read(4, 'feature length'));\n if (bytes.byteLength === 0) return;\n let bb = new flatbuffers.ByteBuffer(bytes);\n const featureLength = bb.readUint32(0);\n bytes = new Uint8Array(await read(featureLength, 'feature data'));\n const bytesAligned = new Uint8Array(featureLength + 4);\n bytesAligned.set(bytes, 4);\n bb = new flatbuffers.ByteBuffer(bytesAligned);\n bb.setPosition(SIZE_PREFIX_LEN);\n const feature = Feature.getRootAsFeature(bb);\n return fromFeature(feature, headerMeta);\n}\n\nfunction buildColumn(builder: flatbuffers.Builder, column: ColumnMeta): number {\n const nameOffset = builder.createString(column.name);\n Column.startColumn(builder);\n Column.addName(builder, nameOffset);\n Column.addType(builder, column.type);\n return Column.endColumn(builder);\n}\n\nexport function buildHeader(header: HeaderMeta): Uint8Array {\n const builder = new flatbuffers.Builder();\n\n let columnOffsets: number | null = null;\n if (header.columns)\n columnOffsets = Header.createColumnsVector(\n builder,\n header.columns.map((c) => buildColumn(builder, c))\n );\n\n const nameOffset = builder.createString('L1');\n\n Header.startHeader(builder);\n Header.addFeaturesCount(builder, BigInt(header.featuresCount));\n Header.addGeometryType(builder, header.geometryType);\n Header.addIndexNodeSize(builder, 0);\n if (columnOffsets) Header.addColumns(builder, columnOffsets);\n Header.addName(builder, nameOffset);\n const offset = Header.endHeader(builder);\n builder.finishSizePrefixed(offset);\n return builder.asUint8Array();\n}\n\nfunction valueToType(value: boolean | number | string): ColumnType {\n if (typeof value === 'boolean') return ColumnType.Bool;\n else if (typeof value === 'number')\n if (value % 1 === 0) return ColumnType.Int;\n else return ColumnType.Double;\n else if (typeof value === 'string') return ColumnType.String;\n else if (value === null) return ColumnType.String;\n else if (typeof value === 'object') return ColumnType.Json;\n throw new Error(`Unknown type (value '${value}')`);\n}\n\nexport function mapColumn(properties: any, k: string): ColumnMeta {\n return {\n name: k,\n type: valueToType(properties[k]),\n title: null,\n description: null,\n width: -1,\n precision: -1,\n scale: -1,\n nullable: true,\n unique: false,\n primary_key: false\n };\n}\n\nfunction introspectHeaderMeta(features: IFeature[]): HeaderMeta {\n const sampleFeature = features[0];\n const properties = sampleFeature.getProperties ? sampleFeature.getProperties() : {};\n\n let columns: ColumnMeta[] | null = null;\n if (properties)\n columns = Object.keys(properties)\n .filter((key) => key !== 'geometry')\n .map((k) => mapColumn(properties, k));\n\n const geometryType = inferGeometryType(features);\n const headerMeta: HeaderMeta = {\n geometryType,\n columns,\n envelope: null,\n featuresCount: features.length,\n indexNodeSize: 0,\n crs: null,\n title: null,\n description: null,\n metadata: null\n };\n return headerMeta;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as flatbuffers from 'flatbuffers';
|
|
2
|
-
import { GeometryType } from '../flat-geobuf/geometry-type
|
|
3
|
-
import { Geometry } from '../flat-geobuf/geometry
|
|
2
|
+
import { GeometryType } from '../flat-geobuf/geometry-type';
|
|
3
|
+
import { Geometry } from '../flat-geobuf/geometry';
|
|
4
4
|
export interface IParsedGeometry {
|
|
5
5
|
xy: number[];
|
|
6
6
|
z: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,CAAC,IAAI,MAAM,EAAE,CAAC;IAChC,OAAO,IAAI,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAS,SAAQ,eAAe;IAC/C,OAAO,IAAI,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,OAAO,IAAI,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAC;IACvB,WAAW,IAAI,QAAQ,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,SAAS,CAAC;CAC9E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,GAAG,GAAG,CAyBhG;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAS9E;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,YAAY,GAC3B,eAAe,CA4BjB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,EAAE,CAQlF;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAI1D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GeometryType } from
|
|
2
|
-
import { Geometry } from
|
|
1
|
+
import { GeometryType } from "../flat-geobuf/geometry-type.js";
|
|
2
|
+
import { Geometry } from "../flat-geobuf/geometry.js";
|
|
3
3
|
export function buildGeometry(builder, parsedGeometry) {
|
|
4
4
|
const {
|
|
5
5
|
xy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.js","names":["GeometryType","Geometry","buildGeometry","builder","parsedGeometry","xy","z","ends","parts","type","partOffsets","map","part","partsOffset","createPartsVector","startGeometry","addParts","addType","endGeometry","xyOffset","createXyVector","zOffset","createZVector","endsOffset","createEndsVector","addEnds","addXy","addZ","flat","a","length","Array","isArray","sa","push","parseGeometry","geometry","headerGeomType","Unknown","toGeometryType","getType","MultiLineString","getFlatCoordinates","mlsEnds","getEnds","e","Polygon","pEnds","MultiPolygon","mp","getPolygons","p","pairFlatCoordinates","newArray","i","name"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/geometry.ts"],"sourcesContent":["import * as flatbuffers from 'flatbuffers';\nimport {GeometryType} from '../flat-geobuf/geometry-type
|
|
1
|
+
{"version":3,"file":"geometry.js","names":["GeometryType","Geometry","buildGeometry","builder","parsedGeometry","xy","z","ends","parts","type","partOffsets","map","part","partsOffset","createPartsVector","startGeometry","addParts","addType","endGeometry","xyOffset","createXyVector","zOffset","createZVector","endsOffset","createEndsVector","addEnds","addXy","addZ","flat","a","length","Array","isArray","sa","push","parseGeometry","geometry","headerGeomType","Unknown","toGeometryType","getType","MultiLineString","getFlatCoordinates","mlsEnds","getEnds","e","Polygon","pEnds","MultiPolygon","mp","getPolygons","p","pairFlatCoordinates","newArray","i","name"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/geometry.ts"],"sourcesContent":["import * as flatbuffers from 'flatbuffers';\nimport {GeometryType} from '../flat-geobuf/geometry-type';\nimport {Geometry} from '../flat-geobuf/geometry';\n\nexport interface IParsedGeometry {\n xy: number[];\n z: number[];\n ends: number[];\n parts: IParsedGeometry[];\n type: GeometryType;\n}\n\nexport interface ISimpleGeometry {\n getFlatCoordinates?(): number[];\n getType(): string;\n}\n\nexport interface IPolygon extends ISimpleGeometry {\n getEnds(): number[];\n}\n\nexport interface IMultiLineString extends ISimpleGeometry {\n getEnds(): number[];\n}\n\nexport interface IMultiPolygon extends ISimpleGeometry {\n getEndss(): number[][];\n getPolygons(): IPolygon[];\n}\n\nexport interface ICreateGeometry {\n (geometry: Geometry | null, type: GeometryType): ISimpleGeometry | undefined;\n}\n\nexport function buildGeometry(builder: flatbuffers.Builder, parsedGeometry: IParsedGeometry): any {\n const {xy, z, ends, parts, type} = parsedGeometry;\n\n if (parts) {\n const partOffsets = parts.map((part) => buildGeometry(builder, part));\n const partsOffset = Geometry.createPartsVector(builder, partOffsets);\n Geometry.startGeometry(builder);\n Geometry.addParts(builder, partsOffset);\n Geometry.addType(builder, type);\n return Geometry.endGeometry(builder);\n }\n\n const xyOffset = Geometry.createXyVector(builder, xy);\n let zOffset: number | undefined;\n if (z) zOffset = Geometry.createZVector(builder, z);\n\n let endsOffset: number | undefined;\n if (ends) endsOffset = Geometry.createEndsVector(builder, ends);\n\n Geometry.startGeometry(builder);\n if (endsOffset) Geometry.addEnds(builder, endsOffset);\n Geometry.addXy(builder, xyOffset);\n if (zOffset) Geometry.addZ(builder, zOffset);\n Geometry.addType(builder, type);\n return Geometry.endGeometry(builder);\n}\n\nexport function flat(a: any[], xy: number[], z: number[]): number[] | undefined {\n if (a.length === 0) return;\n if (Array.isArray(a[0])) {\n for (const sa of a) flat(sa, xy, z);\n } else if (a.length === 2) xy.push(...a);\n else {\n xy.push(a[0], a[1]);\n z.push(a[2]);\n }\n}\n\nexport function parseGeometry(\n geometry: ISimpleGeometry,\n headerGeomType: GeometryType\n): IParsedGeometry {\n let xy: number[] | undefined;\n let ends: number[] | undefined;\n let parts: IParsedGeometry[] | undefined;\n\n let type = headerGeomType;\n if (type === GeometryType.Unknown) {\n type = toGeometryType(geometry.getType());\n }\n\n if (type === GeometryType.MultiLineString) {\n if (geometry.getFlatCoordinates) xy = geometry.getFlatCoordinates();\n const mlsEnds = (geometry as IMultiLineString).getEnds();\n if (mlsEnds.length > 1) ends = mlsEnds.map((e) => e >> 1);\n } else if (type === GeometryType.Polygon) {\n if (geometry.getFlatCoordinates) xy = geometry.getFlatCoordinates();\n const pEnds = (geometry as IPolygon).getEnds();\n if (pEnds.length > 1) ends = pEnds.map((e) => e >> 1);\n } else if (type === GeometryType.MultiPolygon) {\n const mp = geometry as IMultiPolygon;\n parts = mp.getPolygons().map((p) => parseGeometry(p, GeometryType.Polygon));\n } else if (geometry.getFlatCoordinates) xy = geometry.getFlatCoordinates();\n return {\n xy,\n ends,\n type,\n parts\n } as IParsedGeometry;\n}\n\nexport function pairFlatCoordinates(xy: Float64Array, z?: Float64Array): number[][] {\n const newArray: number[][] = [];\n for (let i = 0; i < xy.length; i += 2) {\n const a = [xy[i], xy[i + 1]];\n if (z) a.push(z[i >> 1]);\n newArray.push(a);\n }\n return newArray;\n}\n\nexport function toGeometryType(name?: string): GeometryType {\n if (!name) return GeometryType.Unknown;\n const type: GeometryType = (GeometryType as any)[name];\n return type;\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GeometryType } from '../flat-geobuf/geometry-type
|
|
2
|
-
import { IFeature } from './feature
|
|
3
|
-
import { IGeoJsonFeature } from '../geojson/feature
|
|
1
|
+
import { GeometryType } from '../flat-geobuf/geometry-type';
|
|
2
|
+
import { IFeature } from './feature';
|
|
3
|
+
import { IGeoJsonFeature } from '../geojson/feature';
|
|
4
4
|
export declare function inferGeometryType(features: (IFeature | IGeoJsonFeature)[]): GeometryType;
|
|
5
5
|
//# sourceMappingURL=header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC;AACnC,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AASnD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,eAAe,CAAC,EAAE,GAAG,YAAY,CAmBxF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GeometryType } from
|
|
2
|
-
import { toGeometryType } from
|
|
1
|
+
import { GeometryType } from "../flat-geobuf/geometry-type.js";
|
|
2
|
+
import { toGeometryType } from "../generic/geometry.js";
|
|
3
3
|
function featureGeomType(feature) {
|
|
4
4
|
if (feature.getGeometry) {
|
|
5
5
|
return toGeometryType(feature.getGeometry().getType());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","names":["GeometryType","toGeometryType","featureGeomType","feature","getGeometry","getType","geometry","type","inferGeometryType","features","geometryType","f","Unknown","gtype","undefined","Error"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/header.ts"],"sourcesContent":["import {GeometryType} from '../flat-geobuf/geometry-type
|
|
1
|
+
{"version":3,"file":"header.js","names":["GeometryType","toGeometryType","featureGeomType","feature","getGeometry","getType","geometry","type","inferGeometryType","features","geometryType","f","Unknown","gtype","undefined","Error"],"sources":["../../../../src/flatgeobuf/3.27.2/generic/header.ts"],"sourcesContent":["import {GeometryType} from '../flat-geobuf/geometry-type';\nimport {toGeometryType} from '../generic/geometry';\nimport {IFeature} from './feature';\nimport {IGeoJsonFeature} from '../geojson/feature';\n\nfunction featureGeomType(feature: IFeature | IGeoJsonFeature): GeometryType {\n if (feature.getGeometry) {\n return toGeometryType(feature.getGeometry().getType());\n }\n return toGeometryType((feature as IGeoJsonFeature).geometry.type);\n}\n\nexport function inferGeometryType(features: (IFeature | IGeoJsonFeature)[]): GeometryType {\n let geometryType: GeometryType | undefined;\n\n for (const f of features) {\n if (geometryType === GeometryType.Unknown) {\n break;\n }\n\n const gtype = featureGeomType(f);\n if (geometryType === undefined) {\n geometryType = gtype;\n } else if (geometryType !== gtype) {\n geometryType = GeometryType.Unknown;\n }\n }\n if (geometryType === undefined) {\n throw new Error('Could not infer geometry type for collection of features.');\n }\n return geometryType;\n}\n"],"mappings":"SAAQA,YAAY;AAAA,SACZC,cAAc;AAItB,SAASC,eAAeA,CAACC,OAAmC,EAAgB;EAC1E,IAAIA,OAAO,CAACC,WAAW,EAAE;IACvB,OAAOH,cAAc,CAACE,OAAO,CAACC,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC;EACxD;EACA,OAAOJ,cAAc,CAAEE,OAAO,CAAqBG,QAAQ,CAACC,IAAI,CAAC;AACnE;AAEA,OAAO,SAASC,iBAAiBA,CAACC,QAAwC,EAAgB;EACxF,IAAIC,YAAsC;EAE1C,KAAK,MAAMC,CAAC,IAAIF,QAAQ,EAAE;IACxB,IAAIC,YAAY,KAAKV,YAAY,CAACY,OAAO,EAAE;MACzC;IACF;IAEA,MAAMC,KAAK,GAAGX,eAAe,CAACS,CAAC,CAAC;IAChC,IAAID,YAAY,KAAKI,SAAS,EAAE;MAC9BJ,YAAY,GAAGG,KAAK;IACtB,CAAC,MAAM,IAAIH,YAAY,KAAKG,KAAK,EAAE;MACjCH,YAAY,GAAGV,YAAY,CAACY,OAAO;IACrC;EACF;EACA,IAAIF,YAAY,KAAKI,SAAS,EAAE;IAC9B,MAAM,IAAIC,KAAK,CAAC,2DAA2D,CAAC;EAC9E;EACA,OAAOL,YAAY;AACrB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { FromFeatureFn } from './generic/featurecollection
|
|
2
|
-
import { Rect } from './packedrtree
|
|
3
|
-
import { IFeature } from './generic/feature
|
|
4
|
-
import HeaderMeta from './header-meta
|
|
1
|
+
import { FromFeatureFn } from './generic/featurecollection';
|
|
2
|
+
import { Rect } from './packedrtree';
|
|
3
|
+
import { IFeature } from './generic/feature';
|
|
4
|
+
import HeaderMeta from './header-meta';
|
|
5
5
|
export type HeaderMetaFn = (headerMeta: HeaderMeta) => void;
|
|
6
6
|
/**
|
|
7
7
|
* Deserialize FlatGeobuf into generic features
|
|
@@ -10,7 +10,7 @@ export type HeaderMetaFn = (headerMeta: HeaderMeta) => void;
|
|
|
10
10
|
* @param rect Filter rectangle
|
|
11
11
|
*/
|
|
12
12
|
export declare function deserialize(input: Uint8Array | ReadableStream | string, fromFeature: FromFeatureFn, rect?: Rect): any[] | AsyncGenerator<IFeature>;
|
|
13
|
-
export { serialize } from './generic/featurecollection
|
|
14
|
-
export { GeometryType } from './flat-geobuf/geometry-type
|
|
15
|
-
export { ColumnType } from './flat-geobuf/column-type
|
|
13
|
+
export { serialize } from './generic/featurecollection';
|
|
14
|
+
export { GeometryType } from './flat-geobuf/geometry-type';
|
|
15
|
+
export { ColumnType } from './flat-geobuf/column-type';
|
|
16
16
|
//# sourceMappingURL=generic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../src/flatgeobuf/3.27.2/generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACd,MAAM,
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../src/flatgeobuf/3.27.2/generic.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,UAAU,MAAM,eAAe,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,MAAM,EAC3C,WAAW,EAAE,aAAa,EAC1B,IAAI,CAAC,EAAE,IAAI,GACV,GAAG,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAIlC;AAED,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { deserialize as deserializeArray, deserializeStream, deserializeFiltered } from
|
|
1
|
+
import { deserialize as deserializeArray, deserializeStream, deserializeFiltered } from "./generic/featurecollection.js";
|
|
2
2
|
export function deserialize(input, fromFeature, rect) {
|
|
3
3
|
if (input instanceof Uint8Array) return deserializeArray(input, fromFeature);else if (input instanceof ReadableStream) return deserializeStream(input, fromFeature);
|
|
4
4
|
return deserializeFiltered(input, rect, fromFeature);
|
|
5
5
|
}
|
|
6
|
-
export { serialize } from
|
|
7
|
-
export { GeometryType } from
|
|
8
|
-
export { ColumnType } from
|
|
6
|
+
export { serialize } from "./generic/featurecollection.js";
|
|
7
|
+
export { GeometryType } from "./flat-geobuf/geometry-type.js";
|
|
8
|
+
export { ColumnType } from "./flat-geobuf/column-type.js";
|
|
9
9
|
//# sourceMappingURL=generic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","names":["deserialize","deserializeArray","deserializeStream","deserializeFiltered","input","fromFeature","rect","Uint8Array","ReadableStream","serialize","GeometryType","ColumnType"],"sources":["../../../src/flatgeobuf/3.27.2/generic.ts"],"sourcesContent":["import {\n deserialize as deserializeArray,\n deserializeStream,\n deserializeFiltered,\n FromFeatureFn\n} from './generic/featurecollection
|
|
1
|
+
{"version":3,"file":"generic.js","names":["deserialize","deserializeArray","deserializeStream","deserializeFiltered","input","fromFeature","rect","Uint8Array","ReadableStream","serialize","GeometryType","ColumnType"],"sources":["../../../src/flatgeobuf/3.27.2/generic.ts"],"sourcesContent":["import {\n deserialize as deserializeArray,\n deserializeStream,\n deserializeFiltered,\n FromFeatureFn\n} from './generic/featurecollection';\n\nimport {Rect} from './packedrtree';\nimport {IFeature} from './generic/feature';\nimport HeaderMeta from './header-meta';\n\nexport type HeaderMetaFn = (headerMeta: HeaderMeta) => void;\n\n/**\n * Deserialize FlatGeobuf into generic features\n * @param input Input byte array, stream or string\n * @param fromFeature Callback that recieves generic features\n * @param rect Filter rectangle\n */\nexport function deserialize(\n input: Uint8Array | ReadableStream | string,\n fromFeature: FromFeatureFn,\n rect?: Rect\n): any[] | AsyncGenerator<IFeature> {\n if (input instanceof Uint8Array) return deserializeArray(input, fromFeature);\n else if (input instanceof ReadableStream) return deserializeStream(input, fromFeature);\n return deserializeFiltered(input, rect as Rect, fromFeature);\n}\n\nexport {serialize} from './generic/featurecollection';\n\nexport {GeometryType} from './flat-geobuf/geometry-type';\nexport {ColumnType} from './flat-geobuf/column-type';\n"],"mappings":"SACEA,WAAW,IAAIC,gBAAgB,EAC/BC,iBAAiB,EACjBC,mBAAmB;AAgBrB,OAAO,SAASH,WAAWA,CACzBI,KAA2C,EAC3CC,WAA0B,EAC1BC,IAAW,EACuB;EAClC,IAAIF,KAAK,YAAYG,UAAU,EAAE,OAAON,gBAAgB,CAACG,KAAK,EAAEC,WAAW,CAAC,CAAC,KACxE,IAAID,KAAK,YAAYI,cAAc,EAAE,OAAON,iBAAiB,CAACE,KAAK,EAAEC,WAAW,CAAC;EACtF,OAAOF,mBAAmB,CAACC,KAAK,EAAEE,IAAI,EAAUD,WAAW,CAAC;AAC9D;AAAC,SAEOI,SAAS;AAAA,SAETC,YAAY;AAAA,SACZC,UAAU"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Feature } from '../flat-geobuf/feature
|
|
2
|
-
import HeaderMeta from '../header-meta
|
|
3
|
-
import { IFeature } from '../generic/feature
|
|
1
|
+
import { Feature } from '../flat-geobuf/feature';
|
|
2
|
+
import HeaderMeta from '../header-meta';
|
|
3
|
+
import { IFeature } from '../generic/feature';
|
|
4
4
|
import { Feature as GeoJsonFeature } from 'geojson';
|
|
5
5
|
export interface IGeoJsonFeature extends IFeature, GeoJsonFeature {
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/geojson/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/geojson/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAE/C,OAAO,UAAU,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAkB,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,eAAgB,SAAQ,QAAQ,EAAE,cAAc;CAAG;AAEpE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,eAAe,CASjF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fromGeometry } from
|
|
2
|
-
import { parseProperties } from
|
|
1
|
+
import { fromGeometry } from "./geometry.js";
|
|
2
|
+
import { parseProperties } from "../generic/feature.js";
|
|
3
3
|
export function fromFeature(feature, header) {
|
|
4
4
|
const columns = header.columns;
|
|
5
5
|
const geometry = fromGeometry(feature.geometry(), header.geometryType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.js","names":["fromGeometry","parseProperties","fromFeature","feature","header","columns","geometry","geometryType","geoJsonfeature","type","properties"],"sources":["../../../../src/flatgeobuf/3.27.2/geojson/feature.ts"],"sourcesContent":["import {Feature} from '../flat-geobuf/feature
|
|
1
|
+
{"version":3,"file":"feature.js","names":["fromGeometry","parseProperties","fromFeature","feature","header","columns","geometry","geometryType","geoJsonfeature","type","properties"],"sources":["../../../../src/flatgeobuf/3.27.2/geojson/feature.ts"],"sourcesContent":["import {Feature} from '../flat-geobuf/feature';\nimport {Geometry} from '../flat-geobuf/geometry';\nimport HeaderMeta from '../header-meta';\nimport {fromGeometry} from './geometry';\nimport {IFeature, parseProperties} from '../generic/feature';\n\nimport {Feature as GeoJsonFeature} from 'geojson';\n\nexport interface IGeoJsonFeature extends IFeature, GeoJsonFeature {}\n\nexport function fromFeature(feature: Feature, header: HeaderMeta): IGeoJsonFeature {\n const columns = header.columns;\n const geometry = fromGeometry(feature.geometry() as Geometry, header.geometryType);\n const geoJsonfeature: GeoJsonFeature = {\n type: 'Feature',\n geometry,\n properties: parseProperties(feature, columns)\n };\n return geoJsonfeature;\n}\n"],"mappings":"SAGQA,YAAY;AAAA,SACFC,eAAe;AAMjC,OAAO,SAASC,WAAWA,CAACC,OAAgB,EAAEC,MAAkB,EAAmB;EACjF,MAAMC,OAAO,GAAGD,MAAM,CAACC,OAAO;EAC9B,MAAMC,QAAQ,GAAGN,YAAY,CAACG,OAAO,CAACG,QAAQ,CAAC,CAAC,EAAcF,MAAM,CAACG,YAAY,CAAC;EAClF,MAAMC,cAA8B,GAAG;IACrCC,IAAI,EAAE,SAAS;IACfH,QAAQ;IACRI,UAAU,EAAET,eAAe,CAACE,OAAO,EAAEE,OAAO;EAC9C,CAAC;EACD,OAAOG,cAAc;AACvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Rect } from '../packedrtree
|
|
2
|
-
import { HeaderMetaFn } from '../generic
|
|
1
|
+
import { Rect } from '../packedrtree';
|
|
2
|
+
import { HeaderMetaFn } from '../generic';
|
|
3
3
|
import { FeatureCollection as GeoJsonFeatureCollection } from 'geojson';
|
|
4
4
|
export declare function serialize(featurecollection: GeoJsonFeatureCollection): Uint8Array;
|
|
5
5
|
export declare function deserialize(bytes: Uint8Array, headerMetaFn?: HeaderMetaFn): GeoJsonFeatureCollection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featurecollection.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/geojson/featurecollection.ts"],"names":[],"mappings":"AAYA,OAAO,EAAC,IAAI,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"featurecollection.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/geojson/featurecollection.ts"],"names":[],"mappings":"AAYA,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAIxC,OAAO,EACL,iBAAiB,IAAI,wBAAwB,EAQ9C,MAAM,SAAS,CAAC;AAEjB,wBAAgB,SAAS,CAAC,iBAAiB,EAAE,wBAAwB,GAAG,UAAU,CAsBjF;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,YAAY,CAAC,EAAE,YAAY,GAC1B,wBAAwB,CAM1B;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,YAAY,CAAC,EAAE,YAAY,GAC1B,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAEpC;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,IAAI,EACV,YAAY,CAAC,EAAE,YAAY,GAC1B,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAEpC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { fromFeature } from
|
|
2
|
-
import { parseGeometry, parseGC } from
|
|
3
|
-
import { buildHeader, deserialize as genericDeserialize, deserializeStream as genericDeserializeStream, deserializeFiltered as genericDeserializeFiltered, mapColumn } from
|
|
4
|
-
import { buildFeature } from
|
|
5
|
-
import { magicbytes } from
|
|
6
|
-
import { inferGeometryType } from
|
|
1
|
+
import { fromFeature } from "./feature.js";
|
|
2
|
+
import { parseGeometry, parseGC } from "./geometry.js";
|
|
3
|
+
import { buildHeader, deserialize as genericDeserialize, deserializeStream as genericDeserializeStream, deserializeFiltered as genericDeserializeFiltered, mapColumn } from "../generic/featurecollection.js";
|
|
4
|
+
import { buildFeature } from "../generic/feature.js";
|
|
5
|
+
import { magicbytes } from "../constants.js";
|
|
6
|
+
import { inferGeometryType } from "../generic/header.js";
|
|
7
7
|
export function serialize(featurecollection) {
|
|
8
8
|
const headerMeta = introspectHeaderMeta(featurecollection);
|
|
9
9
|
const header = buildHeader(headerMeta);
|