Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 29th, 2012  |  syntax: None  |  size: 1.53 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. I am using Geotools to display a road map of Bangalore
  2. Filter filter;
  3.        
  4. FileDataStore store= FileDataStoreFinder.getDataStore(file);
  5.        
  6. SimpleFeatureSource featureSource=store.getFeatureSource();
  7.        
  8. SimpleFeatureCollection fc=featureSource.getFeatures(filter);
  9.        
  10. SimpleFeatureIterator iter=fc.features();
  11.        
  12. Set<FeatureId> IDs=new HashSet<FeatureId>();
  13.        
  14. try{
  15.  
  16. while(iter.hasNext()){
  17.  
  18. SimpleFeature f=iter.next();
  19.  
  20. IDs.add(f.getIdentifier());
  21.  
  22. System.out.println(" "+f.getIdentifier());
  23.  
  24. }
  25.        
  26. iter.close();
  27.        
  28. Style style=createSelectedStyle(IDs);
  29.        
  30. MapContext map=new DefaultMapContext();
  31.        
  32. map.addLayer(featureSource,style);
  33.  
  34. JMapFrame.showMap(map);
  35.        
  36. private Style createSelectedStyle(Set<FeatureId> IDs) {
  37.     Rule selectedRule = createRule(SELECTED_COLOUR, SELECTED_COLOUR);
  38.     selectedRule.setFilter(ff.id(IDs));
  39.  
  40.     Rule otherRule = createRule(LINE_COLOUR, FILL_COLOUR);
  41.     otherRule.setElseFilter(true);
  42.  
  43.     FeatureTypeStyle fts = sf.createFeatureTypeStyle();
  44.     fts.rules().add(selectedRule);
  45.     fts.rules().add(otherRule);
  46.  
  47.     Style style2 = sf.createStyle();
  48.     style2.featureTypeStyles().add(fts);
  49.  
  50.     return style2;
  51. }
  52.        
  53. private Rule createRule(Color outlineColor, Color fillColor) {
  54.     Symbolizer symbolizer = null;
  55.     Fill fill = null;//not required if working with line
  56.     Stroke stroke = sf.createStroke(ff.literal(outlineColor), ff.literal(LINE_WIDTH));
  57.  
  58.     symbolizer = sf.createLineSymbolizer(stroke, "the_geom");
  59.  
  60.     Rule rule = sf.createRule();
  61.     rule.symbolizers().add(symbolizer);
  62.     return rule;
  63. }