diff --git a/src/main/java/no/nibio/vips/gis/GISUtil.java b/src/main/java/no/nibio/vips/gis/GISUtil.java index b50d7b0c2de77fd247b97a15d3a386739d2a0956..a009737be501ef04ea8fe917062855dcfe523456 100644 --- a/src/main/java/no/nibio/vips/gis/GISUtil.java +++ b/src/main/java/no/nibio/vips/gis/GISUtil.java @@ -252,4 +252,19 @@ public class GISUtil { }; return gf.createPolygon(coords); } + + public Coordinate convertCoordinate(Coordinate coordinate, String fromProjection, String toProjection) + { + try + { + CoordinateReferenceSystem fromCRS = CRS.decode(fromProjection); + CoordinateReferenceSystem toCRS = CRS.decode(toProjection); + MathTransform transform = CRS.findMathTransform(fromCRS, toCRS, true); + return (Coordinate) JTS.transform(coordinate, new Coordinate(), transform); + } + catch(FactoryException | TransformException ex) + { + return null; + } + } } diff --git a/src/main/java/no/nibio/vips/util/DateTimeInterval.java b/src/main/java/no/nibio/vips/util/DateTimeInterval.java index a4514db0da8a8b281de45f221be2b9bf6372a3e1..c4b6a15754e8dd33c87fe6ae3e88c686e626c0a7 100644 --- a/src/main/java/no/nibio/vips/util/DateTimeInterval.java +++ b/src/main/java/no/nibio/vips/util/DateTimeInterval.java @@ -21,6 +21,7 @@ package no.nibio.vips.util; import java.util.Date; import java.util.List; +import java.util.Optional; import java.util.OptionalLong; /** @@ -71,6 +72,12 @@ public class DateTimeInterval { return min.isPresent() ? new Date(min.getAsLong()) : null; } + public static Boolean isDateInIntervals(Date aDate, List<DateTimeInterval> intervals) + { + Optional<DateTimeInterval> interval = intervals.stream().filter(i -> i != null && i.isDateInInterval(aDate)).findFirst(); + return interval.isPresent(); + } + /** * @return the start */