well-known-parser
Version:
A WKT/WKB/EWKT/EWKB/TWKB/GeoJSON parser and serializer
3 lines (2 loc) • 1.81 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./well-known-parser3.cjs"),n=require("./well-known-parser2.cjs"),h=require("./well-known-parser4.cjs"),o=require("./well-known-parser12.cjs");class r extends s.Geometry{constructor(t,i){super(),this.lineStrings=t||[],this.srid=i,this.lineStrings.length>0&&(this.hasZ=this.lineStrings[0].hasZ,this.hasM=this.lineStrings[0].hasM)}static Z(t,i){const e=new r(t,i);return e.hasZ=!0,e}static M(t,i){const e=new r(t,i);return e.hasM=!0,e}static ZM(t,i){const e=new r(t,i);return e.hasZ=!0,e.hasM=!0,e}toWkt(){if(this.lineStrings.length===0)return this.getWktType(n.GEOMETRY_TYPES.MultiLineString.wkt,!0);let t=this.getWktType(n.GEOMETRY_TYPES.MultiLineString.wkt,!1)+"(";for(let i=0;i<this.lineStrings.length;i++)t+=this.lineStrings[i].toWkt(!0)+",";return t=t.slice(0,-1),t+=")",t}toWkb(t){const i=new o.BinaryWriter(this.getWkbSize());i.writeInt8(1),this.writeWkbType(i,n.GEOMETRY_TYPES.MultiLineString.wkb,t),i.writeUInt32LE(this.lineStrings.length);for(const e of this.lineStrings)i.writeBuffer(e.toWkb({srid:this.srid}));return i.buffer}toTwkb(){const t=new o.BinaryWriter(0,!0),i=s.Geometry.getTwkbPrecision(5,0,0),e=this.lineStrings.length===0;if(this.writeTwkbHeader(t,n.GEOMETRY_TYPES.MultiLineString.wkb,i,e),this.lineStrings.length>0){t.writeVarInt(this.lineStrings.length);const g=new h.Point(0,0,0,0);for(const l of this.lineStrings)t.writeBuffer(l.toTwkb(g,!0))}return t.buffer}getWkbSize(){let t=9;for(let i=0;i<this.lineStrings.length;i++)t+=this.lineStrings[i].getWkbSize();return t}toGeoJSON(){const t=[];for(const i of this.lineStrings)t.push(i.toGeoJSON(!0));return{type:n.GEOMETRY_TYPES.MultiLineString.geoJSON,coordinates:t}}}exports.MultiLineString=r;
//# sourceMappingURL=well-known-parser8.cjs.map