diff --git a/Logic/FeatureSource/Actors/SaveTileToLocalStorageActor.ts b/Logic/FeatureSource/Actors/SaveTileToLocalStorageActor.ts index 331168bb8e..22e6a7ba81 100644 --- a/Logic/FeatureSource/Actors/SaveTileToLocalStorageActor.ts +++ b/Logic/FeatureSource/Actors/SaveTileToLocalStorageActor.ts @@ -7,7 +7,8 @@ import {FeatureSourceForLayer} from "../FeatureSource"; export default class SaveTileToLocalStorageActor { public static readonly storageKey: string = "cached-features"; - + public static readonly formatVersion : string = "1" + constructor(source: FeatureSourceForLayer, tileIndex: number) { source.features.addCallbackAndRunD(features => { const key = `${SaveTileToLocalStorageActor.storageKey}-${source.layer.layerDef.id}-${tileIndex}` @@ -20,6 +21,7 @@ export default class SaveTileToLocalStorageActor { try { localStorage.setItem(key, JSON.stringify(features)); localStorage.setItem(key + "-time", JSON.stringify(now)) + localStorage.setItem(key+"-format", SaveTileToLocalStorageActor.formatVersion) } catch (e) { console.warn("Could not save the features to local storage:", e) } diff --git a/Logic/FeatureSource/TiledFeatureSource/TiledFromLocalStorageSource.ts b/Logic/FeatureSource/TiledFeatureSource/TiledFromLocalStorageSource.ts index 4b578b7da2..3ad933d7e4 100644 --- a/Logic/FeatureSource/TiledFeatureSource/TiledFromLocalStorageSource.ts +++ b/Logic/FeatureSource/TiledFeatureSource/TiledFromLocalStorageSource.ts @@ -32,8 +32,18 @@ public tileFreshness : Map = new Map() console.debug("Layer", layer.layerDef.id, "has following tiles in available in localstorage", indexes.map(i => Tiles.tile_from_index(i).join("/")).join(", ")) for (const index of indexes) { - const prefix = SaveTileToLocalStorageActor.storageKey + "-" + layer.layerDef.id + "-" +index+"-time"; - const data = Number(localStorage.getItem(prefix)) + + const prefix = SaveTileToLocalStorageActor.storageKey + "-" + layer.layerDef.id + "-" +index; + const version = localStorage.getItem(prefix+"-format") + if(version === undefined || version !== SaveTileToLocalStorageActor.formatVersion){ + // Invalid version! Remove this tile from local storage + localStorage.removeItem(prefix) + undefinedTiles.add(index) + console.log("Dropped old format tile", prefix) + continue + } + + const data = Number(localStorage.getItem(prefix+"-time")) const freshness = new Date() freshness.setTime(data) this.tileFreshness.set(index, freshness) diff --git a/assets/themes/cyclestreets/cyclestreets.json b/assets/themes/cyclestreets/cyclestreets.json index 45ad1a90c0..39f75ac78e 100644 --- a/assets/themes/cyclestreets/cyclestreets.json +++ b/assets/themes/cyclestreets/cyclestreets.json @@ -35,6 +35,10 @@ "startLon": 3.2228, "maintainer": "MapComplete", "widenfactor": 2, + "clustering": { + "maxZoom": 12, + "minNeededElements": 200 + }, "roamingRenderings": [ { "question": {