aboutsummaryrefslogtreecommitdiffstats
path: root/packages/viking/viking-0.9.6/viking-openaerialmap.patch
blob: 5344e353f070cb2d4f8f18259f0b0c55ba34678a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Author: Stanislav Brabec <sbrabec@suse.cz>

This patch adds support for OpenAerialMap, asking server to provide OSM-compatible tiles.
This solution is not the fastest one, but it is far the simplest solution.

================================================================================
--- viking-0.9.6/src/osm.c
+++ viking-0.9.6/src/osm.c
@@ -36,6 +36,7 @@
 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 oam_download ( MapCoord *src, const gchar *dest_fn );
 static int bluemarble_download ( MapCoord *src, const gchar *dest_fn );
 
 static DownloadOptions osm_options = { NULL, 0, a_check_map_file };
@@ -45,12 +46,16 @@
   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 oam_type = { 17, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, oam_download };
+
   VikMapsLayer_MapType bluemarble_type = { 15, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, bluemarble_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("OpenAerialMap", 17, &oam_type);
+
   maps_layer_register_type("BlueMarble", 15, &bluemarble_type);
 }
 
@@ -126,6 +131,15 @@
    g_free ( uri );
    return res;
 }
+
+static int oam_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 );
+   res = a_http_download_get_url ( "tile.openaerialmap.org", uri, dest_fn, &osm_options );
+   g_free ( uri );
+   return res;
+}
 
 static int bluemarble_download ( MapCoord *src, const gchar *dest_fn )
 {