Skip to content

Commit 7c123b7

Browse files
authored
Merge pull request #55 from pfeiferj/one-way-speed-fixes
fix one way and next speed limits
2 parents c8731b5 + ba95bfa commit 7c123b7

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

mapd.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,6 @@ func loop(state *State) {
174174
err = PutParam(ROAD_NAME, []byte(RoadName(state.CurrentWay.Way)))
175175
logwe(errors.Wrap(err, "could not write road name"))
176176

177-
data, err = json.Marshal(state.CurrentWay.Way.MaxSpeed())
178-
logde(errors.Wrap(err, "could not marshal speed limit"))
179-
err = PutParam(MAP_SPEED_LIMIT, data)
180-
logwe(errors.Wrap(err, "could not write speed limit"))
181-
182177
data, err = json.Marshal(state.CurrentWay.Way.AdvisorySpeed())
183178
logde(errors.Wrap(err, "could not marshal advisory speed limit"))
184179
err = PutParam(MAP_ADVISORY_LIMIT, data)
@@ -232,18 +227,24 @@ func loop(state *State) {
232227
} else if !state.CurrentWay.OnWay.IsForward && state.CurrentWay.Way.MaxSpeedBackward() > 0 {
233228
currentMaxSpeed = state.CurrentWay.Way.MaxSpeedBackward()
234229
}
230+
231+
data, err = json.Marshal(currentMaxSpeed)
232+
logde(errors.Wrap(err, "could not marshal speed limit"))
233+
err = PutParam(MAP_SPEED_LIMIT, data)
234+
logwe(errors.Wrap(err, "could not write speed limit"))
235+
235236
nextMaxSpeed := currentMaxSpeed
236237
nextSpeedWay := state.NextWays[0]
237238
for _, nextWay := range state.NextWays {
238-
if nextMaxSpeed == currentMaxSpeed {
239+
nextMaxSpeed = nextWay.Way.MaxSpeed()
240+
if nextWay.IsForward && nextWay.Way.MaxSpeedForward() > 0 {
241+
nextMaxSpeed = nextWay.Way.MaxSpeedForward()
242+
} else if !nextWay.IsForward && nextWay.Way.MaxSpeedBackward() > 0 {
243+
nextMaxSpeed = nextWay.Way.MaxSpeedBackward()
244+
}
245+
if nextMaxSpeed != currentMaxSpeed {
239246
nextSpeedWay = nextWay
240-
nextMaxSpeed = nextWay.Way.MaxSpeed()
241-
if nextWay.IsForward && nextWay.Way.MaxSpeedForward() > 0 {
242-
nextMaxSpeed = nextWay.Way.MaxSpeedForward()
243-
} else if !nextWay.IsForward && nextWay.Way.MaxSpeedBackward() > 0 {
244-
nextMaxSpeed = nextWay.Way.MaxSpeedBackward()
245-
}
246-
247+
break
247248
}
248249
}
249250
data, err = json.Marshal(NextSpeedLimit{

0 commit comments

Comments
 (0)