Guest User

Untitled

a guest
Jan 16th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. public void createBuffer() { //String inputFile,String opFile,int bufferDistance
  2.  
  3. String sourceFilename = "C:/img/AS-ORYSA.geo.tif";
  4. int bufferDistance = 10;
  5. gdal.AllRegister();
  6.  
  7. //convert tif to .shp file
  8. Dataset tifDataSet = gdal.Open(sourceFilename, gdalconstConstants.GA_ReadOnly);
  9. Band srcBand = tifDataSet.GetRasterBand(1);
  10. System.out.println("srcBand DS ---------" + srcBand.GetBand() );
  11.  
  12. Driver shpDriver = org.gdal.ogr.ogr.GetDriverByName("Esri Shapefile");
  13. String shpFilePath = "C:/img/Poly1.shp";
  14. String opFile = "C:/img/PolyNew1.shp";
  15. DataSource shpDS = shpDriver.CreateDataSource(shpFilePath);
  16.  
  17. SpatialReference srs = new SpatialReference();
  18. Layer dstLayer = shpDS.CreateLayer("Poly", srs);
  19. int p = gdal.Polygonize(srcBand, null, dstLayer, -1,null);
  20. System.out.println("polygonize ---------" + p );
  21.  
  22.  
  23. //create Buffer & rasterize
  24. DataSource inputShapeDS = org.gdal.ogr.ogr.Open(shpFilePath);
  25. System.out.println("ds layer count ---------" + inputShapeDS.GetLayerCount() );
  26.  
  27. DataSource orgSourceDS = org.gdal.ogr.ogr.GetDriverByName("Memory").CopyDataSource(
  28. inputShapeDS, "");
  29.  
  30. Layer srcLayer = orgSourceDS.GetLayer(0);
  31.  
  32. FeatureDefn srcLayerDefn = srcLayer.GetLayerDefn();
  33. FieldDefn fielddefn = srcLayerDefn.GetFieldDefn(0);
  34. System.out.println("Field defn ---------" + fielddefn.GetName());
  35.  
  36. long n = srcLayer.GetFeatureCount(1);
  37. System.out.println("inputLayer Feature count ---------" + n );
  38.  
  39. Driver shapeDriver = org.gdal.ogr.ogr.GetDriverByName("ESRI Shapefile");
  40. //delete ds if file exists
  41. File file = new File(opFile);
  42. if (file.exists())
  43. shapeDriver.DeleteDataSource(opFile);
  44. //map ds to op file
  45. DataSource outputShapeDS = shapeDriver.CreateDataSource(opFile);
  46.  
  47. SpatialReference spatialRef = new SpatialReference();
  48. Geometry geometry = new Geometry(org.gdal.ogr.ogr.wkbPolygon);
  49. Layer outputLayer = outputShapeDS.CreateLayer(opFile, spatialRef, geometry.GetGeometryType());
  50. FeatureDefn outputLayerDefn = outputLayer.GetLayerDefn();
  51. System.out.println("outputLayerDefn ---------" + outputLayerDefn.GetFieldCount() );
  52.  
  53.  
  54. //Get Features & Iterate .need to check
  55. for(long l =1; l < srcLayer.GetFeatureCount();l++) {
  56. Feature feat = srcLayer.GetFeature(l);
  57. System.out.println("inputLayer Feature ---------" + feat.GetFID() );
  58. Geometry inputGeo = feat.GetGeometryRef();
  59. inputGeo.Buffer(bufferDistance);
  60. //set it op feature
  61. Feature opFeature = new Feature(outputLayerDefn);
  62. outputLayer.CreateFeature(opFeature);
  63.  
  64. }
  65.  
  66.  
  67. }
Add Comment
Please, Sign In to add comment