getLength method
Calcuates the record length of this object.
@return int The length of the record that this shapepoint will take up in a shapefile
Implementation
@override
int getLength(dynamic geometry) {
MultiPoint mp = geometry as MultiPoint;
int length;
if (shapeType == ShapeType.MULTIPOINT) {
// two doubles per coord (16 * numgeoms) + 40 for header
length = (mp.getNumGeometries() * 16) + 40;
} else if (shapeType == ShapeType.MULTIPOINTM) {
// add the additional MMin, MMax for 16, then 8 per measure
length =
(mp.getNumGeometries() * 16) + 40 + 16 + (8 * mp.getNumGeometries());
} else if (shapeType == ShapeType.MULTIPOINTZ) {
// add the additional ZMin,ZMax, plus 8 per Z
length = (mp.getNumGeometries() * 16) +
40 +
16 +
(8 * mp.getNumGeometries()) +
16 +
(8 * mp.getNumGeometries());
} else {
throw StateError("Expected ShapeType of Arc, got $shapeType");
}
return length;
}