well-known-parser
Version:
A WKT/WKB/EWKT/EWKB/TWKB/GeoJSON parser and serializer
50 lines (49 loc) • 1.55 kB
JavaScript
import { Point as t } from "./well-known-parser4.js";
import { decode as c } from "./well-known-parser13.js";
function m(a, e) {
const r = new t();
if (r.srid = e.srid, r.hasZ = e.hasZ ?? !1, r.hasM = e.hasM ?? !1, a.isMatch(["EMPTY"]))
return r;
a.expectGroupStart();
const n = a.matchCoordinate({
hasZ: r.hasZ,
hasM: r.hasM
});
return r.x = n.x, r.y = n.y, r.z = n.z, r.m = n.m, a.expectGroupEnd(), r;
}
function M(a, e) {
const r = a.readDouble(), n = a.readDouble(), d = e.hasZ ? a.readDouble() : void 0, h = e.hasM ? a.readDouble() : void 0;
return new t(r, n, d, h, e.srid);
}
function o(a, e) {
if (e.isEmpty) {
const r = new t(void 0, void 0, void 0, void 0, e.srid);
return r.hasZ = e.hasZ ?? !1, r.hasM = e.hasM ?? !1, r;
}
return i(
a,
e,
new t(0, 0, e.hasZ ? 0 : void 0, e.hasM ? 0 : void 0)
);
}
function i(a, e, r) {
const n = e.precisionFactor ?? 1, d = e.zPrecisionFactor ?? 1, h = e.mPrecisionFactor ?? 1;
return r.x += c(a.readVarInt()) / n, r.y += c(a.readVarInt()) / n, e.hasZ && (r.z += c(a.readVarInt()) / d), e.hasM && (r.m += c(a.readVarInt()) / h), new t(
r.x,
r.y,
r.z,
r.m,
e.srid
);
}
function w(a) {
return a.length === 0 ? new t(void 0, void 0, void 0, void 0) : a.length > 2 ? new t(a[0], a[1], a[2], void 0) : new t(a[0], a[1], void 0, void 0);
}
export {
w as parsePointGeoJSON,
o as parsePointTwkb,
M as parsePointWkb,
m as parsePointWkt,
i as parseRelativePointTwkb
};
//# sourceMappingURL=well-known-parser16.js.map