From 05c5d7f62316b090d9a5053dc4c1ff1a43e7aa5e Mon Sep 17 00:00:00 2001 From: Rob Norris Date: Sun, 7 Aug 2016 11:27:20 +0100 Subject: [PATCH] SF Bugs#134: Replaced discontinued MapQuest tile service with rate limited Mapbox Outdoors service. Choose an 'Outdoors' styled map to reflected presumed likely usage of Viking. This is the default map, so users are likely to encounter service request limits. --- help/C/figures/map_tile_info_dialog.png | Bin 17115 -> 19396 bytes help/C/viking.xml | 2 +- src/map_ids.h | 3 +- src/osm.c | 38 ++++++++++++++---------- src/vikmapslayer.c | 2 +- test/OpenStreetMap.vik | 10 ------- tools/viking-cache.py | 2 ++ 7 files changed, 28 insertions(+), 29 deletions(-) diff --git a/help/C/figures/map_tile_info_dialog.png b/help/C/figures/map_tile_info_dialog.png index 9a8725054e6f3926bb42a8d9026bb2024983dbc4..2c39c798bccaf319aa31ca9e8b690fb338582b45 100644 GIT binary patch literal 19396 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 literal 17115 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 diff --git a/help/C/viking.xml b/help/C/viking.xml index b1fee612..d39d8220 100644 --- a/help/C/viking.xml +++ b/help/C/viking.xml @@ -1678,7 +1678,7 @@ Inbuilt maps include various OpenStreetMa Bing Bird's Eye (Aerial) Maps (&appname; Version1.2+) -OpenStreetMap (Mapquest) - This is the default (&appname; Version1.3+) +Mapbox Outdoors - This is the default (&appname; Version1.7+) OpenStreetMap (Mapnik) OpenStreetMap (Cycle) OpenStreetMap (Transport) (&appname; Version1.3+) diff --git a/src/map_ids.h b/src/map_ids.h index 98e3ca73..d22743db 100644 --- a/src/map_ids.h +++ b/src/map_ids.h @@ -35,12 +35,13 @@ #define MAP_ID_OSM_MAPNIK 13 #define MAP_ID_BLUE_MARBLE 15 #define MAP_ID_OSM_CYCLE 17 -#define MAP_ID_MAPQUEST_OSM 19 +//#define MAP_ID_MAPQUEST_OSM 19 // Tile Service discontinued #define MAP_ID_OSM_TRANSPORT 20 #define MAP_ID_OSM_ON_DISK 21 #define MAP_ID_OSM_HUMANITARIAN 22 #define MAP_ID_MBTILES 23 #define MAP_ID_OSM_METATILES 24 +#define MAP_ID_MAPBOX_OUTDOORS 25 #define MAP_ID_BING_AERIAL 212 diff --git a/src/osm.c b/src/osm.c index 07a41cb9..1321a416 100644 --- a/src/osm.c +++ b/src/osm.c @@ -89,21 +89,6 @@ void osm_init () { "license", "CC-BY-SA", "license-url", "http://www.openstreetmap.org/copyright", NULL)); - VikMapSource *mapquest_type = - VIK_MAP_SOURCE(g_object_new(VIK_TYPE_SLIPPY_MAP_SOURCE, - "id", MAP_ID_MAPQUEST_OSM, - "name", "OSM-MapQuest", - "label", "OpenStreetMap (MapQuest)", - "hostname", "otile1.mqcdn.com", - "url", "/tiles/1.0.0/osm/%d/%d/%d.png", - "check-file-server-time", TRUE, - "use-etag", FALSE, - "zoom-min", 0, - "zoom-max", 19, - "copyright", "Tiles Courtesy of MapQuest © OpenStreetMap contributors", - "license", "MapQuest Specific", - "license-url", "http://developer.mapquest.com/web/info/terms-of-use", - NULL)); VikMapSource *hot_type = VIK_MAP_SOURCE(g_object_new(VIK_TYPE_SLIPPY_MAP_SOURCE, "id", MAP_ID_OSM_HUMANITARIAN, @@ -152,7 +137,28 @@ void osm_init () { "is-osm-meta-tiles", TRUE, NULL)); - maps_layer_register_map_source (mapquest_type); + // Note using a single global Viking registered key for the Mapbox Tileservice + // which is not secret since it's right here! + // Thus not only will the (free) service allocation limit be reached by normal users + // but by anymore who cares to read this source and use it themselves. + VikMapSource *mapbox_type = + VIK_MAP_SOURCE(g_object_new(VIK_TYPE_SLIPPY_MAP_SOURCE, + "id", MAP_ID_MAPBOX_OUTDOORS, + "name", "Mapbox-Outdoors", + "label", "Mapbox Outdoors", + "url", "https://api.tiles.mapbox.com/styles/v1/mapbox/outdoors-v9/tiles/256/%d/%d/%d?access_token=pk.eyJ1Ijoicndub3JyaXMiLCJhIjoiY2lxc294anN2MDA5bWhzbWFseWsxMW1ydiJ9.HcybKtZsiG6RVuOHg481Kg", + "check-file-server-time", TRUE, + "use-etag", FALSE, + "zoom-min", 0, + "zoom-max", 19, + "copyright", "© Mapbox © OpenStreetMap", + "license", "Mapbox Specific", + "license-url", "https://www.mapbox.com/tos", + NULL)); + + // NB The first registered map source is the default + // (unless the user has specified Map Layer defaults) + maps_layer_register_map_source (mapbox_type); maps_layer_register_map_source (mapnik_type); maps_layer_register_map_source (cycle_type); maps_layer_register_map_source (transport_type); diff --git a/src/vikmapslayer.c b/src/vikmapslayer.c index 6bb17a4a..a0e2677f 100644 --- a/src/vikmapslayer.c +++ b/src/vikmapslayer.c @@ -127,7 +127,7 @@ static VikLayerParamScale params_scales[] = { { 0, 255, 3, 0 }, /* alpha */ }; -static VikLayerParamData id_default ( void ) { return VIK_LPD_UINT ( MAP_ID_MAPQUEST_OSM ); } +static VikLayerParamData id_default ( void ) { return VIK_LPD_UINT ( MAP_ID_MAPBOX_OUTDOORS ); } static VikLayerParamData directory_default ( void ) { VikLayerParamData data; diff --git a/test/OpenStreetMap.vik b/test/OpenStreetMap.vik index c0a4347c..f37fc3c6 100644 --- a/test/OpenStreetMap.vik +++ b/test/OpenStreetMap.vik @@ -27,13 +27,3 @@ autodownload=t mapzoom=0 ~EndLayer - -~Layer Map -name=MapQuest -mode=19 -directory= -alpha=255 -autodownload=t -mapzoom=0 -~EndLayer - diff --git a/tools/viking-cache.py b/tools/viking-cache.py index 9b333a8f..85d02fdf 100755 --- a/tools/viking-cache.py +++ b/tools/viking-cache.py @@ -354,6 +354,8 @@ def get_tile_path (tid): return "OSM-Transport" elif tile_id == 22: return "OSM-Humanitarian" + elif tile_id == 25: + return "Mapbox-Outdoors" elif tile_id == 212: return "Bing-Aerial" # Default extension Map ids (from data/maps.xml) -- 2.39.5