Changeset 14456 in josm for trunk/src/org/openstreetmap/josm/data/gpx/GpxData.java
- Timestamp:
- 2018-11-27T21:40:10+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/gpx/GpxData.java
r14451 r14456 9 9 import java.util.Collections; 10 10 import java.util.Date; 11 import java.util.DoubleSummaryStatistics;12 11 import java.util.HashMap; 13 12 import java.util.HashSet; 14 13 import java.util.Iterator; 15 14 import java.util.List; 15 import java.util.LongSummaryStatistics; 16 16 import java.util.Map; 17 17 import java.util.NoSuchElementException; … … 175 175 Date prevWpTime = null; 176 176 for (WayPoint wp : wpsOld) { 177 Date wpTime = wp. setTimeFromAttribute();177 Date wpTime = wp.getDate(); 178 178 boolean overlap = false; 179 179 if (wpTime != null) { … … 267 267 268 268 GpxTrackSegmentSpan(WayPoint a, WayPoint b) { 269 Date at = a.get Time();270 Date bt = b.get Time();269 Date at = a.getDate(); 270 Date bt = b.getDate(); 271 271 inv = bt.before(at); 272 272 if (inv) { … … 324 324 List<WayPoint> wps = new ArrayList<>(seg.getWayPoints()); 325 325 for (int i = forward ? 0 : wps.size() - 1; i >= 0 && i < wps.size(); i += forward ? 1 : -1) { 326 if (wps.get(i). setTimeFromAttribute() != null) {326 if (wps.get(i).hasDate()) { 327 327 return wps.get(i); 328 328 } … … 691 691 */ 692 692 public static Date[] getMinMaxTimeForTrack(GpxTrack trk) { 693 final DoubleSummaryStatistics statistics = trk.getSegments().stream()693 final LongSummaryStatistics statistics = trk.getSegments().stream() 694 694 .flatMap(seg -> seg.getWayPoints().stream()) 695 .mapTo Double(pnt -> pnt.time)695 .mapToLong(pnt -> pnt.getTimeInMillis()) 696 696 .summaryStatistics(); 697 697 return statistics.getCount() == 0 698 698 ? null 699 : new Date[]{new Date( (long) (statistics.getMin()* 1000)), new Date((long)(statistics.getMax() * 1000))};699 : new Date[]{new Date(statistics.getMin()), new Date(statistics.getMax())}; 700 700 } 701 701 … … 708 708 */ 709 709 public synchronized Date[] getMinMaxTimeForAllTracks() { 710 doublenow = System.currentTimeMillis()/ 1000.0;711 final DoubleSummaryStatistics statistics = tracks.stream()710 long now = System.currentTimeMillis(); 711 final LongSummaryStatistics statistics = tracks.stream() 712 712 .flatMap(trk -> trk.getSegments().stream()) 713 713 .flatMap(seg -> seg.getWayPoints().stream()) 714 .mapTo Double(pnt -> pnt.time)714 .mapToLong(pnt -> pnt.getTimeInMillis()) 715 715 .filter(t -> t > 0 && t <= now) 716 716 .summaryStatistics(); 717 717 return statistics.getCount() == 0 718 718 ? new Date[0] 719 : new Date[]{new Date( (long) (statistics.getMin()* 1000)), new Date((long)(statistics.getMax() * 1000))};719 : new Date[]{new Date(statistics.getMin()), new Date(statistics.getMax())}; 720 720 } 721 721 … … 755 755 double pnminsq = tolerance * tolerance; 756 756 EastNorth bestEN = null; 757 double bestTime = 0.0;757 double bestTime = Double.NaN; 758 758 double px = p.east(); 759 759 double py = p.north(); … … 774 774 pnminsq = pRsq; 775 775 bestEN = en; 776 bestTime = r.time; 776 if (r.hasDate()) { 777 bestTime = r.getTime(); 778 } 777 779 } 778 780 } else { … … 800 802 double ny = ry + rnoverRS * a; 801 803 bestEN = new EastNorth(nx, ny); 802 bestTime = r.time + rnoverRS * (wpSeg.time - r.time); 804 if (r.hasDate() && wpSeg.hasDate()) { 805 bestTime = r.getTime() + rnoverRS * (wpSeg.getTime() - r.getTime()); 806 } 803 807 pnminsq = pnsq; 804 808 } … … 820 824 pnminsq = prsq; 821 825 bestEN = c; 822 bestTime = r.time; 826 if (r.hasDate()) { 827 bestTime = r.getTime(); 828 } 823 829 } 824 830 } … … 828 834 return null; 829 835 WayPoint best = new WayPoint(ProjectionRegistry.getProjection().eastNorth2latlon(bestEN)); 830 best.time = bestTime; 836 if (!Double.isNaN(bestTime)) { 837 best.setTimeInMillis((long) (bestTime * 1000)); 838 } 831 839 return best; 832 840 }
Note:
See TracChangeset
for help on using the changeset viewer.
