Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void createBuffer() { //String inputFile,String opFile,int bufferDistance
- String sourceFilename = "C:/img/AS-ORYSA.geo.tif";
- int bufferDistance = 10;
- gdal.AllRegister();
- //convert tif to .shp file
- Dataset tifDataSet = gdal.Open(sourceFilename, gdalconstConstants.GA_ReadOnly);
- Band srcBand = tifDataSet.GetRasterBand(1);
- System.out.println("srcBand DS ---------" + srcBand.GetBand() );
- Driver shpDriver = org.gdal.ogr.ogr.GetDriverByName("Esri Shapefile");
- String shpFilePath = "C:/img/Poly1.shp";
- String opFile = "C:/img/PolyNew1.shp";
- DataSource shpDS = shpDriver.CreateDataSource(shpFilePath);
- SpatialReference srs = new SpatialReference();
- Layer dstLayer = shpDS.CreateLayer("Poly", srs);
- int p = gdal.Polygonize(srcBand, null, dstLayer, -1,null);
- System.out.println("polygonize ---------" + p );
- //create Buffer & rasterize
- DataSource inputShapeDS = org.gdal.ogr.ogr.Open(shpFilePath);
- System.out.println("ds layer count ---------" + inputShapeDS.GetLayerCount() );
- DataSource orgSourceDS = org.gdal.ogr.ogr.GetDriverByName("Memory").CopyDataSource(
- inputShapeDS, "");
- Layer srcLayer = orgSourceDS.GetLayer(0);
- FeatureDefn srcLayerDefn = srcLayer.GetLayerDefn();
- FieldDefn fielddefn = srcLayerDefn.GetFieldDefn(0);
- System.out.println("Field defn ---------" + fielddefn.GetName());
- long n = srcLayer.GetFeatureCount(1);
- System.out.println("inputLayer Feature count ---------" + n );
- Driver shapeDriver = org.gdal.ogr.ogr.GetDriverByName("ESRI Shapefile");
- //delete ds if file exists
- File file = new File(opFile);
- if (file.exists())
- shapeDriver.DeleteDataSource(opFile);
- //map ds to op file
- DataSource outputShapeDS = shapeDriver.CreateDataSource(opFile);
- SpatialReference spatialRef = new SpatialReference();
- Geometry geometry = new Geometry(org.gdal.ogr.ogr.wkbPolygon);
- Layer outputLayer = outputShapeDS.CreateLayer(opFile, spatialRef, geometry.GetGeometryType());
- FeatureDefn outputLayerDefn = outputLayer.GetLayerDefn();
- System.out.println("outputLayerDefn ---------" + outputLayerDefn.GetFieldCount() );
- //Get Features & Iterate .need to check
- for(long l =1; l < srcLayer.GetFeatureCount();l++) {
- Feature feat = srcLayer.GetFeature(l);
- System.out.println("inputLayer Feature ---------" + feat.GetFID() );
- Geometry inputGeo = feat.GetGeometryRef();
- inputGeo.Buffer(bufferDistance);
- //set it op feature
- Feature opFeature = new Feature(outputLayerDefn);
- outputLayer.CreateFeature(opFeature);
- }
- }
Add Comment
Please, Sign In to add comment