]> git.street.me.uk Git - andy/viking.git/blobdiff - src/google-map-type.gob
Start using GoogleMapType GObject
[andy/viking.git] / src / google-map-type.gob
index a5cff3384eccae4a76bdbd19e5c77386984284a1..bf3d84d7ca93024ee5a22a94c2ac4b365be3354c 100644 (file)
@@ -42,6 +42,8 @@ typedef enum {
 
 %{
 
+static DownloadOptions google_options = { "http://maps.google.com/", 0, a_check_map_file };
+
 /* 1 << (x) is like a 2**(x) */
 #define GZ(x) ((1<<x))
 
@@ -183,11 +185,40 @@ failed:
   return (vers[google_type]);
 }
 
+static int real_google_download ( MapCoord *src, const gchar *dest_fn, const char *verstr )
+{
+   int res;
+   gchar *uri = g_strdup_printf ( "/mt?n=404&v=%s&x=%d&y=%d&zoom=%d", verstr, src->x, src->y, src->scale );
+   res = a_http_download_get_url ( "mt.google.com", uri, dest_fn, &google_options );
+   g_free ( uri );
+   return res;
+}
+
 %}
 
 class Google:Map:Type from Vik:Map:Type {
   private GoogleType type;
 
+  init (self) {
+          /* initialize the object here */
+          self->tilesize_x = 256;
+          self->tilesize_y = 256;
+          self->drawmode = VIK_VIEWPORT_DRAWMODE_MERCATOR;
+  }
+
+  public GObject *
+  new_with_id (guint8 id) {
+         GObject *ret = GET_NEW;
+         VIK_MAP_TYPE(ret)->uniq_id = id;
+         return G_OBJECT (ret);
+  }
+
+  public GObject *
+  new (void) {
+         GObject *ret = GET_NEW;
+         return G_OBJECT (ret);
+  }
+
   override (Vik:Map:Type) gboolean
   coord_to_mapcoord ( Vik:Map:Type *self, const VikCoord *src, gdouble xzoom, gdouble yzoom, MapCoord *dest )
   {