Changeset 16438 in josm for trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
- Timestamp:
- 2020-05-17T14:18:22+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
r15848 r16438 71 71 import org.openstreetmap.josm.data.gpx.GpxData; 72 72 import org.openstreetmap.josm.data.gpx.GpxImageCorrelation; 73 import org.openstreetmap.josm.data.gpx.GpxImageEntry; 73 74 import org.openstreetmap.josm.data.gpx.GpxTimeOffset; 74 75 import org.openstreetmap.josm.data.gpx.GpxTimezone; 75 import org.openstreetmap.josm.data.gpx.IGpxTrack;76 import org.openstreetmap.josm.data.gpx.IGpxTrackSegment;77 76 import org.openstreetmap.josm.data.gpx.WayPoint; 78 77 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor; … … 1263 1262 long firstExifDate = imgs.get(0).getExifTime().getTime(); 1264 1263 1265 long firstGPXDate = -1;1266 1264 // Finds first GPX point 1267 outer: for (IGpxTrack trk : gpx.tracks) { 1268 for (IGpxTrackSegment segment : trk.getSegments()) { 1269 for (WayPoint curWp : segment.getWayPoints()) { 1270 if (curWp.hasDate()) { 1271 firstGPXDate = curWp.getTimeInMillis(); 1272 break outer; 1273 } 1274 } 1275 } 1276 } 1277 1278 if (firstGPXDate < 0) { 1279 throw new NoGpxTimestamps(); 1280 } 1265 long firstGPXDate = gpx.tracks.stream() 1266 .flatMap(trk -> trk.getSegments().stream()) 1267 .flatMap(segment -> segment.getWayPoints().stream()) 1268 .filter(WayPoint::hasDate) 1269 .map(WayPoint::getTimeInMillis) 1270 .findFirst() 1271 .orElseThrow(NoGpxTimestamps::new); 1281 1272 1282 1273 return GpxTimeOffset.milliseconds(firstExifDate - firstGPXDate).splitOutTimezone(); … … 1339 1330 */ 1340 1331 private List<ImageEntry> getSortedImgList(boolean exif, boolean tagged) { 1341 List<ImageEntry> dateImgLst = new ArrayList<>(yLayer.getImageData().getImages().size()); 1342 for (ImageEntry e : yLayer.getImageData().getImages()) { 1343 if (!e.hasExifTime()) { 1344 continue; 1345 } 1346 1347 if (e.getExifCoor() != null && !exif) { 1348 continue; 1349 } 1350 1351 if (!tagged && e.isTagged() && e.getExifCoor() == null) { 1352 continue; 1353 } 1354 1355 dateImgLst.add(e); 1356 } 1357 1358 dateImgLst.sort(Comparator.comparing(ImageEntry::getExifTime)); 1359 1360 return dateImgLst; 1332 return yLayer.getImageData().getImages().stream() 1333 .filter(GpxImageEntry::hasExifTime) 1334 .filter(e -> e.getExifCoor() == null || exif) 1335 .filter(e -> tagged || !e.isTagged() || e.getExifCoor() != null) 1336 .sorted(Comparator.comparing(ImageEntry::getExifTime)) 1337 .collect(Collectors.toList()); 1361 1338 } 1362 1339
Note:
See TracChangeset
for help on using the changeset viewer.