szczanieckiej.git

commit 94bc83159cea8c405ea8be4e3bd2ffcb12cc3cdc

Author: Adam Evyčędo <git@apiote.xyz>

put headsigns and line graphs in the same order into lines when converting

 traffic/convert.go | 29 +++++++++++++++++++----------


diff --git a/traffic/convert.go b/traffic/convert.go
index b5510c836411f1f36ee1b8c4d4f56ca5f6223a24..3a929614cb729449ea965121752188ebc8a0b5e4 100644
--- a/traffic/convert.go
+++ b/traffic/convert.go
@@ -1158,16 +1158,16 @@ 		}
 	}
 
 	c.LineGraphs = map[string]map[uint]LineGraph{}
-	for k, v := range graphs {
-		c.LineGraphs[k] = map[uint]LineGraph{}
-		for kk, vv := range v {
-			c.LineGraphs[k][kk] = LineGraph{
-				StopCodes: vv.StopCodesArray,
+	for lineName, graphByDirection := range graphs {
+		c.LineGraphs[lineName] = map[uint]LineGraph{}
+		for direction, graph := range graphByDirection {
+			c.LineGraphs[lineName][direction] = LineGraph{
+				StopCodes: graph.StopCodesArray,
 				NextNodes: map[int][]int{},
 			}
-			for from, tos := range vv.NextNodes {
+			for from, tos := range graph.NextNodes {
 				for to := range tos {
-					c.LineGraphs[k][kk].NextNodes[from] = append(c.LineGraphs[k][kk].NextNodes[from], to)
+					c.LineGraphs[lineName][direction].NextNodes[from] = append(c.LineGraphs[lineName][direction].NextNodes[from], to)
 				}
 			}
 		}
@@ -1230,9 +1230,18 @@ 		if colour == "" {
 			colour = "ffffff"
 		}
 
+		directions := []uint{}
+		for direction := range c.lineHeadsigns[lineName] {
+			directions = append(directions, direction)
+		}
+		sort.Slice(directions, func(i, j int) bool {
+			return directions[i] < directions[j]
+		})
+
 		headsigns := [][]string{}
 		translatedHeadsigns := [][][]Translation{}
-		for _, dirHeadsigns := range c.lineHeadsigns[lineName] {
+		for _, direction := range directions {
+			dirHeadsigns := c.lineHeadsigns[lineName][direction]
 			headsigns = append(headsigns, dirHeadsigns)
 			translatedHeadsign := [][]Translation{}
 			for _, headsign := range dirHeadsigns {
@@ -1242,8 +1251,8 @@ 			translatedHeadsigns = append(translatedHeadsigns, translatedHeadsign)
 		}
 
 		graphs := []LineGraph{}
-		for _, graph := range c.LineGraphs[lineName] {
-			graphs = append(graphs, graph)
+		for _, direction := range directions {
+			graphs = append(graphs, c.LineGraphs[lineName][direction])
 		}
 
 		line := Line{