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
   public abstract class OviMapProviderBase : GMapProvider
8
   {
9
      public OviMapProviderBase()
10
      {
11
         MaxZoom = null;
12
         RefererUrl = "http://maps.ovi.com/";
13
         Copyright = string.Format("©{0} OVI Nokia - Map data ©{0} NAVTEQ, Imagery ©{0} DigitalGlobe", DateTime.Today.Year);
14
      }
15
 
16
      #region GMapProvider Members
17
      public override Guid Id
18
      {
19
         get
20
         {
21
            throw new NotImplementedException();
22
         }
23
      }
24
 
25
      public override string Name
26
      {
27
         get
28
         {
29
            throw new NotImplementedException();
30
         }
31
      }
32
 
33
      public override PureProjection Projection
34
      {
35
         get
36
         {
37
            return MercatorProjection.Instance;
38
         }
39
      }
40
 
41
      GMapProvider[] overlays;
42
      public override GMapProvider[] Overlays
43
      {
44
         get
45
         {
46
            if(overlays == null)
47
            {
48
               overlays = new GMapProvider[] { this };
49
            }
50
            return overlays;
51
         }
52
      }
53
 
54
      public override PureImage GetTileImage(GPoint pos, int zoom)
55
      {
56
         throw new NotImplementedException();
57
      }
58
      #endregion
59
 
60
      protected static readonly string UrlServerLetters = "bcde";
61
   }
62
 
63
   /// <summary>
64
   /// OviMap provider
65
   /// </summary>
66
   public class OviMapProvider : OviMapProviderBase
67
   {
68
      public static readonly OviMapProvider Instance;
69
 
70
      OviMapProvider()
71
      {
72
      }
73
 
74
      static OviMapProvider()
75
      {
76
         Instance = new OviMapProvider();
77
      }
78
 
79
      #region GMapProvider Members
80
 
81
      readonly Guid id = new Guid("30DC1083-AC4D-4471-A232-D8A67AC9373A");
82
      public override Guid Id
83
      {
84
         get
85
         {
86
            return id;
87
         }
88
      }
89
 
90
      readonly string name = "OviMap";
91
      public override string Name
92
      {
93
         get
94
         {
95
            return name;
96
         }
97
      }
98
 
99
      public override PureImage GetTileImage(GPoint pos, int zoom)
100
      {
101
         string url = MakeTileImageUrl(pos, zoom, LanguageStr);
102
 
103
         return GetTileImageUsingHttp(url);
104
      }
105
 
106
      #endregion
107
 
108
      string MakeTileImageUrl(GPoint pos, int zoom, string language)
109
      {
110
         // http://c.maptile.maps.svc.ovi.com/maptiler/v2/maptile/newest/normal.day/12/2321/1276/256/png8
111
 
112
         return string.Format(UrlFormat, UrlServerLetters[GetServerNum(pos, 4)], zoom, pos.X, pos.Y);
113
      }
114
 
115
      static readonly string UrlFormat = "http://{0}.maptile.maps.svc.ovi.com/maptiler/v2/maptile/newest/normal.day/{1}/{2}/{3}/256/png8";
116
   }
117
}