]> git.street.me.uk Git - andy/viking.git/blobdiff - src/osm.c
Add menu item for help contents
[andy/viking.git] / src / osm.c
index 75dd75dbdd4b29f6816137db84e5a67d11742d20..18c10a5de5382934d3f010af1732a4624060380e 100644 (file)
--- a/src/osm.c
+++ b/src/osm.c
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  */
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <gtk/gtk.h>
 
 #include <gtk/gtk.h>
+#include <glib/gi18n.h>
+#ifdef HAVE_MATH_H
 #include <math.h>
 #include <math.h>
+#endif
 #include "viking.h"
 #include "coords.h"
 #include "vikcoord.h"
 #include "mapcoord.h"
 #include "vikmapslayer.h"
 #include "viking.h"
 #include "coords.h"
 #include "vikcoord.h"
 #include "mapcoord.h"
 #include "vikmapslayer.h"
+#include "vikwebtoolcenter.h"
+#include "vikexttools.h"
 
 #include "osm.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 );
 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 );
 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 );
 static int openaerialmap_download ( MapCoord *src, const gchar *dest_fn );
+#endif
 
 static DownloadOptions osm_options = { NULL, 0, a_check_map_file };
 
 
 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 };
 
   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 };
   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 };
   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);
 
 
   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);
   maps_layer_register_type("BlueMarble", 15, &bluemarble_type);
+#endif
+#ifdef VIK_CONFIG_OPENAERIAL
   maps_layer_register_type("OpenAerialMap", 20, &openaerialmap_type);
   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) */
 }
 
 /* 1 << (x) is like a 2**(x) */
@@ -134,6 +168,7 @@ static int osm_osmarender_download ( MapCoord *src, const gchar *dest_fn )
    return res;
 }
 
    return res;
 }
 
+#ifdef VIK_CONFIG_BLUEMARBLE
 static int bluemarble_download ( MapCoord *src, const gchar *dest_fn )
 {
    int res = -1;
 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;
 
 }
    return res;
 
 }
+#endif
    
    
+#ifdef VIK_CONFIG_OPENAERIAL
 static int openaerialmap_download ( MapCoord *src, const gchar *dest_fn )
 {
    int res = -1;
 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;
 }
    g_free ( uri );
    return res;
 }
+#endif
 
 static int osm_cycle_download ( MapCoord *src, const gchar *dest_fn )
 {
 
 static int osm_cycle_download ( MapCoord *src, const gchar *dest_fn )
 {