feat: Add coordinate formatting utility and update project views
This commit is contained in:
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user