Thanks Jody,

These days i tried to play with GeoTools graph module and
DijkstraShortestPathFinder in 
order to find the best route between two points on map.
I used BasicLineGraphGenerator to create graph from line segments which are
created from 
features. I also used DijkstraShortestPathFinder(graph, source, weighter) to
find the best path 
between source and destination node. I also succeed to create shapefile
(with your help :)) 
which represents best path and display route on the map.

Now i am trying to create graph which will take into consideration one way
streets, but i can't see 
any way how to specify one way streets to Dijkstra algorithm. I searched
forum and find out that i 
should use DijkstraShortestPathFinder(graph.getGraph(),Iterator) and define
iterator as 
DirectedDijkstraIterator. However i have no idea how to do that, and i don't
see how i 
can specify that some line segment(s) are one-way and others are not, and
which way is banned. 
I tried to find something about this issue in user guide but there is
nothing about it.

I will be very grateful if someone can help me,

Best regards.



Jody Garnett-2 wrote:
> 
> The second tutorials has this covered:
> - http://docs.codehaus.org/display/GEOTDOC/06+CSV2SHP+Lab
> 
> Either:
> - final SimpleFeatureType TYPE = DataUtilities.createType("Location",  
> "location:Point,name:String");
> - or use a FeatureTypeBuilder
> 
> SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder();
>      builder.setName( "Location" );
>      builder.setCRS( DefaultGeographicCRS.WGS84 );
> 
>      //add attributes in order
>      builder.add( "Location", Point.class );
>      builder.length(15).add( "Name", String.class );
> 
>      //build the type
>      final SimpleFeatureType LOCATION = builder.buildFeatureType();
>      return LOCATION;
> 
> Jody
> On 07/08/2009, at 9:09 PM, iceDice wrote:
> 
>>
>> Hello,
>>
>> I have array of com.vividsolutions.jts.geom.LineSegment objects and  
>> i want
>> to create new shapefile from it
>> to display it on map.
>>
>> I follow lab on http://docs.codehaus.org/display/GEOTDOC/07+FeatureStore 
>>  but
>> when i try to do following:
>>
>> FeatureCollection<SimpleFeatureType, SimpleFeature> collection =
>> FeatureCollections.newCollection();
>> org.opengis.feature.simple.SimpleFeatureType featureType;
>> MultiLineString line;
>> ...
>> collection.add(featureType.create(new Object[] { line }));
>>
>> i found out that org.opengis.feature.simple.SimpleFeatureType don't  
>> have
>> method create at all.
>> I try to cast it to org.geotools.feature.SimpleFeatureType but got
>> exception:
>> java.lang.ClassCastException:
>> org.geotools.feature.simple.SimpleFeatureTypeImpl cannot be cast to
>> org.geotools.feature.SimpleFeatureType
>>
>> I hope so someone can help me about this.
>>
>> Here is my complete code:
>> public static void writeToShapefile(LineSegment[] lineSegments) {
>>      DefaultTransaction transaction = new DefaultTransaction("Example1");
>>      try {
>>          FileDataStoreFactorySpi factory = new
>> IndexedShapefileDataStoreFactory();
>>          File file = new File("myShp.shp");
>>
>>          //Map map = Collections.singletonMap("shapefile url",
>> file.toURI().toURL());
>>          Map map = Collections.singletonMap("url", file.toURI().toURL());
>>          ShapefileDataStore myDataStore =
>> (ShapefileDataStore)factory.createNewDataStore(map);
>>          myDataStore.forceSchemaCRS(CRS.decode("EPSG:4326"));
>>          SimpleFeatureType featureType =  
>> DataUtilities.createType("best_path",
>> "geom:MultiLineString");
>>          myDataStore.createSchema(featureType);
>>
>>          /* populate collection from line segments */
>>          FeatureCollection<SimpleFeatureType, SimpleFeature> fc =
>> populate(featureType, lineSegments);
>>
>>          /* write features to shape file */
>>          FeatureSource<SimpleFeatureType, SimpleFeature> source =
>> myDataStore.getFeatureSource("best_path");
>>          if (source instanceof FeatureStore) {
>>              // you have write access
>>              FeatureStore<SimpleFeatureType, SimpleFeature> store =
>> (FeatureStore<SimpleFeatureType, SimpleFeature>) source;
>>              store.setTransaction(transaction);
>>              try {
>>                  store.addFeatures(fc);
>>                  transaction.commit();
>>                  transaction.close();
>>              } catch (Exception eek) {
>>                  try {
>>                      transaction.rollback();
>>                  } catch (IOException e) {
>>                      e.printStackTrace();
>>                  }
>>              }
>>          } else {
>>              // read-only
>>          }
>>      } catch (Exception e) {
>>              // TODO Auto-generated catch block
>>              e.printStackTrace();
>>      }
>> }
>>
>> public static FeatureCollection<SimpleFeatureType, SimpleFeature>
>> populate(SimpleFeatureType featureType, LineSegment[] lineSegments) {
>>      FeatureCollection<SimpleFeatureType, SimpleFeature> collection =
>> FeatureCollections.newCollection();
>>      try {
>>              GeometryFactory gf = new GeometryFactory();
>>              for (int i = 0; i < lineSegments.length; i++) {
>>                      LineString[] lsTemp = new LineString[1];
>>                      Coordinate c0 = lineSegments[i].p0;
>>                      Coordinate c1 = lineSegments[i].p1;
>>                      Coordinate[] coords = new Coordinate[2];
>>                      coords[0] = c0;
>>                      coords[1] = c1;
>>                      LineString ls = gf.createLineString(coords);
>>                      lsTemp[0] = ls;
>>                      MultiLineString line = gf.createMultiLineString(lsTemp);
>>                      collection.add(featureType.create(new Object[] { line 
>> }));
>>              }
>>              return collection;
>>      } catch (Exception iae) {
>>          iae.printStackTrace();
>>          return null;
>>      }
>> }
>>
>> -- 
>> View this message in context:
>> http://n2.nabble.com/WriteToShapefile-tp3403703p3403703.html
>> Sent from the geotools-gt2-users mailing list archive at Nabble.com.
>>
>> ------------------------------------------------------------------------------
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008  
>> 30-Day
>> trial. Simplify your report design, integration and deployment - and  
>> focus on
>> what you do best, core application coding. Discover what's new with
>> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> _______________________________________________
>> Geotools-gt2-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> 
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
> 30-Day 
> trial. Simplify your report design, integration and deployment - and focus
> on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/WriteToShapefile-tp3403703p3429552.html
Sent from the geotools-gt2-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to