]>
Commit | Line | Data |
---|---|---|
50a14534 EB |
1 | /* |
2 | * viking -- GPS Data and Topo Analyzer, Explorer, and Manager | |
3 | * | |
4 | * Copyright (C) 2003-2005, Evan Battaglia <gtoevan@gmx.net> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
9 | * (at your option) any later version. | |
10 | * | |
11 | * This program is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
19 | * | |
20 | */ | |
21 | ||
22 | #ifndef _VIKING_MAPSLAYER_H | |
23 | #define _VIKING_MAPSLAYER_H | |
24 | ||
cdcaf41c | 25 | #include "vikcoord.h" |
a25c4c50 | 26 | #include "viklayer.h" |
cdcaf41c | 27 | #include "vikviewport.h" |
820c59f4 | 28 | #include "vikmapsource.h" |
cdcaf41c | 29 | #include "mapcoord.h" |
6846aafb | 30 | #include "vikmapslayer_compat.h" |
a25c4c50 | 31 | |
722b5481 RN |
32 | G_BEGIN_DECLS |
33 | ||
50a14534 EB |
34 | #define VIK_MAPS_LAYER_TYPE (vik_maps_layer_get_type ()) |
35 | #define VIK_MAPS_LAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIK_MAPS_LAYER_TYPE, VikMapsLayer)) | |
36 | #define VIK_MAPS_LAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIK_MAPS_LAYER_TYPE, VikMapsLayerClass)) | |
37 | #define IS_VIK_MAPS_LAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIK_MAPS_LAYER_TYPE)) | |
38 | #define IS_VIK_MAPS_LAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIK_MAPS_LAYER_TYPE)) | |
39 | ||
40 | typedef struct _VikMapsLayerClass VikMapsLayerClass; | |
41 | struct _VikMapsLayerClass | |
42 | { | |
43 | VikLayerClass object_class; | |
44 | }; | |
45 | ||
46 | GType vik_maps_layer_get_type (); | |
47 | ||
48 | typedef struct _VikMapsLayer VikMapsLayer; | |
49 | ||
d281e8b4 RN |
50 | typedef enum { |
51 | VIK_MAPS_CACHE_LAYOUT_VIKING=0, // CacheDir/t<MapId>s<VikingZoom>z0/X/Y (NB no file extension) - Legacy default layout | |
2eb18edc | 52 | VIK_MAPS_CACHE_LAYOUT_OSM, // CacheDir/<OptionalMapName>/OSMZoomLevel/X/Y.ext (Default ext=png) |
d281e8b4 RN |
53 | VIK_MAPS_CACHE_LAYOUT_NUM // Last enum |
54 | } VikMapsCacheLayout; | |
55 | ||
56 | // OSM definition is a TMS derivative, (Global Mercator profile with Flipped Y) | |
57 | // http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames | |
58 | // http://wiki.openstreetmap.org/wiki/TMS | |
59 | // http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification | |
60 | ||
55ddef4e | 61 | void maps_layer_init (); |
0d66c56c | 62 | void maps_layer_set_autodownload_default ( gboolean autodownload ); |
d281e8b4 | 63 | void maps_layer_set_cache_default ( VikMapsCacheLayout layout ); |
db03733a | 64 | void maps_layer_register_map_source ( VikMapSource *map ); |
3ac548fa | 65 | void vik_maps_layer_download_section ( VikMapsLayer *vml, VikViewport *vvp, VikCoord *ul, VikCoord *br, gdouble zoom ); |
7114e879 QT |
66 | gint vik_maps_layer_get_map_type(VikMapsLayer *vml); |
67 | gchar *vik_maps_layer_get_map_label(VikMapsLayer *vml); | |
0c1044e9 | 68 | gchar *maps_layer_default_dir (); |
6b59f63d | 69 | void vik_maps_layer_download ( VikMapsLayer *vml, VikViewport *vvp, gboolean only_new ); |
cdcaf41c | 70 | |
722b5481 RN |
71 | G_END_DECLS |
72 | ||
50a14534 | 73 | #endif |