Suppress duplicates in the output
This commit is contained in:
parent
bc6affbce1
commit
34bdaeab71
1 changed files with 3 additions and 1 deletions
|
@ -63,6 +63,7 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func findDuplicates(points []RoutePoint, fuzz, minDist, maxDist float64) {
|
func findDuplicates(points []RoutePoint, fuzz, minDist, maxDist float64) {
|
||||||
|
var lastError *RoutePoint
|
||||||
for i := range points {
|
for i := range points {
|
||||||
p := points[i]
|
p := points[i]
|
||||||
for j := i + 1; j < len(points); j++ {
|
for j := i + 1; j < len(points); j++ {
|
||||||
|
@ -72,7 +73,8 @@ func findDuplicates(points []RoutePoint, fuzz, minDist, maxDist float64) {
|
||||||
}
|
}
|
||||||
d := euclideanDistance(p.Coordinate, q.Coordinate)
|
d := euclideanDistance(p.Coordinate, q.Coordinate)
|
||||||
D := q.Distance - p.Distance
|
D := q.Distance - p.Distance
|
||||||
if d < fuzz && D > minDist && D < maxDist {
|
if d < fuzz && D > minDist && D < maxDist && (lastError == nil || p.Distance-lastError.Distance > 500) {
|
||||||
|
lastError = &p
|
||||||
fmt.Printf("Point (%0.f, %0.f) revisited at %0.2f km and %0.2f km\n",
|
fmt.Printf("Point (%0.f, %0.f) revisited at %0.2f km and %0.2f km\n",
|
||||||
p.Coordinate.Easting, p.Coordinate.Northing, p.Distance/1000.0, q.Distance/1000.0)
|
p.Coordinate.Easting, p.Coordinate.Northing, p.Distance/1000.0, q.Distance/1000.0)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue