/// <summary> /// Method to write a dummy dbase file /// </summary> /// <param name="streamProviderRegistry">The stream provider registry</param> /// <param name="recordCount">The number of records</param> public static void WriteDummyDbf(IStreamProviderRegistry streamProviderRegistry, int recordCount) { using (var dbfWriter = new DbaseFileWriter(streamProviderRegistry)) { WriteDummyDbf(dbfWriter, recordCount); } }
/// <summary> /// Method to write a dummy dbase file /// </summary> /// <param name="dbfWriter">The dbase file writer</param> /// <param name="recordCount">The number of records</param> public static void WriteDummyDbf(DbaseFileWriter dbfWriter, int recordCount) { // Create the dummy header var dbfHeader = new DbaseFileHeader { NumRecords = recordCount }; // add some dummy column dbfHeader.AddColumn("Description", 'C', 20, 0); // Write the header dbfWriter.Write(dbfHeader); // Write the features for (int i = 0; i < recordCount; i++) { var columnValues = new List <double> { i }; dbfWriter.Write(columnValues); } // End of file flag (0x1A) dbfWriter.WriteEndOfDbf(); dbfWriter.Close(); }
public ShapefileDataWriter(IStreamProviderRegistry streamProviderRegistry, IGeometryFactory geometryFactory, Encoding encoding) { _geometryFactory = geometryFactory; _streamProviderRegistry = streamProviderRegistry; // Writers _dbaseWriter = new DbaseFileWriter(streamProviderRegistry, encoding); }
/// <summary> /// Method to write a dummy dbf file /// </summary> /// <param name="filename">The dbase filename</param> /// <param name="recordCount">The number of records</param> public static void WriteDummyDbf(string filename, int recordCount) { // assert the filename is correct filename = Path.ChangeExtension(filename, "dbf"); using (var dbfWriter = new DbaseFileWriter(filename)) { WriteDummyDbf(dbfWriter, recordCount); } }
/// <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) { _geometryFactory = geometryFactory; // Files _shpFile = fileName; _dbfFile = fileName + ".dbf"; // Writers _dbaseWriter = new DbaseFileWriter(_dbfFile); }
/// <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 static void WriteGeometryCollection(ShapefileWriter shapefileWriter, DbaseFileWriter dbfWriter, GeometryCollection geometryCollection, bool writeDummyDbf = true) { int numShapes = geometryCollection.NumGeometries; for (int i = 0; i < numShapes; i++) { shapefileWriter.Write(geometryCollection[i]); } if (writeDummyDbf) { WriteDummyDbf(dbfWriter, numShapes); } }
/// <summary> /// Write the enumeration of features to shapefile (shp, shx and dbf) /// </summary> /// <param name="filename">Filename to create</param> /// <param name="features">Enumeration of features to write, features will be enumerated once</param> /// <param name="fields">Fields that should be written, only those attributes specified here will be mapped from the feature attributetable while writing</param> /// <param name="shapeGeometryType">Type of geometries shapefile</param> /// <param name="dbfEncoding">Optional Encoding to be used when writing the DBF-file (default Windows-1252)</param> public static void WriteFeatures(string filename, IEnumerable <IFeature> features, DbaseFieldDescriptor[] fields, ShapeGeometryType shapeGeometryType, Encoding dbfEncoding = null) { // Set default encoding if not specified if (dbfEncoding == null) { dbfEncoding = DbaseEncodingUtility.GetEncodingForCodePageIdentifier(1252); } // Open shapefile and dbase stream writers using (var shpWriter = new ShapefileWriter(Path.ChangeExtension(filename, ".shp"), shapeGeometryType)) { using (var dbfWriter = new DbaseFileWriter(Path.ChangeExtension(filename, ".dbf"), dbfEncoding)) { var dbfHeader = new DbaseFileHeader(dbfEncoding); foreach (var field in fields) { dbfHeader.AddColumn(field.Name, field.DbaseType, field.Length, field.DecimalCount); } dbfWriter.Write(dbfHeader); int numFeatures = 0; string[] fieldNames = Array.ConvertAll(fields, field => field.Name); object[] values = new object[fieldNames.Length]; foreach (var feature in features) { shpWriter.Write(feature.Geometry); for (int i = 0; i < fieldNames.Length; i++) { values[i] = feature.Attributes[fieldNames[i]]; } dbfWriter.Write(values); numFeatures++; } // set the number of records dbfHeader.NumRecords = numFeatures; // Update the header dbfWriter.Write(dbfHeader); // write the end of dbase file marker dbfWriter.WriteEndOfDbf(); // close the dbase stream dbfWriter.Close(); } } }
/// <summary> /// /// </summary> /// <param name="filename"></param> /// <param name="recordCount"></param> public static void WriteDummyDbf(string filename, int recordCount) { DbaseFileHeader dbfHeader = new DbaseFileHeader(); dbfHeader.NumRecords = recordCount; dbfHeader.AddColumn("Description", 'C', 20, 0); DbaseFileWriter dbfWriter = new DbaseFileWriter(filename); dbfWriter.Write(dbfHeader); for (int i = 0; i < recordCount; i++) { List <double> columnValues = new List <double>(); columnValues.Add((double)i); dbfWriter.Write(columnValues); } // End of file flag (0x1A) dbfWriter.Write(0x1A); dbfWriter.Close(); }
/// <summary> /// /// </summary> /// <param name="filename"></param> /// <param name="recordCount"></param> public static void WriteDummyDbf(string filename, int recordCount) { filename = Path.ChangeExtension(filename, "dbf"); var dbfHeader = new DbaseFileHeader { NumRecords = recordCount }; dbfHeader.AddColumn("Description", 'C', 20, 0); var dbfWriter = new DbaseFileWriter(filename); dbfWriter.Write(dbfHeader); for (var i = 0; i < recordCount; i++) { var columnValues = new List <double> { i }; dbfWriter.Write(columnValues); } // End of file flag (0x1A) dbfWriter.Write(0x1A); dbfWriter.Close(); }
/// <summary> /// Write the enumeration of features to shapefile (shp, shx and dbf) /// </summary> /// <param name="filename">Filename to create</param> /// <param name="features">Enumeration of features to write, features will be enumerated once</param> /// <param name="fields">Fields that should be written, only those attributes specified here will be mapped from the feature attributetable while writing</param> /// <param name="shapeGeometryType">Type of geometries shapefile</param> /// <param name="dbfEncoding">Optional Encoding to be used when writing the DBF-file (default Windows-1252)</param> public static void WriteFeatures(string filename, IEnumerable<IFeature> features, DbaseFieldDescriptor[] fields, ShapeGeometryType shapeGeometryType, Encoding dbfEncoding = null) { // Set default encoding if not specified if (dbfEncoding == null) dbfEncoding = Encoding.GetEncoding(1252); // Open shapefile and dbase stream writers using (var shpWriter = new ShapefileWriter(Path.ChangeExtension(filename, ".shp"), shapeGeometryType)) { using (var dbfWriter = new DbaseFileWriter(Path.ChangeExtension(filename, ".dbf"), dbfEncoding)) { var dbfHeader = new DbaseFileHeader(dbfEncoding); foreach (var field in fields) { dbfHeader.AddColumn(field.Name, field.DbaseType, field.Length, field.DecimalCount); } dbfWriter.Write(dbfHeader); var numFeatures = 0; foreach (var feature in features) { shpWriter.Write(feature.Geometry); var values = new object[fields.Length]; for (var i = 0; i < fields.Length; i++) { values[i] = feature.Attributes[fields[i].Name]; } dbfWriter.Write(values); numFeatures++; } // set the number of records dbfHeader.NumRecords = numFeatures; // Update the header dbfWriter.Write(dbfHeader); // write the end of dbase file marker dbfWriter.WriteEndOfDbf(); // close the dbase stream dbfWriter.Close(); } } }
/// <summary> /// Method to write a dummy dbase file /// </summary> /// <param name="dbfWriter">The dbase file writer</param> /// <param name="recordCount">The number of records</param> public static void WriteDummyDbf(DbaseFileWriter dbfWriter, int recordCount) { // Create the dummy header var dbfHeader = new DbaseFileHeader {NumRecords = recordCount}; // add some dummy column dbfHeader.AddColumn("Description", 'C', 20, 0); // Write the header dbfWriter.Write(dbfHeader); // Write the features for (var i = 0; i < recordCount; i++) { var columnValues = new List<double> {i}; dbfWriter.Write(columnValues); } // End of file flag (0x1A) dbfWriter.WriteEndOfDbf(); dbfWriter.Close(); }
public static void WriteGeometryCollection(ShapefileWriter shapefileWriter, DbaseFileWriter dbfWriter, IGeometryCollection geometryCollection, bool writeDummyDbf = true) { var numShapes = geometryCollection.NumGeometries; for (var i = 0; i < numShapes; i++) { shapefileWriter.Write(geometryCollection[i]); } if (writeDummyDbf) { WriteDummyDbf(dbfWriter, numShapes); } }
public static void WriteDummyDbf(DbaseFileWriter dbfWriter, int recordCount) { var dbfHeader = new DbaseFileHeader { NumRecords = recordCount }; dbfHeader.AddColumn("Description", 'C', 20, 0); dbfWriter.Write(dbfHeader); for (var i = 0; i < recordCount; i++) { var columnValues = new List<double> { i }; dbfWriter.Write(columnValues); } // End of file flag (0x1A) dbfWriter.Write(0x1A); dbfWriter.Close(); }
/// <summary> /// /// </summary> /// <param name="filename"></param> /// <param name="recordCount"></param> public static void WriteDummyDbf(string filename, int recordCount) { filename = Path.ChangeExtension(filename, "dbf"); var dbfHeader = new DbaseFileHeader {NumRecords = recordCount}; dbfHeader.AddColumn("Description",'C', 20, 0); var dbfWriter = new DbaseFileWriter(filename); dbfWriter.Write(dbfHeader); for (var i = 0; i < recordCount; i++) { var columnValues = new List<double> {i}; dbfWriter.Write(columnValues); } // End of file flag (0x1A) dbfWriter.Write(0x1A); dbfWriter.Close(); }
public static void WriteGeometryCollection(ShapefileWriter shapefileWriter, DbaseFileWriter dbfWriter, IGeometryCollection geometryCollection) { var shapeFileType = Shapefile.GetShapeType(geometryCollection); var numShapes = geometryCollection.NumGeometries; for (var i = 0; i < numShapes; i++) { shapefileWriter.Write(geometryCollection[i]); } WriteDummyDbf(dbfWriter, numShapes); }