use of com.vividsolutions.jts.io.WKTWriter in project ddf by codice.
the class GmlGeometryConverter method unmarshal.
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
XmlNode gmlNode = new XmlNode(reader);
GMLReader gmlReader = new GMLReader();
Geometry geo = null;
try {
geo = gmlReader.read(gmlNode.toString(), null);
} catch (SAXException | IOException | ParserConfigurationException e) {
LOGGER.debug(ERROR_PARSING_MSG, e);
}
if (geo != null) {
WKTWriter wktWriter = new WKTWriter();
return wktWriter.write(geo);
}
return null;
}
use of com.vividsolutions.jts.io.WKTWriter in project ddf by codice.
the class GeometryAdapter method unmarshalFrom.
public static Attribute unmarshalFrom(GeometryElement element) throws ConversionFailedException {
AttributeImpl attribute = null;
GML311ToJTSGeometryConverter converter = new GML311ToJTSGeometryConverter();
WKTWriter wktWriter = new WKTWriter();
for (Value xmlValue : element.getValue()) {
JAXBElement<AbstractGeometryType> xmlGeometry = xmlValue.getGeometry();
Geometry geometry = converter.createGeometry(new DefaultRootObjectLocator(xmlValue), xmlGeometry.getValue());
String wkt = wktWriter.write(geometry);
if (attribute == null) {
attribute = new AttributeImpl(element.getName(), wkt);
} else {
attribute.addValue(wkt);
}
}
return attribute;
}
use of com.vividsolutions.jts.io.WKTWriter in project ddf by codice.
the class CswFilterDelegate method bufferGeometry.
private String bufferGeometry(String wkt, double distance) {
LOGGER.debug("Buffering WKT {} by distance {} meter(s).", wkt, distance);
Geometry geometry = getGeometryFromWkt(wkt);
double bufferInDegrees = metersToDegrees(distance);
LOGGER.debug("Buffering {} by {} degree(s).", geometry.getClass().getSimpleName(), bufferInDegrees);
Geometry bufferedGeometry = geometry.buffer(bufferInDegrees);
String bufferedWkt = new WKTWriter().write(bufferedGeometry);
LOGGER.debug("Buffered WKT: {}.", bufferedWkt);
return bufferedWkt;
}
use of com.vividsolutions.jts.io.WKTWriter in project ddf by codice.
the class AbstractFeatureConverterWfs20 method getValueForMetacardAttribute.
protected Serializable getValueForMetacardAttribute(AttributeFormat attributeFormat, HierarchicalStreamReader reader) {
Serializable ser = null;
switch(attributeFormat) {
case BOOLEAN:
ser = Boolean.valueOf(reader.getValue());
break;
case DOUBLE:
ser = Double.valueOf(reader.getValue());
break;
case FLOAT:
ser = Float.valueOf(reader.getValue());
break;
case INTEGER:
ser = Integer.valueOf(reader.getValue());
break;
case LONG:
ser = Long.valueOf(reader.getValue());
break;
case SHORT:
ser = Short.valueOf(reader.getValue());
break;
case XML:
case STRING:
ser = reader.getValue();
break;
case GEOMETRY:
XmlNode node = new XmlNode(reader);
String geometryXml = node.toString();
Geometry geo = null;
geo = (Geometry) readGml(geometryXml);
LOGGER.debug("coordinateOrder = {}", coordinateOrder);
if (GeospatialUtil.LAT_LON_ORDER.equals(coordinateOrder)) {
swapCoordinates(geo);
}
if (geo != null) {
WKTWriter wktWriter = new WKTWriter();
ser = wktWriter.write(geo);
LOGGER.debug("wkt = {}", ser);
}
break;
case BINARY:
try {
ser = reader.getValue().getBytes(UTF8_ENCODING);
} catch (UnsupportedEncodingException e) {
LOGGER.debug("Error encoding the binary value into the metacard.", e);
}
break;
case DATE:
ser = parseDateFromXml(reader);
break;
default:
break;
}
return ser;
}
Aggregations