Ignore:
Timestamp:
2009-09-16T21:40:57+02:00 (10 years ago)
Author:
Gubaer
Message:

applied #3526: patch by glebius@...: be more verbose about available traces in GPX layer

Location:
trunk/src/org/openstreetmap/josm/data/gpx
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/gpx/GpxData.java

    r2017 r2151  
    119119        WayPoint last = null;
    120120
    121         for (GpxTrack trk : tracks) {
    122             for (Collection<WayPoint> trkseg : trk.trackSegs) {
    123                 for (WayPoint tpt : trkseg) {
    124                     if(last != null){
    125                         Double d = last.getCoor().greatCircleDistance(tpt.getCoor());
    126                         if(!d.isNaN() && !d.isInfinite())
    127                           result += d;
    128                     }
    129                     last = tpt;
    130                 }
    131                 last = null; // restart for each track segment
    132             }
    133         }
     121        for (GpxTrack trk : tracks)
     122            result += trk.length();
     123
    134124        return result;
    135125    }
  • trunk/src/org/openstreetmap/josm/data/gpx/GpxTrack.java

    r1169 r2151  
    1010    public Collection<Collection<WayPoint>> trackSegs
    1111        = new LinkedList<Collection<WayPoint>>();
     12
     13    /**
     14     * calculates the length of the track
     15     */
     16    public double length(){
     17        double result = 0.0; // in meters
     18        WayPoint last = null;
     19
     20        for (Collection<WayPoint> trkseg : trackSegs) {
     21            for (WayPoint tpt : trkseg) {
     22                if(last != null){
     23                    Double d = last.getCoor().greatCircleDistance(tpt.getCoor());
     24                    if(!d.isNaN() && !d.isInfinite())
     25                        result += d;
     26                }
     27                last = tpt;
     28            }
     29            last = null; // restart for each track segment
     30        }
     31        return result;
     32    }
    1233}
Note: See TracChangeset for help on using the changeset viewer.