From 449ce49135af51128da44db283785c26f8010a4a Mon Sep 17 00:00:00 2001 From: Nicole Faerber Date: Tue, 25 May 2021 22:50:16 +0200 Subject: [PATCH] add iconPaths and enable map rotation --- DrawMapCairo.cpp | 11 ++++++++--- gmapnix.c | 22 +++++++++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/DrawMapCairo.cpp b/DrawMapCairo.cpp index 5794317..98fc913 100644 --- a/DrawMapCairo.cpp +++ b/DrawMapCairo.cpp @@ -54,6 +54,8 @@ static osmscout::MapPainterCairo *cairoMapPainter{nullptr}; int DrawMapCairoInit(int argc, char* argv[]) { + std::list iconPaths; + database=std::make_shared(databaseParameter); if (!database->Open("data/nordrhein-westfalen-latest/")) { std::cerr << "Cannot open database" << std::endl; @@ -75,8 +77,11 @@ int DrawMapCairoInit(int argc, char* argv[]) drawParameter.SetRenderContourLines(false); drawParameter.SetRenderHillShading(false); - //drawParameter.SetIconMode(args.iconMode); - //drawParameter.SetIconPaths(args.iconPaths); + drawParameter.SetIconMode(osmscout::MapParameter::IconMode::Scalable); + iconPaths.push_back("data/icons/svg/standard/"); + drawParameter.SetIconPaths(iconPaths); + drawParameter.SetPatternMode(osmscout::MapParameter::PatternMode::Scalable); + drawParameter.SetPatternPaths(iconPaths); drawParameter.SetDebugData(false); drawParameter.SetDebugPerformance(false); @@ -100,7 +105,7 @@ int DrawMapCairoInit(int argc, char* argv[]) int DrawMapCairo(cairo_surface_t *surface, double lat, double lon, unsigned int zoomlevel, double direction) { osmscout::GeoCoord center(lat, lon); - osmscout::Magnification zoom{osmscout::Magnification::magClose}; + osmscout::Magnification zoom; /*{osmscout::Magnification::magClose};*/ osmscout::GeoBox boundingBox; cairo_t *cairo=cairo_create(surface); diff --git a/gmapnix.c b/gmapnix.c index b54416d..2abca12 100644 --- a/gmapnix.c +++ b/gmapnix.c @@ -81,8 +81,14 @@ gchar *dir=(gchar *)user_data; case '-': zoomlevel-=(zoomlevel/10); break; + case '>': + direction-=.1; + break; + case '<': + direction+=.1; + break; } - fprintf(stderr, "%f %f @ %d\n", center_lat, center_lon, zoomlevel); + fprintf(stderr, "%f %f @ %f %d\n", center_lat, center_lon, direction, zoomlevel); need_redraw=TRUE; gtk_widget_queue_draw(image_darea); } @@ -125,14 +131,24 @@ GtkWidget *grid; g_signal_connect (w, "clicked", G_CALLBACK (move_clicked), "d"); gtk_grid_attach(GTK_GRID(grid), w, 1, 2, 1, 1); + w=gtk_button_new_with_label("+"); g_signal_connect (w, "clicked", G_CALLBACK (move_clicked), "+"); - gtk_grid_attach(GTK_GRID(grid), w, 3, 0, 1, 1); + gtk_grid_attach(GTK_GRID(grid), w, 4, 0, 1, 1); w=gtk_button_new_with_label("-"); g_signal_connect (w, "clicked", G_CALLBACK (move_clicked), "-"); - gtk_grid_attach(GTK_GRID(grid), w, 3, 2, 1, 1); + gtk_grid_attach(GTK_GRID(grid), w, 4, 2, 1, 1); + + w=gtk_button_new_with_label("<"); + g_signal_connect (w, "clicked", + G_CALLBACK (move_clicked), "<"); + gtk_grid_attach(GTK_GRID(grid), w, 3, 1, 1, 1); + w=gtk_button_new_with_label(">"); + g_signal_connect (w, "clicked", + G_CALLBACK (move_clicked), ">"); + gtk_grid_attach(GTK_GRID(grid), w, 5, 1, 1, 1); gtk_container_add (GTK_CONTAINER (box), grid); }