/// <summary> /// Parses a shp file byte stream. /// </summary> /// <param name="data">The byte data representing the shp file</param> public void Parse(byte[] data) { _br = new ByteReader(data); //--parse the header _header = new ShpHeader(); _header.FileCode = _br.ReadInt(false); _header.Unused1 = _br.ReadInt(false); _header.Unused2 = _br.ReadInt(false); _header.Unused3 = _br.ReadInt(false); _header.Unused4 = _br.ReadInt(false); _header.Unused5 = _br.ReadInt(false); _header.FileLength = _br.ReadInt(false); _header.Version = _br.ReadInt(true); _header.ShapeType = _br.ReadInt(true); _header.BoundingBoxXMin = _br.ReadDouble(true); _header.BoundingBoxYMin = _br.ReadDouble(true); _header.BoundingBoxXMax = _br.ReadDouble(true); _header.BoundingBoxYMax = _br.ReadDouble(true); _header.BoundingBoxZMin = _br.ReadDouble(true); _header.BoundingBoxZMax = _br.ReadDouble(true); _header.BoundingBoxMMin = _br.ReadDouble(true); _header.BoundingBoxMMax = _br.ReadDouble(true); //--parse the records switch (_header.ShapeType) { case (int)ShpType.Polygon: ParsePolygons(); break; default: break; } }
/// <summary> /// 构造时传入已经实例化的ShpHeader对象 /// </summary> /// <param name="oHeader"></param> public ShxRecord(ShpHeader oHeader) { mHeader = oHeader; }