UNPKG

isoxml

Version:

JavaScript library to parse and generate ISOXML (ISO11783-10) files

83 lines (82 loc) 2.47 kB
import { TAGS } from './constants'; import { registerEntityClass } from '../classRegistry'; import { fromXML, toXML } from '../utils'; export var LineStringLineStringTypeEnum; (function (LineStringLineStringTypeEnum) { LineStringLineStringTypeEnum["PolygonExterior"] = "1"; LineStringLineStringTypeEnum["PolygonInterior"] = "2"; LineStringLineStringTypeEnum["TramLine"] = "3"; LineStringLineStringTypeEnum["SamplingRoute"] = "4"; LineStringLineStringTypeEnum["GuidancePattern"] = "5"; LineStringLineStringTypeEnum["Drainage"] = "6"; LineStringLineStringTypeEnum["Fence"] = "7"; LineStringLineStringTypeEnum["Flag"] = "8"; LineStringLineStringTypeEnum["Obstacle"] = "9"; })(LineStringLineStringTypeEnum || (LineStringLineStringTypeEnum = {})); const ATTRIBUTES = { A: { name: 'LineStringType', type: 'xs:NMTOKEN', isPrimaryId: false, isOptional: false, isOnlyV4: false, }, B: { name: 'LineStringDesignator', type: 'xs:string', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, C: { name: 'LineStringWidth', type: 'xs:unsignedLong', isPrimaryId: false, isOptional: true, isOnlyV4: false, minValue: 0, maxValue: 4294967294, }, D: { name: 'LineStringLength', type: 'xs:unsignedLong', isPrimaryId: false, isOptional: true, isOnlyV4: false, minValue: 0, maxValue: 4294967294, }, E: { name: 'LineStringColour', type: 'xs:unsignedByte', isPrimaryId: false, isOptional: true, isOnlyV4: false, minValue: 0, maxValue: 254, }, F: { name: 'LineStringId', type: 'xs:ID', isPrimaryId: true, isOptional: true, isOnlyV4: true, }, }; const CHILD_TAGS = { PNT: { name: 'Point', isOnlyV4: false }, }; export class LineString { constructor(attributes, isoxmlManager) { this.attributes = attributes; this.isoxmlManager = isoxmlManager; this.tag = TAGS.LineString; } static fromXML(xml, isoxmlManager, internalId, targetClass = LineString) { return fromXML(xml, isoxmlManager, targetClass, ATTRIBUTES, CHILD_TAGS, internalId); } toXML() { return toXML(this, ATTRIBUTES, CHILD_TAGS); } } registerEntityClass('main', TAGS.LineString, LineString);