getLength method

  1. @override
int getLength(
  1. dynamic geometry
)
override

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;
}