| An implementation of GraphGenerator used to build graphs from a set
of polygons.
This graph generator takes
com.vividsolutions.jts.geom.Polygon
objects as input when constructing a graph. The following code constructs
a graph from a set of polygons.
//get some polygons
Polygon[] polygons = ...
//determine what the relationship will be
PolygonGraphGenerator rel = new PolygonGraphGenerator.PolygonRelationship() {
public boolean related(Polygon p1, Polygon p2) {
return p1.intersects(p2);
}
public boolean equal(Polygon p1, Polygon p2) {
return p1.equals(p2);
}
}
//create the generator
PolygonGraphGenerator gg = new PolygonGraphGenerator(new BasicGraphBuilder(),rel);
//start building
for (int i = 0; i < polygons.length; i++) {
gg.add(polygons[i]);
}
For each distinct polygon added to the graph, a node is created. If two
polygons are considered equal, only a single node is created. If two
polygons are considered related, the associated nodes share an edge. Equality
and relationship is determined by
org.geotools.graph.build.polygon.PolygonGraphGenerator.PolygonRelationship interface. An instance of this interface is passed to the generator at construction.
author: Justin Deoliveira, The Open Planning Project |