Skip to content

Commit 4a45d1a

Browse files
committed
fix heatmap
1 parent bc32706 commit 4a45d1a

2 files changed

Lines changed: 29 additions & 3 deletions

File tree

src/types/leaflet-heat.d.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
declare module "leaflet.heat" {
2+
import * as L from "leaflet";
3+
4+
interface HeatLayerOptions {
5+
radius?: number;
6+
blur?: number;
7+
maxZoom?: number;
8+
max?: number;
9+
minOpacity?: number;
10+
gradient?: { [key: string]: string };
11+
}
12+
13+
interface HeatLayer extends L.Layer {
14+
setLatLngs(latlngs: [number, number, number?][]): this;
15+
addLatLng(latlng: [number, number, number?]): this;
16+
setOptions(options: HeatLayerOptions): this;
17+
}
18+
19+
namespace L {
20+
function heatLayer(latlngs: [number, number, number?][], options?: HeatLayerOptions): HeatLayer;
21+
}
22+
}

src/ui/renderer.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type { Simulation } from "../core/simulation";
22
import * as L from "leaflet";
3-
import "leaflet.heat/dist/leaflet-heat.js";
43
import type { Station } from "../core/station";
54
import type { Rail } from "../core/rail";
65
import type { Train } from "../core/train";
@@ -132,9 +131,14 @@ export class Renderer {
132131
this.initialDraw();
133132
}
134133

135-
enableHeatmap() {
134+
async enableHeatmap() {
136135
if (this.heatmap === null) {
137-
this.heatmap = (L as any).heatLayer([], { radius: 50, blur: 50, maxZoom: 1 }).addTo(this.map);
136+
const heatModule = await import("leaflet.heat");
137+
let heatLayer =
138+
(L as any).heatLayer || (heatModule as any).heatLayer || (heatModule as any).default?.heatLayer;
139+
if (!heatLayer) heatLayer = (window as any).L?.heatLayer;
140+
if (!heatLayer) throw new Error("Could not find heatLayer function after importing leaflet.heat");
141+
this.heatmap = heatLayer.call(L, [], { radius: 50, blur: 50, maxZoom: 1 }).addTo(this.map);
138142
this.update();
139143
}
140144
}

0 commit comments

Comments
 (0)