Add animated orienteering course overlays and labels

This commit is contained in:
2026-03-23 16:57:40 +08:00
parent cb190f3c66
commit 3b4b3ee3ec
11 changed files with 902 additions and 13 deletions

View File

@@ -2,6 +2,7 @@ import { type CameraState } from '../camera/camera'
import { type TileStoreStats } from '../tile/tileStore'
import { type LonLatPoint, type MapCalibration } from '../../utils/projection'
import { type TileZoomBounds } from '../../utils/remoteMapConfig'
import { type OrienteeringCourseData } from '../../utils/orienteeringCourse'
export interface MapScene {
tileSource: string
@@ -26,6 +27,8 @@ export interface MapScene {
gpsPoint: LonLatPoint | null
gpsCalibration: MapCalibration
gpsCalibrationOrigin: LonLatPoint
course: OrienteeringCourseData | null
cpRadiusMeters: number
osmReferenceEnabled: boolean
overlayOpacity: number
}
@@ -33,7 +36,7 @@ export interface MapScene {
export type MapRendererStats = TileStoreStats
export interface MapRenderer {
attachCanvas(canvasNode: any, width: number, height: number, dpr: number): void
attachCanvas(canvasNode: any, width: number, height: number, dpr: number, labelCanvasNode?: any): void
updateScene(scene: MapScene): void
setAnimationPaused(paused: boolean): void
destroy(): void