de.fhg.igd.earth.model.input.shapefile
Class ESRIPolygonRecord

java.lang.Object
  extended byde.fhg.igd.earth.model.input.shapefile.ShapeUtils
      extended byde.fhg.igd.earth.model.input.shapefile.ESRIRecord
          extended byde.fhg.igd.earth.model.input.shapefile.ESRIPolygonRecord

public class ESRIPolygonRecord
extends ESRIRecord

Title : Earth Copyright : Copyright (c) 2001 Organisation : IGD FhG

Version:
: 1.0
Author:
: Werner Beutel

Field Summary
 ESRIBoundingBox bounds
          The bounding box.
 ESRIPoly[] polygons
          An array of polygons.
protected  int shapeType
          Polygon or arc/polyline?.
 
Fields inherited from class de.fhg.igd.earth.model.input.shapefile.ESRIRecord
contentLength, recordNumber
 
Fields inherited from class de.fhg.igd.earth.model.input.shapefile.ShapeUtils
SHAPE_FILE_HEADER_LENGTH, SHAPE_FILE_HEADER_LENGTH_DB, SHAPE_FILE_RECORD_HEADER_LENGTH, SHAPE_TYPE_ARC, SHAPE_TYPE_MULTIPOINT, SHAPE_TYPE_NULL, SHAPE_TYPE_POINT, SHAPE_TYPE_POLYGON, SHAPE_TYPE_POLYLINE
 
Constructor Summary
ESRIPolygonRecord()
           
ESRIPolygonRecord(byte[] b, int off)
          Initialize a polygon record from the given buffer.
 
Method Summary
 void add(float[] radians)
          Add a poly to the record.
 ESRIBoundingBox getBoundingBox()
          Gets this record's bounding box.
 int getRecordLength()
          Yields the length of this record's data portion.
 int getShapeType()
          Gets this record's shape type as an int.
 boolean isPolygon()
          Is this a polygon or a arc/polyline?
 void setPolygon(boolean isPolygon)
          Set the poly type (polygon or arc/polyline).
 int write(byte[] b, int off)
          Writes this polygon to the given buffer at the given offset.
 
Methods inherited from class de.fhg.igd.earth.model.input.shapefile.ESRIRecord
getBinaryStoreSize, getContentLength, getRecordNumber
 
Methods inherited from class de.fhg.igd.earth.model.input.shapefile.ShapeUtils
readBEInt, readBox, readLEDouble, readLEInt, readLEInt, readLELong, readPoint, writeBEInt, writeBox, writeLEDouble, writeLEInt, writeLELong, writePoint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

shapeType

protected int shapeType
Polygon or arc/polyline?.


bounds

public ESRIBoundingBox bounds
The bounding box.


polygons

public ESRIPoly[] polygons
An array of polygons.

Constructor Detail

ESRIPolygonRecord

public ESRIPolygonRecord()

ESRIPolygonRecord

public ESRIPolygonRecord(byte[] b,
                         int off)
                  throws IOException
Initialize a polygon record from the given buffer.

Parameters:
b - the buffer
off - the offset into the buffer where the data starts
Method Detail

isPolygon

public boolean isPolygon()
Is this a polygon or a arc/polyline?

Returns:
boolean

setPolygon

public void setPolygon(boolean isPolygon)
Set the poly type (polygon or arc/polyline).


add

public void add(float[] radians)
Add a poly to the record.

Parameters:
radians - coordinates: y,x,y,x,... (lat,lon) order in RADIANS!

getBoundingBox

public ESRIBoundingBox getBoundingBox()
Gets this record's bounding box.

Specified by:
getBoundingBox in class ESRIRecord
Returns:
a bounding box

getShapeType

public int getShapeType()
Gets this record's shape type as an int. Shape types are enumerated on the ShapeUtils class.

Specified by:
getShapeType in class ESRIRecord
Returns:
the shape type as an int (either SHAPE_TYPE_POLYGON or SHAPE_TYPE_ARC)

getRecordLength

public int getRecordLength()
Yields the length of this record's data portion.

(44 + (numParts * 4) + (numPoints * 16))
3 Integers + 4 doubles == 3 * 4bytes + 4 * 8bytes == 12 + 32 == 44.

Specified by:
getRecordLength in class ESRIRecord
Returns:
number of bytes equal to the size of this record's data

write

public int write(byte[] b,
                 int off)
Writes this polygon to the given buffer at the given offset.

Overrides:
write in class ESRIRecord
Parameters:
b - the buffer
off - the offset
Returns:
the number of bytes written


Copyright © Fraunhofer Gesellschaft. All Rights Reserved.