use of de.micromata.opengis.kml.v_2_2_0.Placemark in project ddf by codice.
the class KMLTransformerImpl method setExtendedData.
private void setExtendedData(Placemark placemark, Metacard metacard) {
final ExtendedData extendedData = new ExtendedData();
final Set<AttributeDescriptor> attributeDescriptors = metacard.getMetacardType().getAttributeDescriptors();
for (AttributeDescriptor attributeDescriptor : attributeDescriptors) {
final String attributeName = attributeDescriptor.getName();
final Attribute attribute = metacard.getAttribute(attributeName);
if (attribute != null) {
Serializable attributeValue = convertAttribute(attribute, attributeDescriptor);
if (attributeValue == null) {
LOGGER.debug("Attribute {} converted to null value.", attributeName);
} else {
final Data data = getData(attributeName, attributeValue.toString());
extendedData.addToData(data);
}
}
}
placemark.setExtendedData(extendedData);
}
use of de.micromata.opengis.kml.v_2_2_0.Placemark in project ddf by codice.
the class KMLTransformerImplTest method testPerformDefaultTransformationMultiPolygonLocation.
@Test
public void testPerformDefaultTransformationMultiPolygonLocation() throws CatalogTransformerException {
MetacardImpl metacard = createMockMetacard();
metacard.setLocation(MULTIPOLYGON_WKT);
Placemark placemark = kmlTransformer.performDefaultTransformation(metacard);
assertThat(placemark.getId(), is("Placemark-" + ID));
assertThat(placemark.getName(), is(TITLE));
assertThat(placemark.getTimePrimitive(), instanceOf(TimeSpan.class));
TimeSpan timeSpan = (TimeSpan) placemark.getTimePrimitive();
assertThat(timeSpan.getBegin(), is(dateFormat.format(metacard.getEffectiveDate())));
assertThat(placemark.getGeometry(), instanceOf(MultiGeometry.class));
MultiGeometry multiGeo = (MultiGeometry) placemark.getGeometry();
assertThat(multiGeo.getGeometry().size(), is(2));
assertThat(multiGeo.getGeometry().get(0), instanceOf(Point.class));
assertThat(multiGeo.getGeometry().get(1), instanceOf(MultiGeometry.class));
MultiGeometry multiPolygon = (MultiGeometry) multiGeo.getGeometry().get(1);
assertThat(multiPolygon.getGeometry().size(), is(2));
assertThat(multiPolygon.getGeometry().get(0), instanceOf(Polygon.class));
assertThat(multiPolygon.getGeometry().get(1), instanceOf(Polygon.class));
}
use of de.micromata.opengis.kml.v_2_2_0.Placemark in project ddf by codice.
the class KMLTransformerImplTest method testPerformDefaultTransformationExtendedData.
@Test
public void testPerformDefaultTransformationExtendedData() throws CatalogTransformerException, DateTimeParseException {
MetacardImpl metacard = createMockMetacard();
metacard.setLocation(POINT_WKT);
metacard.setCreatedDate(metacardDate);
metacard.setEffectiveDate(metacardDate);
metacard.setExpirationDate(metacardDate);
metacard.setModifiedDate(metacardDate);
metacard.setTags(METACARD_TAGS);
final Set<AttributeDescriptor> attributeDescriptors = metacard.getMetacardType().getAttributeDescriptors();
Placemark placemark = kmlTransformer.performDefaultTransformation(metacard);
final List<Data> dataList = placemark.getExtendedData().getData();
int dataCount = 0;
for (AttributeDescriptor attributeDescriptor : attributeDescriptors) {
final String attributeName = attributeDescriptor.getName();
final Attribute attribute = metacard.getAttribute(attributeName);
if (attribute != null) {
dataCount++;
}
}
assertThat(dataList.size(), is(dataCount));
for (Data data : dataList) {
switch(data.getName()) {
case Core.ID:
assertThat(data.getValue(), is(METACARD_ID));
break;
case Core.TITLE:
assertThat(data.getValue(), is(METACARD_TITLE));
break;
case Core.LOCATION:
assertThat(data.getValue(), is(POINT_WKT));
break;
case Metacard.CONTENT_TYPE:
assertThat(data.getValue(), is(METACARD_TYPE));
break;
case Metacard.CONTENT_TYPE_VERSION:
assertThat(data.getValue(), is(METACARD_VERSION));
break;
case Core.METADATA:
assertThat(data.getValue(), is(METACARD_METADATA));
break;
case Core.METACARD_TAGS:
assertThat(data.getValue(), is(METACARD_TAGS.asList().get(0) + "," + METACARD_TAGS.asList().get(1)));
break;
case Core.MODIFIED:
case Metacard.EFFECTIVE:
case Core.EXPIRATION:
case Core.CREATED:
assertThat(data.getValue(), is(METACARD_DATE_STRING));
break;
default:
throw new IllegalArgumentException(String.format("Data %s was not expected", data.getName()));
}
}
}
use of de.micromata.opengis.kml.v_2_2_0.Placemark in project ddf by codice.
the class KmlFeatureToJtsGeometryConverterTest method testConvertKmlPlaceMarkFeature.
@Test
public void testConvertKmlPlaceMarkFeature() {
InputStream stream = KmlFeatureToJtsGeometryConverterTest.class.getResourceAsStream("/kmlPoint.kml");
Kml kml = Kml.unmarshal(stream);
assertThat(kml, notNullValue());
Placemark kmlPlacemark = (Placemark) kml.getFeature();
assertThat(kmlPlacemark, notNullValue());
Geometry geometry = KmlFeatureToJtsGeometryConverter.from(kmlPlacemark);
assertThat(geometry, notNullValue());
assertFeature(kmlPlacemark, geometry);
}
use of de.micromata.opengis.kml.v_2_2_0.Placemark in project ddf by codice.
the class KmlToJtsMultiGeometryConverterTest method setupClass.
@BeforeClass
public static void setupClass() {
InputStream stream = KmlToJtsMultiGeometryConverterTest.class.getResourceAsStream("/kmlMultiGeometry.kml");
Kml kml = Kml.unmarshal(stream);
testKmlMultiGeometry = ((MultiGeometry) ((Placemark) kml.getFeature()).getGeometry());
}
Aggregations