地理空间矢量数据 WKT/WKB/EWKT/EWKB/TWKB/GeoJSON
解析和互转
yarn add @dfsj/wkx
解析器:Geometry,GeometryCollection,LineString,MultiLineStrin,MultiPoint,MultiPolygon,Point,Polygon
方法:wkbToGeoJSON,wkbToWKT,wktToGeoJSON,wktToWKB,geojsonToWKB,geojsonToWKT,geojsonToTWKB
import { Geometry, Point } from '@dfsj/wkx';
//Parsing a WKT string
const geometry1 = Geometry.parse('POINT(1 2)');
//Parsing an EWKT string
const geometry2 = Geometry.parse('SRID=4326;POINT(1 2)');
//Parsing a node Buffer containing a WKB object
const geometry3 = Geometry.parse(wkbBuffer);
//Parsing a node Buffer containing an EWKB object
const geometry4 = Geometry.parse(ewkbBuffer);
//Parsing a node Buffer containing a TWKB object
const geometry5 = Geometry.parseTwkb(twkbBuffer);
//Parsing a GeoJSON object
const geometry6 = Geometry.parseGeoJSON({ type: 'Point', coordinates: [1, 2] });
//Serializing a Point geometry to WKT
const wktString = new Point(1, 2).toWkt();
//Serializing a Point geometry to WKB
const wkbBuffer = new Point(1, 2).toWkb();
//Serializing a Point geometry to EWKT
const ewktString = new Point(1, 2, undefined, undefined, 4326).toEwkt();
//Serializing a Point geometry to EWKB
const ewkbBuffer = new Point(1, 2, undefined, undefined, 4326).toEwkb();
//Serializing a Point geometry to TWKB
const twkbBuffer = new Point(1, 2).toTwkb();
//Serializing a Point geometry to GeoJSON
const geoJSONObject = new Point(1, 2).toGeoJSON();
- 处理WKB数据时依赖 Buffer
import {Buffer} from 'buffer/index';
import { Geometry } from '@dfsj/wkx';
const wkbBuffer = new Buffer('0101000000000000000000f03f0000000000000040', 'hex');
const geometry = Geometry.parse(wkbBuffer);
console.log(geometry.toGeoJSON());
yangbo