isoxml
Version:
JavaScript library to parse and generate ISOXML (ISO11783-10) files
29 lines (28 loc) • 1.24 kB
JavaScript
import { area } from "@turf/turf";
import { Partfield, PolygonPolygonTypeEnum } from "../baseEntities";
import { TAGS } from "../baseEntities/constants";
import { registerEntityClass } from "../classRegistry";
import { ExtendedPolygon } from "./Polygon";
export class ExtendedPartfield extends Partfield {
constructor(attributes, isoxmlManager) {
super(attributes, isoxmlManager);
this.tag = TAGS.Partfield;
}
static fromXML(xml, isoxmlManager, internalId) {
return Partfield.fromXML(xml, isoxmlManager, internalId, ExtendedPartfield);
}
toXML() {
this.attributes.PolygonnonTreatmentZoneonly =
ExtendedPolygon.normalizePolygons(this.attributes.PolygonnonTreatmentZoneonly);
return super.toXML();
}
boundaryFromGeoJSON(geoJSON, isoxmlManager) {
this.attributes.PolygonnonTreatmentZoneonly =
ExtendedPolygon.fromGeoJSON(geoJSON, PolygonPolygonTypeEnum.PartfieldBoundary, isoxmlManager);
this.attributes.PartfieldArea = Math.round(area(geoJSON));
}
toGeoJSON() {
return ExtendedPolygon.toGeoJSON(this.attributes.PolygonnonTreatmentZoneonly);
}
}
registerEntityClass('main', TAGS.Partfield, ExtendedPartfield);