X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=map.h;h=9dd80a795bea79538b51b186ef7f7ad3278959bf;hb=e827ddca25fa9660147cac4d4438d7b41b8e342b;hp=eaad9b6a52ab2ba1b4244a0007b71e890501ad89;hpb=314afcc0500a95c818dadbb68db72954cf4145b4;p=leo.git diff --git a/map.h b/map.h index eaad9b6..9dd80a7 100644 --- a/map.h +++ b/map.h @@ -7,17 +7,45 @@ #ifndef _LEO_MAP_H #define _LEO_MAP_H +#include "svg.h" + /* Map configuration */ extern double map_min_x, map_min_y; extern double map_max_x, map_max_y; extern double page_width, page_height; -extern uns map_clip, map_draw_border; -extern char *map_xml_input; +extern uns map_clip, map_rotate, map_draw_border; extern char *map_projection; -extern char *map_style_sheet; extern char *map_svg_output; +// Remember to update map.c:map_formats +enum data_source_type { + DATA_SOURCE_INVALID, + DATA_SOURCE_OSMXML, + DATA_SOURCE_FIXED, + DATA_SOURCE_SHAPE, +}; + +struct data_source { + cnode n; + // Configuration + char *file; + int format; + clist styles; // of data_source_style + // Runtime + struct osm *osm; +}; + +struct data_source_style { + cnode n; + // Configuration + char *name; + // Runtime + struct css_sheet *css; +}; + +extern clist map_sources; + /* Calculated by map_set_scale() */ extern double map_scale; @@ -27,4 +55,8 @@ extern double page_map_width, page_map_height; void map_set_scale(void); bool map_object_visible_p(struct osm_object *o); +void map_load_styles(void); +void map_load_sources(void); +void map_apply_styles(struct svg *svg); + #endif