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

Reply via email to