Moar federation

This commit is contained in:
Tim Zöller 2025-12-03 20:33:09 +01:00
parent 889c5336bf
commit 09413bc7f3
2 changed files with 20 additions and 8 deletions

View file

@ -137,7 +137,8 @@ public class ActivityImageService {
// Draw track segments with privacy fade // Draw track segments with privacy fade
g2d.setStroke(new BasicStroke(4.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); g2d.setStroke(new BasicStroke(4.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
final double FADE_DISTANCE = 300.0; // 300 meters fade zone final double HIDDEN_DISTANCE = 100.0; // First/last 100m completely hidden
final double FADE_DISTANCE = 200.0; // Fade zone from 100m to 200m
for (int i = 0; i < trackPoints.size() - 1; i++) { for (int i = 0; i < trackPoints.size() - 1; i++) {
Map<String, Object> point1 = trackPoints.get(i); Map<String, Object> point1 = trackPoints.get(i);
@ -161,14 +162,25 @@ public class ActivityImageService {
// Calculate fade opacity (0.0 to 1.0) // Calculate fade opacity (0.0 to 1.0)
float opacity = 1.0f; float opacity = 1.0f;
if (distanceFromStart < FADE_DISTANCE) { // Hide first 100m completely, fade in from 100m to 200m
// Fade in from start if (distanceFromStart < HIDDEN_DISTANCE) {
opacity = Math.min(opacity, (float) (distanceFromStart / FADE_DISTANCE)); opacity = 0.0f;
} else if (distanceFromStart < FADE_DISTANCE) {
// Fade in from 100m to 200m
opacity = Math.min(opacity, (float) ((distanceFromStart - HIDDEN_DISTANCE) / (FADE_DISTANCE - HIDDEN_DISTANCE)));
} }
if (distanceFromEnd < FADE_DISTANCE) { // Hide last 100m completely, fade out from 200m to 100m before end
// Fade out at end if (distanceFromEnd < HIDDEN_DISTANCE) {
opacity = Math.min(opacity, (float) (distanceFromEnd / FADE_DISTANCE)); opacity = 0.0f;
} else if (distanceFromEnd < FADE_DISTANCE) {
// Fade out from 200m to 100m before end
opacity = Math.min(opacity, (float) ((distanceFromEnd - HIDDEN_DISTANCE) / (FADE_DISTANCE - HIDDEN_DISTANCE)));
}
// Skip completely transparent segments
if (opacity <= 0.0f) {
continue;
} }
// Apply opacity to track color // Apply opacity to track color

View file

@ -384,7 +384,7 @@
// Create map (needs to be done after container is visible) // Create map (needs to be done after container is visible)
setTimeout(() => { setTimeout(() => {
const map = FitPub.createActivityMap('activityMap', geoJson, { const map = FitPub.createActivityMap('activityMap', geoJson, {
showStartEnd: true, showStartEnd: false, // Privacy: Do not show start/end markers
fitBounds: true fitBounds: true
}); });