X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.servlet.odk%2Fsrc%2Forg%2Fargeo%2Fapp%2Fservlet%2Fodk%2FOdkManifestServlet.java;fp=org.argeo.app.servlet.odk%2Fsrc%2Forg%2Fargeo%2Fapp%2Fservlet%2Fodk%2FOdkManifestServlet.java;h=6cc71d6f97716188ff36d3b55f1d8cee706e9b7c;hb=10ada90446095744f4ed73798936de9d0ed415bd;hp=6e145c2b951fb0f87013e3887b29258a181973e9;hpb=2f70cad745991c9bf3bdb613debb0c6987a0eb57;p=gpl%2Fargeo-suite.git diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java index 6e145c2..6cc71d6 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java @@ -30,6 +30,9 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.output.NullOutputStream; import org.argeo.app.api.EntityMimeType; +import org.argeo.app.api.EntityType; +import org.argeo.app.api.WGS84PosName; +import org.argeo.app.geo.GeoShapeUtils; import org.argeo.app.odk.OrxManifestName; import org.argeo.cms.auth.RemoteAuthUtils; import org.argeo.cms.servlet.ServletHttpRequest; @@ -142,6 +145,7 @@ public class OdkManifestServlet extends HttpServlet { } // TODO make it more configurable columnNames.add("display"); + columnNames.add("geometry"); if (EntityMimeType.XML.equals(mimeType)) { } else if (EntityMimeType.CSV.equals(mimeType)) { @@ -158,6 +162,16 @@ public class OdkManifestServlet extends HttpServlet { } // display lst.add(row.getValue("name").getString() + " (" + row.getValue("label").getString() + ")"); + Node field = row.getNode("geopoint"); + if (field != null && field.isNodeType(EntityType.geopoint.get())) { + double lat = field.getProperty(WGS84PosName.lat.get()).getDouble(); + double lon = field.getProperty(WGS84PosName.lng.get()).getDouble(); + double alt = field.hasProperty(WGS84PosName.alt.get()) + ? field.getProperty(WGS84PosName.alt.get()).getDouble() + : Double.NaN; + String geoshape = GeoShapeUtils.geoPointToGeoShape(lon, lat, alt); + lst.add(geoshape); + } csvWriter.writeLine(lst); } } else {