@loaders.gl/schema 4.3.2 → 4.4.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/categories/category-gis.d.ts +6 -0
- package/dist/categories/category-gis.d.ts.map +1 -0
- package/dist/categories/category-image.d.ts.map +1 -0
- package/dist/{types → categories}/category-mesh.d.ts +2 -2
- package/dist/categories/category-mesh.d.ts.map +1 -0
- package/dist/{types → categories}/category-table.d.ts +14 -14
- package/dist/categories/category-table.d.ts.map +1 -0
- package/dist/categories/category-texture.d.ts.map +1 -0
- package/dist/{lib/mesh → deprecated}/mesh-utils.d.ts +4 -2
- package/dist/deprecated/mesh-utils.d.ts.map +1 -0
- package/dist/{lib/mesh → deprecated}/mesh-utils.js +2 -0
- package/dist/dist.dev.js +0 -1836
- package/dist/dist.min.js +1 -1
- package/dist/geometry/binary-features.d.ts +30 -0
- package/dist/geometry/binary-features.d.ts.map +1 -0
- package/dist/geometry/binary-geometries.d.ts +33 -0
- package/dist/geometry/binary-geometries.d.ts.map +1 -0
- package/dist/geometry/flat-geometries.d.ts +61 -0
- package/dist/geometry/flat-geometries.d.ts.map +1 -0
- package/dist/index.cjs +2 -1792
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +10 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -23
- package/dist/types/batch.d.ts +3 -1
- package/dist/types/batch.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/{types → categories}/category-gis.ts +7 -18
- package/src/{types → categories}/category-mesh.ts +2 -2
- package/src/{types → categories}/category-table.ts +14 -17
- package/src/{lib/mesh → deprecated}/mesh-utils.ts +4 -2
- package/src/geometry/binary-features.ts +43 -0
- package/src/geometry/binary-geometries.ts +45 -0
- package/src/{types → geometry}/flat-geometries.ts +44 -14
- package/src/index.ts +15 -101
- package/src/types/batch.ts +3 -1
- package/dist/lib/mesh/convert-mesh.d.ts +0 -15
- package/dist/lib/mesh/convert-mesh.d.ts.map +0 -1
- package/dist/lib/mesh/convert-mesh.js +0 -37
- package/dist/lib/mesh/deduce-mesh-schema.d.ts +0 -24
- package/dist/lib/mesh/deduce-mesh-schema.d.ts.map +0 -1
- package/dist/lib/mesh/deduce-mesh-schema.js +0 -62
- package/dist/lib/mesh/mesh-to-arrow-table.d.ts +0 -1
- package/dist/lib/mesh/mesh-to-arrow-table.d.ts.map +0 -1
- package/dist/lib/mesh/mesh-to-arrow-table.js +0 -47
- package/dist/lib/mesh/mesh-utils.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/arrow-like-field.d.ts +0 -19
- package/dist/lib/table/arrow-api/arrow-like-field.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/arrow-like-field.js +0 -36
- package/dist/lib/table/arrow-api/arrow-like-interface.d.ts +0 -43
- package/dist/lib/table/arrow-api/arrow-like-interface.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/arrow-like-schema.d.ts +0 -12
- package/dist/lib/table/arrow-api/arrow-like-schema.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/arrow-like-schema.js +0 -81
- package/dist/lib/table/arrow-api/arrow-like-table.d.ts +0 -24
- package/dist/lib/table/arrow-api/arrow-like-table.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/arrow-like-table.js +0 -63
- package/dist/lib/table/arrow-api/arrow-like-type.d.ts +0 -177
- package/dist/lib/table/arrow-api/arrow-like-type.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/arrow-like-type.js +0 -442
- package/dist/lib/table/arrow-api/enum.d.ts +0 -92
- package/dist/lib/table/arrow-api/enum.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/enum.js +0 -97
- package/dist/lib/table/arrow-api/get-type-info.d.ts +0 -13
- package/dist/lib/table/arrow-api/get-type-info.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/get-type-info.js +0 -27
- package/dist/lib/table/arrow-api/index.d.ts +0 -5
- package/dist/lib/table/arrow-api/index.d.ts.map +0 -1
- package/dist/lib/table/arrow-api/index.js +0 -7
- package/dist/lib/table/batches/base-table-batch-aggregator.d.ts +0 -20
- package/dist/lib/table/batches/base-table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/table/batches/base-table-batch-aggregator.js +0 -63
- package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts +0 -23
- package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/table/batches/columnar-table-batch-aggregator.js +0 -91
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts +0 -22
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/table/batches/row-table-batch-aggregator.js +0 -85
- package/dist/lib/table/batches/table-batch-aggregator.d.ts +0 -25
- package/dist/lib/table/batches/table-batch-aggregator.d.ts.map +0 -1
- package/dist/lib/table/batches/table-batch-aggregator.js +0 -4
- package/dist/lib/table/batches/table-batch-builder.d.ts +0 -53
- package/dist/lib/table/batches/table-batch-builder.d.ts.map +0 -1
- package/dist/lib/table/batches/table-batch-builder.js +0 -151
- package/dist/lib/table/simple-table/convert-table.d.ts +0 -43
- package/dist/lib/table/simple-table/convert-table.d.ts.map +0 -1
- package/dist/lib/table/simple-table/convert-table.js +0 -118
- package/dist/lib/table/simple-table/data-type.d.ts +0 -17
- package/dist/lib/table/simple-table/data-type.d.ts.map +0 -1
- package/dist/lib/table/simple-table/data-type.js +0 -88
- package/dist/lib/table/simple-table/make-table-from-batches.d.ts +0 -22
- package/dist/lib/table/simple-table/make-table-from-batches.d.ts.map +0 -1
- package/dist/lib/table/simple-table/make-table-from-batches.js +0 -79
- package/dist/lib/table/simple-table/make-table.d.ts +0 -65
- package/dist/lib/table/simple-table/make-table.d.ts.map +0 -1
- package/dist/lib/table/simple-table/make-table.js +0 -94
- package/dist/lib/table/simple-table/row-utils.d.ts +0 -15
- package/dist/lib/table/simple-table/row-utils.d.ts.map +0 -1
- package/dist/lib/table/simple-table/row-utils.js +0 -49
- package/dist/lib/table/simple-table/table-accessors.d.ts +0 -68
- package/dist/lib/table/simple-table/table-accessors.d.ts.map +0 -1
- package/dist/lib/table/simple-table/table-accessors.js +0 -350
- package/dist/lib/table/simple-table/table-column.d.ts +0 -7
- package/dist/lib/table/simple-table/table-column.d.ts.map +0 -1
- package/dist/lib/table/simple-table/table-column.js +0 -39
- package/dist/lib/table/simple-table/table-schema.d.ts +0 -15
- package/dist/lib/table/simple-table/table-schema.d.ts.map +0 -1
- package/dist/lib/table/simple-table/table-schema.js +0 -100
- package/dist/lib/utils/assert.d.ts +0 -2
- package/dist/lib/utils/assert.d.ts.map +0 -1
- package/dist/lib/utils/assert.js +0 -8
- package/dist/lib/utils/async-queue.d.ts +0 -18
- package/dist/lib/utils/async-queue.d.ts.map +0 -1
- package/dist/lib/utils/async-queue.js +0 -90
- package/dist/types/binary-geometries.d.ts +0 -57
- package/dist/types/binary-geometries.d.ts.map +0 -1
- package/dist/types/category-gis.d.ts +0 -18
- package/dist/types/category-gis.d.ts.map +0 -1
- package/dist/types/category-image.d.ts.map +0 -1
- package/dist/types/category-mesh.d.ts.map +0 -1
- package/dist/types/category-table.d.ts.map +0 -1
- package/dist/types/category-texture.d.ts.map +0 -1
- package/dist/types/flat-geometries.d.ts +0 -30
- package/dist/types/flat-geometries.d.ts.map +0 -1
- package/src/lib/mesh/convert-mesh.ts +0 -51
- package/src/lib/mesh/deduce-mesh-schema.ts +0 -76
- package/src/lib/mesh/mesh-to-arrow-table.ts +0 -47
- package/src/lib/table/arrow-api/arrow-like-field.ts +0 -53
- package/src/lib/table/arrow-api/arrow-like-interface.ts +0 -84
- package/src/lib/table/arrow-api/arrow-like-schema.ts +0 -101
- package/src/lib/table/arrow-api/arrow-like-table.ts +0 -86
- package/src/lib/table/arrow-api/arrow-like-type.ts +0 -502
- package/src/lib/table/arrow-api/enum.ts +0 -99
- package/src/lib/table/arrow-api/get-type-info.ts +0 -38
- package/src/lib/table/arrow-api/index.ts +0 -8
- package/src/lib/table/batches/base-table-batch-aggregator.ts +0 -83
- package/src/lib/table/batches/columnar-table-batch-aggregator.ts +0 -112
- package/src/lib/table/batches/row-table-batch-aggregator.ts +0 -109
- package/src/lib/table/batches/table-batch-aggregator.ts +0 -29
- package/src/lib/table/batches/table-batch-builder.ts +0 -190
- package/src/lib/table/simple-table/convert-table.ts +0 -149
- package/src/lib/table/simple-table/data-type.ts +0 -104
- package/src/lib/table/simple-table/make-table-from-batches.ts +0 -98
- package/src/lib/table/simple-table/make-table.ts +0 -111
- package/src/lib/table/simple-table/row-utils.ts +0 -59
- package/src/lib/table/simple-table/table-accessors.ts +0 -417
- package/src/lib/table/simple-table/table-column.ts +0 -49
- package/src/lib/table/simple-table/table-schema.ts +0 -121
- package/src/lib/utils/assert.ts +0 -8
- package/src/lib/utils/async-queue.ts +0 -104
- package/src/types/binary-geometries.ts +0 -67
- /package/dist/{types → categories}/category-gis.js +0 -0
- /package/dist/{types → categories}/category-image.d.ts +0 -0
- /package/dist/{types → categories}/category-image.js +0 -0
- /package/dist/{types → categories}/category-mesh.js +0 -0
- /package/dist/{types → categories}/category-table.js +0 -0
- /package/dist/{types → categories}/category-texture.d.ts +0 -0
- /package/dist/{types → categories}/category-texture.js +0 -0
- /package/dist/{lib/table/arrow-api/arrow-like-interface.js → geometry/binary-features.js} +0 -0
- /package/dist/{types → geometry}/binary-geometries.js +0 -0
- /package/dist/{types → geometry}/flat-geometries.js +0 -0
- /package/src/{types → categories}/category-image.ts +0 -0
- /package/src/{types → categories}/category-texture.ts +0 -0
package/dist/dist.min.js
CHANGED
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
6
|
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var Qt=Object.create;var F=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var re=Object.getPrototypeOf,se=Object.prototype.hasOwnProperty;var ae=(t,e,r)=>e in t?F(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var oe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ne=(t,e)=>{for(var r in e)F(t,r,{get:e[r],enumerable:!0})},U=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of ee(e))!se.call(t,a)&&a!==r&&F(t,a,{get:()=>e[a],enumerable:!(s=te(e,a))||s.enumerable});return t},k=(t,e,r)=>(U(t,e,"default"),r&&U(r,e,"default")),ie=(t,e,r)=>(r=t!=null?Qt(re(t)):{},U(e||!t||!t.__esModule?F(r,"default",{value:t,enumerable:!0}):r,t)),ce=t=>U(F({},"__esModule",{value:!0}),t);var Bt=(t,e,r)=>(ae(t,typeof e!="symbol"?e+"":e,r),r);var _t=oe((je,Dt)=>{Dt.exports=globalThis.loaders});var D={};ne(D,{ArrowLikeDataType:()=>m,ArrowLikeField:()=>p,ArrowLikeSchema:()=>d,ArrowLikeTable:()=>H,AsyncQueue:()=>B,Binary:()=>nt,Bool:()=>V,ColumnarTableBatchAggregator:()=>S,Date:()=>I,DateDay:()=>ct,DateMillisecond:()=>lt,FixedSizeList:()=>bt,Float:()=>x,Float16:()=>st,Float32:()=>at,Float64:()=>ot,Int:()=>f,Int16:()=>X,Int32:()=>Z,Int64:()=>K,Int8:()=>G,Interval:()=>O,IntervalDayTime:()=>gt,IntervalYearMonth:()=>wt,Null:()=>J,RowTableBatchAggregator:()=>A,Struct:()=>yt,TableBatchBuilder:()=>R,Time:()=>T,TimeMillisecond:()=>ht,TimeSecond:()=>ut,Timestamp:()=>b,TimestampMicrosecond:()=>ft,TimestampMillisecond:()=>dt,TimestampNanosecond:()=>pt,TimestampSecond:()=>mt,Uint16:()=>tt,Uint32:()=>et,Uint64:()=>rt,Uint8:()=>Q,Utf8:()=>it,convertTable:()=>Vt,convertToArrayRow:()=>Y,convertToObjectRow:()=>W,deduceMeshField:()=>Ft,deduceMeshSchema:()=>Zt,deduceTableSchema:()=>w,getArrayTypeFromDataType:()=>z,getDataTypeFromArray:()=>L,getMeshBoundingBox:()=>Xt,getMeshSize:()=>Gt,getTableCell:()=>j,getTableCellAt:()=>Lt,getTableColumnIndex:()=>jt,getTableColumnName:()=>N,getTableLength:()=>h,getTableNumCols:()=>q,getTableRowAsArray:()=>C,getTableRowAsObject:()=>E,getTableRowShape:()=>zt,getTypeInfo:()=>Kt,isTable:()=>vt,makeArrayRowIterator:()=>It,makeBatchFromTable:()=>qt,makeMeshAttributeMetadata:()=>Rt,makeObjectRowIterator:()=>Tt,makeRowIterator:()=>$t,makeTableFromBatches:()=>Ht,makeTableFromData:()=>Pt});k(D,ie(_t(),1));function v(t,e="float32"){return t instanceof Date?"date-millisecond":t instanceof Number?e:typeof t=="string"?"utf8":(t===null||t==="undefined","null")}function L(t){let e=St(t);return e!=="null"?{type:e,nullable:!1}:t.length>0?(e=v(t[0]),{type:e,nullable:!0}):{type:"null",nullable:!0}}function St(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function z(t,e){if(!e)switch(t){case"int8":return Int8Array;case"uint8":return Uint8Array;case"int16":return Int16Array;case"uint16":return Uint16Array;case"int32":return Int32Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;default:break}return Array}var $=class{schema;options;shape;length=0;rows=null;cursor=0;_headers=[];constructor(e,r){if(this.options=r,this.schema=e,!Array.isArray(e)){this._headers=[];for(let s in e)this._headers[e[s].index]=e[s].name}}rowCount(){return this.length}addArrayRow(e,r){Number.isFinite(r)&&(this.cursor=r),this.shape="array-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=e,this.length++}addObjectRow(e,r){Number.isFinite(r)&&(this.cursor=r),this.shape="object-row-table",this.rows=this.rows||new Array(100),this.rows[this.length]=e,this.length++}getBatch(){let e=this.rows;return e?(e=e.slice(0,this.length),this.rows=null,{shape:this.shape||"array-row-table",batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}};function W(t,e){if(!t)throw new Error("null row");let r={};if(e)for(let s=0;s<e.length;s++)r[e[s]]=t[s];else for(let s=0;s<t.length;s++){let a=`column-${s}`;r[a]=t[s]}return r}function Y(t,e){if(!t)throw new Error("null row");if(e){let r=new Array(e.length);for(let s=0;s<e.length;s++)r[s]=t[e[s]];return r}return Object.values(t)}function Mt(t){let e=[];for(let r=0;r<t.length;r++){let s=`column-${r}`;e.push(s)}return e}function Ut(t){return Object.keys(t)}var kt=100,A=class{schema;options;length=0;objectRows=null;arrayRows=null;cursor=0;_headers=null;constructor(e,r){if(this.options=r,this.schema=e,e){this._headers=[];for(let s in e)this._headers[e[s].index]=e[s].name}}rowCount(){return this.length}addArrayRow(e,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||=Mt(e),this.options.shape){case"object-row-table":let s=W(e,this._headers);this.addObjectRow(s,r);break;case"array-row-table":this.arrayRows=this.arrayRows||new Array(kt),this.arrayRows[this.length]=e,this.length++;break}}addObjectRow(e,r){switch(Number.isFinite(r)&&(this.cursor=r),this._headers||=Ut(e),this.options.shape){case"array-row-table":let s=Y(e,this._headers);this.addArrayRow(s,r);break;case"object-row-table":this.objectRows=this.objectRows||new Array(kt),this.objectRows[this.length]=e,this.length++;break}}getBatch(){let e=this.arrayRows||this.objectRows;return e?(e=e.slice(0,this.length),this.arrayRows=null,this.objectRows=null,{shape:this.options.shape,batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}};var S=class{schema;length=0;allocated=0;columns={};constructor(e,r){this.schema=e,this._reallocateColumns()}rowCount(){return this.length}addArrayRow(e){this._reallocateColumns();let r=0;for(let s in this.columns)this.columns[s][this.length]=e[r++];this.length++}addObjectRow(e){this._reallocateColumns();for(let r in e)this.columns[r][this.length]=e[r];this.length++}getBatch(){this._pruneColumns();let e=Array.isArray(this.schema)?this.columns:{};if(!Array.isArray(this.schema))for(let s in this.schema){let a=this.schema[s];e[a.name]=this.columns[a.index]}return this.columns={},{shape:"columnar-table",batchType:"data",data:e,schema:this.schema,length:this.length}}_reallocateColumns(){if(!(this.length<this.allocated)){this.allocated=this.allocated>0?this.allocated*=2:100,this.columns={};for(let e in this.schema){let r=this.schema[e],s=r.type||Float32Array,a=this.columns[r.index];if(a&&ArrayBuffer.isView(a)){let u=new s(this.allocated);u.set(a),this.columns[r.index]=u}else a?(a.length=this.allocated,this.columns[r.index]=a):this.columns[r.index]=new s(this.allocated)}}}_pruneColumns(){for(let[e,r]of Object.entries(this.columns))this.columns[e]=r.slice(0,this.length)}};var le={shape:void 0,batchSize:"auto",batchDebounceMs:0,limit:0,_limitMB:0},ue="TableBatchBuilder",P=class{schema;options;aggregator=null;batchCount=0;bytesUsed=0;isChunkComplete=!1;lastBatchEmittedMs=Date.now();totalLength=0;totalBytes=0;rowBytes=0;constructor(e,r){this.schema=e,this.options={...le,...r}}limitReached(){return!!(Boolean(this.options?.limit)&&this.totalLength>=this.options.limit||Boolean(this.options?._limitMB)&&this.totalBytes/1e6>=this.options._limitMB)}addRow(e){this.limitReached()||(this.totalLength++,this.rowBytes=this.rowBytes||this._estimateRowMB(e),this.totalBytes+=this.rowBytes,Array.isArray(e)?this.addArrayRow(e):this.addObjectRow(e))}addArrayRow(e){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addArrayRow(e)}addObjectRow(e){if(!this.aggregator){let r=this._getTableBatchType();this.aggregator=new r(this.schema,this.options)}this.aggregator.addObjectRow(e)}chunkComplete(e){e instanceof ArrayBuffer&&(this.bytesUsed+=e.byteLength),typeof e=="string"&&(this.bytesUsed+=e.length),this.isChunkComplete=!0}getFullBatch(e){return this._isFull()?this._getBatch(e):null}getFinalBatch(e){return this._getBatch(e)}_estimateRowMB(e){return Array.isArray(e)?e.length*8:Object.keys(e).length*8}_isFull(){if(!this.aggregator||this.aggregator.rowCount()===0)return!1;if(this.options.batchSize==="auto"){if(!this.isChunkComplete)return!1}else if(this.options.batchSize>this.aggregator.rowCount())return!1;return this.options.batchDebounceMs>Date.now()-this.lastBatchEmittedMs?!1:(this.isChunkComplete=!1,this.lastBatchEmittedMs=Date.now(),!0)}_getBatch(e){if(!this.aggregator)return null;e?.bytesUsed&&(this.bytesUsed=e.bytesUsed);let r=this.aggregator.getBatch();return r.count=this.batchCount,r.bytesUsed=this.bytesUsed,Object.assign(r,e),this.batchCount++,this.aggregator=null,r}_getTableBatchType(){switch(this.options.shape){case"array-row-table":case"object-row-table":return A;case"columnar-table":return S;case"arrow-table":if(!P.ArrowBatch)throw new Error(ue);return P.ArrowBatch;default:return $}}},R=P;Bt(R,"ArrowBatch");function vt(t){switch(typeof t=="object"&&t?.shape){case"array-row-table":case"object-row-table":return Array.isArray(t.data);case"geojson-table":return Array.isArray(t.features);case"columnar-table":return t.data&&typeof t.data=="object";case"arrow-table":return Boolean(t?.data?.numRows!==void 0);default:return!1}}function h(t){switch(t.shape){case"array-row-table":case"object-row-table":return t.data.length;case"geojson-table":return t.features.length;case"arrow-table":return t.data.numRows;case"columnar-table":for(let r of Object.values(t.data))return r.length||0;return 0;default:throw new Error("table")}}function q(t){if(t.schema)return t.schema.fields.length;if(h(t)===0)throw new Error("empty table");switch(t.shape){case"array-row-table":return t.data[0].length;case"object-row-table":return Object.keys(t.data[0]).length;case"geojson-table":return Object.keys(t.features[0]).length;case"columnar-table":return Object.keys(t.data).length;case"arrow-table":return t.data.numCols;default:throw new Error("table")}}function j(t,e,r){switch(t.shape){case"array-row-table":let s=jt(t,r);return t.data[e][s];case"object-row-table":return t.data[e][r];case"geojson-table":return t.features[e][r];case"columnar-table":return t.data[r][e];case"arrow-table":let u=t.data,c=u.schema.fields.findIndex(l=>l.name===r);return u.getChildAt(c)?.get(e);default:throw new Error("todo")}}function Lt(t,e,r){switch(t.shape){case"array-row-table":return t.data[e][r];case"object-row-table":let s=N(t,r);return t.data[e][s];case"geojson-table":let a=N(t,r);return t.features[e][a];case"columnar-table":let u=N(t,r);return t.data[u][e];case"arrow-table":return t.data.getChildAt(r)?.get(e);default:throw new Error("todo")}}function zt(t){switch(t.shape){case"array-row-table":case"object-row-table":return t.shape;case"geojson-table":return"object-row-table";case"columnar-table":default:throw new Error("Not a row table")}}function jt(t,e){let r=t.schema?.fields.findIndex(s=>s.name===e);if(r===void 0)throw new Error(e);return r}function N(t,e){let r=t.schema?.fields[e]?.name;if(!r)throw new Error(`${e}`);return r}function E(t,e,r,s){switch(t.shape){case"object-row-table":return s?Object.fromEntries(Object.entries(t.data[e])):t.data[e];case"array-row-table":if(t.schema){let o=r||{};for(let n=0;n<t.schema.fields.length;n++)o[t.schema.fields[n].name]=t.data[e][n];return o}throw new Error("no schema");case"geojson-table":if(t.schema){let o=r||{};for(let n=0;n<t.schema.fields.length;n++)o[t.schema.fields[n].name]=t.features[e][n];return o}throw new Error("no schema");case"columnar-table":if(t.schema){let o=r||{};for(let n=0;n<t.schema.fields.length;n++)o[t.schema.fields[n].name]=t.data[t.schema.fields[n].name][e];return o}else{let o=r||{};for(let[n,g]of Object.entries(t.data))o[n]=g[e];return o}case"arrow-table":let a=t.data,u=r||{},c=a.get(e),l=a.schema;for(let o=0;o<l.fields.length;o++)u[l.fields[o].name]=c?.[l.fields[o].name];return u;default:throw new Error("shape")}}function C(t,e,r,s){switch(t.shape){case"array-row-table":return s?Array.from(t.data[e]):t.data[e];case"object-row-table":if(t.schema){let o=r||[];for(let n=0;n<t.schema.fields.length;n++)o[n]=t.data[e][t.schema.fields[n].name];return o}return Object.values(t.data[e]);case"geojson-table":if(t.schema){let o=r||[];for(let n=0;n<t.schema.fields.length;n++)o[n]=t.features[e][t.schema.fields[n].name];return o}return Object.values(t.features[e]);case"columnar-table":if(t.schema){let o=r||[];for(let n=0;n<t.schema.fields.length;n++)o[n]=t.data[t.schema.fields[n].name][e];return o}else{let o=r||[],n=0;for(let g of Object.values(t.data))o[n]=g[e],n++;return o}case"arrow-table":let a=t.data,u=r||[],c=a.get(e),l=a.schema;for(let o=0;o<l.fields.length;o++)u[o]=c?.[l.fields[o].name];return u;default:throw new Error("shape")}}function*$t(t,e){switch(e){case"array-row-table":yield*It(t);break;case"object-row-table":yield*Tt(t);break;default:throw new Error(`Unknown row type ${e}`)}}function*It(t,e=[]){let r=h(t);for(let s=0;s<r;s++)yield C(t,s,e)}function*Tt(t,e={}){let r=h(t);for(let s=0;s<r;s++)yield E(t,s,e)}var p=class{name;type;nullable;metadata;constructor(e,r,s=!1,a=new Map){this.name=e,this.type=r,this.nullable=s,this.metadata=a}get typeId(){return this.type&&this.type.typeId}clone(){return new p(this.name,this.type,this.nullable,this.metadata)}compareTo(e){return this.name===e.name&&this.type===e.type&&this.nullable===e.nullable&&this.metadata===e.metadata}toString(){return`${JSON.stringify(this.type)}${this.nullable?", nullable":""}${this.metadata?`, metadata: ${JSON.stringify(this.metadata)}`:""}`}};var d=class{fields;metadata;constructor(e,r=new Map){this.fields=e.map(s=>new p(s.name,s.type,s.nullable,s.metadata)),this.metadata=r instanceof Map?r:new Map(Object.entries(r))}compareTo(e){if(this.metadata!==e.metadata||this.fields.length!==e.fields.length)return!1;for(let r=0;r<this.fields.length;++r)if(!this.fields[r].compareTo(e.fields[r]))return!1;return!0}select(...e){let r=Object.create(null);for(let a of e)r[a]=!0;let s=this.fields.filter(a=>r[a.name]);return new d(s,this.metadata)}selectAt(...e){let r=e.map(s=>this.fields[s]).filter(Boolean);return new d(r,this.metadata)}assign(e){let r,s=this.metadata;if(e instanceof d){let c=e;r=c.fields,s=Wt(Wt(new Map,this.metadata),c.metadata)}else r=e;let a=Object.create(null);for(let c of this.fields)a[c.name]=c;for(let c of r)a[c.name]=c;let u=Object.values(a);return new d(u,s)}};function Wt(t,e){return new Map([...t||new Map,...e||new Map])}function w(t){switch(t.shape){case"array-row-table":case"object-row-table":return me(t.data);case"geojson-table":return de(t.features);case"columnar-table":return he(t.data);case"arrow-table":default:throw new Error("Deduce schema")}}function he(t){let e=[];for(let[r,s]of Object.entries(t)){let a=fe(s,r);e.push(a)}return{fields:e,metadata:{}}}function me(t){if(!t.length)throw new Error("deduce from empty table");let e=[],r=t[0];for(let[s,a]of Object.entries(r))e.push(Yt(a,s));return{fields:e,metadata:{}}}function de(t){if(!t.length)throw new Error("deduce from empty table");let e=[],r=t[0].properties||{};for(let[s,a]of Object.entries(r))e.push(Yt(a,s));return{fields:e,metadata:{}}}function fe(t,e){if(ArrayBuffer.isView(t)){let r=L(t);return{name:e,type:r.type||"null",nullable:r.nullable}}if(Array.isArray(t)&&t.length>0){let r=t[0],s=v(r);return{name:e,type:s,nullable:!0}}throw new Error("empty table")}function Yt(t,e){let r=v(t);return{name:e,type:r,nullable:!0}}var Ot=class{table;columnName;constructor(e,r){this.table=e,this.columnName=r}get(e){return j(this.table,e,this.columnName)}toArray(){switch(this.table.shape){case"arrow-table":return this.table.data.getChild(this.columnName)?.toArray();case"columnar-table":return this.table.data[this.columnName];default:throw new Error(this.table.shape)}}},H=class{schema;table;constructor(e){let r=e.schema||w(e);this.schema=new d(r.fields,r.metadata),this.table={...e,schema:r}}get data(){return this.table.shape==="geojson-table"?this.table.features:this.table.data}get numCols(){return q(this.table)}get length(){return h(this.table)}getChild(e){return new Ot(this.table,e)}};function Pt(t){let e;switch(pe(t)){case"array-row-table":e={shape:"array-row-table",data:t};break;case"object-row-table":e={shape:"object-row-table",data:t};break;case"columnar-table":e={shape:"columnar-table",data:t};break;default:throw new Error("table")}let r=w(e);return{...e,schema:r}}function pe(t){if(Array.isArray(t)){if(t.length===0)throw new Error("cannot deduce type of empty table");let e=t[0];if(Array.isArray(e))return"array-row-table";if(e&&typeof e=="object")return"object-row-table"}if(t&&typeof t=="object")return"columnar-table";throw new Error("invalid table")}function qt(t){return{...t,length:h(t),batchType:"data"}}async function Ht(t){let e,r,s,a=null,u;for await(let c of t)switch(a=a||c.shape,u=u||c.schema,c.shape){case"array-row-table":e=e||[];for(let l=0;l<h(c);l++){let o=c.data[l];e.push(o)}break;case"object-row-table":r=r||[];for(let l=0;l<h(c);l++){let o=c.data[l];r.push(o)}break;case"geojson-table":s=s||[];for(let l=0;l<h(c);l++){let o=c.features[l];s.push(o)}break;case"columnar-table":case"arrow-table":default:throw new Error("shape")}if(!a)return null;switch(a){case"array-row-table":return{shape:"array-row-table",data:e,schema:u};case"object-row-table":return{shape:"object-row-table",data:r,schema:u};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:s,schema:u};default:return null}}function Jt(t,e){let r=z(t.type,t.nullable);return new r(e)}function Vt(t,e){switch(e){case"object-row-table":return ye(t);case"array-row-table":return be(t);case"columnar-table":return we(t);case"arrow-table":return ge(t);default:throw new Error(e)}}function ge(t){let e=globalThis.__loaders?._makeArrowTable;if(!e)throw new Error("");return e(t)}function we(t){let e=t.schema||w(t),r=t.schema?.fields||[];if(t.shape==="columnar-table")return{...t,schema:e};let s=h(t),a={};for(let u of r){let c=Jt(u,s);a[u.name]=c;for(let l=0;l<s;l++)c[l]=j(t,l,u.name)}return{shape:"columnar-table",schema:e,data:a}}function be(t){if(t.shape==="array-row-table")return t;let e=h(t),r=new Array(e);for(let s=0;s<e;s++)r[s]=C(t,s);return{shape:"array-row-table",schema:t.schema,data:r}}function ye(t){if(t.shape==="object-row-table")return t;let e=h(t),r=new Array(e);for(let s=0;s<e;s++)r[s]=E(t,s);return{shape:"object-row-table",schema:t.schema,data:r}}function Gt(t){let e=0;for(let r in t){let s=t[r];ArrayBuffer.isView(s)&&(e+=s.byteLength*s.BYTES_PER_ELEMENT)}return e}function Xt(t){let e=1/0,r=1/0,s=1/0,a=-1/0,u=-1/0,c=-1/0,l=t.POSITION?t.POSITION.value:[],o=l&&l.length;for(let n=0;n<o;n+=3){let g=l[n],_=l[n+1],M=l[n+2];e=g<e?g:e,r=_<r?_:r,s=M<s?M:s,a=g>a?g:a,u=_>u?_:u,c=M>c?M:c}return[[e,r,s],[a,u,c]]}function Zt(t,e={}){return{fields:xe(t),metadata:e}}function Ft(t,e,r){let s=St(e.value),a=r||Rt(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:s}]},nullable:!1,metadata:a}}function xe(t){let e=[];for(let r in t){let s=t[r];e.push(Ft(r,s))}return e}function Rt(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}var i;(function(t){t[t.NONE=0]="NONE",t[t.Null=1]="Null",t[t.Int=2]="Int",t[t.Float=3]="Float",t[t.Binary=4]="Binary",t[t.Utf8=5]="Utf8",t[t.Bool=6]="Bool",t[t.Decimal=7]="Decimal",t[t.Date=8]="Date",t[t.Time=9]="Time",t[t.Timestamp=10]="Timestamp",t[t.Interval=11]="Interval",t[t.List=12]="List",t[t.Struct=13]="Struct",t[t.Union=14]="Union",t[t.FixedSizeBinary=15]="FixedSizeBinary",t[t.FixedSizeList=16]="FixedSizeList",t[t.Map=17]="Map",t[t.Dictionary=-1]="Dictionary",t[t.Int8=-2]="Int8",t[t.Int16=-3]="Int16",t[t.Int32=-4]="Int32",t[t.Int64=-5]="Int64",t[t.Uint8=-6]="Uint8",t[t.Uint16=-7]="Uint16",t[t.Uint32=-8]="Uint32",t[t.Uint64=-9]="Uint64",t[t.Float16=-10]="Float16",t[t.Float32=-11]="Float32",t[t.Float64=-12]="Float64",t[t.DateDay=-13]="DateDay",t[t.DateMillisecond=-14]="DateMillisecond",t[t.TimestampSecond=-15]="TimestampSecond",t[t.TimestampMillisecond=-16]="TimestampMillisecond",t[t.TimestampMicrosecond=-17]="TimestampMicrosecond",t[t.TimestampNanosecond=-18]="TimestampNanosecond",t[t.TimeSecond=-19]="TimeSecond",t[t.TimeMillisecond=-20]="TimeMillisecond",t[t.TimeMicrosecond=-21]="TimeMicrosecond",t[t.TimeNanosecond=-22]="TimeNanosecond",t[t.DenseUnion=-23]="DenseUnion",t[t.SparseUnion=-24]="SparseUnion",t[t.IntervalDayTime=-25]="IntervalDayTime",t[t.IntervalYearMonth=-26]="IntervalYearMonth"})(i||(i={}));var m=class{static isNull(e){return e&&e.typeId===i.Null}static isInt(e){return e&&e.typeId===i.Int}static isFloat(e){return e&&e.typeId===i.Float}static isBinary(e){return e&&e.typeId===i.Binary}static isUtf8(e){return e&&e.typeId===i.Utf8}static isBool(e){return e&&e.typeId===i.Bool}static isDecimal(e){return e&&e.typeId===i.Decimal}static isDate(e){return e&&e.typeId===i.Date}static isTime(e){return e&&e.typeId===i.Time}static isTimestamp(e){return e&&e.typeId===i.Timestamp}static isInterval(e){return e&&e.typeId===i.Interval}static isList(e){return e&&e.typeId===i.List}static isStruct(e){return e&&e.typeId===i.Struct}static isUnion(e){return e&&e.typeId===i.Union}static isFixedSizeBinary(e){return e&&e.typeId===i.FixedSizeBinary}static isFixedSizeList(e){return e&&e.typeId===i.FixedSizeList}static isMap(e){return e&&e.typeId===i.Map}static isDictionary(e){return e&&e.typeId===i.Dictionary}get typeId(){return i.NONE}compareTo(e){return this===e}},J=class extends m{get typeId(){return i.Null}get[Symbol.toStringTag](){return"Null"}toString(){return"Null"}},V=class extends m{get typeId(){return i.Bool}get[Symbol.toStringTag](){return"Bool"}toString(){return"Bool"}},f=class extends m{isSigned;bitWidth;constructor(e,r){super(),this.isSigned=e,this.bitWidth=r}get typeId(){return i.Int}get[Symbol.toStringTag](){return"Int"}toString(){return`${this.isSigned?"I":"Ui"}nt${this.bitWidth}`}},G=class extends f{constructor(){super(!0,8)}},X=class extends f{constructor(){super(!0,16)}},Z=class extends f{constructor(){super(!0,32)}},K=class extends f{constructor(){super(!0,64)}},Q=class extends f{constructor(){super(!1,8)}},tt=class extends f{constructor(){super(!1,16)}},et=class extends f{constructor(){super(!1,32)}},rt=class extends f{constructor(){super(!1,64)}},Nt={HALF:16,SINGLE:32,DOUBLE:64},x=class extends m{precision;constructor(e){super(),this.precision=e}get typeId(){return i.Float}get[Symbol.toStringTag](){return"Float"}toString(){return`Float${this.precision}`}},st=class extends x{constructor(){super(Nt.HALF)}},at=class extends x{constructor(){super(Nt.SINGLE)}},ot=class extends x{constructor(){super(Nt.DOUBLE)}},nt=class extends m{constructor(){super()}get typeId(){return i.Binary}toString(){return"Binary"}get[Symbol.toStringTag](){return"Binary"}},it=class extends m{get typeId(){return i.Utf8}get[Symbol.toStringTag](){return"Utf8"}toString(){return"Utf8"}},Et={DAY:0,MILLISECOND:1},I=class extends m{unit;constructor(e){super(),this.unit=e}get typeId(){return i.Date}get[Symbol.toStringTag](){return"Date"}toString(){return`Date${(this.unit+1)*32}<${Et[this.unit]}>`}},ct=class extends I{constructor(){super(Et.DAY)}},lt=class extends I{constructor(){super(Et.MILLISECOND)}},y={SECOND:1,MILLISECOND:1e3,MICROSECOND:1e6,NANOSECOND:1e9},T=class extends m{unit;bitWidth;constructor(e,r){super(),this.unit=e,this.bitWidth=r}get typeId(){return i.Time}toString(){return`Time${this.bitWidth}<${y[this.unit]}>`}get[Symbol.toStringTag](){return"Time"}},ut=class extends T{constructor(){super(y.SECOND,32)}},ht=class extends T{constructor(){super(y.MILLISECOND,32)}},b=class extends m{unit;timezone;constructor(e,r=null){super(),this.unit=e,this.timezone=r}get typeId(){return i.Timestamp}get[Symbol.toStringTag](){return"Timestamp"}toString(){return`Timestamp<${y[this.unit]}${this.timezone?`, ${this.timezone}`:""}>`}},mt=class extends b{constructor(e=null){super(y.SECOND,e)}},dt=class extends b{constructor(e=null){super(y.MILLISECOND,e)}},ft=class extends b{constructor(e=null){super(y.MICROSECOND,e)}},pt=class extends b{constructor(e=null){super(y.NANOSECOND,e)}},Ct={DAY_TIME:0,YEAR_MONTH:1},O=class extends m{unit;constructor(e){super(),this.unit=e}get typeId(){return i.Interval}get[Symbol.toStringTag](){return"Interval"}toString(){return`Interval<${Ct[this.unit]}>`}},gt=class extends O{constructor(){super(Ct.DAY_TIME)}},wt=class extends O{constructor(){super(Ct.YEAR_MONTH)}},bt=class extends m{listSize;children;constructor(e,r){super(),this.listSize=e,this.children=[r]}get typeId(){return i.FixedSizeList}get valueType(){return this.children[0].type}get valueField(){return this.children[0]}get[Symbol.toStringTag](){return"FixedSizeList"}toString(){return`FixedSizeList[${this.listSize}]<${JSON.stringify(this.valueType)}>`}},yt=class extends m{children;constructor(e){super(),this.children=e}get typeId(){return i.Struct}toString(){return`Struct<{${this.children.map(e=>`${e.name}:${JSON.stringify(e.type)}`).join(", ")}}>`}get[Symbol.toStringTag](){return"Struct"}};function Kt(t){return{typeId:t.typeId,ArrayType:t.ArrayType,typeName:t.toString(),typeEnumName:Ae(t.typeId),precision:t.precision}}var xt=null;function Ae(t){if(!xt){xt={};for(let e in i)xt[i[e]]=e}return xt[t]}var At=class extends Array{enqueue(e){return this.push(e)}dequeue(){return this.shift()}},B=class{_values;_settlers;_closed;constructor(){this._values=new At,this._settlers=new At,this._closed=!1}close(){for(;this._settlers.length>0;)this._settlers.dequeue().resolve({done:!0});this._closed=!0}[Symbol.asyncIterator](){return this}enqueue(e){if(this._closed)throw new Error("Closed");if(this._settlers.length>0){if(this._values.length>0)throw new Error("Illegal internal state");let r=this._settlers.dequeue();e instanceof Error?r.reject(e):r.resolve({value:e})}else this._values.enqueue(e)}next(){if(this._values.length>0){let e=this._values.dequeue();return e instanceof Error?Promise.reject(e):Promise.resolve({value:e})}if(this._closed){if(this._settlers.length>0)throw new Error("Illegal internal state");return Promise.resolve({done:!0})}return new Promise((e,r)=>{this._settlers.enqueue({resolve:e,reject:r})})}};return ce(D);})();
|
|
7
|
+
"use strict";var __exports__=(()=>{var f=Object.create;var p=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var i=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var T=(o,r)=>()=>(r||o((r={exports:{}}).exports,r),r.exports);var s=(o,r,e,x)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of h(r))!m.call(o,l)&&l!==e&&p(o,l,{get:()=>r[l],enumerable:!(x=g(r,l))||x.enumerable});return o},t=(o,r,e)=>(s(o,r,"default"),e&&s(e,r,"default")),c=(o,r,e)=>(e=o!=null?f(i(o)):{},s(r||!o||!o.__esModule?p(e,"default",{value:o,enumerable:!0}):e,o)),j=o=>s(p({},"__esModule",{value:!0}),o);var d=T((n,b)=>{b.exports=globalThis.loaders});var a={};t(a,c(d(),1));return j(a);})();
|
|
8
8
|
return __exports__;
|
|
9
9
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TypedArray } from "../types/types.js";
|
|
2
|
+
import type { BinaryPointGeometry, BinaryLineGeometry, BinaryPolygonGeometry } from "./binary-geometries.js";
|
|
3
|
+
export type BinaryAttribute = {
|
|
4
|
+
value: TypedArray;
|
|
5
|
+
size: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Represent a collection of Features, similar to a GeoJSON FeatureCollection
|
|
9
|
+
* But in columnar format, with binary columns when possible
|
|
10
|
+
*/
|
|
11
|
+
export type BinaryFeatureCollection = {
|
|
12
|
+
shape: 'binary-feature-collection';
|
|
13
|
+
points?: BinaryPointFeature;
|
|
14
|
+
lines?: BinaryLineFeature;
|
|
15
|
+
polygons?: BinaryPolygonFeature;
|
|
16
|
+
};
|
|
17
|
+
/** Binary feature + binary attributes */
|
|
18
|
+
export type BinaryFeature = BinaryPointFeature | BinaryLineFeature | BinaryPolygonFeature;
|
|
19
|
+
export type BinaryPointFeature = BinaryPointGeometry & BinaryProperties;
|
|
20
|
+
export type BinaryLineFeature = BinaryLineGeometry & BinaryProperties;
|
|
21
|
+
export type BinaryPolygonFeature = BinaryPolygonGeometry & BinaryProperties;
|
|
22
|
+
/** Common properties for binary geometries */
|
|
23
|
+
export type BinaryProperties = {
|
|
24
|
+
featureIds: BinaryAttribute;
|
|
25
|
+
globalFeatureIds: BinaryAttribute;
|
|
26
|
+
numericProps: Record<string, BinaryAttribute>;
|
|
27
|
+
properties: Record<string, any>[];
|
|
28
|
+
fields?: Record<string, any>[];
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=binary-features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-features.d.ts","sourceRoot":"","sources":["../../src/geometry/binary-features.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAC/C,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,+BAA4B;AAE7B,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,2BAA2B,CAAC;IACnC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAE1F,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;AAE5E,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,gBAAgB,EAAE,eAAe,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAChC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { TypedArray } from "../types/types.js";
|
|
2
|
+
export type BinaryGeometryType = 'Point' | 'LineString' | 'Polygon';
|
|
3
|
+
/**
|
|
4
|
+
* Similar to an apache arrow FixedSizeList,
|
|
5
|
+
* contains the contiguous array and the number of values in each element */
|
|
6
|
+
export type BinaryFixedSizeList = {
|
|
7
|
+
value: TypedArray;
|
|
8
|
+
size: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Represent a single Geometry, similar to a GeoJSON Geometry
|
|
12
|
+
*/
|
|
13
|
+
export type BinaryGeometry = BinaryPointGeometry | BinaryLineGeometry | BinaryPolygonGeometry;
|
|
14
|
+
/** Binary point geometry: an array of positions */
|
|
15
|
+
export type BinaryPointGeometry = {
|
|
16
|
+
type: 'Point';
|
|
17
|
+
positions: BinaryFixedSizeList;
|
|
18
|
+
};
|
|
19
|
+
/** Binary line geometry, array of positions and indices to the start of each line */
|
|
20
|
+
export type BinaryLineGeometry = {
|
|
21
|
+
type: 'LineString';
|
|
22
|
+
positions: BinaryFixedSizeList;
|
|
23
|
+
pathIndices: BinaryFixedSizeList;
|
|
24
|
+
};
|
|
25
|
+
/** Binary polygon geometry, an array of positions to each primitite polygon and polygon */
|
|
26
|
+
export type BinaryPolygonGeometry = {
|
|
27
|
+
type: 'Polygon';
|
|
28
|
+
positions: BinaryFixedSizeList;
|
|
29
|
+
polygonIndices: BinaryFixedSizeList;
|
|
30
|
+
primitivePolygonIndices: BinaryFixedSizeList;
|
|
31
|
+
triangles?: BinaryFixedSizeList;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=binary-geometries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary-geometries.d.ts","sourceRoot":"","sources":["../../src/geometry/binary-geometries.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAI/C,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE;;6EAE6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AAE9F,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,WAAW,EAAE,mBAAmB,CAAC;CAClC,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,cAAc,EAAE,mBAAmB,CAAC;IACpC,uBAAuB,EAAE,mBAAmB,CAAC;IAC7C,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Feature, Geometry } from 'geojson';
|
|
2
|
+
/**
|
|
3
|
+
* Generic flat geometry data storage type
|
|
4
|
+
* (an intermediate "Flat GeoJSON"
|
|
5
|
+
* data format, which maps closely to the binary data buffers.
|
|
6
|
+
* It is similar to GeoJSON, but rather than storing the coordinates
|
|
7
|
+
* in multidimensional arrays, we have a 1D `data` with all the
|
|
8
|
+
* coordinates, and then index into this using the `indices`
|
|
9
|
+
* parameter
|
|
10
|
+
*
|
|
11
|
+
* Thus the indices member lets us look up the relevant range
|
|
12
|
+
* from the data array.
|
|
13
|
+
* The Multi* versions of the above types share the same data
|
|
14
|
+
* structure, just with multiple elements in the indices array
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
*
|
|
18
|
+
* geometry: {
|
|
19
|
+
* type: 'Point', data: [1,2], indices: [0]
|
|
20
|
+
* }
|
|
21
|
+
* geometry: {
|
|
22
|
+
* type: 'LineString', data: [1,2,3,4,...], indices: [0]
|
|
23
|
+
* }
|
|
24
|
+
* geometry: {
|
|
25
|
+
* type: 'Polygon', data: [1,2,3,4,...], indices: [[0, 2]]
|
|
26
|
+
* }
|
|
27
|
+
*/
|
|
28
|
+
export type FlatIndexedGeometry = {
|
|
29
|
+
data: number[];
|
|
30
|
+
indices: number[];
|
|
31
|
+
};
|
|
32
|
+
/** Flat geometry type */
|
|
33
|
+
export type FlatGeometryType = 'Point' | 'LineString' | 'Polygon';
|
|
34
|
+
/** GeoJSON geometry with coordinate data flattened into `data` array and indexed by 2D `indices` */
|
|
35
|
+
export type FlatGeometry = FlatPoint | FlatLineString | FlatPolygon;
|
|
36
|
+
/** GeoJSON (Multi)Point geometry with coordinate data flattened into `data` array and indexed by `indices` */
|
|
37
|
+
export type FlatPoint = {
|
|
38
|
+
type: 'Point';
|
|
39
|
+
data: number[];
|
|
40
|
+
indices: number[];
|
|
41
|
+
};
|
|
42
|
+
/** GeoJSON (Multi)LineString geometry with coordinate data flattened into `data` array and indexed by `indices` */
|
|
43
|
+
export type FlatLineString = {
|
|
44
|
+
type: 'LineString';
|
|
45
|
+
data: number[];
|
|
46
|
+
indices: number[];
|
|
47
|
+
};
|
|
48
|
+
/** GeoJSON (Multi)Polygon geometry with coordinate data flattened into `data` array and indexed by 2D `indices` */
|
|
49
|
+
export type FlatPolygon = {
|
|
50
|
+
type: 'Polygon';
|
|
51
|
+
data: number[];
|
|
52
|
+
indices: number[][];
|
|
53
|
+
areas: number[][];
|
|
54
|
+
};
|
|
55
|
+
type FlattenGeometry<Type> = {
|
|
56
|
+
[Property in keyof Type]: Type[Property] extends Geometry ? FlatGeometry : Type[Property];
|
|
57
|
+
};
|
|
58
|
+
/** GeoJSON Feature with Geometry replaced by FlatGeometry */
|
|
59
|
+
export type FlatFeature = FlattenGeometry<Feature>;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=flat-geometries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat-geometries.d.ts","sourceRoot":"","sources":["../../src/geometry/flat-geometries.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,yBAAyB;AACzB,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AAElE,oGAAoG;AACpG,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,CAAC;AAEpE,8GAA8G;AAC9G,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,mHAAmH;AACnH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,mHAAmH;AACnH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,CAAC,IAAI,IAAI;KAC1B,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;CAC1F,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC"}
|