flatgeobuf
Version:
A performant binary encoding for geographic data
34 lines (33 loc) • 1.41 kB
TypeScript
import type * as flatbuffers from 'flatbuffers';
import type { GeometryLayout } from 'ol/geom/Geometry.js';
import { Geometry } from '../flat-geobuf/geometry.js';
import { GeometryType } from '../flat-geobuf/geometry-type.js';
export interface IParsedGeometry {
xy: number[];
z?: number[];
m?: number[];
ends: number[];
parts: IParsedGeometry[];
type: GeometryType;
}
export interface ISimpleGeometry {
getFlatCoordinates?(): number[];
getType(): string;
getLayout?: () => GeometryLayout;
}
export interface IPolygon extends ISimpleGeometry {
getEnds(): number[];
}
export interface IMultiLineString extends ISimpleGeometry {
getEnds(): number[];
}
export interface IMultiPolygon extends ISimpleGeometry {
getEndss(): number[][];
getPolygons(): IPolygon[];
}
export type ICreateGeometry = (geometry: Geometry | null, type: GeometryType) => ISimpleGeometry | undefined;
export declare function buildGeometry(builder: flatbuffers.Builder, parsedGeometry: IParsedGeometry): number;
export declare function flat(a: number[] | number[][], xy: number[], z: number[]): number[] | undefined;
export declare function parseGeometry(geometry: ISimpleGeometry, headerGeomType: GeometryType): IParsedGeometry;
export declare function pairFlatCoordinates(xy: Float64Array, z?: Float64Array): number[][];
export declare function toGeometryType(name?: string): GeometryType;