diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2020-01-25 14:41:33 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2020-01-25 14:41:33 +0100 | 
| commit | ee1285e8fa684c35b62dd32854f66515cd62a269 (patch) | |
| tree | 36ea252e1b6719848556a31766ec01f635e9a6c3 | |
| parent | 8157f3885496ed6949152f17b19ad4090217cc37 (diff) | |
map: support multiple polyline groups with different colors
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 11 | ||||
| -rw-r--r-- | templates/_map.html.ep | 23 | ||||
| -rw-r--r-- | templates/history_map.html.ep | 2 | 
3 files changed, 24 insertions, 12 deletions
| diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index 70d701b..198d66e 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -446,7 +446,7 @@ sub map_history {  			template            => 'history_map',  			with_map            => 1,  			station_coordinates => [], -			station_pairs       => [], +			polyline_groups     => [],  		);  		return;  	} @@ -528,7 +528,14 @@ sub map_history {  		template            => 'history_map',  		with_map            => 1,  		station_coordinates => \@station_coordinates, -		station_pairs       => \@station_pairs, +		polyline_groups     => [ +			{ +				polylines  => \@station_pairs, +				color      => '#673ab7', +				opacity    => 0.6, +				fit_bounds => 1, +			} +		]  	);  } diff --git a/templates/_map.html.ep b/templates/_map.html.ep index 16718fb..119e29f 100644 --- a/templates/_map.html.ep +++ b/templates/_map.html.ep @@ -25,16 +25,21 @@ var stations = [  % }  ]; -var routes = [ -% for my $pair ( @{stash('station_pairs') // [] } ) { -[[<%= $pair->[0][0] %>,<%= $pair->[0][1] %>],[<%= $pair->[1][0] %>,<%= $pair->[1][1] %>]], +var routes = []; +var pl; +% for my $line_group ( @{ stash('polyline_groups') // [] } ) { +	routes = [ +		% for my $pair ( @{$line_group->{polylines} // []} ) { +			[[<%= $pair->[0][0] %>,<%= $pair->[0][1] %>],[<%= $pair->[1][0] %>,<%= $pair->[1][1] %>]], +		% } +	]; +	pl = L.polyline(routes, {color: '<%= $line_group->{color} %>', opacity: <%= $line_group->{opacity} %>}).addTo(map); +	% if ($line_group->{fit_bounds}) { +		if (routes.length) { +			map.fitBounds(pl.getBounds()); +		} +	% }  % } -]; - -var pl = L.polyline(routes, {color: '#673ab7', opacity: 0.6}).addTo(map); -if (routes.length) { -	map.fitBounds(pl.getBounds()); -}  for (var station_id in stations) {  	L.circle(stations[station_id][0], { diff --git a/templates/history_map.html.ep b/templates/history_map.html.ep index 7bda06b..747912f 100644 --- a/templates/history_map.html.ep +++ b/templates/history_map.html.ep @@ -9,7 +9,7 @@  	</div>  </div> -%= include '_map', station_coordinates => $station_coordinates, station_pairs => $station_pairs +%= include '_map', station_coordinates => $station_coordinates, polyline_groups => $polyline_groups  %= form_for '/history/map' => (method => 'POST') => begin  	%= csrf_field | 
