Inheritance: GMap.NET.PureProjection
        //public SuperMapProvider(string serviceUrl, string mapName, uint tileSize, string format, MapParameter mapParameter)
        //{
        //    Copyright = string.Format("© SuperMap iServer 6R(2012) - Map data ©{0} SuperMap iServer 6R(2012)", DateTime.Today.Year);

        //    this._serviceUrl = serviceUrl;
        //    this._tileSize = tileSize;
        //    this._mapName = mapName;
        //    this._mapParameter = mapParameter;
        //    this._map = new SuperMap.Connector.Map(serviceUrl);

        //    MapParameter defaultMapParameter = this._map.GetDefaultMapParameter(mapName);
        //}

        public SuperMapProvider(string serviceUrl, string mapName, double[] mapScales)
        {
            Copyright = string.Format("© SuperMap iServer 6R(2012) - Map data ©{0} SuperMap iServer 6R(2012)", DateTime.Today.Year);
            this._map = new SuperMap.Connector.Map(serviceUrl);
            this._serviceUrl = serviceUrl;
            this._mapName = mapName;
            MapParameter defaultMapParameter = this._map.GetDefaultMapParameter(mapName);
            this._defaultMapCenter = new Point2D(defaultMapParameter.Center);
            _mapScales = mapScales;
            _projection = new SuperMapProjection(mapScales, defaultMapParameter);
        }
 public SuperMapProvider(string serviceUrl, string mapName, int scaleCount, int defaultScaleIndex = 0)
 {
     if (scaleCount < 1 || defaultScaleIndex > scaleCount - 1 || defaultScaleIndex < 0)
         throw new ArgumentException();
     Copyright = string.Format("© SuperMap iServer 6R(2012) - Map data ©{0} SuperMap iServer 6R(2012)", DateTime.Today.Year);
     this._map = new SuperMap.Connector.Map(serviceUrl);
     this._serviceUrl = serviceUrl;
     this._mapName = mapName;
     MapParameter defaultMapParameter = this._map.GetDefaultMapParameter(mapName);
     this._defaultMapCenter = new Point2D(defaultMapParameter.Center);
     double[] mapScales = new double[scaleCount];
     mapScales[defaultScaleIndex] = defaultMapParameter.Scale;
     for (int i = defaultScaleIndex - 1; i >= 0; i--)
     {
         mapScales[i] = mapScales[i + 1] / 2;
     }
     for (int i = defaultScaleIndex + 1; i < scaleCount; i++)
     {
         mapScales[i] = mapScales[i - 1] * 2;
     }
     _mapScales = mapScales;
     _projection = new SuperMapProjection(mapScales, defaultMapParameter);
 }