Allow segments with no routes
This commit is contained in:
		
							parent
							
								
									b67543cc0c
								
							
						
					
					
						commit
						76a187bbb6
					
				|  | @ -23,15 +23,31 @@ h0NmFsdzQ3emxqIn0.cyxF0h36emIMTk3cc4VqUw`; | |||
| 
 | ||||
| const network = require('../tam/network.json'); | ||||
| 
 | ||||
| const getRouteColors = routes => | ||||
| { | ||||
|     const colors = routes.filter( | ||||
|         // Only consider normal routes (excluding alternate routes)
 | ||||
|         ([lineRef, routeRef]) => | ||||
|         network.lines[lineRef].routes[routeRef].state === 'normal' | ||||
|     ).map(([lineRef]) => network.lines[lineRef].color); | ||||
| 
 | ||||
|     if (colors.length >= 1) | ||||
|     { | ||||
|         return colors; | ||||
|     } | ||||
| 
 | ||||
|     return ['#FFFFFF']; | ||||
| }; | ||||
| 
 | ||||
| const makeDataSources = async () => | ||||
| { | ||||
|     const segmentsSource = new VectorSource(); | ||||
|     const stopsSource = new VectorSource(); | ||||
| 
 | ||||
|     segmentsSource.addFeatures( | ||||
|         Object.values(network.segments).map(({lines, points}) => | ||||
|         Object.values(network.segments).map(({routes, points}) => | ||||
|             new Feature({ | ||||
|                 colors: lines.map(line => network.lines[line].color), | ||||
|                 colors: getRouteColors(routes), | ||||
|                 geometry: new LineString(points.map( | ||||
|                     ({lat, lon}) => proj.fromLonLat([lon, lat]) | ||||
|                 )), | ||||
|  | @ -40,9 +56,9 @@ const makeDataSources = async () => | |||
|     ); | ||||
| 
 | ||||
|     stopsSource.addFeatures( | ||||
|         Object.values(network.stops).map(({lines, lon, lat}) => | ||||
|         Object.values(network.stops).map(({routes, lon, lat}) => | ||||
|             new Feature({ | ||||
|                 colors: lines.map(line => network.lines[line].color), | ||||
|                 colors: getRouteColors(routes), | ||||
|                 geometry: new Point(proj.fromLonLat([lon, lat])), | ||||
|             }) | ||||
|         ) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue