X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=map.h;h=9dd80a795bea79538b51b186ef7f7ad3278959bf;hb=e827ddca25fa9660147cac4d4438d7b41b8e342b;hp=632e8d53febdb11cd0186b59eca787eaf428358f;hpb=44b0ec8816c3cf1a5858fec0c51e075cedefc3eb;p=leo.git diff --git a/map.h b/map.h index 632e8d5..9dd80a7 100644 --- a/map.h +++ b/map.h @@ -4,20 +4,48 @@ * (c) 2014 Martin Mares */ -#ifndef _BRUM_MAP_H -#define _BRUM_MAP_H +#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