X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.app.servlet.odk%2Fsrc%2Forg%2Fargeo%2Fapp%2Fservlet%2Fodk%2FOdkManifestServlet.java;h=de88a232fc57db372c6f9e62f3ba918415e07ae1;hb=6360b46535b91e4d94fa79d658c6f98ae88663f9;hp=6e145c2b951fb0f87013e3887b29258a181973e9;hpb=5705d31c1e074b3c00c26d96a090718da2b1a9a1;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..de88a23 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.lon.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 {