flatgeobuf
Version:
A performant binary encoding for geographic data
2 lines • 2.18 kB
JavaScript
import*as t from"flatbuffers";import{Column as e}from"../flat-geobuf/column.js";import{Geometry as s}from"../flat-geobuf/geometry.js";export class Feature{bb=null;bb_pos=0;__init(t,e){return this.bb_pos=t,this.bb=e,this}static getRootAsFeature(t,e){return(e||new Feature).__init(t.readInt32(t.position())+t.position(),t)}static getSizePrefixedRootAsFeature(e,s){return e.setPosition(e.position()+t.SIZE_PREFIX_LENGTH),(s||new Feature).__init(e.readInt32(e.position())+e.position(),e)}geometry(t){let e=this.bb.__offset(this.bb_pos,4);return e?(t||new s).__init(this.bb.__indirect(this.bb_pos+e),this.bb):null}properties(t){let e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readUint8(this.bb.__vector(this.bb_pos+e)+t):0}propertiesLength(){let t=this.bb.__offset(this.bb_pos,6);return t?this.bb.__vector_len(this.bb_pos+t):0}propertiesArray(){let t=this.bb.__offset(this.bb_pos,6);return t?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+t),this.bb.__vector_len(this.bb_pos+t)):null}columns(t,s){let r=this.bb.__offset(this.bb_pos,8);return r?(s||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*t),this.bb):null}columnsLength(){let t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__vector_len(this.bb_pos+t):0}static startFeature(t){t.startObject(3)}static addGeometry(t,e){t.addFieldOffset(0,e,0)}static addProperties(t,e){t.addFieldOffset(1,e,0)}static createPropertiesVector(t,e){t.startVector(1,e.length,1);for(let s=e.length-1;s>=0;s--)t.addInt8(e[s]);return t.endVector()}static startPropertiesVector(t,e){t.startVector(1,e,1)}static addColumns(t,e){t.addFieldOffset(2,e,0)}static createColumnsVector(t,e){t.startVector(4,e.length,4);for(let s=e.length-1;s>=0;s--)t.addOffset(e[s]);return t.endVector()}static startColumnsVector(t,e){t.startVector(4,e,4)}static endFeature(t){return t.endObject()}static finishFeatureBuffer(t,e){t.finish(e)}static finishSizePrefixedFeatureBuffer(t,e){t.finish(e,void 0,!0)}static createFeature(t,e,s,r){return Feature.startFeature(t),Feature.addGeometry(t,e),Feature.addProperties(t,s),Feature.addColumns(t,r),Feature.endFeature(t)}}
//# sourceMappingURL=feature.js.map