]> git.street.me.uk Git - andy/viking.git/blobdiff - src/osm.c
Fix error handling in go-to feature
[andy/viking.git] / src / osm.c
index 6294e39ebee980910db705c8f3dc4f8a096a253e..e00dd41ff3aa7141fc8352de8b90a24f98f9504a 100644 (file)
--- a/src/osm.c
+++ b/src/osm.c
 #include "vikslippymapsource.h"
 #include "vikwebtoolcenter.h"
 #include "vikexttools.h"
+#include "vikgotoxmltool.h"
+#include "vikgoto.h"
 
 /* initialisation */
 void osm_init () {
-  VikMapSource *osmarender_type = VIK_MAP_SOURCE(vik_slippy_map_source_new_with_id(12, "OpenStreetMap (Osmarender)", "tah.openstreetmap.org", "/Tiles/tile/%d/%d/%d.png"));
-  VikMapSource *mapnik_type = VIK_MAP_SOURCE(vik_slippy_map_source_new_with_id( 13, "OpenStreetMap (Mapnik)", "tile.openstreetmap.org", "/%d/%d/%d.png"));
-  VikMapSource *maplint_type = VIK_MAP_SOURCE(vik_slippy_map_source_new_with_id( 14, "OpenStreetMap (Maplint)", "tah.openstreetmap.org", "/Tiles/maplint.php/%d/%d/%d.png"));
-  VikMapSource *cycle_type = VIK_MAP_SOURCE(vik_slippy_map_source_new_with_id( 17, "OpenStreetMap (Cycle)", "thunderflames.org/tiles/cycle/", "%d/%d/%d.png" ));
+  VikMapSource *osmarender_type = 
+    VIK_MAP_SOURCE(g_object_new(VIK_TYPE_SLIPPY_MAP_SOURCE,
+                                "id", 12,
+                                "label", "OpenStreetMap (Osmarender)",
+                                "hostname", "tah.openstreetmap.org",
+                                "url", "/Tiles/tile/%d/%d/%d.png",
+                                "check-file-server-time", VIK_CONFIG_DEFAULT_TILE_AGE,
+                                NULL));
+  VikMapSource *mapnik_type =
+    VIK_MAP_SOURCE(g_object_new(VIK_TYPE_SLIPPY_MAP_SOURCE,
+                                "id", 13,
+                                "label", "OpenStreetMap (Mapnik)",
+                                "hostname", "tile.openstreetmap.org",
+                                "url", "/%d/%d/%d.png",
+                                "check-file-server-time", VIK_CONFIG_DEFAULT_TILE_AGE,
+                                NULL));
+  VikMapSource *maplint_type =
+    VIK_MAP_SOURCE(g_object_new(VIK_TYPE_SLIPPY_MAP_SOURCE,
+                                "id", 14,
+                                "label", "OpenStreetMap (Maplint)",
+                                "hostname", "tah.openstreetmap.org",
+                                "url", "/Tiles/maplint.php/%d/%d/%d.png",
+                                "check-file-server-time", VIK_CONFIG_DEFAULT_TILE_AGE,
+                                NULL));
+  VikMapSource *cycle_type =
+    VIK_MAP_SOURCE(g_object_new(VIK_TYPE_SLIPPY_MAP_SOURCE,
+                                "id", 17,
+                                "label", "OpenStreetMap (Cycle)",
+                                "hostname", "thunderflames.org/tiles/cycle/",
+                                "url", "%d/%d/%d.png",
+                                "check-file-server-time", VIK_CONFIG_DEFAULT_TILE_AGE,
+                                NULL));
 
   maps_layer_register_map_source (osmarender_type);
   maps_layer_register_map_source (mapnik_type);
@@ -55,5 +85,26 @@ void osm_init () {
   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 );
+
+  // Goto
+  VikGotoXmlTool *nominatim = VIK_GOTO_XML_TOOL ( g_object_new ( VIK_GOTO_XML_TOOL_TYPE, "label", "OSM Nominatim",
+    "url-format", "http://nominatim.openstreetmap.org/search?q=%s&format=xml",
+    "lat-path", "/searchresults/place",
+    "lat-attr", "lat",
+    "lon-path", "/searchresults/place",
+    "lon-attr", "lon",
+    NULL ) );
+    vik_goto_register ( VIK_GOTO_TOOL ( nominatim ) );
+    g_object_unref ( nominatim );
+
+  VikGotoXmlTool *namefinder = VIK_GOTO_XML_TOOL ( g_object_new ( VIK_GOTO_XML_TOOL_TYPE, "label", "OSM Name finder",
+    "url-format", "http://gazetteer.openstreetmap.org/namefinder/search.xml?find=%s&max=1",
+    "lat-path", "/searchresults/named",
+    "lat-attr", "lat",
+    "lon-path", "/searchresults/named",
+    "lon-attr", "lon",
+    NULL ) );
+    vik_goto_register ( VIK_GOTO_TOOL ( namefinder ) );
+    g_object_unref ( namefinder );
 }