diff options
Diffstat (limited to 'ride/index.go')
| -rw-r--r-- | ride/index.go | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/ride/index.go b/ride/index.go deleted file mode 100644 index 17564ca..0000000 --- a/ride/index.go +++ /dev/null @@ -1,36 +0,0 @@ -package ride - -import "github.com/jftuga/geodist" - -type RideClimbsIndex interface { - Insert(ride Ride) - Similar(ride Ride, climb Climb) []Climb -} - -type FlatRideClimbsIndex struct { - sensitivity float64 - climbs []Climb -} - -func NewFlatRideClimbsIndex(sensitivity float64) *FlatRideClimbsIndex { - return &FlatRideClimbsIndex{ - climbs: make([]Climb, 0), - sensitivity: sensitivity, - } -} - -func (index *FlatRideClimbsIndex) Insert(ride Ride) { - index.climbs = append(index.climbs, ride.AllClimbs()...) -} - -func (index *FlatRideClimbsIndex) Similar(ride Ride, climb Climb) []Climb { - results := make([]Climb, 0) - for _, c := range index.climbs { - _, startDistance := geodist.HaversineDistance(c.ride.Coord(c.StartIndex()), climb.ride.Coord(climb.StartIndex())) - _, endDistance := geodist.HaversineDistance(c.ride.Coord(c.EndIndex()), climb.ride.Coord(climb.EndIndex())) - if startDistance <= index.sensitivity/1000 && endDistance <= index.sensitivity/1000 { - results = append(results, c) - } - } - return results -} |
