@loaders.gl/wkt
Version:
Loader and Writer for the WKT (Well Known Text) Format
40 lines (35 loc) • 1.35 kB
text/typescript
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
import {VERSION} from './lib/utils/version';
import type {WKTCRS} from './lib/parse-wkt-crs';
import type {EncodeWKTCRSOptions} from './lib/encode-wkt-crs';
import {encodeWKTCRS} from './lib/encode-wkt-crs';
export type WKTCRSWriterOptions = WriterOptions & {
'wkt-crs'?: EncodeWKTCRSOptions;
};
/**
* Well-Known text CRS loader
* @see OGC Standard: https://www.ogc.org/standards/wkt-crs
* @see Wikipedia Page: https://en.wikipedia.org/wiki/Well-known_text_representation_of_coordinate_reference_systems
*/
export const WKTCRSWriter = {
name: 'WKT CRS (Well-Known Text Coordinate Reference System)',
id: 'wkt-crs',
module: 'wkt-crs',
version: VERSION,
worker: true,
extensions: [],
mimeTypes: ['text/plain'],
// category: 'json',
text: true,
options: {
'wkt-crs': {}
},
encode: async (wktcrs, options) =>
new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.['wkt-crs'])),
encodeSync: (wktcrs, options) =>
new TextEncoder().encode(encodeWKTCRS(wktcrs, options?.['wkt-crs'])),
encodeTextSync: (wktcrs, options) => encodeWKTCRS(wktcrs, options?.['wkt-crs'])
} as const satisfies WriterWithEncoder<WKTCRS, never, WKTCRSWriterOptions>;