From 02a15dc6555fea54baa5eea94601433f4887a768 Mon Sep 17 00:00:00 2001 From: luen Date: Wed, 11 Nov 2026 09:16:47 +1000 Subject: [PATCH 1/4] Charts: map shark moves between nurseries (#173) /recaptures gets a map with one line per nursery pair and species (width = moves, both directions pooled) over circles sized by same-nursery recaptures; sharks with identity conflicts are left out. Each shark's page joins consecutive captures at different nurseries and lists capture numbers per site. Copy says the lines join capture sites, not the route swum. InteractiveMap gains toggleable line layers and MooreaMap draws lines in the server-rendered fallback; both offer them as CSV. Co-Authored-By: Claude Opus 5.5 --- src/lib/components/InteractiveMap.svelte | 107 +++++++++++++++++++---- src/lib/components/MooreaMap.svelte | 52 +++++++++++ src/routes/recaptures/+page.server.ts | 58 ++++++++++++ src/routes/recaptures/+page.svelte | 30 +++++++ src/routes/sharks/[id]/+page.server.ts | 20 ++++- src/routes/sharks/[id]/+page.svelte | 14 ++- 6 files changed, 262 insertions(+), 19 deletions(-) diff --git a/src/lib/components/InteractiveMap.svelte b/src/lib/components/InteractiveMap.svelte index 2fdeb6f..78aca48 100644 --- a/src/lib/components/InteractiveMap.svelte +++ b/src/lib/components/InteractiveMap.svelte @@ -1,5 +1,12 @@ {#if ready} @@ -189,7 +241,14 @@ >

Drag to pan, use + / − to zoom. Select a circle for details.

{:else} - + g.lines.map((l) => ({ ...l, color: g.color })))} + {lineLabel} + {valueLabel} + {format} + csv={false} + /> {/if}