From 49105dfe424461d0ee873fc9913d9b1ba3caed56 Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Tue, 13 Mar 2018 11:08:07 +0100 Subject: [PATCH] Final adaptations to GIS aware result object --- .../java/no/nibio/vips/entity/ResultDeserializer.java | 10 ++++++++++ .../java/no/nibio/vips/entity/ResultSerializer.java | 6 +++++- src/main/java/no/nibio/vips/gis/GISUtil.java | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/no/nibio/vips/entity/ResultDeserializer.java b/src/main/java/no/nibio/vips/entity/ResultDeserializer.java index 931409c..2199b80 100644 --- a/src/main/java/no/nibio/vips/entity/ResultDeserializer.java +++ b/src/main/java/no/nibio/vips/entity/ResultDeserializer.java @@ -33,6 +33,7 @@ import com.vividsolutions.jts.geom.Polygon; import java.io.IOException; import java.util.Date; import java.util.Map; +import no.nibio.vips.gis.GISUtil; /** * @copyright 2018 <a href="http://www.nibio.no/">NIBIO</a> @@ -53,7 +54,9 @@ public class ResultDeserializer extends StdDeserializer<Result>{ ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new JtsModule()); Result r = new ResultImpl(); + //System.out.println(jp.getText()); JsonNode node = jp.getCodec().readTree(jp); + //System.out.println(node); r.setValidTimeStart(objectMapper.convertValue(node.get("validTimeStart"), Date.class)); r.setValidTimeEnd(objectMapper.convertValue(node.get("validTimeEnd"), Date.class)); if(node.get("allValues") != null) @@ -63,6 +66,7 @@ public class ResultDeserializer extends StdDeserializer<Result>{ r.setWarningStatus(node.get("warningStatus").asInt()); JsonNode geomNode = node.get("validGeometry"); Geometry validGeometry = null; + //System.out.println(geomNode); if(geomNode != null && geomNode.get("type") != null) { switch(geomNode.get("type").asText()){ @@ -78,8 +82,14 @@ public class ResultDeserializer extends StdDeserializer<Result>{ default: validGeometry = null; } + if(validGeometry.getSRID() <= 0) + { + validGeometry.setSRID(GISUtil.DEFAULT_SRID); + } } + r.setValidGeometry(validGeometry); + //System.out.println(r.getValidGeometry()); return r; } diff --git a/src/main/java/no/nibio/vips/entity/ResultSerializer.java b/src/main/java/no/nibio/vips/entity/ResultSerializer.java index ec08fdb..992dbef 100644 --- a/src/main/java/no/nibio/vips/entity/ResultSerializer.java +++ b/src/main/java/no/nibio/vips/entity/ResultSerializer.java @@ -61,7 +61,11 @@ class ResultSerializer extends StdSerializer<ResultImpl>{ : t.getValidGeometry().getGeometryType().equals("LineString") ? objectMapper.writeValueAsString((LineString) t.getValidGeometry()) :t.getValidGeometry().getGeometryType().equals("Polygon") ? objectMapper.writeValueAsString((Polygon) t.getValidGeometry()) : "null"; - jg.writeStringField("validGeometry", geoJSON); + + //jg.writeObjectField("validGeometry", t.getValidGeometry()); + //System.out.println(geoJSON); + jg.writeRaw(",\"validGeometry\":" + geoJSON); + // jg.writeNumberField("warningStatus", t.getWarningStatus()); jg.writeStringField("allValues", this.objectMapper.writeValueAsString(t.getAllValues())); jg.writeStringField("keys", this.objectMapper.writeValueAsString(t.getKeys())); diff --git a/src/main/java/no/nibio/vips/gis/GISUtil.java b/src/main/java/no/nibio/vips/gis/GISUtil.java index c5a938d..b50d7b0 100644 --- a/src/main/java/no/nibio/vips/gis/GISUtil.java +++ b/src/main/java/no/nibio/vips/gis/GISUtil.java @@ -52,6 +52,8 @@ import org.wololo.jts2geojson.GeoJSONWriter; */ public class GISUtil { + public static Integer DEFAULT_SRID = 4326; + /** * Calculates the coordinates of a nearby destination * @param origin WGS84 where to start from -- GitLab