diff options
| -rw-r--r-- | fietsboek/views/tileproxy.py | 15 | 
1 files changed, 11 insertions, 4 deletions
diff --git a/fietsboek/views/tileproxy.py b/fietsboek/views/tileproxy.py index 1c8a054..2a1e6d0 100644 --- a/fietsboek/views/tileproxy.py +++ b/fietsboek/views/tileproxy.py @@ -268,6 +268,12 @@ def extract_tile_layers(settings):      :rtype: list[TileSource]      """      layers = [] +    layers.extend(_extract_thunderforest(settings)) +    layers.extend(_extract_user_layers(settings)) +    return layers + + +def _extract_thunderforest(settings):      # Thunderforest Shortcut!      tf_api_key = settings.get("thunderforest.api_key")      if tf_api_key: @@ -280,11 +286,13 @@ def extract_tile_layers(settings):          for tf_map in settings["thunderforest.maps"]:              url = (f"https://tile.thunderforest.com/{tf_map}/"                     f"{{z}}/{{x}}/{{y}}.png?apikey={tf_api_key}") -            layers.append(TileSource( +            yield TileSource(                  f"tf-{tf_map}", f"TF {tf_map.title()}", url,                  LayerType.BASE, 22, tf_access, tf_attribution, -            )) +            ) + +def _extract_user_layers(settings):      # Any other custom maps      for key in settings.keys():          match = re.match("^fietsboek\\.tile_layer\\.([A-Za-z0-9_-]+)$", key) @@ -299,5 +307,4 @@ def extract_tile_layers(settings):          attribution = settings.get(f"{key}.attribution", _jb_copy)          access = LayerAccess(settings.get(f"{key}.access", "public")) -        layers.append(TileSource(provider_id, name, url, layer_type, zoom, access, attribution)) -    return layers +        yield TileSource(provider_id, name, url, layer_type, zoom, access, attribution)  | 
