/// <summary> /// Initializes a new instance of the <see cref="ShapefileDataWriter"/> class. /// </summary> /// <param name="fileName">File path without any extension</param> /// <param name="geometryFactory"></param> public ShapefileDataWriter(string fileName, IGeometryFactory geometryFactory) { this.geometryFactory = geometryFactory; // Files shpFile = fileName; dbfFile = fileName + ".dbf"; // Writers shapeWriter = new ShapefileWriter(geometryFactory); dbaseWriter = new DbaseFileWriter(dbfFile); }
public void TestWriteSimpleShapeFile() { IPoint p1 = Factory.CreatePoint(new Coordinate(100, 100)); IPoint p2 = Factory.CreatePoint(new Coordinate(200, 200)); GeometryCollection coll = new GeometryCollection(new IGeometry[] { p1, p2, }); ShapefileWriter writer = new ShapefileWriter(Factory); writer.Write(@"c:\test_arcview", coll); ShapefileWriter.WriteDummyDbf(@"c:\test_arcview.dbf", 2); // Not read by ArcView!!! }
/// <summary> /// Initializes a new instance of the <see cref="ShapefileDataWriter"/> class. /// </summary> /// <param name="fileName">File path without any extension</param> /// <param name="geometryFactory"></param> public ShapefileDataWriter(string fileName, IGeometryFactory geometryFactory) { this.geometryFactory = geometryFactory; // Files shpFile = fileName; dbfFile = fileName + ".dbf"; // Writers shapeWriter = new ShapefileWriter(geometryFactory); dbaseWriter = new DbaseFileWriter(dbfFile); }
private void WriteGridAbundances(Project currentProject, string shapefileName) { try { List<IPolygon>projectGrids=new List<IPolygon>(); General_queries projq=new General_queries(currentProject); foreach(Station st in currentProject.StationsList) { IPolygon grid=st.Grid; StationStats tempStationStats=new StationStats(st.Guid,st.StationID); foreach(StationStats stst in projq.AllStatsByStation) { if(stst.StationGUID==st.Guid) { tempStationStats=stst; grid.UserData=tempStationStats; } } projectGrids.Add(grid); } GeometryCollection gc=new GeometryCollection(projectGrids.ToArray()); //Open Writer ShapefileWriter shpWriter = new ShapefileWriter(); shpWriter.Write(shapefileName, gc); //Create Header & Columns for points DbaseFileHeader dbfHeader = new DbaseFileHeader(); dbfHeader.AddColumn("Station_ID",'C',20,0); //One column for each species in project foreach(SpeciesStats spcst in projq.AllStatsBySpecies) { dbfHeader.AddColumn(spcst.SpeciesName,'N',20,0); } dbfHeader.NumRecords = gc.Count; //DBF Writer DbaseFileWriter dbfWriter = new DbaseFileWriter(shapefileName+".dbf"); dbfWriter.Write(dbfHeader); //Loop through Business Object to get Features foreach (IPolygon p in gc.Geometries) { StationStats data = (StationStats)p.UserData; ArrayList columnValues = new System.Collections.ArrayList(); //Add Values columnValues.Add(data.StationID); foreach(SpeciesStats s in data.SpeciesStats) { columnValues.Add(s.SpeciesPictures); } dbfWriter.Write(columnValues); } //Close File dbfWriter.Close(); } catch (Exception ex) { throw ex; } }
private void TestBugCimino() { try { string file = "countryCopy.shp"; if (!File.Exists(file)) throw new FileNotFoundException(); ShapefileReader sfr = new ShapefileReader(file); IGeometryCollection gc = sfr.ReadAll(); for (int i = 0; i < gc.NumGeometries; i++) Console.WriteLine(i + " " + gc.Geometries[i].Envelope); // IsValidOp.CheckShellsNotNested molto lento nell'analisi di J == 7 (Poligono con 11600 punti) ShapefileWriter sfw = new ShapefileWriter(); string write = Path.Combine(Path.GetTempPath(), "copy_countryCopy"); sfw.Write(write, gc); Console.WriteLine("Write Complete!"); } catch (Exception ex) { throw ex; } }
private void WriteShape(IGeometryCollection geometries, string shapepath) { if (File.Exists(shapepath)) File.Delete(shapepath); ShapefileWriter writer = new ShapefileWriter(); writer.Write(Path.GetFileNameWithoutExtension(shapepath), geometries); }