//////////////////////////////////////////////////////////////////////////// //--------------------------------- REVISIONS ------------------------------ // Date Name Tracking # Description // --------- ------------------- ------------- ---------------------- // 21JUN2009 James Shen Initial Creation //////////////////////////////////////////////////////////////////////////// /** * constructor. */ public TabularData(BinaryReader reader, long offset, long size, DataField[] fields, StringData stringData, StringIndex stringIndex) : base(reader, offset, size) { this._fields = fields; this._stringData = stringData; this._stringIndex = stringIndex; int numberOfField = fields.Length; _recordSize = 0; for (int i = 0; i < numberOfField; i++) { switch (fields[i].GetFieldType()) { case DataField.TYPE_CHAR: //char _recordSize += 4; break; case DataField.TYPE_INTEGER: //int _recordSize += 4; break; case DataField.TYPE_SMALLINT: //shot _recordSize += 2; break; case DataField.TYPE_FLOAT: //float _recordSize += 8; break; case DataField.TYPE_DECIMAL: //float _recordSize += 8; break; case DataField.TYPE_DATE: //date _recordSize += 4; break; case DataField.TYPE_LOGICAL: //bool _recordSize += 1; break; } } }
//////////////////////////////////////////////////////////////////////////// //--------------------------------- REVISIONS ------------------------------ // Date Name Tracking # Description // --------- ------------------- ------------- ---------------------- // 21JUN2009 James Shen Initial Creation //////////////////////////////////////////////////////////////////////////// /** * Open the map file. */ public void Open() { if (Header != null) { return; } Header = new Header(_reader, 0, 0); _recordIndex = new RecordIndex(_reader, Header.IndexOffset, Header.IndexLength); _stringIndex = new StringIndex(_reader, Header.StringIndexOffset, Header.StringIndexLength); _stringData = new StringData(_reader, Header.StringDataOffset, Header.StringDataLength); _geoData = new GeoData(_reader, Header.GeoDataOffset, Header.GeoDataLength); TabularData = new TabularData(_reader, Header.TabularDataOffset, Header.TabularDataLength, Header.Fields, _stringData, _stringIndex); _rtreeIndex = new RTreeIndex(_reader, Header.RtreeIndexOffset, Header.RtreeIndexLength); _tree = new RTree.RTree(_rtreeIndex.File); }