Run

$AlbumDirectory="C:\\drorbn\\Album\\2026.08.29_Utrecht_-_Naarden_-_Almere_Paddle_and_Ride";

res=800;
fs=FileNames[$AlbumDirectory<>"/*.gpx"];
fs=Complement[fs,
Union[
StringReplace[{"@.gpx"->".gpx", "@.kml"->".kml"}]/@Select[fs,StringPart[#,-5]=="@"&]
]
]
data=DeleteCases[
Union@Table["Geometry"/.Import[f,"Data"],{f,fs}],
GeoPosition[{_,None}], ∞
];
map0=GeoGraphics[{Red,data},GeoScaleBar->"Kilometers", ImageSize ->res];
AllTracks=Get["C:\\drorbn\\Album/Summaries/AllTracks.m"];

Rasterize[
map=GeoGraphics[{Thickness[0.0016], Blue, AllTracks,Thickness[0.0024], Red,data},
GeoScaleBar->"Kilometers",
ImageSize ->res,
GeoRange->(GeoRange/.Options[map0])
],
RasterSize ->res
]
Export[$AlbumDirectory<>"/Path%.png",map];

map3D=Echo@ResourceFunction["GeoElevationGraphics3D"][
{Thick, Blue, AllTracks,Red,data},
GeoGridRangePadding->0,
GeoScaleBar->"Kilometers",
ImageSize ->res,
GeoRange->(GeoRange/.Options[map0])
];
Export[$AlbumDirectory<>"/Path3D.png",map3D]

PathsLocation=Module[{R=3000,r=35,n=6,res=1000},
ImageAssemble[
Partition[#,3]&@Table[
Rasterize[
GeoGraphics[{Blue, Thickness[(2n-k)/4000],AllTracks, Red,Thickness[(2n-k)/1500],data},
GeoCenter->Mean[Join@@Cases[data,GeoPosition[l_List]:>l,∞]] ,
GeoRange->Quantity[R(((r/R))^((k-1)/(n-1))),"Kilometers"],
GeoScaleBar->"Kilometers",
ImageSize->res
],
RasterSize->res
],
{k,n}],
"Fit",Background -> White]
]
Export[$AlbumDirectory<>"/PathsLocation.png",PathsLocation]

Path With Images

imgs=FileNames["*.jpg",$AlbumDirectory];
map=GeoGraphics[{
GeoMarker[
GeoPosition[{1,-1}*Lookup[Import[#,"Exif"],{"GPSLatitude","GPSLongitude"}]], Graphics@Rasterize[Import[#],RasterSize ->res],
"Scale"->0.0075
]& /@ imgs,
Thickness[0.0016], Blue, AllTracks,Thickness[0.0024], Red,data
},
GeoScaleBar->"Kilometers",
ImageSize ->res,
GeoRange->(GeoRange/.Options[map0])
]
Export[$AlbumDirectory<>"/PathWithImages.png",map]

Image Directory

If[Head[PensieveDirectives]===List, ImageComments="ImageComments"/.PensieveDirectives,ImageComments={}];
(Interpretation[ImageResize[Import@#,400],FileNameTake@#]->(FileNameTake[#]/.ImageComments/.(FileNameTake[#]->"")))&/@FileNames["*.jpg"|"*.jpeg"|"*.png"|"*.mp4", $AlbumDirectory]

Export

With Roland, a 15.7km paddle in the Utrecht canals in rented kayaks, and then 59.8km by bike to Naarden and then to Almere (plus about 4.5km before the paddle and in Groningen), with me riding <a href=../Equipment/Bromp/index.html>Bromp</a> and Roland riding his green Brompton. One unintentional flop into the water by me, several super low bridges that we barely barely passed under (Roland had to swim under a couple of them), 4 windmills, and a drizzle through most of the biking part. A great day!
<p>The best were the Utrecht canals. But Naarden was a bit disappointing - the geometry of the fortifications is amazing, but the scale is so large, and the grounds so flat, that when you’re on the ground you actually can’t see the geometry.

PensieveDirectives={
"TitleNotes" -> "With Roland, a 15.7km paddle in the Utrecht canals in rented kayaks, and then 59.8km by bike to Naarden and then to Almere (plus about 4.5km before the paddle and in Groningen), with me riding <a href=../Equipment/Bromp/index.html>Bromp</a> and Roland riding his green Brompton. One unintentional flop into the water by me, several super low bridges that we barely barely passed under (Roland had to swim under a couple of them), 4 windmills, and a drizzle through most of the biking part. A great day!
<p>The best were the Utrecht canals. <a class=external href=https://velvetescape.com/plane-views-naarden-vesting/>Naarden</a> was a bit disappointing - the geometry of the fortifications is amazing, but the scale is so large, and the grounds so flat, that when you're on the ground you actually can't see the geometry.",
"ImageComments" ->{}
}