- VikMapsLayer_MapType osmarender_type = { 12, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_osmarender_download };
- VikMapsLayer_MapType mapnik_type = { 13, 256, 256, VIK_VIEWPORT_DRAWMODE_MERCATOR, osm_coord_to_mapcoord, osm_mapcoord_to_center_coord, osm_mapnik_download };
- maps_layer_register_type("OpenStreetMap (Osmarender)", 12, &osmarender_type);
- maps_layer_register_type("OpenStreetMap (Mapnik)", 13, &mapnik_type);
-}
-
-/* 1 << (x) is like a 2**(x) */
-#define GZ(x) (1<<(x))
-
-static const gdouble scale_mpps[] = { GZ(0), GZ(1), GZ(2), GZ(3), GZ(4), GZ(5), GZ(6), GZ(7), GZ(8), GZ(9),
- GZ(10), GZ(11), GZ(12), GZ(13), GZ(14), GZ(15), GZ(16), GZ(17) };
-
-static const gint num_scales = (sizeof(scale_mpps) / sizeof(scale_mpps[0]));
-
-#define ERROR_MARGIN 0.01
-guint8 osm_zoom ( gdouble mpp ) {
- gint i;
- for ( i = 0; i < num_scales; i++ ) {
- if ( ABS(scale_mpps[i] - mpp) < ERROR_MARGIN )
- return i;
- }
- return 255;
-}
-
-gboolean osm_coord_to_mapcoord ( const VikCoord *src, gdouble xzoom, gdouble yzoom, MapCoord *dest )
-{
- g_assert ( src->mode == VIK_COORD_LATLON );
-
- if ( xzoom != yzoom )
- return FALSE;
-
- dest->scale = osm_zoom ( xzoom );
- if ( dest->scale == 255 )
- return FALSE;
-
- dest->x = (src->east_west + 180) / 360 * GZ(17) / xzoom;
- dest->y = (180 - MERCLAT(src->north_south)) / 360 * GZ(17) / xzoom;
- dest->z = 0;
- return TRUE;
+ VikMapType *osmarender_type = VIK_MAP_TYPE(slippy_map_type_new_with_id(12, "tah.openstreetmap.org", "/Tiles/tile/%d/%d/%d.png"));
+ VikMapType *mapnik_type = VIK_MAP_TYPE(slippy_map_type_new_with_id( 13, "tile.openstreetmap.org", "/%d/%d/%d.png"));
+ VikMapType *maplint_type = VIK_MAP_TYPE(slippy_map_type_new_with_id( 14, "tah.openstreetmap.org", "/Tiles/maplint.php/%d/%d/%d.png"));
+ VikMapType *cycle_type = VIK_MAP_TYPE(slippy_map_type_new_with_id( 17, "thunderflames.org/tiles/cycle/", "%d/%d/%d.png" ));
+
+ maps_layer_register_type("OpenStreetMap (Osmarender)", 12, osmarender_type);
+ maps_layer_register_type("OpenStreetMap (Mapnik)", 13, mapnik_type);
+ maps_layer_register_type("OpenStreetMap (Maplint)", 14, maplint_type);
+ maps_layer_register_type("OpenStreetMap (Cycle)", 17, cycle_type);