UNPKG

well-known-parser

Version:

A WKT/WKB/EWKT/EWKB/TWKB/GeoJSON parser and serializer

75 lines (74 loc) 2.27 kB
import { Polygon as a } from "./well-known-parser6.js"; import { Point as p } from "./well-known-parser4.js"; import { parseRelativePointTwkb as f, parsePointGeoJSON as R, parsePointWkb as d } from "./well-known-parser16.js"; function l(r, n) { const o = new a(); if (o.srid = n.srid, o.hasZ = n.hasZ ?? !1, o.hasM = n.hasM ?? !1, r.isMatch(["EMPTY"])) return o; r.expectGroupStart(), r.expectGroupStart(); const i = r.matchCoordinates(n); for (const e of i) o.exteriorRing.push(e); for (r.expectGroupEnd(); r.isMatch([","]); ) { r.expectGroupStart(); const e = r.matchCoordinates(n), s = []; for (const t of e) s.push(t); o.interiorRings.push(s), r.expectGroupEnd(); } return r.expectGroupEnd(), o; } function y(r, n) { const o = new a(); o.srid = n.srid, o.hasZ = n.hasZ ?? !1, o.hasM = n.hasM ?? !1; const i = r.readUInt32(), e = { ...n, srid: void 0 }; if (i > 0) { const s = r.readUInt32(); for (let t = 0; t < s; t++) o.exteriorRing.push(d(r, e)); for (let t = 1; t < i; t++) { const c = [], g = r.readUInt32(); for (let h = 0; h < g; h++) c.push(d(r, e)); o.interiorRings.push(c); } } return o; } function C(r, n) { const o = new a(); if (o.hasZ = n.hasZ ?? !1, o.hasM = n.hasM ?? !1, n.isEmpty) return o; const i = new p(0, 0, n.hasZ ? 0 : void 0, n.hasM ? 0 : void 0), e = r.readVarInt(), s = r.readVarInt(); for (let t = 0; t < s; t++) o.exteriorRing.push(f(r, n, i)); for (let t = 1; t < e; t++) { const c = [], g = r.readVarInt(); for (let h = 0; h < g; h++) c.push(f(r, n, i)); o.interiorRings.push(c); } return o; } function M(r) { const n = new a(); r.coordinates.length > 0 && r.coordinates[0].length > 0 && (n.hasZ = r.coordinates[0][0].length > 2); for (let o = 0; o < r.coordinates.length; o++) { o > 0 && n.interiorRings.push([]); for (let i = 0; i < r.coordinates[o].length; i++) { const e = R(r.coordinates[o][i]); o === 0 ? n.exteriorRing.push(e) : n.interiorRings[o - 1].push(e); } } return n; } export { M as parsePolygonGeoJSON, C as parsePolygonTwkb, y as parsePolygonWkb, l as parsePolygonWkt }; //# sourceMappingURL=well-known-parser18.js.map