add iconPaths and enable map rotation

This commit is contained in:
Nicole Faerber 2021-05-25 22:50:16 +02:00
parent 4af5ab049c
commit 449ce49135
2 changed files with 27 additions and 6 deletions

View file

@ -54,6 +54,8 @@ static osmscout::MapPainterCairo *cairoMapPainter{nullptr};
int DrawMapCairoInit(int argc, char* argv[]) int DrawMapCairoInit(int argc, char* argv[])
{ {
std::list<std::string> iconPaths;
database=std::make_shared<osmscout::Database>(databaseParameter); database=std::make_shared<osmscout::Database>(databaseParameter);
if (!database->Open("data/nordrhein-westfalen-latest/")) { if (!database->Open("data/nordrhein-westfalen-latest/")) {
std::cerr << "Cannot open database" << std::endl; std::cerr << "Cannot open database" << std::endl;
@ -75,8 +77,11 @@ int DrawMapCairoInit(int argc, char* argv[])
drawParameter.SetRenderContourLines(false); drawParameter.SetRenderContourLines(false);
drawParameter.SetRenderHillShading(false); drawParameter.SetRenderHillShading(false);
//drawParameter.SetIconMode(args.iconMode); drawParameter.SetIconMode(osmscout::MapParameter::IconMode::Scalable);
//drawParameter.SetIconPaths(args.iconPaths); iconPaths.push_back("data/icons/svg/standard/");
drawParameter.SetIconPaths(iconPaths);
drawParameter.SetPatternMode(osmscout::MapParameter::PatternMode::Scalable);
drawParameter.SetPatternPaths(iconPaths);
drawParameter.SetDebugData(false); drawParameter.SetDebugData(false);
drawParameter.SetDebugPerformance(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) int DrawMapCairo(cairo_surface_t *surface, double lat, double lon, unsigned int zoomlevel, double direction)
{ {
osmscout::GeoCoord center(lat, lon); osmscout::GeoCoord center(lat, lon);
osmscout::Magnification zoom{osmscout::Magnification::magClose}; osmscout::Magnification zoom; /*{osmscout::Magnification::magClose};*/
osmscout::GeoBox boundingBox; osmscout::GeoBox boundingBox;
cairo_t *cairo=cairo_create(surface); cairo_t *cairo=cairo_create(surface);

View file

@ -81,8 +81,14 @@ gchar *dir=(gchar *)user_data;
case '-': case '-':
zoomlevel-=(zoomlevel/10); zoomlevel-=(zoomlevel/10);
break; 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; need_redraw=TRUE;
gtk_widget_queue_draw(image_darea); gtk_widget_queue_draw(image_darea);
} }
@ -125,14 +131,24 @@ GtkWidget *grid;
g_signal_connect (w, "clicked", g_signal_connect (w, "clicked",
G_CALLBACK (move_clicked), "d"); G_CALLBACK (move_clicked), "d");
gtk_grid_attach(GTK_GRID(grid), w, 1, 2, 1, 1); gtk_grid_attach(GTK_GRID(grid), w, 1, 2, 1, 1);
w=gtk_button_new_with_label("+"); w=gtk_button_new_with_label("+");
g_signal_connect (w, "clicked", g_signal_connect (w, "clicked",
G_CALLBACK (move_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("-"); w=gtk_button_new_with_label("-");
g_signal_connect (w, "clicked", g_signal_connect (w, "clicked",
G_CALLBACK (move_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); gtk_container_add (GTK_CONTAINER (box), grid);
} }