Fix map centering to use calculated origin
Backend Changes: - Added OriginConfig struct to server package - Modified NewServer to accept origin configuration - Added /api/origin endpoint to serve origin data to frontend - Updated main.go to pass origin configuration to server Frontend Changes: - Modified initializeMap() to fetch origin from API before map creation - Updated initializeCoverageMap() to also use origin data - Added fallback coordinates in case API request fails - Maps now center on the calculated origin position instead of hardcoded coordinates The map now properly centers on the calculated average position of enabled sources (or manually configured origin), providing a much better user experience with appropriate regional view. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
5269da9cd3
commit
af9bf8ecac
3 changed files with 68 additions and 9 deletions
|
|
@ -100,8 +100,19 @@ class SkyView {
|
|||
}
|
||||
|
||||
// Map Initialization
|
||||
initializeMap() {
|
||||
this.map = L.map('map').setView([51.4700, -0.4600], 10);
|
||||
async initializeMap() {
|
||||
// Get origin from server
|
||||
let origin = { latitude: 51.4700, longitude: -0.4600 }; // fallback
|
||||
try {
|
||||
const response = await fetch('/api/origin');
|
||||
if (response.ok) {
|
||||
origin = await response.json();
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn('Could not fetch origin, using default:', error);
|
||||
}
|
||||
|
||||
this.map = L.map('map').setView([origin.latitude, origin.longitude], 10);
|
||||
|
||||
// Dark tile layer
|
||||
L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', {
|
||||
|
|
@ -117,9 +128,20 @@ class SkyView {
|
|||
document.getElementById('toggle-sources').addEventListener('click', () => this.toggleSources());
|
||||
}
|
||||
|
||||
initializeCoverageMap() {
|
||||
async initializeCoverageMap() {
|
||||
if (!this.coverageMap) {
|
||||
this.coverageMap = L.map('coverage-map').setView([51.4700, -0.4600], 10);
|
||||
// Get origin from server
|
||||
let origin = { latitude: 51.4700, longitude: -0.4600 }; // fallback
|
||||
try {
|
||||
const response = await fetch('/api/origin');
|
||||
if (response.ok) {
|
||||
origin = await response.json();
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn('Could not fetch origin for coverage map, using default:', error);
|
||||
}
|
||||
|
||||
this.coverageMap = L.map('coverage-map').setView([origin.latitude, origin.longitude], 10);
|
||||
|
||||
L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', {
|
||||
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue