use of de.micromata.opengis.kml.v_2_2_0.TimeSpan in project ddf by codice.
the class KMLTransformerImplTest method testPerformDefaultTransformationMultiPointLocation.
@Test
public void testPerformDefaultTransformationMultiPointLocation() throws CatalogTransformerException {
MetacardImpl metacard = createMockMetacard();
metacard.setLocation(MULTIPOINT_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 multiPoint = (MultiGeometry) multiGeo.getGeometry().get(1);
assertThat(multiPoint.getGeometry().size(), is(3));
assertThat(multiPoint.getGeometry().get(0), instanceOf(Point.class));
assertThat(multiPoint.getGeometry().get(1), instanceOf(Point.class));
assertThat(multiPoint.getGeometry().get(2), instanceOf(Point.class));
}
use of de.micromata.opengis.kml.v_2_2_0.TimeSpan in project ddf by codice.
the class KMLTransformerImpl method performDefaultTransformation.
/**
* The default Transformation from a {@link Metacard} to a KML {@link Placemark}. Protected to
* easily allow other default transformations.
*
* @param entry - the {@link Metacard} to transform.
* @param urlToMetacard
* @return
* @throws javax.xml.transform.TransformerException
*/
protected Placemark performDefaultTransformation(Metacard entry) throws CatalogTransformerException {
// wrap metacard to work around classLoader/reflection issues
entry = new MetacardImpl(entry);
Placemark kmlPlacemark = KmlFactory.createPlacemark();
kmlPlacemark.setId("Placemark-" + entry.getId());
kmlPlacemark.setName(entry.getTitle());
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
String effectiveTime;
if (entry.getEffectiveDate() == null) {
effectiveTime = dateFormat.format(new Date());
} else {
effectiveTime = dateFormat.format(entry.getEffectiveDate());
}
TimeSpan timeSpan = KmlFactory.createTimeSpan();
timeSpan.setBegin(effectiveTime);
kmlPlacemark.setTimePrimitive(timeSpan);
kmlPlacemark.setGeometry(getKmlGeoWithPointsFromWkt(entry.getLocation()));
String description = entry.getTitle();
Handlebars handlebars = new Handlebars(templateLoader);
handlebars.registerHelpers(templateHelper);
try {
Template template = handlebars.compile(DESCRIPTION_TEMPLATE);
description = template.apply(new HandlebarsMetacard(entry));
LOGGER.debug(description);
} catch (IOException e) {
LOGGER.debug("Failed to apply description Template", e);
}
kmlPlacemark.setDescription(description);
setExtendedData(kmlPlacemark, entry);
String styleUrl = styleMapper.getStyleForMetacard(entry);
if (StringUtils.isNotBlank(styleUrl)) {
kmlPlacemark.setStyleUrl(styleUrl);
}
return kmlPlacemark;
}
use of de.micromata.opengis.kml.v_2_2_0.TimeSpan in project ddf by codice.
the class KMLTransformerImplTest method testPerformDefaultTransformationGeometryCollectionLocation.
@Test
public void testPerformDefaultTransformationGeometryCollectionLocation() throws CatalogTransformerException {
MetacardImpl metacard = createMockMetacard();
metacard.setLocation(GEOMETRYCOLLECTION_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 multiGeo2 = (MultiGeometry) multiGeo.getGeometry().get(1);
assertThat(multiGeo2.getGeometry().size(), is(3));
assertThat(multiGeo2.getGeometry().get(0), instanceOf(Point.class));
assertThat(multiGeo2.getGeometry().get(1), instanceOf(LineString.class));
assertThat(multiGeo2.getGeometry().get(2), instanceOf(Polygon.class));
}
use of de.micromata.opengis.kml.v_2_2_0.TimeSpan in project ddf by codice.
the class KMLTransformerImplTest method testPerformDefaultTransformationPolygonLocation.
@Test
public void testPerformDefaultTransformationPolygonLocation() throws CatalogTransformerException {
MetacardImpl metacard = createMockMetacard();
metacard.setLocation(POLYGON_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(Polygon.class));
}
use of de.micromata.opengis.kml.v_2_2_0.TimeSpan in project ddf by codice.
the class KMLTransformerImplTest method testPerformDefaultTransformationPointLocation.
@Test
public void testPerformDefaultTransformationPointLocation() throws CatalogTransformerException {
MetacardImpl metacard = createMockMetacard();
metacard.setLocation(POINT_WKT);
Placemark placemark = kmlTransformer.performDefaultTransformation(metacard);
assertThat(placemark.getId(), is("Placemark-" + ID));
assertThat(placemark.getName(), is(TITLE));
assertThat(placemark.getStyleSelector().isEmpty(), is(true));
assertThat(placemark.getStyleUrl(), nullValue());
assertThat(placemark.getTimePrimitive(), instanceOf(TimeSpan.class));
TimeSpan timeSpan = (TimeSpan) placemark.getTimePrimitive();
assertThat(timeSpan.getBegin(), is(dateFormat.format(metacard.getEffectiveDate())));
assertThat(placemark.getGeometry(), instanceOf(Point.class));
}
Aggregations