Hello everyone, I am involved with a project that is using the JTS package (currently 1.8) to implement some path finding algorithms. As currently implemented, we have several layers, each of which contains a List of Polygon objects. Our search algorithm looks to see if our current location (a Point object) intersects with any of the Polygons defined in each layer/list, if it does, a cost associated with that intersection is returned. Initially our code was rather inefficient, considering that once the list of polygons is defined, it does not change for the duration of our search. For example most layers are implemented like this: protected double calculateCost(Point point) { ret = costValue; for (Polygon polygon : polygons ) { if (point.intersects(polygon)) { ret = 0; break; } } return ret; } I refined this, trying to merge all of the polygons once, into a Geometry class, so that we could query the intersections against the geomerty collection, instead. protected double calculateCost(Point point) { if ( ! loaded ) { loaded = true; geom = new Geometry[ polygons.size()]; polygons.toArray(geom); geoFact = geom[0].getFactory(); geomColl = geoFact.createGeometryCollection(geom); union = geomColl.buffer(0); buffColl = union.buffer(1); } if ( buffColl.intersects(point) ) { return 0; } else { return costValue; } } These 'calculateCost' methods are being called hundreds of thousands, if not millions of times in our application, so any refinement we can get would be worthwhile. The biggest problem I have had, is not being able to locate sources of docmentation (other than the Javadoc) and examples. So I'm really not sure what else is available within the API, although I've been reading that the PreparedGeometry classes in 1.9/1.10 of JTS may help to improve our performance (if I can understand how to use them) ;-) If anyone can provide some suggestions/advice, I'd be greatful. Thanks! Al Dorrington Embedded S/W Engineer Sr Aerospace Simulation Software Development Lockheed Martin, Systems Integration-Owego
_______________________________________________ jts-devel mailing list jts-devel@lists.jump-project.org http://lists.refractions.net/mailman/listinfo/jts-devel