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[])
{
std::list<std::string> iconPaths;
database=std::make_shared<osmscout::Database>(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);

View file

@ -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);
}