use of net.opengis.gml.v_3_1_1.MultiPolygonType in project ddf by codice.
the class TestWfs10JTStoGML200Converter method testMultiPolygonTypeToJAXB.
@Test
public void testMultiPolygonTypeToJAXB() throws JAXBException, SAXException, IOException, ParseException, NullPointerException {
String multiPolygonGML = Wfs10JTStoGML200Converter.convertGeometryToGML(getGeometryFromWkt(MULTIPOLYGON));
MultiPolygonType multiPolygonType = (MultiPolygonType) Wfs10JTStoGML200Converter.convertGMLToGeometryType(multiPolygonGML, Wfs10Constants.MULTI_POLYGON);
JAXBElement<MultiPolygonType> multiPolygonTypeJAXBElement = (JAXBElement<MultiPolygonType>) Wfs10JTStoGML200Converter.convertGeometryTypeToJAXB(multiPolygonType);
JAXB.marshal(multiPolygonTypeJAXBElement, writer);
String xml = writer.toString();
Diff diff = XMLUnit.compareXML(xml, MULTIPOLYGON_GML);
assertTrue(XMLUNIT_SIMILAR, diff.similar());
assertThat(diff.similar(), is(Boolean.TRUE));
assertThat(diff.identical(), is(Boolean.FALSE));
}
use of net.opengis.gml.v_3_1_1.MultiPolygonType in project ddf by codice.
the class TestWfs10JTStoGML200Converter method testGMLToMultiPolygonType.
@Test
public void testGMLToMultiPolygonType() throws JAXBException, SAXException, IOException, ParseException, NullPointerException {
String multiPolygonGML = Wfs10JTStoGML200Converter.convertGeometryToGML(getGeometryFromWkt(MULTIPOLYGON));
MultiPolygonType multiPolygonType = (MultiPolygonType) Wfs10JTStoGML200Converter.convertGMLToGeometryType(multiPolygonGML, Wfs10Constants.MULTI_POLYGON);
multiPolygonType.getJAXBElementName();
List<JAXBElement<? extends GeometryAssociationType>> geometryMembers = multiPolygonType.getGeometryMember();
assertThat(geometryMembers.size() == 2, is(Boolean.TRUE));
PolygonMemberType polygonMemberType1 = (PolygonMemberType) geometryMembers.get(0).getValue();
String coords1 = extractPolygonMemberCoordinates(polygonMemberType1);
assertThat(MULTIPOLYGON_COORDS1.equals(coords1), is(Boolean.TRUE));
PolygonMemberType polygonMemberType2 = (PolygonMemberType) geometryMembers.get(0).getValue();
String coords2 = extractPolygonMemberCoordinates(polygonMemberType2);
assertThat(MULTIPOLYGON_COORDS2.equals(coords2), is(Boolean.TRUE));
}
use of net.opengis.gml.v_3_1_1.MultiPolygonType in project ddf by codice.
the class WfsFilterDelegateTest method testMultiPolygonLatLonOrder.
@Test
public void testMultiPolygonLatLonOrder() {
final WfsFilterDelegate delegate = setupFilterDelegate(SPATIAL_OPERATORS.INTERSECTS.getValue(), new LatLonCoordinateStrategy());
final FilterType filter = delegate.intersects(Metacard.ANY_GEO, MULTIPOLYGON);
assertThat(filter.getSpatialOps().getValue(), is(instanceOf(BinarySpatialOpType.class)));
final BinarySpatialOpType binarySpatialOpType = (BinarySpatialOpType) filter.getSpatialOps().getValue();
assertThat(binarySpatialOpType.getGeometry().getValue(), is(instanceOf(MultiPolygonType.class)));
final MultiPolygonType multiPolygonType = (MultiPolygonType) binarySpatialOpType.getGeometry().getValue();
assertThat(multiPolygonType.getPolygonMember().size(), is(2));
final LinearRingType firstLinearRing = (LinearRingType) multiPolygonType.getPolygonMember().get(0).getPolygon().getExterior().getValue().getRing().getValue();
assertThat(firstLinearRing.getCoordinates().getValue(), is("20.0,30.0 40.0,10.0 40.0,45.0 20.0,30.0"));
}
use of net.opengis.gml.v_3_1_1.MultiPolygonType in project ddf by codice.
the class WfsFilterDelegate method createMultiPolygon.
private JAXBElement<MultiPolygonType> createMultiPolygon(Geometry geometry) {
MultiPolygonType multiPolygon = new MultiPolygonType();
if (geometry.getNumGeometries() > 0) {
List<PolygonPropertyType> geometryMembers = multiPolygon.getPolygonMember();
for (int i = 0; i < geometry.getNumGeometries(); i++) {
Geometry currentGeo = geometry.getGeometryN(i);
PolygonType currentPolygon = createPolygon(currentGeo.getCoordinates());
PolygonPropertyType member = new PolygonPropertyType();
member.setPolygon(currentPolygon);
geometryMembers.add(member);
}
return gmlObjectFactory.createMultiPolygon(multiPolygon);
} else {
throw new IllegalArgumentException("Unable to parse Polygon coordinates from WKT String");
}
}
use of net.opengis.gml.v_3_1_1.MultiPolygonType in project ddf by codice.
the class WfsFilterDelegate method createMultiPolygon.
private JAXBElement<MultiPolygonType> createMultiPolygon(Geometry geometry) {
JAXBElement<MultiPolygonType> jaxbElement = null;
try {
String gml = Wfs10JTStoGML200Converter.convertGeometryToGML(geometry);
MultiLineStringType multiLineStringType = (MultiLineStringType) Wfs10JTStoGML200Converter.convertGMLToGeometryType(gml, Wfs10Constants.MULTI_LINESTRING);
jaxbElement = (JAXBElement<MultiPolygonType>) Wfs10JTStoGML200Converter.convertGeometryTypeToJAXB(multiLineStringType);
} catch (JAXBException jbe) {
LOGGER.debug("Unable to create MultiPolygonType with geometry: [{}]", geometry);
}
return jaxbElement;
}
Aggregations