|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.geotools.renderer.geom.Geometry
org.geotools.renderer.geom.GeometryCollection
A collection of geometry shapes. Included geometries may be Polylines, Polygons
or others GeometryCollection. Regrouping related polygons in a single collection
help to speed up the rendering. Polygons can be regrouped on a spatial basis (European polygons,
African polygons, etc.) or on a value basis (50 meters isobath, 100 meters isobath, etc.).
A GeometryCollection is initially built with a coordinate system. An arbitrary amount of geometries can be added
after construction using add(Geometry) or add(float[],int,int). Geometries
will be rendered in the order they were added. If polygons are broken in many pieces, then
the assemble(...) method may help
to assemble them before rendering.
Note: this class has a natural ordering that is inconsistent with equals.
The compareTo(java.lang.Object) method compares only the collection's value, while equals(java.lang.Object) compares also all coordinate points. The natural ordering for
GeometryCollection is convenient for sorting collections in alphabetical order
or isobaths in increasing order of altitude.
Polyline,
Polygon,
Serialized Form| Field Summary |
| Fields inherited from class org.geotools.renderer.geom.Geometry |
DEFAULT_COORDINATE_SYSTEM |
| Constructor Summary | |
GeometryCollection()
Construct an initially empty collection using the default coordinate system. |
|
GeometryCollection(CoordinateSystem coordinateSystem)
Construct an initially empty collection. |
|
GeometryCollection(GeometryCollection geometry)
Construct a collection with the same data as the specified collection. |
|
| Method Summary | |
void |
add(float[] array,
int lower,
int upper)
Adds points to this collection. |
Geometry |
add(Geometry toAdd)
Add a geometry to this collection. |
void |
add(java.awt.Shape shape)
Add geometries from the specified shape. |
void |
assemble(ProgressListener progress)
Assemble all polylines with default setting. |
void |
assemble(java.awt.Shape mapBounds,
float[] toComplete,
ProgressListener progress)
Assemble all polylines in order to create closed polygons for proper rendering. |
Geometry |
clip(Clipper clipper)
Returns an geometry approximately equal to this geometry clipped to the specified bounds. |
java.lang.Object |
clone()
Return a copy of this geometry. |
int |
compareTo(java.lang.Object object)
Compare this geometry with the specified object for order. |
float |
compress(CompressionLevel level)
Compress all geometries in this collection. |
boolean |
contains(double x,
double y)
Indicates whether the specified (x,y) point is inside this geometry. |
boolean |
contains(java.awt.geom.Point2D point)
Indicates whether the specified point is inside this geometry. |
boolean |
contains(java.awt.geom.Rectangle2D rect)
Checks whether the specified rectangle is entirely contained within this geometry. |
boolean |
contains(java.awt.Shape shape)
Checks whether the specified shape is entirely contained within this geometry. |
boolean |
equals(java.lang.Object object)
Compares the specified object with this geometry for equality. |
java.awt.geom.Rectangle2D |
getBounds2D()
Return the bounding box of this geometry, including its possible borders. |
CoordinateSystem |
getCoordinateSystem()
Returns the geometry's coordinate system, or null if unknown. |
java.util.Collection |
getGeometries()
Returns the collection of Geometry objects. |
java.util.Collection |
getGeometries(java.awt.geom.Point2D point)
Returns the collection of geometries containing the specified point. |
java.util.Collection |
getGeometriesContaining(java.awt.Shape shape)
Returns the collection of geometries containing the specified shape. |
java.util.Collection |
getGeometriesIntersecting(java.awt.Shape shape)
Returns the collection of geometries intersecting the specified shape. |
java.lang.String |
getName(java.util.Locale locale)
Returns the localized name for this geometry, or null if none. |
java.awt.geom.PathIterator |
getPathIterator(java.awt.geom.AffineTransform transform)
Returns a path iterator for this geometry. |
int |
getPointCount()
Returns the number of points in this geometry. |
java.lang.String |
getPolygonName(java.awt.geom.Point2D point,
java.util.Locale locale)
Returns the name of the smallest polygon at the given location. |
float |
getRenderingResolution()
Returns the rendering resolution. |
Statistics |
getResolution()
Returns the geometry's resolution. |
float |
getValue()
Returns the value for this collection, or NaN if none.
|
int |
hashCode()
Returns a hash value for this geometry. |
boolean |
intersects(java.awt.geom.Rectangle2D rect)
Tests whether the specified rectangle intersects the interior of this geometry. |
boolean |
intersects(java.awt.Shape shape)
Tests whether the specified shape intersects the interior of this geometry. |
boolean |
isEmpty()
Determines whetever the collection is empty. |
protected void |
readObject(java.io.ObjectInputStream in)
Invoked during deserialization. |
boolean |
remove(Geometry toRemove)
Removes a geometry from this collection. |
void |
removeAll()
Remove all geometries from this geometry. |
void |
setCoordinateSystem(CoordinateSystem coordinateSystem)
Set the geometry's coordinate system. |
void |
setRenderingResolution(float resolution)
Hints this geometry that the specified resolution is sufficient for rendering. |
void |
setResolution(double resolution)
Set the geometry's resolution. |
void |
setValue(java.lang.Comparable value)
Set the value for this geometry. |
void |
setValue(float value)
Set the value for this geometry. |
protected void |
writeObject(java.io.ObjectOutputStream out)
Invoked during serialization. |
| Methods inherited from class org.geotools.renderer.geom.Geometry |
contains, getBounds, getID, getPathIterator, getStyle, getUserObject, intersects, setID, setStyle, setUserObject, toString |
| Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public GeometryCollection()
add(...) methods.
add(float[],int,int),
add(Shape),
add(Geometry)public GeometryCollection(CoordinateSystem coordinateSystem)
add(...) methods.
coordinateSystem - The coordinate system to use for all
points in this collection, or null if unknown.Geometry.DEFAULT_COORDINATE_SYSTEM,
LocalCoordinateSystem.PROMISCUOUS,
LocalCoordinateSystem.CARTESIAN,
GeographicCoordinateSystem.WGS84,
add(float[],int,int),
add(Shape),
add(Geometry)public GeometryCollection(GeometryCollection geometry)
| Method Detail |
public java.lang.String getName(java.util.Locale locale)
null if none.
getName in class Geometrylocale - The desired locale. If no name is available
for this locale, a default locale will be used.
public float getValue()
NaN if none.
If this collection is an isobath, then the value is typically the isobath altitude.
public void setValue(float value)
public void setValue(java.lang.Comparable value)
String (for example "Africa"),
or a value as a Number object (for example Float(-50)
for the -50 meters isobath). There is two advantages in using Number
instead of String for values:
compareTo(java.lang.Object).getName(java.util.Locale).
value - The value of value for this geometry.public CoordinateSystem getCoordinateSystem()
null if unknown.
getCoordinateSystem in class Geometry
public void setCoordinateSystem(CoordinateSystem coordinateSystem)
throws org.opengis.referencing.operation.TransformException,
UnmodifiableGeometryException
setCoordinateSystem in class GeometrycoordinateSystem - The new coordinate system. A null value
resets the coordinate system given at construction time.
org.opengis.referencing.operation.TransformException - If a transformation failed. In case of failure,
the state of this object will remain unchanged (as if this method has
never been invoked).
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.
public void add(float[] array,
int lower,
int upper)
throws UnmodifiableGeometryException
geometry's coordinate system. NaN
values will be considered as disjoint lines.
array - Coordinate array (may contain NaNs). These data will be copied. Consequently,
any modification on data will have no impact on the geometries created
by this method.lower - Index of the first x ordinate to add to the polyline.upper - Index after of the last y ordinate to add to the polyline.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.
public void add(java.awt.Shape shape)
throws java.lang.IllegalArgumentException,
UnmodifiableGeometryException
geometry's coordinate system.
shape - The shape to add.
java.lang.IllegalArgumentException - if the specified shape can't be added. This error may
occur if shape is an instance of Geometry and uses an
incompatible coordinate system.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.
public Geometry add(Geometry toAdd)
throws org.opengis.referencing.operation.TransformException,
UnmodifiableGeometryException
toAdd - Geometry to add.
org.opengis.referencing.operation.TransformException - if the specified geometry can't
be transformed in this collection coordinate system.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.
public boolean remove(Geometry toRemove)
throws UnmodifiableGeometryException
toRemove - The geometry to remove.
true if the geometry has been removed.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.
public void removeAll()
throws UnmodifiableGeometryException
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.
public void assemble(java.awt.Shape mapBounds,
float[] toComplete,
ProgressListener progress)
throws org.opengis.referencing.operation.TransformException,
UnmodifiableGeometryException

Running this method once for a given collection of geometries before renderering helps to repair them. The algorithm is:
GeometryCollection objects (one for each isobath) with value set to the bathymetric value (for example -50 for the -50 meters
isobath). The toComplete argument tells which isobaths to complete with
the map border provided by the mapBounds argument.
mapBounds - The bounded shape of the map, or null for assuming a
rectangular map inferred from this geometry. This is the bounding shape of
the software that created the polylines, not an arbitrary clip that the
application would like.toComplete - value of collections to complete with map border,
or null if none.progress - An optional progress listener (null in none). This is an
optional but recommanded argument, since the computation may be very long.
org.opengis.referencing.operation.TransformException - if a transformation was required and failed.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.
public void assemble(ProgressListener progress)
throws org.opengis.referencing.operation.TransformException,
UnmodifiableGeometryException
progress - An optional progress listener (null in none). This is an
optional but recommanded argument, since the computation may be very long.
org.opengis.referencing.operation.TransformException - if a transformation was required and failed.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.public Geometry clip(Clipper clipper)
this. If this geometry doesn't intersect the clip area, then this
method returns null. Otherwise, a new geometry is created and returned. The new
geometry will try to share as much internal data as possible with this in order
to keep memory footprint low.
clip in class Geometryclipper - The clipping area.
null if this geometry doesn't intersect the clip, this
if no clip has been performed, or a new clipped geometry otherwise.public java.util.Collection getGeometries()
Geometry objects. The collection will
contains geometries in the order they were added.
Geometry objects.public java.util.Collection getGeometries(java.awt.geom.Point2D point)
point - The coordinates to look at in this
geometry's coordinate system.
public java.util.Collection getGeometriesContaining(java.awt.Shape shape)
shape - A shape with coordinates expressed according to getCoordinateSystem().
public java.util.Collection getGeometriesIntersecting(java.awt.Shape shape)
shape - A shape with coordinates expressed according to getCoordinateSystem().
public java.lang.String getPolygonName(java.awt.geom.Point2D point,
java.util.Locale locale)
point - The coordinates to look at in this
geometry's coordinate system.locale - The desired locale for the geometry name.
null if there is none.public boolean isEmpty()
isEmpty in class Geometrypublic int getPointCount()
getPointCount in class Geometrypublic java.awt.geom.Rectangle2D getBounds2D()
getBounds2D in interface java.awt.ShapegetBounds2D in class Geometry
public boolean contains(double x,
double y)
getCoordinateSystem().
contains in interface java.awt.Shapecontains in class Geometryx - the specified x coordinates in this geometry coordinate system.y - the specified y coordinates in this geometry coordinate system.
true if the specified coordinates are inside
the geometry boundary; false otherwise.public boolean contains(java.awt.geom.Point2D point)
getCoordinateSystem().
contains in interface java.awt.Shapecontains in class Geometrypoint - the specified point in this geometry coordinate system.
true if the specified point is inside
the geometry boundary; false otherwise.public boolean contains(java.awt.geom.Rectangle2D rect)
contains in interface java.awt.Shapecontains in class Geometrypublic boolean contains(java.awt.Shape shape)
getCoordinateSystem().
contains in class Geometrypublic boolean intersects(java.awt.geom.Rectangle2D rect)
intersects in interface java.awt.Shapeintersects in class Geometrypublic boolean intersects(java.awt.Shape shape)
intersects in class Geometry
public float compress(CompressionLevel level)
throws org.opengis.referencing.operation.TransformException,
UnmodifiableGeometryException
level argument specify the
algorithm, which may be desctructive (i.e. data may loose precision). For example, the
compression may replaces direct positions by relative positions, as in the figures below:
|
|
compress in class Geometrylevel - The compression level (or algorithm) to use. See the CompressionLevel
javadoc for an explanation of available algorithms.
org.opengis.referencing.operation.TransformException - If an error has occurred during a cartographic projection.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.public Statistics getResolution()
getResolution in class Geometrynull if this geometry doesn't
contains any point. If non-null, the statistics object contains
minimum,
maximum,
mean,
root mean square and
standard deviation
always in linear units.
public void setResolution(double resolution)
throws org.opengis.referencing.operation.TransformException,
UnmodifiableGeometryException
resolution units (usually meters)
from the previous one.
setResolution in class Geometryresolution - Desired resolution, in the same units as getResolution().
org.opengis.referencing.operation.TransformException - If some coordinate transformations were needed and failed.
There is no guarantee on contour's state in case of failure.
UnmodifiableGeometryException - if modifying this geometry would corrupt a container.
To avoid this exception, clone this geometry before to modify it.public float getRenderingResolution()
PathIterator only; it has no effect on the underyling data.
getRenderingResolution in class Geometrypublic void setRenderingResolution(float resolution)
PathIterator will skip as many points as it can while preserving a
distance equals or smaller than resolution between two consecutive points.
setRenderingResolution in class Geometryresolution - The resolution to use at rendering time, in units of this geometry's
coordinate system (linear or angular units).public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform transform)
getPathIterator in interface java.awt.ShapegetPathIterator in class Geometrypublic final java.lang.Object clone()
final for implementation reason.
clone in interface org.opengis.util.Cloneableclone in class Geometrypublic int compareTo(java.lang.Object object)
equals. The method compareTo compares only the
value, while equals compares all coordinate
points. The natural ordering for GeometryCollection is convenient for sorting
geometries in alphabetical order or isobaths in increasing order of altitude. Geometries
without value are sorted last.
compareTo in interface java.lang.Comparableobject - The geometry to compare value with.
public boolean equals(java.lang.Object object)
equals in class Geometrypublic int hashCode()
hashCode in class Geometry
protected void readObject(java.io.ObjectInputStream in)
throws java.io.IOException,
java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
protected void writeObject(java.io.ObjectOutputStream out)
throws java.io.IOException
java.io.IOException
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||