use of org.locationtech.jts.io.WKTWriter in project arctic-sea by 52North.
the class ODataFesParserTest method setup.
@Before
public void setup() {
this.parser = new ODataFesParser();
this.geometryFactory = new GeometryFactory(new PrecisionModel(PrecisionModel.FLOATING_SINGLE), 4326);
this.polygon = this.geometryFactory.createPolygon(new Coordinate[] { new Coordinate(-15.46, 77.98), new Coordinate(-93.51, 38.27), new Coordinate(47.10, -1.05), new Coordinate(58.71, 70.61), new Coordinate(-15.46, 77.98) });
this.wktGeometry = new WKTWriter().write(polygon).replaceFirst(" ", "").replaceAll(", ", ",");
}
use of org.locationtech.jts.io.WKTWriter in project ddf by codice.
the class AbstractFeatureConverter 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 xml = node.toString();
GMLReader gmlReader = new GMLReader();
Geometry geo = null;
try {
geo = gmlReader.read(xml, null);
if (StringUtils.isNotBlank(srs) && !srs.equals(GeospatialUtil.EPSG_4326)) {
geo = GeospatialUtil.transformToEPSG4326LonLatFormat(geo, srs);
}
} catch (SAXException | IOException | ParserConfigurationException | GeoFormatException e) {
geo = null;
LOGGER.debug(ERROR_PARSING_MESSAGE, e);
}
if (geo != null) {
WKTWriter wktWriter = new WKTWriter();
ser = wktWriter.write(geo);
}
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;
}
use of org.locationtech.jts.io.WKTWriter in project ddf by codice.
the class WfsFilterDelegate method bufferGeometry.
private String bufferGeometry(String wkt, double distance) {
LOGGER.debug("Buffering WKT {} by distance {} meter(s).", wkt, distance);
String bufferedWkt = null;
try {
Geometry geometry = getGeometryFromWkt(wkt);
double bufferInDegrees = metersToDegrees(distance);
LOGGER.debug("Buffering {} by {} degree(s).", geometry.getClass().getSimpleName(), bufferInDegrees);
Geometry bufferedGeometry = geometry.buffer(bufferInDegrees);
bufferedWkt = new WKTWriter().write(bufferedGeometry);
LOGGER.debug("Buffered WKT: {}.", bufferedWkt);
} catch (ParseException e) {
throw new IllegalArgumentException("Unable to parse WKT String", e);
}
return bufferedWkt;
}
use of org.locationtech.jts.io.WKTWriter in project ddf by codice.
the class CatalogFeatureIndexerTest method getExampleMetacard.
private Metacard getExampleMetacard() {
Metacard metacard = new MetacardImpl();
List<Serializable> tags = Arrays.asList(GAZETTEER_METACARD_TAG, GeoCodingConstants.COUNTRY_TAG);
metacard.setAttribute(new AttributeImpl(Core.METACARD_TAGS, tags));
WKTWriter writer = new WKTWriter();
String wkt = writer.write((Geometry) getExampleFeature().getDefaultGeometry());
metacard.setAttribute(new AttributeImpl(Core.LOCATION, wkt));
metacard.setAttribute(new AttributeImpl(Core.TITLE, TITLE));
metacard.setAttribute(new AttributeImpl(Location.COUNTRY_CODE, COUNTRY_CODE));
return metacard;
}
use of org.locationtech.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;
}
Aggregations