X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/3f9ff8d90be60838de5f624bfb2458c915c247da..5ff75d1ed34298a223c651d46fe2aa000db3e459:/src/osm.c?ds=inline diff --git a/src/osm.c b/src/osm.c index 75dd75db..18c10a5d 100644 --- a/src/osm.c +++ b/src/osm.c @@ -18,14 +18,22 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include +#include +#ifdef HAVE_MATH_H #include +#endif #include "viking.h" #include "coords.h" #include "vikcoord.h" #include "mapcoord.h" #include "vikmapslayer.h" +#include "vikwebtoolcenter.h" +#include "vikexttools.h" #include "osm.h" @@ -37,8 +45,12 @@ 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 ); +#ifdef VIK_CONFIG_BLUEMARBLE static int bluemarble_download ( MapCoord *src, const gchar *dest_fn ); +#endif +#ifdef VIK_CONFIG_OPENAERIAL static int openaerialmap_download ( MapCoord *src, const gchar *dest_fn ); +#endif static DownloadOptions osm_options = { NULL, 0, a_check_map_file }; @@ -48,17 +60,39 @@ void osm_init () { 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 }; +#ifdef VIK_CONFIG_BLUEMARBLE VikMapsLayer_MapType bluemarble_type = { 15, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, bluemarble_download }; +#endif +#ifdef VIK_CONFIG_OPENAERIAL VikMapsLayer_MapType openaerialmap_type = { 20, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, openaerialmap_download }; +#endif 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); +#ifdef VIK_CONFIG_BLUEMARBLE maps_layer_register_type("BlueMarble", 15, &bluemarble_type); +#endif +#ifdef VIK_CONFIG_OPENAERIAL maps_layer_register_type("OpenAerialMap", 20, &openaerialmap_type); +#endif + + // Webtools + VikWebtoolCenter *webtool = NULL; + webtool = vik_webtool_center_new_with_members ( _("OSM (view)"), "http://openstreetmap.org/?lat=%s&lon=%s&zoom=%d&layers=B000FTF" ); + vik_ext_tools_register ( VIK_EXT_TOOL ( webtool ) ); + g_object_unref ( webtool ); + + webtool = vik_webtool_center_new_with_members ( _("OSM (edit)"), "http://www.openstreetmap.org/edit?lat=%s&lon=%s&zoom=%d" ); + vik_ext_tools_register ( VIK_EXT_TOOL ( webtool ) ); + g_object_unref ( webtool ); + + webtool = vik_webtool_center_new_with_members ( _("OSM (render)"), "http://www.informationfreeway.org/?lat=%s&lon=%s&zoom=%d&layers=B0000F000F" ); + vik_ext_tools_register ( VIK_EXT_TOOL ( webtool ) ); + g_object_unref ( webtool ); } /* 1 << (x) is like a 2**(x) */ @@ -134,6 +168,7 @@ static int osm_osmarender_download ( MapCoord *src, const gchar *dest_fn ) return res; } +#ifdef VIK_CONFIG_BLUEMARBLE static int bluemarble_download ( MapCoord *src, const gchar *dest_fn ) { int res = -1; @@ -144,7 +179,9 @@ static int bluemarble_download ( MapCoord *src, const gchar *dest_fn ) return res; } +#endif +#ifdef VIK_CONFIG_OPENAERIAL static int openaerialmap_download ( MapCoord *src, const gchar *dest_fn ) { int res = -1; @@ -154,6 +191,7 @@ static int openaerialmap_download ( MapCoord *src, const gchar *dest_fn ) g_free ( uri ); return res; } +#endif static int osm_cycle_download ( MapCoord *src, const gchar *dest_fn ) {