From 28741aa21fc38f009272d7e7139143d430a13ece Mon Sep 17 00:00:00 2001 From: Conor Brady Date: Mon, 3 Feb 2025 10:24:46 -0800 Subject: [PATCH] Dedup code --- mobile/asa-go/src/FBAMap.tsx | 2 +- .../asa-go/src/utils/pmtilesVectorSource.ts | 52 ++++++++----------- 2 files changed, 22 insertions(+), 32 deletions(-) diff --git a/mobile/asa-go/src/FBAMap.tsx b/mobile/asa-go/src/FBAMap.tsx index 9e8968509..6302492c0 100644 --- a/mobile/asa-go/src/FBAMap.tsx +++ b/mobile/asa-go/src/FBAMap.tsx @@ -26,7 +26,7 @@ import { fireZoneExtentsMap } from "@/fireZoneUnitExtents"; import { CENTER_OF_BC } from "@/utils/constants"; import { extentsMap } from "@/fireCentreExtents"; import { PMTilesFileVectorSource } from "@/utils/pmtilesVectorSource"; -import { PMTilesCache } from "@/utils/PMTilesCache"; +import { PMTilesCache } from "@/utils/pmtilesCache"; import { Filesystem } from "@capacitor/filesystem"; export const MapContext = React.createContext(null); diff --git a/mobile/asa-go/src/utils/pmtilesVectorSource.ts b/mobile/asa-go/src/utils/pmtilesVectorSource.ts index 9835785c6..36a7195a5 100644 --- a/mobile/asa-go/src/utils/pmtilesVectorSource.ts +++ b/mobile/asa-go/src/utils/pmtilesVectorSource.ts @@ -8,7 +8,7 @@ import { createXYZ } from "ol/tilegrid"; import TileState from "ol/TileState"; import { PMTiles } from "pmtiles"; import { MVT } from "ol/format"; -import { PMTilesCache } from "@/utils/PMTilesCache"; +import { PMTilesCache } from "@/utils/pmtilesCache"; import { DateTime } from "luxon"; import { RunType } from "@/api/fbaAPI"; import { isUndefined } from "lodash"; @@ -115,27 +115,31 @@ export class PMTilesFileVectorSource extends VectorTileSource { const pmtiles = await pmtilesCache.loadPMTiles(options.filename); - if (!isUndefined(pmtiles)) { - this.pmtiles_ = pmtiles; - } else { - throw Error("Unable to initialize pmtiles"); - } - const header = await this.pmtiles_.getHeader(); - - this.tileGrid = createXYZ({ - maxZoom: header.maxZoom, - minZoom: header.minZoom, - tileSize: 512, - }); - - this.setTileLoadFunction(this.tileLoadFunction); - this.setState("ready"); + await this.initTileGrid(pmtiles); } catch (error) { console.error("Error loading PMTiles file:", error); this.setState("error"); } } + async initTileGrid(pmtiles?: PMTiles) { + if (!isUndefined(pmtiles)) { + this.pmtiles_ = pmtiles; + } else { + throw Error("Unable to initialize pmtiles"); + } + const header = await this.pmtiles_.getHeader(); + + this.tileGrid = createXYZ({ + maxZoom: header.maxZoom, + minZoom: header.minZoom, + tileSize: 512, + }); + + this.setTileLoadFunction(this.tileLoadFunction); + this.setState("ready"); + } + static async createHFILayer( pmtilesCache: PMTilesCache, options: HFIPMTilesFileVectorOptions @@ -160,21 +164,7 @@ export class PMTilesFileVectorSource extends VectorTileSource { options.run_date, options.filename ); - if (!isUndefined(pmtiles)) { - this.pmtiles_ = pmtiles; - } else { - throw Error("Unable to initialize pmtiles"); - } - const header = await this.pmtiles_.getHeader(); - - this.tileGrid = createXYZ({ - maxZoom: header.maxZoom, - minZoom: header.minZoom, - tileSize: 512, - }); - - this.setTileLoadFunction(this.tileLoadFunction); - this.setState("ready"); + await this.initTileGrid(pmtiles); } catch (error) { console.error("Error loading PMTiles file:", error); this.setState("error");