Maps.cs
上传用户:songlsx
上传日期:2022-06-19
资源大小:2227k
文件大小:3k
源码类别:

GIS编程

开发平台:

Visual C++

  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Runtime.InteropServices;
  6. using ESRI.ArcGIS.Carto;
  7. namespace LinGIS
  8. {
  9.     [Guid("f27d8789-fbbc-4801-be78-0e3cd8fff9d5")]
  10.     [ClassInterface(ClassInterfaceType.None)]
  11.     [ProgId("LinGIS.Maps")]
  12.     public class Maps : IMaps, IDisposable
  13.     {
  14.         //class member - using internally an ArrayList to manage the Maps collection
  15.         private ArrayList m_array = null;
  16.         #region class constructor
  17.         public Maps()
  18.         {
  19.             m_array = new ArrayList();
  20.         }
  21.         #endregion
  22.         #region IDisposable Members
  23.         /// <summary>
  24.         /// Dispose the collection
  25.         /// </summary>
  26.         public void Dispose()
  27.         {
  28.             if (m_array != null)
  29.             {
  30.                 m_array.Clear();
  31.                 m_array = null;
  32.             }
  33.         }
  34.         #endregion
  35.         #region IMaps Members
  36.         /// <summary>
  37.         /// Remove the Map at the given index
  38.         /// </summary>
  39.         /// <param name="Index"></param>
  40.         public void RemoveAt(int Index)
  41.         {
  42.             if (Index > m_array.Count || Index < 0)
  43.                 throw new Exception("Maps::RemoveAt:rnIndex is out of range!");
  44.             m_array.RemoveAt(Index);
  45.         }
  46.         /// <summary>
  47.         /// Reset the Maps array
  48.         /// </summary>
  49.         public void Reset()
  50.         {
  51.             m_array.Clear();
  52.         }
  53.         /// <summary>
  54.         /// Get the number of Maps in the collection
  55.         /// </summary>
  56.         public int Count
  57.         {
  58.             get
  59.             {
  60.                 return m_array.Count;
  61.             }
  62.         }
  63.         /// <summary>
  64.         /// Return the Map at the given index
  65.         /// </summary>
  66.         /// <param name="Index"></param>
  67.         /// <returns></returns>
  68.         public IMap get_Item(int Index)
  69.         {
  70.             if (Index > m_array.Count || Index < 0)
  71.                 throw new Exception("Maps::get_Item:rnIndex is out of range!");
  72.             return m_array[Index] as IMap;
  73.         }
  74.         /// <summary>
  75.         /// Remove the instance of the given Map
  76.         /// </summary>
  77.         /// <param name="Map"></param>
  78.         public void Remove(IMap Map)
  79.         {
  80.             m_array.Remove(Map);
  81.         }
  82.         /// <summary>
  83.         /// Create a new Map, add it to the collection and return it to the caller
  84.         /// </summary>
  85.         /// <returns></returns>
  86.         public IMap Create()
  87.         {
  88.             IMap newMap = new MapClass();
  89.             m_array.Add(newMap);
  90.             return newMap;
  91.         }
  92.         /// <summary>
  93.         /// Add the given Map to the collection
  94.         /// </summary>
  95.         /// <param name="Map"></param>
  96.         public void Add(IMap Map)
  97.         {
  98.             if (Map == null)
  99.                 throw new Exception("Maps::Add:rnNew Map is mot initialized!");
  100.             m_array.Add(Map);
  101.         }
  102.         #endregion
  103.     }
  104. }