[libchamplain] Basic implementation of the OSM data download
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libchamplain] Basic implementation of the OSM data download
- Date: Sun, 24 Jan 2010 20:08:49 +0000 (UTC)
commit 607e046d7e2d65be687b6bb8100d291e57ca45f3
Author: Simon Wenner <simon wenner ch>
Date: Mon Jul 6 21:15:01 2009 +0200
Basic implementation of the OSM data download
champlain/champlain-network-map-data-source.c | 33 ++++++++++++++++++++++++-
1 files changed, 32 insertions(+), 1 deletions(-)
---
diff --git a/champlain/champlain-network-map-data-source.c b/champlain/champlain-network-map-data-source.c
index a0cd086..4b2fdb0 100644
--- a/champlain/champlain-network-map-data-source.c
+++ b/champlain/champlain-network-map-data-source.c
@@ -22,6 +22,7 @@
#include "champlain-debug.h"
#include <memphis/memphis.h>
+#include <libsoup/soup.h>
G_DEFINE_TYPE (ChamplainNetworkMapDataSource, champlain_network_map_data_source, CHAMPLAIN_TYPE_MAP_DATA_SOURCE)
@@ -136,6 +137,24 @@ champlain_network_map_data_source_new (void)
return g_object_new (CHAMPLAIN_TYPE_NETWORK_MAP_DATA_SOURCE, NULL);
}
+static void
+load_map_data_cb (SoupSession *session, SoupMessage *msg,
+ gpointer user_data)
+{
+ ChamplainNetworkMapDataSource *self =
+ (ChamplainNetworkMapDataSource *) user_data;
+ ChamplainNetworkMapDataSourcePrivate *priv = GET_PRIVATE(self);
+
+ g_message ("Data received");
+ memphis_map_load_from_data (priv->map,
+ msg->response_body->data,
+ msg->response_body->length);
+
+ g_signal_emit_by_name (CHAMPLAIN_MAP_DATA_SOURCE (self),
+ "map-data-changed", NULL);
+}
+
+
void
champlain_network_map_data_source_load_map_data (
ChamplainNetworkMapDataSource *self,
@@ -144,7 +163,19 @@ champlain_network_map_data_source_load_map_data (
gdouble bound_right,
gdouble bound_top)
{
- // TODO
+ g_return_if_fail (CHAMPLAIN_IS_NETWORK_MAP_DATA_SOURCE (self));
+
+ SoupMessage *msg;
+ SoupSession *sess = soup_session_sync_new ();
+
+ gchar *url = g_strdup_printf (
+ "http://api.openstreetmap.org/api/0.6/map?bbox=%f,%f,%f,%f",
+ bound_left, bound_bottom, bound_right, bound_top);
+ msg = soup_message_new ("GET", url);
+ g_free (url);
+
+ g_message ("REQ bbox data");
+ soup_session_queue_message (sess, msg, load_map_data_cb, self);
}
gchar *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]