diff --git a/freedata_gui/package.json b/freedata_gui/package.json
index 300ff1f9..2567dd17 100644
--- a/freedata_gui/package.json
+++ b/freedata_gui/package.json
@@ -32,10 +32,12 @@
"chart.js": "^4.4.3",
"chartjs-plugin-annotation": "^3.0.1",
"core-js": "^3.8.3",
+ "d3": "^7.9.0",
"gridstack": "^10.3.0",
"js-image-compressor": "^2.0.0",
"pinia": "^2.1.7",
"qth-locator": "^2.1.0",
+ "topojson-client": "^3.1.0",
"uuid": "^10.0.0",
"vue": "^3.2.13",
"vue-chartjs": "^5.3.1",
diff --git a/freedata_gui/src/components/dynamic_components.vue b/freedata_gui/src/components/dynamic_components.vue
index 8aeb9790..5e432090 100644
--- a/freedata_gui/src/components/dynamic_components.vue
+++ b/freedata_gui/src/components/dynamic_components.vue
@@ -33,6 +33,7 @@ import grid_mycall_small from "./grid/grid_mycall small.vue";
import grid_scatter from "./grid/grid_scatter.vue";
import grid_stats_chart from "./grid/grid_stats_chart.vue";
import grid_swr_meter from "./grid/grid_swr_meter.vue";
+import grid_stations_map from "./grid/grid_stations_map.vue";
let count = ref(0);
let grid = null; // DO NOT use ref(null) as proxies GS will break all logic when comparing structures... see https://github.com/gridstack/gridstack.js/issues/2115
@@ -263,8 +264,17 @@ const gridWidgets = [
true,
"Rig",
21
+ ),
+ new gridWidget(
+ grid_stations_map,
+ { x: 16, y: 0, w: 8, h: 100 },
+ "Station Map",
+ true,
+ true,
+ "Other",
+ 22
)
- //Next new widget ID should be 22
+ //Next new widget ID should be 23
];
function updateFrequencyAndApply(frequency) {
diff --git a/freedata_gui/src/components/grid/grid_stations_map.vue b/freedata_gui/src/components/grid/grid_stations_map.vue
new file mode 100644
index 00000000..b96c37a4
--- /dev/null
+++ b/freedata_gui/src/components/grid/grid_stations_map.vue
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+