Exemple #1
0
 /// <summary>
 /// liefert den Offset für einen Objekttyp oder einen negativen Wert
 /// </summary>
 /// <param name="contenttype"></param>
 /// <returns></returns>
 public int GetOffset4ObjectType(GarminCore.Files.StdFile_TRE.SubdivInfoBasic.SubdivContent contenttype)
 {
     for (int i = 0; i < OffsetContent.Length; i++)
     {
         if (OffsetContent[i] == contenttype)
         {
             return(OffsetTab[i]);
         }
     }
     return(-1);
 }
Exemple #2
0
        /// <summary>
        /// liefert den Datenblock in RGN bzgl. des SubdivContentBlock in RGN für das Objekt
        /// </summary>
        /// <param name="contenttype"></param>
        /// <param name="idx"></param>
        /// <returns></returns>
        public GarminCore.DataBlock GetDataBlock4Object(GarminCore.Files.StdFile_TRE.SubdivInfoBasic.SubdivContent contenttype, int idx)
        {
            GarminCore.DataBlock block = new GarminCore.DataBlock();
            block.Offset  = SubdivfInfo.Data.Offset;
            block.Offset += (uint)GetOffset4ObjectType(contenttype);
            switch (contenttype)
            {
            case GarminCore.Files.StdFile_TRE.SubdivInfoBasic.SubdivContent.poi:
                for (int i = 0; i < idx; i++)
                {
                    block.Offset += SubdivData.PointList1[i].DataLength;
                }
                block.Length = SubdivData.PointList1[idx].DataLength;
                break;

            case GarminCore.Files.StdFile_TRE.SubdivInfoBasic.SubdivContent.idxpoi:
                for (int i = 0; i < idx; i++)
                {
                    block.Offset += SubdivData.PointList2[i].DataLength;
                }
                block.Length = SubdivData.PointList2[idx].DataLength;
                break;

            case GarminCore.Files.StdFile_TRE.SubdivInfoBasic.SubdivContent.line:
                for (int i = 0; i < idx; i++)
                {
                    block.Offset += SubdivData.LineList[i].DataLength;
                }
                block.Length = SubdivData.LineList[idx].DataLength;
                break;

            case GarminCore.Files.StdFile_TRE.SubdivInfoBasic.SubdivContent.area:
                for (int i = 0; i < idx; i++)
                {
                    block.Offset += SubdivData.AreaList[i].DataLength;
                }
                block.Length = SubdivData.AreaList[idx].DataLength;
                break;
            }
            return(block);
        }