Search in sources :

Example 1 with AbstractGeometryType

use of org.geotoolkit.gml.xml.v311.AbstractGeometryType in project ddf by codice.

the class RegistryPackageConverter method setSlotGeoAttribute.

private static void setSlotGeoAttribute(SlotType1 slot, String metacardAttributeName, MetacardImpl metacard) throws RegistryConversionException {
    if (slot.isSetValueList()) {
        net.opengis.cat.wrs.v_1_0_2.ValueListType valueList = (net.opengis.cat.wrs.v_1_0_2.ValueListType) slot.getValueList().getValue();
        List<AnyValueType> anyValues = valueList.getAnyValue();
        for (AnyValueType anyValue : anyValues) {
            if (anyValue.isSetContent()) {
                for (Object content : anyValue.getContent()) {
                    if (content instanceof JAXBElement) {
                        JAXBElement jaxbElement = (JAXBElement) content;
                        AbstractGeometryType geometry = (AbstractGeometryType) jaxbElement.getValue();
                        String convertedGeometry = getWKTFromGeometry(geometry, jaxbElement);
                        if (StringUtils.isNotBlank(convertedGeometry)) {
                            metacard.setAttribute(metacardAttributeName, convertedGeometry);
                        }
                    }
                }
            }
        }
    }
}
Also used : AbstractGeometryType(net.opengis.gml.v_3_1_1.AbstractGeometryType) JAXBElement(javax.xml.bind.JAXBElement) AnyValueType(net.opengis.cat.wrs.v_1_0_2.AnyValueType)

Example 2 with AbstractGeometryType

use of org.geotoolkit.gml.xml.v311.AbstractGeometryType in project ddf by codice.

the class CswQueryFactoryTest method createPolygon.

private JAXBElement<AbstractGeometryType> createPolygon() {
    PolygonType localPolygon = new PolygonType();
    LinearRingType ring = new LinearRingType();
    for (Coordinate coordinate : polygon.getCoordinates()) {
        CoordType coord = new CoordType();
        coord.setX(BigDecimal.valueOf(coordinate.x));
        coord.setY(BigDecimal.valueOf(coordinate.y));
        if (!Double.isNaN(coordinate.z)) {
            coord.setZ(BigDecimal.valueOf(coordinate.z));
        }
        ring.getCoord().add(coord);
    }
    AbstractRingPropertyType abstractRing = new AbstractRingPropertyType();
    abstractRing.setRing(gmlObjectFactory.createLinearRing(ring));
    localPolygon.setExterior(gmlObjectFactory.createExterior(abstractRing));
    JAXBElement<AbstractGeometryType> agt = new JAXBElement<>(new QName("http://www.opengis.net/gml", "Polygon"), AbstractGeometryType.class, null, localPolygon);
    return agt;
}
Also used : Coordinate(org.locationtech.jts.geom.Coordinate) AbstractGeometryType(net.opengis.gml.v_3_1_1.AbstractGeometryType) LinearRingType(net.opengis.gml.v_3_1_1.LinearRingType) AbstractRingPropertyType(net.opengis.gml.v_3_1_1.AbstractRingPropertyType) QName(javax.xml.namespace.QName) PolygonType(net.opengis.gml.v_3_1_1.PolygonType) JAXBElement(javax.xml.bind.JAXBElement) CoordType(net.opengis.gml.v_3_1_1.CoordType)

Example 3 with AbstractGeometryType

use of org.geotoolkit.gml.xml.v311.AbstractGeometryType in project ddf by codice.

the class CswFilterFactory method createDistanceBufferType.

@SuppressWarnings("unchecked")
private DistanceBufferType createDistanceBufferType(PropertyNameType propertyName, JAXBElement<? extends AbstractGeometryType> geometry, DistanceType distance) {
    DistanceBufferType distanceBuffer = new DistanceBufferType();
    distanceBuffer.setDistance(distance);
    distanceBuffer.setGeometry((JAXBElement<AbstractGeometryType>) geometry);
    distanceBuffer.setPropertyName(propertyName);
    return distanceBuffer;
}
Also used : AbstractGeometryType(net.opengis.gml.v_3_1_1.AbstractGeometryType) DistanceBufferType(net.opengis.filter.v_1_1_0.DistanceBufferType)

Example 4 with AbstractGeometryType

use of org.geotoolkit.gml.xml.v311.AbstractGeometryType in project ddf by codice.

the class WfsFilterDelegate method buildDistanceBufferType.

@SuppressWarnings("unchecked")
private JAXBElement<DistanceBufferType> buildDistanceBufferType(JAXBElement<DistanceBufferType> dbt, String propertyName, String wkt, double distance) {
    DistanceType distanceType = new DistanceType();
    distanceType.setValue(distance);
    // the filter adapter normalizes all distances to meters
    distanceType.setUnits(WfsConstants.METERS);
    dbt.getValue().setDistance(distanceType);
    dbt.getValue().setGeometry((JAXBElement<AbstractGeometryType>) createGeometryOperand(wkt));
    dbt.getValue().setPropertyName(createPropertyNameType(propertyName).getValue());
    return dbt;
}
Also used : AbstractGeometryType(net.opengis.gml.v_3_1_1.AbstractGeometryType) DistanceType(net.opengis.filter.v_1_1_0.DistanceType)

Example 5 with AbstractGeometryType

use of org.geotoolkit.gml.xml.v311.AbstractGeometryType in project ddf by codice.

the class GeometryAdapter method marshalFrom.

public static GeometryElement marshalFrom(Attribute attribute) throws CatalogTransformerException {
    GeometryElement element = new GeometryElement();
    element.setName(attribute.getName());
    if (attribute.getValue() != null) {
        for (Serializable value : attribute.getValues()) {
            if (!(value instanceof String)) {
                continue;
            }
            String wkt = (String) value;
            WKTReader wktReader = new WKTReader(geometryFactory);
            Geometry jtsGeometry = null;
            try {
                jtsGeometry = wktReader.read(wkt);
            } catch (ParseException e) {
                throw new CatalogTransformerException("Could not transform Metacard to XML.  Invalid WKT.", e);
            }
            JTSToGML311GeometryConverter converter = new JTSToGML311GeometryConverter();
            @SuppressWarnings("unchecked") JAXBElement<AbstractGeometryType> gmlElement = (JAXBElement<AbstractGeometryType>) converter.createElement(jtsGeometry);
            GeometryElement.Value geoValue = new GeometryElement.Value();
            geoValue.setGeometry(gmlElement);
            element.getValue().add(geoValue);
        }
    }
    return element;
}
Also used : Serializable(java.io.Serializable) JTSToGML311GeometryConverter(org.jvnet.ogc.gml.v_3_1_1.jts.JTSToGML311GeometryConverter) AbstractGeometryType(net.opengis.gml.v_3_1_1.AbstractGeometryType) Value(ddf.catalog.transformer.xml.binding.GeometryElement.Value) CatalogTransformerException(ddf.catalog.transform.CatalogTransformerException) JAXBElement(javax.xml.bind.JAXBElement) WKTReader(org.locationtech.jts.io.WKTReader) Geometry(org.locationtech.jts.geom.Geometry) Value(ddf.catalog.transformer.xml.binding.GeometryElement.Value) GeometryElement(ddf.catalog.transformer.xml.binding.GeometryElement) ParseException(org.locationtech.jts.io.ParseException)

Aggregations

JAXBElement (javax.xml.bind.JAXBElement)8 AbstractGeometryType (net.opengis.gml.v_3_1_1.AbstractGeometryType)7 Geometry (org.locationtech.jts.geom.Geometry)5 AbstractGeometryType (org.geotoolkit.gml.xml.v311.AbstractGeometryType)4 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Value (ddf.catalog.transformer.xml.binding.GeometryElement.Value)2 QName (javax.xml.namespace.QName)2 AbstractGeometryType (net.opengis.gml.x32.AbstractGeometryType)2 GeometryPropertyType (net.opengis.gml.x32.GeometryPropertyType)2 CurveType (org.geotoolkit.gml.xml.v311.CurveType)2 LineStringType (org.geotoolkit.gml.xml.v311.LineStringType)2 MultiCurveType (org.geotoolkit.gml.xml.v311.MultiCurveType)2 MultiGeometryType (org.geotoolkit.gml.xml.v311.MultiGeometryType)2 MultiPointType (org.geotoolkit.gml.xml.v311.MultiPointType)2 MultiPolygonType (org.geotoolkit.gml.xml.v311.MultiPolygonType)2 PointType (org.geotoolkit.gml.xml.v311.PointType)2 PolygonType (org.geotoolkit.gml.xml.v311.PolygonType)2 PolyhedralSurfaceType (org.geotoolkit.gml.xml.v311.PolyhedralSurfaceType)2 AbstractGeometryType (org.geotoolkit.gml.xml.v321.AbstractGeometryType)2