X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/0faf6aeb05f0e8edc64da7a52eac05be62e049d9..de2fc9aa9e8db8e0258c8328161c6b5eda176a0a:/src/osm.c?ds=sidebyside diff --git a/src/osm.c b/src/osm.c index 4da5f0a3..de440ece 100644 --- 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_cycle_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 }; @@ -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 }; + 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 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 (Cycle)", 17, &cycle_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) */ @@ -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 ); @@ -151,3 +154,12 @@ static int openarealmap_download ( MapCoord *src, const gchar *dest_fn ) 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; +}