Index: src/Common/NetTopologySuite/IO/MyShapeFileReader.cs =================================================================== diff -u -r8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9 -r5fc71a385897af92ccb092f2f969b5709afab85a --- src/Common/NetTopologySuite/IO/MyShapeFileReader.cs (.../MyShapeFileReader.cs) (revision 8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9) +++ src/Common/NetTopologySuite/IO/MyShapeFileReader.cs (.../MyShapeFileReader.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) @@ -13,13 +13,13 @@ [Obsolete("Use ShapefileReader instead")] public class MyShapeFileReader { - private int length = 0; - /// /// Shape features reader. /// protected ShapeReader shapeReader = null; - + + private int length = 0; + /// /// Default empty constructor /// @@ -50,7 +50,7 @@ { return Read(stream); } - } + } /// /// Reads a generic stream containing geographic data saved as shapefile structure, @@ -69,8 +69,8 @@ Debug.Assert(fileCode == 9994); stream.Seek(20, SeekOrigin.Current); - length = beReader.ReadInt32BE(); - + length = beReader.ReadInt32BE(); + // Read little endian values using (BinaryReader leReader = new BinaryReader(stream)) { @@ -81,7 +81,7 @@ Debug.Assert(version == 1000); // ShapeTypes - int shapeType = leReader.ReadInt32(); + int shapeType = leReader.ReadInt32(); switch ((ShapeGeometryType) shapeType) { @@ -121,9 +121,9 @@ } IGeometryCollection collection = shapeReader.CreateGeometryCollection(list); return collection; - } + } } - } + } /// /// Reads Point shapefile @@ -141,33 +141,22 @@ { // Read little endian informations using (BinaryReader leReader = new BinaryReader(stream)) - { + { // For each header while (stream.Position < stream.Length) { - ReadFeatureHeader(beReader); - + ReadFeatureHeader(beReader); + ICoordinate coordinate = shapeReader.ReadCoordinate(leReader); IGeometry point = shapeReader.CreatePoint(coordinate); list.Add(point); } - } + } } - return list; + return list; } /// - /// - /// - /// - private void ReadFeatureHeader(BigEndianBinaryReader beReader) - { - int recordNumber = beReader.ReadInt32BE(); - int contentLength = beReader.ReadInt32BE(); - int shapeType = beReader.ReadInt32(); - } - - /// /// Reads LineString shapefile /// /// @@ -177,7 +166,7 @@ IList list = new ArrayList(); // Jump to first header - stream.Seek(100, SeekOrigin.Begin); + stream.Seek(100, SeekOrigin.Begin); // Read big endian informations using (BigEndianBinaryReader beReader = new BigEndianBinaryReader(stream)) @@ -199,9 +188,14 @@ ICoordinate[] coordinates = shapeReader.ReadCoordinates(leReader, numPoints); if (numParts == 1) + { list.Add(shapeReader.CreateLineString(coordinates)); - else list.Add(shapeReader.CreateMultiLineString(numPoints, indexParts, coordinates)); - } + } + else + { + list.Add(shapeReader.CreateMultiLineString(numPoints, indexParts, coordinates)); + } + } } } return list; @@ -217,14 +211,14 @@ IList list = new ArrayList(); // Jump to first header - stream.Seek(100, SeekOrigin.Begin); + stream.Seek(100, SeekOrigin.Begin); // Read big endian informations using (BigEndianBinaryReader beReader = new BigEndianBinaryReader(stream)) { // Read little endian informations using (BinaryReader reader = new BinaryReader(stream)) - { + { // For each header while (stream.Position < stream.Length) { @@ -239,9 +233,14 @@ ICoordinate[] coordinates = shapeReader.ReadCoordinates(reader, numPoints); if (numParts == 1) - list.Add(shapeReader.CreateSimpleSinglePolygon(coordinates)); - else list.Add(shapeReader.CreateSingleOrMultiPolygon(numPoints, indexParts, coordinates)); - } + { + list.Add(shapeReader.CreateSimpleSinglePolygon(coordinates)); + } + else + { + list.Add(shapeReader.CreateSingleOrMultiPolygon(numPoints, indexParts, coordinates)); + } + } } } return list; @@ -257,7 +256,7 @@ IList list = new ArrayList(); // Jump to first header - stream.Seek(100, SeekOrigin.Begin); + stream.Seek(100, SeekOrigin.Begin); // Read big endian informations using (BigEndianBinaryReader beReader = new BigEndianBinaryReader(stream)) @@ -274,13 +273,25 @@ int numPoints = shapeReader.ReadNumPoints(reader); ICoordinate[] coords = new ICoordinate[numPoints]; for (int i = 0; i < numPoints; i++) + { coords[i] = shapeReader.ReadCoordinate(reader); + } list.Add(shapeReader.CreateMultiPoint(coords)); } - } } return list; - } + } + + /// + /// + /// + /// + private void ReadFeatureHeader(BigEndianBinaryReader beReader) + { + int recordNumber = beReader.ReadInt32BE(); + int contentLength = beReader.ReadInt32BE(); + int shapeType = beReader.ReadInt32(); + } } -} +} \ No newline at end of file