Refactoring: fix rendering of new roads, generated by a split

This commit is contained in:
Pieter Vander Vennet 2023-04-20 01:52:23 +02:00
parent 840990c08b
commit 8eb2c68f79
34 changed files with 443 additions and 333 deletions

View file

@ -55,12 +55,13 @@ class SingleTileSaver {
*/
export default class SaveFeatureSourceToLocalStorage {
constructor(
backend: string,
layername: string,
zoomlevel: number,
features: FeatureSource,
featureProperties: FeaturePropertiesStore
) {
const storage = TileLocalStorage.construct<Feature[]>(layername)
const storage = TileLocalStorage.construct<Feature[]>(backend, layername)
const singleTileSavers: Map<number, SingleTileSaver> = new Map<number, SingleTileSaver>()
features.features.addCallbackAndRunD((features) => {
const sliced = GeoOperations.slice(zoomlevel, features)

View file

@ -17,14 +17,15 @@ export default class TileLocalStorage<T> {
this._layername = layername
}
public static construct<T>(layername: string): TileLocalStorage<T> {
const cached = TileLocalStorage.perLayer[layername]
public static construct<T>(backend: string, layername: string): TileLocalStorage<T> {
const key = backend + "_" + layername
const cached = TileLocalStorage.perLayer[key]
if (cached) {
return cached
}
const tls = new TileLocalStorage<T>(layername)
TileLocalStorage.perLayer[layername] = tls
const tls = new TileLocalStorage<T>(key)
TileLocalStorage.perLayer[key] = tls
return tls
}
@ -46,7 +47,7 @@ export default class TileLocalStorage<T> {
return src
}
private async SetIdb(tileIndex: number, data): Promise<void> {
private async SetIdb(tileIndex: number, data: any): Promise<void> {
try {
await IdbLocalStorage.SetDirectly(this._layername + "_" + tileIndex, data)
} catch (e) {