feat: fix gps map projection and update map config

This commit is contained in:
2026-03-23 10:05:41 +08:00
parent a4c426df8b
commit 51740761f5
11 changed files with 214 additions and 55 deletions

View File

@@ -11,7 +11,9 @@ const ANIMATION_FRAME_MS = 33
export class WebGLMapRenderer implements MapRenderer {
tileStore: TileStore
osmTileStore: TileStore
tileLayer: TileLayer
osmTileLayer: TileLayer
trackLayer: TrackLayer
gpsLayer: GpsLayer
tileRenderer: WebGLTileRenderer
@@ -40,10 +42,19 @@ export class WebGLMapRenderer implements MapRenderer {
this.scheduleRender()
},
} satisfies TileStoreCallbacks)
this.osmTileStore = new TileStore({
onTileReady: () => {
this.scheduleRender()
},
onTileError: () => {
this.scheduleRender()
},
} satisfies TileStoreCallbacks)
this.tileLayer = new TileLayer()
this.osmTileLayer = new TileLayer()
this.trackLayer = new TrackLayer()
this.gpsLayer = new GpsLayer()
this.tileRenderer = new WebGLTileRenderer(this.tileLayer, this.tileStore)
this.tileRenderer = new WebGLTileRenderer(this.tileLayer, this.tileStore, this.osmTileLayer, this.osmTileStore)
this.vectorRenderer = new WebGLVectorRenderer(this.trackLayer, this.gpsLayer)
this.scene = null
this.renderTimer = 0
@@ -94,6 +105,7 @@ export class WebGLMapRenderer implements MapRenderer {
this.vectorRenderer.destroy()
this.tileRenderer.destroy()
this.tileStore.destroy()
this.osmTileStore.destroy()
this.scene = null
}