From 5444aa5a43c3414bcb8036cf4926d05b9f312917 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Mon, 23 Apr 2018 14:57:39 +0200
Subject: [PATCH] Added some methods, fixed a bug

---
 src/main/java/no/nibio/vips/gis/GISUtil.java      | 15 +++++++++++++++
 .../java/no/nibio/vips/util/DateTimeInterval.java |  7 +++++++
 2 files changed, 22 insertions(+)

diff --git a/src/main/java/no/nibio/vips/gis/GISUtil.java b/src/main/java/no/nibio/vips/gis/GISUtil.java
index b50d7b0..a009737 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 a4514db..c4b6a15 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
      */
-- 
GitLab