Fix Weather API access

This commit is contained in:
Tim Zöller 2026-01-04 07:46:07 +01:00
parent 9f13e89632
commit b5164c9617
4 changed files with 11 additions and 3 deletions

View file

@ -27,9 +27,15 @@ public class ActivityMetrics {
@JoinColumn(name = "activity_id", nullable = false)
private Activity activity;
/**
* Average speed in km/h (converted from m/s in FitParser/GpxParser).
*/
@Column(name = "average_speed", precision = 8, scale = 2)
private BigDecimal averageSpeed;
/**
* Maximum speed in km/h (converted from m/s in FitParser/GpxParser).
*/
@Column(name = "max_speed", precision = 8, scale = 2)
private BigDecimal maxSpeed;

View file

@ -49,6 +49,7 @@ public class ParsedActivityData {
private Integer heartRate;
private Integer cadence;
private Integer power;
/** Speed in km/h (converted from m/s in FitParser/GpxParser). */
private BigDecimal speed;
private BigDecimal temperature;
private BigDecimal distance;

View file

@ -194,8 +194,8 @@ function createActivityMap(containerId, geoJsonData, options = {}) {
popupContent += `<strong>Heart Rate:</strong> ${props.heartRate} bpm<br>`;
}
if (props.speed !== undefined) {
const speedKmh = props.speed * 3.6;
popupContent += `<strong>Speed:</strong> ${speedKmh.toFixed(2)} km/h<br>`;
// Speed is already in km/h from backend (converted in FitParser)
popupContent += `<strong>Speed:</strong> ${props.speed.toFixed(2)} km/h<br>`;
}
if (props.elevation !== undefined) {
popupContent += `<strong>Elevation:</strong> ${props.elevation.toFixed(1)} m<br>`;

View file

@ -487,9 +487,10 @@
}
// Additional Metrics (conditional)
// Note: averageSpeed is already in km/h from backend (converted in FitParser)
if (activity.averageSpeed) {
document.getElementById('metricAvgSpeedContainer').style.display = 'block';
document.getElementById('metricAvgSpeed').textContent = (activity.averageSpeed * 3.6).toFixed(1) + ' km/h';
document.getElementById('metricAvgSpeed').textContent = parseFloat(activity.averageSpeed).toFixed(1) + ' km/h';
}
if (activity.averageHeartRate) {
document.getElementById('metricAvgHRContainer').style.display = 'block';