String coverageId = NCNameResourceCodec.encode(ci); WCSDimensionsHelper dimensionHelper = new WCSDimensionsHelper(time, reader, coverageId); tx.start("wcseo:EOMetadata"); tx.start("eop:EarthObservation", atts("gml:id", coverageId + "_metadata")); tx.start("om:phenomenonTime"); tx.start("gml:TimePeriod", atts("gml:id", coverageId + "_tp")); element(tx, "gml:beginPosition", dimensionHelper.getBeginTime(), null); element(tx, "gml:endPosition", dimensionHelper.getEndTime(), null); tx.end("gml:TimePeriod"); tx.end("om:phenomenonTime"); tx.start("om:resultTime"); tx.start("gml:TimeInstant", atts("gml:id", coverageId + "_rt")); element(tx, "gml:timePosition", dimensionHelper.getEndTime(), null); tx.end("gml:TimeInstant"); tx.end("om:resultTime"); double maxx = ge.getUpperCorner().getOrdinate(axisSwap ? 1 : 0); double maxy = ge.getUpperCorner().getOrdinate(axisSwap ? 0 : 1); tx.start("om:featureOfInterest"); tx.start("eop:Footprint", atts("gml:id", coverageId + "_fp")); tx.start("eop:multiExtentOf"); tx.start("gml:MultiSurface", atts("gml:id", coverageId + "_ms", "srsName", srsName)); tx.start("gml:surfaceMembers"); tx.start("gml:Polygon", atts("gml:id", coverageId + "_msp")); tx.start("gml:exterior"); tx.start("gml:LinearRing"); String posList = posList(minx, miny, minx, maxy, maxx, maxy, maxx, miny, minx, miny);