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{