示例#1
0
        /// <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;
            }
        }
示例#2
0
 /// <summary>
 /// 构造时传入已经实例化的ShpHeader对象
 /// </summary>
 /// <param name="oHeader"></param>
 public ShxRecord(ShpHeader oHeader)
 {
     mHeader = oHeader;
 }