Hi Jeff, Glad to hear things are going well.
Hyink, Jeffrey (LCDR) wrote: > Justin, > > Thanks to your previous advice, I've got some sample code up and cooking > which takes my shapefile, converts to a graph, weights by length of > underlying geometry and does Dijkstra...so I'm partway down the road to > success. I was wondering if you had any advice on my next phase/set of > issues: > > 1. For my simulation side to run, I need to have fairly immediate > access to the underlying Features in the graph (names, other attributes) > and I was considering what you said earlier about subclassing the > LineStringGraphGenerator. I did this as an experiment and ended up with > a bastardized generator that HashMaps the incoming feature by the > underlying geometry so that I can get the feature back when I get an > Edge out of some of the Graph class output. Seems a bit inefficient, > and unsexy to say the least...so I'm considering sublcassing all the way > into the Graph interface so that I can interrogate the graph directly to > get the underlying Feature. Thoughts? I actually just committed an alternative that doesn't involve subclassing. Its called FeatureGraphGenerator. What it does is takes features and passes the underlying geometry off to an underlying graph generator ( for example a linestring graph generator ). The edge that is created gets its model object to be set to the feature. I think this should do the trick for you. For every edge you will have direct access to the line feature it was created from with a call to edge#getObject(), casting to Feature of course. Check out FeatureGraphGeneratorTest for an example of usage. > > 2. I'm also going to be interested in implementing directed arcs in the > next go-around, so I'm looking at the DirectedLineStringGraphGenerator > and figuring out a way to add the bi-directional Features into it twice > (once with the geometry reversed somehow.) Any thoughts here? How about cloning bi-diredctional features, and on the clone reversing its geometry. The function GeometryUtil#reverseGeometry in the org.geotools.graph.util.geom. package should help. Then just add both features to the generator. This should give you the desired result. > > 3. Lastly, I'm intrigued by the OptDirectedEdge and the "optimized" > graph features. Is this worth pursuing? I'm not sure what the > "optimized" classes would buy me, not to mention there doesn't seem to > be a LineString builder of optimized items. > Not really, this is more of an experiment I worked on. The plan was to build Node and Edge implementations that were memory efficient. I was working on a project in which huge graphs had to be built so every byte counted. :) But they turned out to be not so useful. > Thanks again for the advice, > Glad I could help. Let me know if you have any more questions. -Justin > Jeff > > !DSPAM:1004,44d94f1124261527717022! -- Justin Deoliveira The Open Planning Project [EMAIL PROTECTED] ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
