Search in sources :

Example 6 with DirectPositionType

use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.

the class SlotTypeConverter method getPoint.

private Optional<PointType> getPoint(Map<String, Object> pointMap) {
    Optional<PointType> optionalPoint = Optional.empty();
    if (MapUtils.isEmpty(pointMap)) {
        return optionalPoint;
    }
    BigInteger dimension = getBigIntFromMap(SRS_DIMENSION, pointMap);
    if (dimension != null) {
        if (!optionalPoint.isPresent()) {
            optionalPoint = Optional.of(GML_FACTORY.createPointType());
        }
        optionalPoint.get().setSrsDimension(dimension);
    }
    String valueToPopulate = MapUtils.getString(pointMap, SRS_NAME);
    if (StringUtils.isNotBlank(valueToPopulate)) {
        if (!optionalPoint.isPresent()) {
            optionalPoint = Optional.of(GML_FACTORY.createPointType());
        }
        optionalPoint.get().setSrsName(valueToPopulate);
    }
    valueToPopulate = MapUtils.getString(pointMap, POSITION);
    if (StringUtils.isNotBlank(valueToPopulate)) {
        String[] values = StringUtils.split(valueToPopulate);
        DirectPositionType directPosition = GML_FACTORY.createDirectPositionType();
        for (String value : values) {
            directPosition.getValue().add(Double.valueOf(value));
        }
        if (!optionalPoint.isPresent()) {
            optionalPoint = Optional.of(GML_FACTORY.createPointType());
        }
        optionalPoint.get().setPos(directPosition);
    }
    return optionalPoint;
}
Also used : DirectPositionType(net.opengis.gml.v_3_1_1.DirectPositionType) PointType(net.opengis.gml.v_3_1_1.PointType) BigInteger(java.math.BigInteger)

Example 7 with DirectPositionType

use of net.opengis.gml.x32.DirectPositionType in project arctic-sea by 52North.

the class GmlDecoderv321 method getString4PosArray.

/**
 * parses XmlBeans DirectPosition[] to a String with coordinates for WKT.
 *
 * @param xbPosArray XmlBeans generated DirectPosition[].
 *
 * @return Returns String with coordinates for WKT.
 */
private String getString4PosArray(DirectPositionType[] xbPosArray, boolean polygon) {
    StringBuilder coordinateString = new StringBuilder();
    coordinateString.append("(");
    for (DirectPositionType directPositionType : xbPosArray) {
        coordinateString.append(directPositionType.getStringValue());
        coordinateString.append(", ");
    }
    if (polygon) {
        coordinateString.append(xbPosArray[0].getStringValue());
    } else {
        coordinateString.delete(coordinateString.length() - 2, coordinateString.length());
    }
    coordinateString.append(")");
    return coordinateString.toString();
}
Also used : DirectPositionType(net.opengis.gml.x32.DirectPositionType)

Example 8 with DirectPositionType

use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.

the class SlotWebConverter method getPointMapFromPointType.

private static Map<String, Object> getPointMapFromPointType(PointType point) {
    Map<String, Object> pointMap = new HashMap<>();
    if (point.isSetSrsDimension()) {
        pointMap.put(SRS_DIMENSION, point.getSrsDimension().intValue());
    }
    if (point.isSetSrsName()) {
        pointMap.put(SRS_NAME, point.getSrsName());
    }
    if (point.isSetPos()) {
        DirectPositionType directPosition = point.getPos();
        List<String> pointValues = new ArrayList<>();
        pointValues.addAll(directPosition.getValue().stream().map(String::valueOf).collect(Collectors.toList()));
        String position = String.join(" ", pointValues);
        if (StringUtils.isNotBlank(position)) {
            pointMap.put(POSITION, position);
        }
    }
    return pointMap;
}
Also used : DirectPositionType(net.opengis.gml.v_3_1_1.DirectPositionType) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList)

Example 9 with DirectPositionType

use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.

the class SlotTypeConverter method getEnvelope.

private Optional<EnvelopeType> getEnvelope(Map<String, Object> envelopeMap) {
    Optional<EnvelopeType> optionalEnvelope = Optional.empty();
    if (MapUtils.isEmpty(envelopeMap)) {
        return optionalEnvelope;
    }
    optionalEnvelope = Optional.of(GML_FACTORY.createEnvelopeType());
    String valueToPopulate = MapUtils.getString(envelopeMap, SRS_NAME);
    if (StringUtils.isNotBlank(valueToPopulate)) {
        optionalEnvelope.get().setSrsName(valueToPopulate);
    }
    String upperCorner = MapUtils.getString(envelopeMap, UPPER_CORNER);
    String lowerCorner = MapUtils.getString(envelopeMap, LOWER_CORNER);
    if (StringUtils.isNotBlank(upperCorner)) {
        List<Double> values = Arrays.stream(StringUtils.split(upperCorner)).map(e -> new Double(e)).collect(Collectors.toList());
        DirectPositionType directPosition = GML_FACTORY.createDirectPositionType();
        directPosition.setValue(values);
        optionalEnvelope.get().setUpperCorner(directPosition);
    }
    if (StringUtils.isNotBlank(lowerCorner)) {
        List<Double> values = Arrays.stream(StringUtils.split(lowerCorner)).map(e -> new Double(e)).collect(Collectors.toList());
        DirectPositionType directPosition = GML_FACTORY.createDirectPositionType();
        directPosition.setValue(values);
        optionalEnvelope.get().setLowerCorner(directPosition);
    }
    return optionalEnvelope;
}
Also used : DirectPositionType(net.opengis.gml.v_3_1_1.DirectPositionType) Arrays(java.util.Arrays) StringUtils(org.apache.commons.lang.StringUtils) MapToSchemaElement(org.codice.ddf.registry.schemabindings.helper.MapToSchemaElement) WebMapHelper(org.codice.ddf.registry.schemabindings.helper.WebMapHelper) AnyValueType(net.opengis.cat.wrs.v_1_0_2.AnyValueType) POINT_KEY(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.POINT_KEY) LOWER_CORNER(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.LOWER_CORNER) EnvelopeType(net.opengis.gml.v_3_1_1.EnvelopeType) GML_FACTORY(org.codice.ddf.registry.schemabindings.EbrimConstants.GML_FACTORY) NAME(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.NAME) RIM_FACTORY(org.codice.ddf.registry.schemabindings.EbrimConstants.RIM_FACTORY) ENVELOPE_KEY(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.ENVELOPE_KEY) POSITION(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.POSITION) SRS_DIMENSION(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.SRS_DIMENSION) CollectionUtils(org.apache.commons.collections.CollectionUtils) Map(java.util.Map) RegistryConstants(org.codice.ddf.registry.common.RegistryConstants) BigInteger(java.math.BigInteger) WRS_FACTORY(org.codice.ddf.registry.schemabindings.EbrimConstants.WRS_FACTORY) SRS_NAME(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.SRS_NAME) UPPER_CORNER(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.UPPER_CORNER) ValueListType(oasis.names.tc.ebxml_regrep.xsd.rim._3.ValueListType) MapUtils(org.apache.commons.collections.MapUtils) Collectors(java.util.stream.Collectors) List(java.util.List) SLOT_TYPE(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.SLOT_TYPE) SlotType1(oasis.names.tc.ebxml_regrep.xsd.rim._3.SlotType1) VALUE(org.codice.ddf.registry.schemabindings.converter.web.SlotWebConverter.VALUE) PointType(net.opengis.gml.v_3_1_1.PointType) Optional(java.util.Optional) EnvelopeType(net.opengis.gml.v_3_1_1.EnvelopeType) DirectPositionType(net.opengis.gml.v_3_1_1.DirectPositionType)

Example 10 with DirectPositionType

use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.

the class Wfs20JTStoGML321Converter method convertToDirectPositionType.

public static DirectPositionType convertToDirectPositionType(Coordinate coordinate, String srsName) {
    DirectPositionType directPositionType = GML320_OBJECT_FACTORY.createDirectPositionType();
    directPositionType.getValue().add(new Double(coordinate.x));
    directPositionType.getValue().add(new Double(coordinate.y));
    directPositionType.setSrsName(srsName);
    if (!Double.isNaN(coordinate.z)) {
        directPositionType.getValue().add(new Double(coordinate.z));
    }
    return directPositionType;
}
Also used : DirectPositionType(net.opengis.gml.v_3_2_1.DirectPositionType)

Aggregations

DirectPositionType (net.opengis.gml.v_3_1_1.DirectPositionType)5 DirectPositionType (net.opengis.gml.x32.DirectPositionType)5 DirectPositionType (net.opengis.gml.v_3_2_1.DirectPositionType)4 ArrayList (java.util.ArrayList)3 PointType (net.opengis.gml.v_3_1_1.PointType)3 DecodingException (org.n52.svalbard.decode.exception.DecodingException)3 BigInteger (java.math.BigInteger)2 AnyValueType (net.opengis.cat.wrs.v_1_0_2.AnyValueType)2 EnvelopeType (net.opengis.gml.v_3_1_1.EnvelopeType)2 CoordinatesType (net.opengis.gml.x32.CoordinatesType)2 DirectPositionListType (net.opengis.gml.x32.DirectPositionListType)2 SlotType1 (oasis.names.tc.ebxml_regrep.xsd.rim._3.SlotType1)2 ParseException (org.locationtech.jts.io.ParseException)2 DateTimeParseException (org.n52.shetland.util.DateTimeParseException)2 Envelope (com.vividsolutions.jts.geom.Envelope)1 Arrays (java.util.Arrays)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 List (java.util.List)1 Map (java.util.Map)1