]> git.street.me.uk Git - andy/viking.git/blobdiff - src/osm.c
Add Terraserver
[andy/viking.git] / src / osm.c
index 4da5f0a39560e040aa3dd769766a36ed3a1e9868..de440ece78692aa186b4b1a48b173f1776f41c0e 100644 (file)
--- a/src/osm.c
+++ b/src/osm.c
@@ -36,8 +36,9 @@ static void osm_mapcoord_to_center_coord ( MapCoord *src, VikCoord *dest );
 static int osm_maplint_download ( MapCoord *src, const gchar *dest_fn );
 static int osm_mapnik_download ( MapCoord *src, const gchar *dest_fn );
 static int osm_osmarender_download ( MapCoord *src, const gchar *dest_fn );
 static int osm_maplint_download ( MapCoord *src, const gchar *dest_fn );
 static int osm_mapnik_download ( MapCoord *src, const gchar *dest_fn );
 static int osm_osmarender_download ( MapCoord *src, const gchar *dest_fn );
+static int osm_cycle_download ( MapCoord *src, const gchar *dest_fn );
 static int bluemarble_download ( MapCoord *src, const gchar *dest_fn );
 static int bluemarble_download ( MapCoord *src, const gchar *dest_fn );
-static int openarealmap_download ( MapCoord *src, const gchar *dest_fn );
+static int openaerialmap_download ( MapCoord *src, const gchar *dest_fn );
 
 static DownloadOptions osm_options = { NULL, 0, a_check_map_file };
 
 
 static DownloadOptions osm_options = { NULL, 0, a_check_map_file };
 
@@ -45,17 +46,19 @@ static DownloadOptions osm_options = { NULL, 0, a_check_map_file };
 void osm_init () {
   VikMapsLayer_MapType osmarender_type = { 12, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_osmarender_download };
   VikMapsLayer_MapType mapnik_type = { 13, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_mapnik_download };  VikMapsLayer_MapType maplint_type = { 14, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_maplint_download };
 void osm_init () {
   VikMapsLayer_MapType osmarender_type = { 12, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_osmarender_download };
   VikMapsLayer_MapType mapnik_type = { 13, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_mapnik_download };  VikMapsLayer_MapType maplint_type = { 14, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_maplint_download };
+  VikMapsLayer_MapType cycle_type = { 17, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_cycle_download };
 
   VikMapsLayer_MapType bluemarble_type = { 15, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, bluemarble_download };
 
   VikMapsLayer_MapType bluemarble_type = { 15, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, bluemarble_download };
-  
-  VikMapsLayer_MapType openarealmap_type = { 20, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, openarealmap_download };
+
+  VikMapsLayer_MapType openaerialmap_type = { 20, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, openaerialmap_download };
 
   maps_layer_register_type("OpenStreetMap (Osmarender)", 12, &osmarender_type);
   maps_layer_register_type("OpenStreetMap (Mapnik)", 13, &mapnik_type);
   maps_layer_register_type("OpenStreetMap (Maplint)", 14, &maplint_type);
 
   maps_layer_register_type("OpenStreetMap (Osmarender)", 12, &osmarender_type);
   maps_layer_register_type("OpenStreetMap (Mapnik)", 13, &mapnik_type);
   maps_layer_register_type("OpenStreetMap (Maplint)", 14, &maplint_type);
+  maps_layer_register_type("OpenStreetMap (Cycle)", 17, &cycle_type);
 
   maps_layer_register_type("BlueMarble", 15, &bluemarble_type);
 
   maps_layer_register_type("BlueMarble", 15, &bluemarble_type);
-  maps_layer_register_type("OpenAerialMap", 20, &openarealmap_type);
+  maps_layer_register_type("OpenAerialMap", 20, &openaerialmap_type);
 }
 
 /* 1 << (x) is like a 2**(x) */
 }
 
 /* 1 << (x) is like a 2**(x) */
@@ -142,7 +145,7 @@ static int bluemarble_download ( MapCoord *src, const gchar *dest_fn )
 
 }
    
 
 }
    
-static int openarealmap_download ( MapCoord *src, const gchar *dest_fn )
+static int openaerialmap_download ( MapCoord *src, const gchar *dest_fn )
 {
    int res = -1;
    gchar *uri = g_strdup_printf ( "/tiles/1.0.0/openaerialmap-900913/%d/%d/%d.jpg", 17-src->scale, src->x, src->y );
 {
    int res = -1;
    gchar *uri = g_strdup_printf ( "/tiles/1.0.0/openaerialmap-900913/%d/%d/%d.jpg", 17-src->scale, src->x, src->y );
@@ -151,3 +154,12 @@ static int openarealmap_download ( MapCoord *src, const gchar *dest_fn )
    g_free ( uri );
    return res;
 }
    g_free ( uri );
    return res;
 }
+
+static int osm_cycle_download ( MapCoord *src, const gchar *dest_fn )
+{
+   int res = -1;
+   gchar *uri = g_strdup_printf ( "%d/%d/%d.png", 17-src->scale, src->x, src->y );
+   res = a_http_download_get_url ( "thunderflames.org/tiles/cycle/", uri, dest_fn, &osm_options );
+   g_free ( uri );
+   return res;
+}