@loaders.gl/shapefile
Version:
Loader for the Shapefile Format
77 lines (67 loc) • 1.53 kB
text/typescript
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
import {Schema, ObjectRowTable} from '@loaders.gl/schema';
import type {LoaderOptions} from '@loaders.gl/loader-utils';
export type SHPLoaderOptions = LoaderOptions & {
shp?: {
_maxDimensions?: number;
};
};
export type DBFLoaderOptions = LoaderOptions & {
dbf?: {
encoding?: string;
shape?: 'rows' | 'table' | 'object-row-table';
};
};
export type ShapefileLoaderOptions = LoaderOptions &
SHPLoaderOptions & {
shapefile?: {
shape?: 'geojson-table';
};
gis?: {
reproject?: boolean;
_targetCrs?: string;
};
};
export type DBFRowsOutput = ObjectRowTable['data'];
/**
* DBF Table output. Deprecated in favor of ObjectRowTable
* @deprecated
*/
export interface DBFTableOutput {
schema?: Schema;
rows: DBFRowsOutput;
}
export type DBFHeader = {
// Last updated date
year: number;
month: number;
day: number;
// Number of records in data file
nRecords: number;
// Length of header in bytes
headerLength: number;
// Length of each record
recordLength: number;
// Not sure if this is usually set
languageDriver: number;
};
export type DBFField = {
name: string;
dataType: string;
fieldLength: number;
decimal: number;
};
export type DBFResult = {
data: {[key: string]: any}[];
schema?: Schema;
error?: string;
dbfHeader?: DBFHeader;
dbfFields?: DBFField[];
progress?: {
bytesUsed: number;
rowsTotal: number;
rows: number;
};
};