diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index a3d5e67..3c4a8d7 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -431,7 +431,7 @@ sub map_history { push( @stations, uniq map { $_->{from_name} } @journeys ); @stations = uniq @stations; my @station_coordinates - = map { $location{$_} } grep { exists $location{$_} } @stations; + = map { [ $location{$_}, $_ ] } grep { exists $location{$_} } @stations; my @uniq_by_route = uniq_by { join( '|', map { $_->[0] } @{ $_->{route} } ) diff --git a/templates/map.html.ep b/templates/map.html.ep index 1930e51..707b28e 100644 --- a/templates/map.html.ep +++ b/templates/map.html.ep @@ -14,7 +14,7 @@ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { var stations = [ % for my $station ( @{stash('station_coordinates') // [] } ) { -[<%= $station->[0] %>,<%= $station->[1] %>], +[[<%= $station->[0][0] %>,<%= $station->[0][1] %>],'<%= $station->[1] %>'], % } ]; @@ -25,14 +25,17 @@ var routes = [ ]; for (var station_id in stations) { - L.circle(stations[station_id], { + L.circle(stations[station_id][0], { color: '#f03', fillColor: '#f03', fillOpacity: 0.5, - radius: 100 - }).addTo(map); + radius: 250 + }).bindPopup(stations[station_id][1]).addTo(map); } -L.polyline(routes, {color: '#f09', opacity: 0.5}).addTo(map); +var pl = L.polyline(routes, {color: '#f09', opacity: 0.5}).addTo(map); +if (routes.length) { + map.fitBounds(pl.getBounds()); +}