@loaders.gl/flatgeobuf 4.2.0-alpha.4 → 4.2.0-alpha.6

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.
Files changed (135) hide show
  1. package/dist/dist.dev.js +264 -218
  2. package/dist/dist.min.js +30 -0
  3. package/dist/flatgeobuf/3.27.2/column-meta.d.ts +1 -1
  4. package/dist/flatgeobuf/3.27.2/column-meta.d.ts.map +1 -1
  5. package/dist/flatgeobuf/3.27.2/column-meta.js +1 -2
  6. package/dist/flatgeobuf/3.27.2/config.js +13 -13
  7. package/dist/flatgeobuf/3.27.2/constants.js +3 -2
  8. package/dist/flatgeobuf/3.27.2/crs-meta.js +1 -2
  9. package/dist/flatgeobuf/3.27.2/dumptree.js +28 -23
  10. package/dist/flatgeobuf/3.27.2/feature.d.ts +1 -1
  11. package/dist/flatgeobuf/3.27.2/feature.d.ts.map +1 -1
  12. package/dist/flatgeobuf/3.27.2/feature.js +2 -3
  13. package/dist/flatgeobuf/3.27.2/flat-geobuf/column-type.js +19 -19
  14. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.d.ts +1 -1
  15. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.d.ts.map +1 -1
  16. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.js +115 -117
  17. package/dist/flatgeobuf/3.27.2/flat-geobuf/crs.js +74 -76
  18. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.d.ts +2 -2
  19. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.d.ts.map +1 -1
  20. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.js +94 -90
  21. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry-type.js +22 -22
  22. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.d.ts +1 -1
  23. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.d.ts.map +1 -1
  24. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.js +222 -210
  25. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.d.ts +3 -3
  26. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.d.ts.map +1 -1
  27. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.js +164 -160
  28. package/dist/flatgeobuf/3.27.2/flat-geobuf.d.ts +5 -5
  29. package/dist/flatgeobuf/3.27.2/flat-geobuf.d.ts.map +1 -1
  30. package/dist/flatgeobuf/3.27.2/flat-geobuf.js +1 -1
  31. package/dist/flatgeobuf/3.27.2/generic/feature.d.ts +4 -4
  32. package/dist/flatgeobuf/3.27.2/generic/feature.d.ts.map +1 -1
  33. package/dist/flatgeobuf/3.27.2/generic/feature.js +195 -205
  34. package/dist/flatgeobuf/3.27.2/generic/featurecollection.d.ts +6 -6
  35. package/dist/flatgeobuf/3.27.2/generic/featurecollection.d.ts.map +1 -1
  36. package/dist/flatgeobuf/3.27.2/generic/featurecollection.js +150 -128
  37. package/dist/flatgeobuf/3.27.2/generic/geometry.d.ts +2 -2
  38. package/dist/flatgeobuf/3.27.2/generic/geometry.d.ts.map +1 -1
  39. package/dist/flatgeobuf/3.27.2/generic/geometry.js +78 -66
  40. package/dist/flatgeobuf/3.27.2/generic/header.d.ts +3 -3
  41. package/dist/flatgeobuf/3.27.2/generic/header.d.ts.map +1 -1
  42. package/dist/flatgeobuf/3.27.2/generic/header.js +18 -18
  43. package/dist/flatgeobuf/3.27.2/generic/index.d.ts +4 -4
  44. package/dist/flatgeobuf/3.27.2/generic/index.d.ts.map +1 -1
  45. package/dist/flatgeobuf/3.27.2/generic/index.js +2 -1
  46. package/dist/flatgeobuf/3.27.2/generic.d.ts +7 -7
  47. package/dist/flatgeobuf/3.27.2/generic.d.ts.map +1 -1
  48. package/dist/flatgeobuf/3.27.2/generic.js +11 -3
  49. package/dist/flatgeobuf/3.27.2/geojson/feature.d.ts +3 -3
  50. package/dist/flatgeobuf/3.27.2/geojson/feature.d.ts.map +1 -1
  51. package/dist/flatgeobuf/3.27.2/geojson/feature.js +8 -9
  52. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.d.ts +2 -2
  53. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.d.ts.map +1 -1
  54. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.js +40 -38
  55. package/dist/flatgeobuf/3.27.2/geojson/geometry.d.ts +3 -3
  56. package/dist/flatgeobuf/3.27.2/geojson/geometry.d.ts.map +1 -1
  57. package/dist/flatgeobuf/3.27.2/geojson/geometry.js +107 -103
  58. package/dist/flatgeobuf/3.27.2/geojson/index.d.ts +3 -3
  59. package/dist/flatgeobuf/3.27.2/geojson/index.d.ts.map +1 -1
  60. package/dist/flatgeobuf/3.27.2/geojson/index.js +2 -1
  61. package/dist/flatgeobuf/3.27.2/geojson.d.ts +3 -3
  62. package/dist/flatgeobuf/3.27.2/geojson.d.ts.map +1 -1
  63. package/dist/flatgeobuf/3.27.2/geojson.js +17 -5
  64. package/dist/flatgeobuf/3.27.2/header-meta.d.ts +3 -3
  65. package/dist/flatgeobuf/3.27.2/header-meta.d.ts.map +1 -1
  66. package/dist/flatgeobuf/3.27.2/header-meta.js +46 -43
  67. package/dist/flatgeobuf/3.27.2/header.d.ts +1 -1
  68. package/dist/flatgeobuf/3.27.2/header.d.ts.map +1 -1
  69. package/dist/flatgeobuf/3.27.2/header.js +2 -3
  70. package/dist/flatgeobuf/3.27.2/http-reader.d.ts +3 -3
  71. package/dist/flatgeobuf/3.27.2/http-reader.d.ts.map +1 -1
  72. package/dist/flatgeobuf/3.27.2/http-reader.js +241 -171
  73. package/dist/flatgeobuf/3.27.2/index.d.ts +13 -13
  74. package/dist/flatgeobuf/3.27.2/index.d.ts.map +1 -1
  75. package/dist/flatgeobuf/3.27.2/index.js +5 -13
  76. package/dist/flatgeobuf/3.27.2/logger.js +36 -56
  77. package/dist/flatgeobuf/3.27.2/packedrtree.js +176 -123
  78. package/dist/flatgeobuf/3.27.2/streams/utils.js +59 -58
  79. package/dist/flatgeobuf-loader.js +29 -23
  80. package/dist/flatgeobuf-worker.js +40 -35
  81. package/dist/index.cjs +191 -213
  82. package/dist/index.cjs.map +7 -0
  83. package/dist/index.d.ts +2 -2
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +3 -1
  86. package/dist/lib/binary-geometries.js +115 -117
  87. package/dist/lib/get-schema-from-fgb-header.js +110 -85
  88. package/dist/lib/parse-flatgeobuf.d.ts +1 -1
  89. package/dist/lib/parse-flatgeobuf.d.ts.map +1 -1
  90. package/dist/lib/parse-flatgeobuf.js +125 -109
  91. package/dist/workers/flatgeobuf-worker.js +3 -1
  92. package/package.json +11 -6
  93. package/dist/LICENSE +0 -9
  94. package/dist/flatgeobuf/3.27.2/LICENSE +0 -29
  95. package/dist/flatgeobuf/3.27.2/README.md +0 -45
  96. package/dist/flatgeobuf/3.27.2/column-meta.js.map +0 -1
  97. package/dist/flatgeobuf/3.27.2/config.js.map +0 -1
  98. package/dist/flatgeobuf/3.27.2/constants.js.map +0 -1
  99. package/dist/flatgeobuf/3.27.2/crs-meta.js.map +0 -1
  100. package/dist/flatgeobuf/3.27.2/dumptree.js.map +0 -1
  101. package/dist/flatgeobuf/3.27.2/feature.js.map +0 -1
  102. package/dist/flatgeobuf/3.27.2/flat-geobuf/column-type.js.map +0 -1
  103. package/dist/flatgeobuf/3.27.2/flat-geobuf/column.js.map +0 -1
  104. package/dist/flatgeobuf/3.27.2/flat-geobuf/crs.js.map +0 -1
  105. package/dist/flatgeobuf/3.27.2/flat-geobuf/feature.js.map +0 -1
  106. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry-type.js.map +0 -1
  107. package/dist/flatgeobuf/3.27.2/flat-geobuf/geometry.js.map +0 -1
  108. package/dist/flatgeobuf/3.27.2/flat-geobuf/header.js.map +0 -1
  109. package/dist/flatgeobuf/3.27.2/flat-geobuf.js.map +0 -1
  110. package/dist/flatgeobuf/3.27.2/generic/feature.js.map +0 -1
  111. package/dist/flatgeobuf/3.27.2/generic/featurecollection.js.map +0 -1
  112. package/dist/flatgeobuf/3.27.2/generic/geometry.js.map +0 -1
  113. package/dist/flatgeobuf/3.27.2/generic/header.js.map +0 -1
  114. package/dist/flatgeobuf/3.27.2/generic/index.js.map +0 -1
  115. package/dist/flatgeobuf/3.27.2/generic.js.map +0 -1
  116. package/dist/flatgeobuf/3.27.2/geojson/feature.js.map +0 -1
  117. package/dist/flatgeobuf/3.27.2/geojson/featurecollection.js.map +0 -1
  118. package/dist/flatgeobuf/3.27.2/geojson/geometry.js.map +0 -1
  119. package/dist/flatgeobuf/3.27.2/geojson/index.js.map +0 -1
  120. package/dist/flatgeobuf/3.27.2/geojson.js.map +0 -1
  121. package/dist/flatgeobuf/3.27.2/header-meta.js.map +0 -1
  122. package/dist/flatgeobuf/3.27.2/header.js.map +0 -1
  123. package/dist/flatgeobuf/3.27.2/http-reader.js.map +0 -1
  124. package/dist/flatgeobuf/3.27.2/index.js.map +0 -1
  125. package/dist/flatgeobuf/3.27.2/logger.js.map +0 -1
  126. package/dist/flatgeobuf/3.27.2/packedrtree.js.map +0 -1
  127. package/dist/flatgeobuf/3.27.2/streams/utils.js.map +0 -1
  128. package/dist/flatgeobuf/3.27.2/types/jsts.d.ts +0 -23
  129. package/dist/flatgeobuf/3.27.2/types/slice.d.ts +0 -16
  130. package/dist/flatgeobuf-loader.js.map +0 -1
  131. package/dist/index.js.map +0 -1
  132. package/dist/lib/binary-geometries.js.map +0 -1
  133. package/dist/lib/get-schema-from-fgb-header.js.map +0 -1
  134. package/dist/lib/parse-flatgeobuf.js.map +0 -1
  135. package/dist/workers/flatgeobuf-worker.js.map +0 -1
@@ -5,216 +5,206 @@ 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) {
8
- const columns = header.columns;
9
- const geometry = feature.geometry();
10
- const simpleGeometry = createGeometry(geometry, header.geometryType);
11
- const properties = parseProperties(feature, columns);
12
- return createFeature(simpleGeometry, properties);
8
+ const columns = header.columns;
9
+ const geometry = feature.geometry();
10
+ const simpleGeometry = createGeometry(geometry, header.geometryType);
11
+ const properties = parseProperties(feature, columns);
12
+ return createFeature(simpleGeometry, properties);
13
13
  }
14
14
  export function buildFeature(geometry, properties, header) {
15
- const columns = header.columns;
16
- const builder = new flatbuffers.Builder();
17
- let offset = 0;
18
- let capacity = 1024;
19
- let bytes = new Uint8Array(capacity);
20
- let view = new DataView(bytes.buffer);
21
- const prep = function (size) {
22
- if (offset + size < capacity) return;
23
- capacity = Math.max(capacity + size, capacity * 2);
24
- const newBytes = new Uint8Array(capacity);
25
- newBytes.set(bytes);
26
- bytes = newBytes;
27
- view = new DataView(bytes.buffer);
28
- };
29
- if (columns) {
30
- for (let i = 0; i < columns.length; i++) {
31
- const column = columns[i];
32
- const value = properties[column.name];
33
- if (value === null) continue;
34
- prep(2);
35
- view.setUint16(offset, i, true);
36
- offset += 2;
37
- switch (column.type) {
38
- case ColumnType.Bool:
39
- prep(1);
40
- view.setUint8(offset, value);
41
- offset += 1;
42
- break;
43
- case ColumnType.Short:
44
- prep(2);
45
- view.setInt16(offset, value, true);
46
- offset += 2;
47
- break;
48
- case ColumnType.UShort:
49
- prep(2);
50
- view.setUint16(offset, value, true);
51
- offset += 2;
52
- break;
53
- case ColumnType.Int:
54
- prep(4);
55
- view.setInt32(offset, value, true);
56
- offset += 4;
57
- break;
58
- case ColumnType.UInt:
59
- prep(4);
60
- view.setUint32(offset, value, true);
61
- offset += 4;
62
- break;
63
- case ColumnType.Long:
64
- prep(8);
65
- view.setBigInt64(offset, BigInt(value), true);
66
- offset += 8;
67
- break;
68
- case ColumnType.Float:
69
- prep(4);
70
- view.setFloat32(offset, value, true);
71
- offset += 4;
72
- break;
73
- case ColumnType.Double:
74
- prep(8);
75
- view.setFloat64(offset, value, true);
76
- offset += 8;
77
- break;
78
- case ColumnType.DateTime:
79
- case ColumnType.String:
80
- {
81
- const str = textEncoder.encode(value);
82
- prep(4);
83
- view.setUint32(offset, str.length, true);
84
- offset += 4;
85
- prep(str.length);
86
- bytes.set(str, offset);
87
- offset += str.length;
88
- break;
89
- }
90
- case ColumnType.Json:
91
- {
92
- const str = textEncoder.encode(JSON.stringify(value));
93
- prep(4);
94
- view.setUint32(offset, str.length, true);
95
- offset += 4;
96
- prep(str.length);
97
- bytes.set(str, offset);
98
- offset += str.length;
99
- break;
100
- }
101
- default:
102
- throw new Error(`Unknown type ${column.type}`);
103
- }
15
+ const columns = header.columns;
16
+ const builder = new flatbuffers.Builder();
17
+ let offset = 0;
18
+ let capacity = 1024;
19
+ let bytes = new Uint8Array(capacity);
20
+ let view = new DataView(bytes.buffer);
21
+ const prep = function (size) {
22
+ if (offset + size < capacity)
23
+ return;
24
+ capacity = Math.max(capacity + size, capacity * 2);
25
+ const newBytes = new Uint8Array(capacity);
26
+ newBytes.set(bytes);
27
+ bytes = newBytes;
28
+ view = new DataView(bytes.buffer);
29
+ };
30
+ if (columns) {
31
+ for (let i = 0; i < columns.length; i++) {
32
+ const column = columns[i];
33
+ const value = properties[column.name];
34
+ if (value === null)
35
+ continue;
36
+ prep(2);
37
+ view.setUint16(offset, i, true);
38
+ offset += 2;
39
+ switch (column.type) {
40
+ case ColumnType.Bool:
41
+ prep(1);
42
+ view.setUint8(offset, value);
43
+ offset += 1;
44
+ break;
45
+ case ColumnType.Short:
46
+ prep(2);
47
+ view.setInt16(offset, value, true);
48
+ offset += 2;
49
+ break;
50
+ case ColumnType.UShort:
51
+ prep(2);
52
+ view.setUint16(offset, value, true);
53
+ offset += 2;
54
+ break;
55
+ case ColumnType.Int:
56
+ prep(4);
57
+ view.setInt32(offset, value, true);
58
+ offset += 4;
59
+ break;
60
+ case ColumnType.UInt:
61
+ prep(4);
62
+ view.setUint32(offset, value, true);
63
+ offset += 4;
64
+ break;
65
+ case ColumnType.Long:
66
+ prep(8);
67
+ view.setBigInt64(offset, BigInt(value), true);
68
+ offset += 8;
69
+ break;
70
+ case ColumnType.Float:
71
+ prep(4);
72
+ view.setFloat32(offset, value, true);
73
+ offset += 4;
74
+ break;
75
+ case ColumnType.Double:
76
+ prep(8);
77
+ view.setFloat64(offset, value, true);
78
+ offset += 8;
79
+ break;
80
+ case ColumnType.DateTime:
81
+ case ColumnType.String: {
82
+ const str = textEncoder.encode(value);
83
+ prep(4);
84
+ view.setUint32(offset, str.length, true);
85
+ offset += 4;
86
+ prep(str.length);
87
+ bytes.set(str, offset);
88
+ offset += str.length;
89
+ break;
90
+ }
91
+ case ColumnType.Json: {
92
+ const str = textEncoder.encode(JSON.stringify(value));
93
+ prep(4);
94
+ view.setUint32(offset, str.length, true);
95
+ offset += 4;
96
+ prep(str.length);
97
+ bytes.set(str, offset);
98
+ offset += str.length;
99
+ break;
100
+ }
101
+ default:
102
+ throw new Error(`Unknown type ${column.type}`);
103
+ }
104
+ }
104
105
  }
105
- }
106
- let propertiesOffset = null;
107
- if (offset > 0) propertiesOffset = Feature.createPropertiesVector(builder, bytes.slice(0, offset));
108
- const geometryOffset = buildGeometry(builder, geometry);
109
- Feature.startFeature(builder);
110
- Feature.addGeometry(builder, geometryOffset);
111
- if (propertiesOffset) Feature.addProperties(builder, propertiesOffset);
112
- const featureOffset = Feature.endFeature(builder);
113
- builder.finishSizePrefixed(featureOffset);
114
- return builder.asUint8Array();
106
+ let propertiesOffset = null;
107
+ if (offset > 0)
108
+ propertiesOffset = Feature.createPropertiesVector(builder, bytes.slice(0, offset));
109
+ const geometryOffset = buildGeometry(builder, geometry);
110
+ Feature.startFeature(builder);
111
+ Feature.addGeometry(builder, geometryOffset);
112
+ if (propertiesOffset)
113
+ Feature.addProperties(builder, propertiesOffset);
114
+ const featureOffset = Feature.endFeature(builder);
115
+ builder.finishSizePrefixed(featureOffset);
116
+ return builder.asUint8Array();
115
117
  }
116
118
  export function parseProperties(feature, columns) {
117
- const properties = {};
118
- if (!columns || columns.length === 0) return properties;
119
- const array = feature.propertiesArray();
120
- if (!array) return properties;
121
- const view = new DataView(array.buffer, array.byteOffset);
122
- const length = feature.propertiesLength();
123
- let offset = 0;
124
- while (offset < length) {
125
- const i = view.getUint16(offset, true);
126
- offset += 2;
127
- const column = columns[i];
128
- const name = column.name;
129
- switch (column.type) {
130
- case ColumnType.Bool:
131
- {
132
- properties[name] = Boolean(view.getUint8(offset));
133
- offset += 1;
134
- break;
135
- }
136
- case ColumnType.Byte:
137
- {
138
- properties[name] = view.getInt8(offset);
139
- offset += 1;
140
- break;
141
- }
142
- case ColumnType.UByte:
143
- {
144
- properties[name] = view.getUint8(offset);
145
- offset += 1;
146
- break;
147
- }
148
- case ColumnType.Short:
149
- {
150
- properties[name] = view.getInt16(offset, true);
151
- offset += 2;
152
- break;
153
- }
154
- case ColumnType.UShort:
155
- {
156
- properties[name] = view.getUint16(offset, true);
157
- offset += 2;
158
- break;
159
- }
160
- case ColumnType.Int:
161
- {
162
- properties[name] = view.getInt32(offset, true);
163
- offset += 4;
164
- break;
165
- }
166
- case ColumnType.UInt:
167
- {
168
- properties[name] = view.getUint32(offset, true);
169
- offset += 4;
170
- break;
171
- }
172
- case ColumnType.Long:
173
- {
174
- properties[name] = Number(view.getBigInt64(offset, true));
175
- offset += 8;
176
- break;
177
- }
178
- case ColumnType.ULong:
179
- {
180
- properties[name] = Number(view.getBigUint64(offset, true));
181
- offset += 8;
182
- break;
183
- }
184
- case ColumnType.Float:
185
- {
186
- properties[name] = view.getFloat32(offset, true);
187
- offset += 4;
188
- break;
189
- }
190
- case ColumnType.Double:
191
- {
192
- properties[name] = view.getFloat64(offset, true);
193
- offset += 8;
194
- break;
195
- }
196
- case ColumnType.DateTime:
197
- case ColumnType.String:
198
- {
199
- const length = view.getUint32(offset, true);
200
- offset += 4;
201
- properties[name] = textDecoder.decode(array.subarray(offset, offset + length));
202
- offset += length;
203
- break;
204
- }
205
- case ColumnType.Json:
206
- {
207
- const length = view.getUint32(offset, true);
208
- offset += 4;
209
- const str = textDecoder.decode(array.subarray(offset, offset + length));
210
- properties[name] = JSON.parse(str);
211
- offset += length;
212
- break;
119
+ const properties = {};
120
+ if (!columns || columns.length === 0)
121
+ return properties;
122
+ const array = feature.propertiesArray();
123
+ if (!array)
124
+ return properties;
125
+ const view = new DataView(array.buffer, array.byteOffset);
126
+ const length = feature.propertiesLength();
127
+ let offset = 0;
128
+ while (offset < length) {
129
+ const i = view.getUint16(offset, true);
130
+ offset += 2;
131
+ const column = columns[i];
132
+ const name = column.name;
133
+ switch (column.type) {
134
+ case ColumnType.Bool: {
135
+ properties[name] = Boolean(view.getUint8(offset));
136
+ offset += 1;
137
+ break;
138
+ }
139
+ case ColumnType.Byte: {
140
+ properties[name] = view.getInt8(offset);
141
+ offset += 1;
142
+ break;
143
+ }
144
+ case ColumnType.UByte: {
145
+ properties[name] = view.getUint8(offset);
146
+ offset += 1;
147
+ break;
148
+ }
149
+ case ColumnType.Short: {
150
+ properties[name] = view.getInt16(offset, true);
151
+ offset += 2;
152
+ break;
153
+ }
154
+ case ColumnType.UShort: {
155
+ properties[name] = view.getUint16(offset, true);
156
+ offset += 2;
157
+ break;
158
+ }
159
+ case ColumnType.Int: {
160
+ properties[name] = view.getInt32(offset, true);
161
+ offset += 4;
162
+ break;
163
+ }
164
+ case ColumnType.UInt: {
165
+ properties[name] = view.getUint32(offset, true);
166
+ offset += 4;
167
+ break;
168
+ }
169
+ case ColumnType.Long: {
170
+ properties[name] = Number(view.getBigInt64(offset, true));
171
+ offset += 8;
172
+ break;
173
+ }
174
+ case ColumnType.ULong: {
175
+ properties[name] = Number(view.getBigUint64(offset, true));
176
+ offset += 8;
177
+ break;
178
+ }
179
+ case ColumnType.Float: {
180
+ properties[name] = view.getFloat32(offset, true);
181
+ offset += 4;
182
+ break;
183
+ }
184
+ case ColumnType.Double: {
185
+ properties[name] = view.getFloat64(offset, true);
186
+ offset += 8;
187
+ break;
188
+ }
189
+ case ColumnType.DateTime:
190
+ case ColumnType.String: {
191
+ const length = view.getUint32(offset, true);
192
+ offset += 4;
193
+ properties[name] = textDecoder.decode(array.subarray(offset, offset + length));
194
+ offset += length;
195
+ break;
196
+ }
197
+ case ColumnType.Json: {
198
+ const length = view.getUint32(offset, true);
199
+ offset += 4;
200
+ const str = textDecoder.decode(array.subarray(offset, offset + length));
201
+ properties[name] = JSON.parse(str);
202
+ offset += length;
203
+ break;
204
+ }
205
+ default:
206
+ throw new Error(`Unknown type ${column.type}`);
213
207
  }
214
- default:
215
- throw new Error(`Unknown type ${column.type}`);
216
208
  }
217
- }
218
- return properties;
209
+ return properties;
219
210
  }
220
- //# sourceMappingURL=feature.js.map
@@ -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.js";
2
+ import { Feature } from "../flat-geobuf/feature.js";
3
+ import HeaderMeta from "../header-meta.js";
4
+ import { IFeature } from "./feature.js";
5
+ import { Rect } from "../packedrtree.js";
6
+ import { HeaderMetaFn } from "../generic.js";
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,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
+ {"version":3,"file":"featurecollection.d.ts","sourceRoot":"","sources":["../../../../src/flatgeobuf/3.27.2/generic/featurecollection.ts"],"names":[],"mappings":"AAGA,OAAO,UAAU,0BAAuB;AAMxC,OAAO,EAAC,OAAO,EAAC,kCAA+B;AAC/C,OAAO,UAA4B,0BAAuB;AAE1D,OAAO,EAAe,QAAQ,EAAC,qBAAkB;AAGjD,OAAO,EAAC,IAAI,EAAe,0BAAuB;AAElD,OAAO,EAAC,YAAY,EAAC,sBAAmB;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"}