feat: Add coordinate formatting utility and update project views

This commit is contained in:
Chop
2025-07-10 22:56:03 +02:00
parent 9c076f537e
commit 33ea8de17e
4 changed files with 44 additions and 35 deletions

View File

@@ -88,3 +88,42 @@ export const formatDateForInput = (date) => {
return "";
}
};
export const formatCoordinates = (coordinatesString) => {
if (!coordinatesString) return "";
try {
const [latStr, lngStr] = coordinatesString.split(",");
const lat = parseFloat(latStr.trim());
const lng = parseFloat(lngStr.trim());
if (isNaN(lat) || isNaN(lng)) {
return coordinatesString; // Return original if parsing fails
}
const formatDMS = (decimal, isLatitude) => {
const direction = isLatitude
? decimal >= 0
? "N"
: "S"
: decimal >= 0
? "E"
: "W";
const absolute = Math.abs(decimal);
const degrees = Math.floor(absolute);
const minutes = Math.floor((absolute - degrees) * 60);
const seconds = Math.round(((absolute - degrees) * 60 - minutes) * 60);
return `${direction}: ${degrees}°${minutes}'${seconds}"`;
};
const latDMS = formatDMS(lat, true);
const lngDMS = formatDMS(lng, false);
return `${latDMS}, ${lngDMS}`;
} catch (error) {
console.error("Error formatting coordinates:", error);
return coordinatesString;
}
};