com.vividsolutions.jtstest.testbuilder.io.shapefile.PolygonHandler Maven / Gradle / Ivy
package com.vividsolutions.jtstest.testbuilder.io.shapefile;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.ArrayList;
import com.vividsolutions.jts.algorithm.CGAlgorithms;
import com.vividsolutions.jts.algorithm.RobustCGAlgorithms;
import com.vividsolutions.jts.geom.*;
/**
* Wrapper for a Shapefile polygon.
*/
public class PolygonHandler implements ShapeHandler{
protected static CGAlgorithms cga = new RobustCGAlgorithms();
int myShapeType;
public PolygonHandler()
{
myShapeType = 5;
}
public PolygonHandler(int type) throws InvalidShapefileException
{
if ( (type != 5) && (type != 15) && (type != 25) )
throw new InvalidShapefileException("PolygonHandler constructor - expected type to be 5, 15, or 25.");
myShapeType = type;
}
//returns true if testPoint is a point in the pointList list.
boolean pointInList(Coordinate testPoint, Coordinate[] pointList)
{
int t, numpoints;
Coordinate p;
numpoints = Array.getLength( pointList) ;
for (t=0;t= 15)
{
// int fullLength = 22 + (2*numParts) + (8*numPoints) + 8 + (4*numPoints)+ 8 + (4*numPoints);
int fullLength;
if (myShapeType == 15)
{
//polyZ (with M)
fullLength = 22 + (2*numParts) + (8*numPoints) + 8 + (4*numPoints)+ 8 + (4*numPoints);
}
else
{
//polyM (with M)
fullLength = 22 + (2*numParts) + (8*numPoints) + 8+ (4*numPoints) ;
}
if (contentLength >= fullLength)
{
file.readDoubleLE(); //mmin
file.readDoubleLE(); //mmax
actualReadWords += 8;
for(int t=0;t zmax)
zmax = z;
}
else
{
validZFound = true;
zmin = z ;
zmax = z ;
}
}
}
result[0] = (zmin);
result[1] = (zmax);
return result;
}
}
/*
* $Log: PolygonHandler.java,v $
* Revision 1.1 2009/10/14 04:21:22 mbdavis
* added drag-n-drop for reading shp files
*
* Revision 1.5 2003/09/23 17:15:26 dblasby
* *** empty log message ***
*
* Revision 1.4 2003/07/25 18:49:15 dblasby
* Allow "extra" data after the content. Fixes the ICI shapefile bug.
*
* Revision 1.3 2003/02/04 02:10:37 jaquino
* Feature: EditWMSQuery dialog
*
* Revision 1.2 2003/01/22 18:31:05 jaquino
* Enh: Make About Box configurable
*
* Revision 1.2 2002/09/09 20:46:22 dblasby
* Removed LEDatastream refs and replaced with EndianData[in/out]putstream
*
* Revision 1.1 2002/08/27 21:04:58 dblasby
* orginal
*
* Revision 1.3 2002/03/05 10:51:01 andyt
* removed use of factory from write method
*
* Revision 1.2 2002/03/05 10:23:59 jmacgill
* made sure geometries were created using the factory methods
*
* Revision 1.1 2002/02/28 00:38:50 jmacgill
* Renamed files to more intuitve names
*
* Revision 1.4 2002/02/13 00:23:53 jmacgill
* First semi working JTS version of Shapefile code
*
* Revision 1.3 2002/02/11 18:44:22 jmacgill
* replaced geometry constructions with calls to geometryFactory.createX methods
*
* Revision 1.2 2002/02/11 18:28:41 jmacgill
* rewrote to have static read and write methods
*
* Revision 1.1 2002/02/11 16:54:43 jmacgill
* added shapefile code and directories
*
*/
© 2015 - 2025 Weber Informatics LLC | Privacy Policy