public ShapefileDataReader(IStreamProviderRegistry streamProviderRegistry, IGeometryFactory geometryFactory) { if (streamProviderRegistry==null) throw new ArgumentNullException("streamProviderRegistry"); if (geometryFactory == null) throw new ArgumentNullException("geometryFactory"); _open = true; _dbfReader = new DbaseFileReader(streamProviderRegistry); _shpReader = new ShapefileReader(streamProviderRegistry, geometryFactory); _dbfHeader = _dbfReader.GetHeader(); _recordCount = _dbfHeader.NumRecords; // copy dbase fields to our own array. Insert into the first position, the shape column _dbaseFields = new DbaseFieldDescriptor[_dbfHeader.Fields.Length + 1]; _dbaseFields[0] = DbaseFieldDescriptor.ShapeField(); for (int i = 0; i < _dbfHeader.Fields.Length; i++) _dbaseFields[i + 1] = _dbfHeader.Fields[i]; _shpHeader = _shpReader.Header; _dbfEnumerator = _dbfReader.GetEnumerator(); _shpEnumerator = _shpReader.GetEnumerator(); _moreRecords = true; }
/// <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); } }
public ShapefileDataReader(IStreamProviderRegistry streamProviderRegistry, IGeometryFactory geometryFactory) { if (streamProviderRegistry == null) { throw new ArgumentNullException("streamProviderRegistry"); } if (geometryFactory == null) { throw new ArgumentNullException("geometryFactory"); } _open = true; _dbfReader = new DbaseFileReader(streamProviderRegistry); _shpReader = new ShapefileReader(streamProviderRegistry, geometryFactory); _dbfHeader = _dbfReader.GetHeader(); _recordCount = _dbfHeader.NumRecords; // copy dbase fields to our own array. Insert into the first position, the shape column _dbaseFields = new DbaseFieldDescriptor[_dbfHeader.Fields.Length + 1]; _dbaseFields[0] = DbaseFieldDescriptor.ShapeField(); for (int i = 0; i < _dbfHeader.Fields.Length; i++) { _dbaseFields[i + 1] = _dbfHeader.Fields[i]; } _shpHeader = _shpReader.Header; _dbfEnumerator = _dbfReader.GetEnumerator(); _shpEnumerator = _shpReader.GetEnumerator(); _moreRecords = true; }
public ShapefileReader(IStreamProviderRegistry shapeStreamProviderRegistry, IGeometryFactory geometryFactory) { if (shapeStreamProviderRegistry == null) { throw new ArgumentNullException("shapeStreamProviderRegistry"); } if (geometryFactory == null) { throw new ArgumentNullException("geometryFactory"); } _shapeStreamProviderRegistry = shapeStreamProviderRegistry; _geometryFactory = geometryFactory; // read header information. note, we open the file, read the header information and then // close the file. This means the file is not opened again until GetEnumerator() is requested. // For each call to GetEnumerator() a new BinaryReader is created. using (var stream = shapeStreamProviderRegistry[StreamTypes.Shape].OpenRead()) { using (var shpBinaryReader = new BigEndianBinaryReader(stream)) { _mainHeader = new ShapefileHeader(shpBinaryReader); } } }
/// <summary> /// Initializes a new instance of the DbaseFileReader class. /// </summary> /// <param name="streamProviderRegistry">A stream provider registry</param> public DbaseFileReader(IStreamProviderRegistry streamProviderRegistry) { if (streamProviderRegistry == null) { throw new ArgumentNullException("streamProviderRegistry"); } _streamProvider = streamProviderRegistry[StreamTypes.Data]; if (_streamProvider == null) { throw new ArgumentException("Stream provider registry does not provide a data stream provider", "streamProviderRegistry"); } if (_streamProvider.Kind != StreamTypes.Data) { throw new ArgumentException(string.Format( "Misconfigured stream provider registry does provide a {0} stream provider when requested data stream provider", _streamProvider.Kind), "streamProviderRegistry"); } _encodingProvider = streamProviderRegistry[StreamTypes.DataEncoding]; if (_encodingProvider != null && _encodingProvider.Kind != StreamTypes.DataEncoding) { throw new ArgumentException(string.Format( "Misconfigured stream provider registry does provide a {0} stream provider when requested data encoding stream provider", _streamProvider.Kind), "streamProviderRegistry"); } }
public ShapefileDataWriter(IStreamProviderRegistry streamProviderRegistry, IGeometryFactory geometryFactory, Encoding encoding) { _geometryFactory = geometryFactory; _streamProviderRegistry = streamProviderRegistry; // Writers _dbaseWriter = new DbaseFileWriter(streamProviderRegistry, encoding); }
public static DbaseFileHeader GetHeader(IStreamProviderRegistry streamProviderRegistry) { DbaseFileHeader header = new DbaseFileHeader(); using (var stream = streamProviderRegistry[StreamTypes.Data].OpenRead()) using (var reader = new BinaryReader(stream)) header.ReadHeader(reader, streamProviderRegistry[StreamTypes.Data] is FileStreamProvider ? ((FileStreamProvider)streamProviderRegistry[StreamTypes.Data]).Path : null); return(header); }
public static DbaseFileHeader GetHeader(IStreamProviderRegistry streamProviderRegistry) { DbaseFileHeader header = new DbaseFileHeader(); using (var stream = streamProviderRegistry[StreamTypes.Data].OpenRead()) using (var reader = new BinaryReader(stream)) header.ReadHeader(reader, streamProviderRegistry[StreamTypes.Data] is FileStreamProvider ? ((FileStreamProvider)streamProviderRegistry[StreamTypes.Data]).Path : null); return header; }
public DbaseFileWriter(IStreamProviderRegistry streamProviderRegistry, Encoding enc) { if (streamProviderRegistry == null) throw new ArgumentNullException("streamProviderRegistry"); if (enc == null) throw new ArgumentNullException("enc"); _encoding = enc; _writer = new BinaryWriter(streamProviderRegistry[StreamTypes.Data].OpenWrite(false), _encoding); }
public ShapeReader(IStreamProviderRegistry streamProviderRegistry) { if (streamProviderRegistry == null) throw new ArgumentNullException("streamProviderRegistry"); m_StreamProviderRegistry = streamProviderRegistry; m_ShapeFileHeader = new ShapefileHeader(ShapeReaderStream); m_ShapeHandler = Shapefile.GetShapeHandler(ShapefileHeader.ShapeType); m_ShapeOffsetCache = new Lazy<long[]>(BuildOffsetCache, LazyThreadSafetyMode.ExecutionAndPublication); }
public ShapeReader(IStreamProviderRegistry streamProviderRegistry) { if (streamProviderRegistry == null) { throw new ArgumentNullException("streamProviderRegistry"); } m_StreamProviderRegistry = streamProviderRegistry; ShapefileHeader = new ShapefileHeader(ShapeReaderStream); m_ShapeHandler = Shapefile.GetShapeHandler(ShapefileHeader.ShapeType); m_ShapeOffsetCache = new Lazy <long[]>(BuildOffsetCache, LazyThreadSafetyMode.ExecutionAndPublication); }
/// <summary> /// Initializes a new instance of the DbaseFileWriter class using the provided <paramref name="streamProviderRegistry"/> and the given <paramref name="encoding"/>. /// </summary> /// <param name="streamProviderRegistry">The stream provider registry</param> /// <param name="encoding">The encoding</param> public DbaseFileWriter(IStreamProviderRegistry streamProviderRegistry, Encoding encoding) { if (streamProviderRegistry == null) { throw new ArgumentNullException("streamProviderRegistry"); } if (encoding == null) { throw new ArgumentNullException("encoding"); } _encoding = encoding; _writer = new BinaryWriter(streamProviderRegistry[StreamTypes.Data].OpenWrite(false), _encoding); }
/// <summary> /// Initializes a new instance of the DbaseFileReader class. /// </summary> /// <param name="streamProviderRegistry">A stream provider registry</param> public DbaseFileReader(IStreamProviderRegistry streamProviderRegistry) { if (streamProviderRegistry == null) throw new ArgumentNullException("streamProviderRegistry"); _streamProvider = streamProviderRegistry[StreamTypes.Data]; if (_streamProvider == null) throw new ArgumentException("Stream provider registry does not provide a data stream provider", "streamProviderRegistry"); if (_streamProvider == null) throw new ArgumentException(string.Format( "Misconfigured stream provider registry does provide a {0} stream provider when requested data stream provider", _streamProvider.Kind), "streamProviderRegistry"); }
public static ShapefileDataReader CreateDataReader(IStreamProviderRegistry streamProviderRegistry, GeometryFactory geometryFactory) { if (streamProviderRegistry == null) { throw new ArgumentNullException("streamProviderRegistry"); } if (geometryFactory == null) { throw new ArgumentNullException("geometryFactory"); } var shpDataReader = new ShapefileDataReader(streamProviderRegistry, geometryFactory); return(shpDataReader); }
public static void WriteGeometryCollection(IStreamProviderRegistry streamProviderRegistry, IGeometryCollection geometryCollection, bool createDummyDbf = true) { var shapeFileType = Shapefile.GetShapeType(geometryCollection); using (var writer = new ShapefileWriter(geometryCollection.Factory, streamProviderRegistry, shapeFileType)) { var dbfWriter = createDummyDbf ? new DbaseFileWriter(streamProviderRegistry) : null; WriteGeometryCollection(writer, dbfWriter, geometryCollection, createDummyDbf); if (dbfWriter != null) { dbfWriter.Dispose(); } } }
public ShapefileWriter(IGeometryFactory geometryFactory, IStreamProviderRegistry streamProviderRegistry, ShapeGeometryType geomType) : this(geometryFactory) { _shpStream = streamProviderRegistry[StreamTypes.Shape].OpenWrite(true); _shxStream = streamProviderRegistry[StreamTypes.Index].OpenWrite(true); _geometryType = geomType; _shpBinaryWriter = new BigEndianBinaryWriter(_shpStream); _shxBinaryWriter = new BigEndianBinaryWriter(_shxStream); WriteShpHeader(_shpBinaryWriter, 0, new Envelope(0, 0, 0, 0)); WriteShxHeader(_shxBinaryWriter, 0, new Envelope(0, 0, 0, 0)); _shapeHandler = Shapefile.GetShapeHandler(geomType); }
public ShapefileWriter(IGeometryFactory geometryFactory, IStreamProviderRegistry streamProviderRegistry, ShapeGeometryType geomType) : this(geometryFactory) { _shpStream = streamProviderRegistry[StreamTypes.Shape].OpenWrite(true); _shxStream = streamProviderRegistry[StreamTypes.Index].OpenWrite(true); _geometryType = geomType; _shpBinaryWriter = new BigEndianBinaryWriter(_shpStream); _shxBinaryWriter = new BigEndianBinaryWriter(_shxStream); WriteShpHeader(_shpBinaryWriter, 0, new Envelope(0, 0, 0, 0)); WriteShxHeader(_shxBinaryWriter, 0, new Envelope(0, 0, 0, 0)); _shapeHandler = Shapefile.GetShapeHandler(geomType); }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry, ISpatialIndex <ShapeLocationInFileInfo> index, IGeometryFactory geoFactory, bool buildIndexAsync) { m_SpatialIndex = index; m_GeoFactory = geoFactory; ValidateParameters(); m_ShapeReader = new ShapeReader(streamProviderRegistry); if (buildIndexAsync) { m_CancellationTokenSrc = new CancellationTokenSource(); m_IndexCreationTask = Task.Factory.StartNew(FillSpatialIndex, m_CancellationTokenSrc.Token); } else { FillSpatialIndex(); } m_DbfReader = new DbaseReader(streamProviderRegistry[StreamTypes.Data]); }
public ShapefileReader(IStreamProviderRegistry shapeStreamProviderRegistry, IGeometryFactory geometryFactory) { if (shapeStreamProviderRegistry == null) throw new ArgumentNullException("shapeStreamProviderRegistry"); if (geometryFactory == null) throw new ArgumentNullException("geometryFactory"); _shapeStreamProviderRegistry = shapeStreamProviderRegistry; _geometryFactory = geometryFactory; // read header information. note, we open the file, read the header information and then // close the file. This means the file is not opened again until GetEnumerator() is requested. // For each call to GetEnumerator() a new BinaryReader is created. using (var stream = shapeStreamProviderRegistry[StreamTypes.Shape].OpenRead()) { using (var shpBinaryReader = new BigEndianBinaryReader(stream)) { _mainHeader = new ShapefileHeader(shpBinaryReader); } } }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry , ISpatialIndex<ShapeLocationInFileInfo> index, IGeometryFactory geoFactory, bool buildIndexAsync) { m_SpatialIndex = index; m_GeoFactory = geoFactory; ValidateParameters(); m_ShapeReader = new ShapeReader(streamProviderRegistry); if (buildIndexAsync) { m_CancellationTokenSrc = new CancellationTokenSource(); m_IndexCreationTask = Task.Factory.StartNew(FillSpatialIndex, m_CancellationTokenSrc.Token); } else { FillSpatialIndex(); } m_DbfReader = new DbaseReader(streamProviderRegistry[StreamTypes.Data]); }
public static void WriteGeometryCollection(IStreamProviderRegistry streamProviderRegistry, IGeometryCollection geometryCollection) { var shapeFileType = Shapefile.GetShapeType(geometryCollection); var numShapes = geometryCollection.NumGeometries; using (var writer = new ShapefileWriter(geometryCollection.Factory, streamProviderRegistry, shapeFileType)) { for (var i = 0; i < numShapes; i++) { writer.Write(geometryCollection[i]); } } WriteDummyDbf(streamProviderRegistry, numShapes); }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry, ISpatialIndex <ShapeLocationInFileInfo> index, IGeometryFactory geoFactory) : this(streamProviderRegistry, index, geoFactory, true) { }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry, ISpatialIndex <ShapeLocationInFileInfo> index) : this(streamProviderRegistry, index, new GeometryFactory()) { }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry) : this(streamProviderRegistry, new STRtree <ShapeLocationInFileInfo>()) { }
/// <summary> /// Initializes a new instance of the DbaseFileWriter class using the provided <paramref name="streamProviderRegistry"/> and the default encoding /// </summary> /// <param name="streamProviderRegistry">The stream provider registry</param> public DbaseFileWriter(IStreamProviderRegistry streamProviderRegistry) : this(streamProviderRegistry, Encoding.GetEncoding(1252)) { }
/// <summary> /// Initializes a new instance of the DbaseFileWriter class using the provided <paramref name="streamProviderRegistry"/> and the default encoding /// </summary> /// <param name="streamProviderRegistry">The stream provider registry</param> public DbaseFileWriter(IStreamProviderRegistry streamProviderRegistry) : this(streamProviderRegistry, DbaseFileHeader.GetEncoding(streamProviderRegistry[StreamTypes.DataEncoding])) { }
public static ShapefileDataReader CreateDataReader(IStreamProviderRegistry streamProviderRegistry, GeometryFactory geometryFactory) { if (streamProviderRegistry == null) throw new ArgumentNullException("streamProviderRegistry"); if (geometryFactory == null) throw new ArgumentNullException("geometryFactory"); var shpDataReader = new ShapefileDataReader(streamProviderRegistry, geometryFactory); return shpDataReader; }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry) : this(streamProviderRegistry, new STRtree<ShapeLocationInFileInfo>()) { }
public ShapefileDataWriter(IStreamProviderRegistry streamProviderRegistry, IGeometryFactory geometryFactory, Encoding encoding) { _geometryFactory = geometryFactory; _streamProviderRegistry = streamProviderRegistry; // Writers _dbaseWriter = new DbaseFileWriter(streamProviderRegistry, encoding); }
public static void WriteGeometryCollection(IStreamProviderRegistry streamProviderRegistry, IGeometryCollection geometryCollection, bool createDummyDbf = true) { var shapeFileType = Shapefile.GetShapeType(geometryCollection); using (var writer = new ShapefileWriter(geometryCollection.Factory, streamProviderRegistry, shapeFileType)) { var dbfWriter = createDummyDbf ? new DbaseFileWriter(streamProviderRegistry) : null; WriteGeometryCollection(writer, dbfWriter, geometryCollection, createDummyDbf); if (dbfWriter != null) dbfWriter.Dispose(); } }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry, ISpatialIndex<ShapeLocationInFileInfo> index, IGeometryFactory geoFactory) : this(streamProviderRegistry, index, geoFactory, true) { }
/// <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); } }
public DbaseFileWriter(IStreamProviderRegistry streamProviderRegistry) : this(streamProviderRegistry, Encoding.GetEncoding(1252)) { }
public ShapeDataReader(IStreamProviderRegistry streamProviderRegistry, ISpatialIndex<ShapeLocationInFileInfo> index) : this(streamProviderRegistry, index, new GeometryFactory()) { }