I'm not getting any errors. it's just that when i printed the value of "p" i got a null value.
Thanks
Jase
On 11/23/05,
Justin Deoliveira <[EMAIL PROTECTED]> wrote:
Hi Jase,
Could you send the stack trace of the exception. Thanks.
Justin
Jase wrote:
> Hi Justin,
>
> Upon closer inspection on my database, I found that the roads have been
> noded on the intersections. MOst of the roads I had a look shares a
> common end point.
>
> I proceeded on with using some of the algorithms that you suggested in
> this mailing list. What I'm getting is a null pointer. I'm a bit baffled
> as to what might have gone wrong. I initially though that the roads
> might not have been noded so I tried with two points on the same road
> and got the same results.
>
> Attached are the codes that I used. I'm guessing I did something wrong
> at the "src" and "dest"
>
> Thanks.
>
> Jase
>
>
>
> DataStore pgDatastore = DataStoreFinder.getDataStore(params);
> FeatureSource fsBC = pgDatastore.getFeatureSource ("mustmrr");
> System.out.println("Road to be added: " +
> fsBC.getCount(Query.ALL));
> System.out.println("Reading PostGIS datastore...");
>
> LineStringGraphGenerator lgb = new LineStringGraphGenerator();
> //FeatureSource fs = (FeatureSource)layers.get("mustmrr");
> FeatureResults fr = fsBC.getFeatures ();
> FeatureCollection fc = fr.collection();
> FeatureIterator feat = fc.features();
>
> Envelope envelope = fc.getBounds();
> System.out.println ("Building graph network...");
> while (feat.hasNext())
> {
> Feature ft = feat.next();
>
> if (envelope.contains(ft.getBounds ()))
> {
> System.out.println("Road Name:"+
> ft.getAttribute("name").toString().trim() + "\tAtribute:"
> +ft.getAttribute("wkb_geometry"));
> lgb.add(ft.getAttribute("wkb_geometry"));
>
> }
> }
>
> Graph g = lgb.getGraph();
> System.out.println (g);
> XYNode src = "">> src = "" BasicXYNode();
> src.setCoordinate(new Coordinate (101.603802, 3.071856));
>
> XYNode dest = new BasicXYNode();
> dest.setCoordinate(new Coordinate(101.71339200,3.15235700));
>
> DijkstraIterator.EdgeWeighter weighter = new
> DijkstraIterator.EdgeWeighter()
> {
> public double getWeight(Edge e)
> {
> LineSegment line = (LineSegment)e.getObject();
> return(line.getLength());
>
> }
> };
>
> DijkstraShortestPathFinder dsp = new
> DijkstraShortestPathFinder(g, src, weighter);
> System.out.println("Calculating Paths....");
> dsp.calculate();
> Path p = dsp.getPath(dest);
> System.out.println(p);
--
Justin Deoliveira
The Open Planning Project
http://topp.openplans.org
