Subversion Repositories Projects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2498 - 1

2
namespace GMap.NET.MapProviders
3
{
4
   using System;
5
   using GMap.NET.Projections;
6
 
7
   /// <summary>
8
   /// SpainMap provider, http://sigpac.mapa.es/fega/visor/
9
   /// </summary>
10
   public class SpainMapProvider : GMapProvider
11
   {
12
      public static readonly SpainMapProvider Instance;
13
 
14
      SpainMapProvider()
15
      {
16
         Copyright = string.Format("©{0} SIGPAC", DateTime.Today.Year);
17
         MinZoom = 5;
18
         Area = new RectLatLng(43.8741381814747, -9.700927734375, 14.34814453125, 7.8605775962932);
19
      }
20
 
21
      static SpainMapProvider()
22
      {
23
         Instance = new SpainMapProvider();
24
      }
25
 
26
      readonly string[] levels =
27
      {
28
         "0", "1", "2", "3", "4",
29
         "MTNSIGPAC",
30
         "MTN2000", "MTN2000", "MTN2000", "MTN2000", "MTN2000",
31
         "MTN200", "MTN200", "MTN200",
32
         "MTN25", "MTN25",
33
         "ORTOFOTOS","ORTOFOTOS","ORTOFOTOS","ORTOFOTOS"
34
      };
35
 
36
      #region GMapProvider Members
37
 
38
      readonly Guid id = new Guid("7B70ABB0-1265-4D34-9442-F0788F4F689F");
39
      public override Guid Id
40
      {
41
         get
42
         {
43
            return id;
44
         }
45
      }
46
 
47
      readonly string name = "SpainMap";
48
      public override string Name
49
      {
50
         get
51
         {
52
            return name;
53
         }
54
      }
55
 
56
      GMapProvider[] overlays;
57
      public override GMapProvider[] Overlays
58
      {
59
         get
60
         {
61
            if(overlays == null)
62
            {
63
               overlays = new GMapProvider[] { this };
64
            }
65
            return overlays;
66
         }
67
      }
68
 
69
      public override PureProjection Projection
70
      {
71
         get
72
         {
73
            return MercatorProjection.Instance;
74
         }
75
      }
76
 
77
      public override PureImage GetTileImage(GPoint pos, int zoom)
78
      {
79
         string url = MakeTileImageUrl(pos, zoom, LanguageStr);
80
 
81
         return GetTileImageUsingHttp(url);
82
      }
83
 
84
      #endregion
85
 
86
      string MakeTileImageUrl(GPoint pos, int zoom, string language)
87
      {
88
         return string.Format(UrlFormat, levels[zoom], zoom, pos.X, ((2 << zoom - 1) - pos.Y - 1));
89
      }
90
 
91
      static readonly string UrlFormat = "http://sigpac.mapa.es/kmlserver/raster/{0}@3785/{1}.{2}.{3}.img";
92
   }
93
}