use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.
the class SlotTypeConverter method getPoint.
private Optional<PointType> getPoint(Map<String, Object> pointMap) {
Optional<PointType> optionalPoint = Optional.empty();
if (MapUtils.isEmpty(pointMap)) {
return optionalPoint;
}
BigInteger dimension = getBigIntFromMap(SRS_DIMENSION, pointMap);
if (dimension != null) {
if (!optionalPoint.isPresent()) {
optionalPoint = Optional.of(GML_FACTORY.createPointType());
}
optionalPoint.get().setSrsDimension(dimension);
}
String valueToPopulate = MapUtils.getString(pointMap, SRS_NAME);
if (StringUtils.isNotBlank(valueToPopulate)) {
if (!optionalPoint.isPresent()) {
optionalPoint = Optional.of(GML_FACTORY.createPointType());
}
optionalPoint.get().setSrsName(valueToPopulate);
}
valueToPopulate = MapUtils.getString(pointMap, POSITION);
if (StringUtils.isNotBlank(valueToPopulate)) {
String[] values = StringUtils.split(valueToPopulate);
DirectPositionType directPosition = GML_FACTORY.createDirectPositionType();
for (String value : values) {
directPosition.getValue().add(Double.valueOf(value));
}
if (!optionalPoint.isPresent()) {
optionalPoint = Optional.of(GML_FACTORY.createPointType());
}
optionalPoint.get().setPos(directPosition);
}
return optionalPoint;
}
use of net.opengis.gml.x32.DirectPositionType in project arctic-sea by 52North.
the class GmlDecoderv321 method getString4PosArray.
/**
* parses XmlBeans DirectPosition[] to a String with coordinates for WKT.
*
* @param xbPosArray XmlBeans generated DirectPosition[].
*
* @return Returns String with coordinates for WKT.
*/
private String getString4PosArray(DirectPositionType[] xbPosArray, boolean polygon) {
StringBuilder coordinateString = new StringBuilder();
coordinateString.append("(");
for (DirectPositionType directPositionType : xbPosArray) {
coordinateString.append(directPositionType.getStringValue());
coordinateString.append(", ");
}
if (polygon) {
coordinateString.append(xbPosArray[0].getStringValue());
} else {
coordinateString.delete(coordinateString.length() - 2, coordinateString.length());
}
coordinateString.append(")");
return coordinateString.toString();
}
use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.
the class SlotWebConverter method getPointMapFromPointType.
private static Map<String, Object> getPointMapFromPointType(PointType point) {
Map<String, Object> pointMap = new HashMap<>();
if (point.isSetSrsDimension()) {
pointMap.put(SRS_DIMENSION, point.getSrsDimension().intValue());
}
if (point.isSetSrsName()) {
pointMap.put(SRS_NAME, point.getSrsName());
}
if (point.isSetPos()) {
DirectPositionType directPosition = point.getPos();
List<String> pointValues = new ArrayList<>();
pointValues.addAll(directPosition.getValue().stream().map(String::valueOf).collect(Collectors.toList()));
String position = String.join(" ", pointValues);
if (StringUtils.isNotBlank(position)) {
pointMap.put(POSITION, position);
}
}
return pointMap;
}
use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.
the class SlotTypeConverter method getEnvelope.
private Optional<EnvelopeType> getEnvelope(Map<String, Object> envelopeMap) {
Optional<EnvelopeType> optionalEnvelope = Optional.empty();
if (MapUtils.isEmpty(envelopeMap)) {
return optionalEnvelope;
}
optionalEnvelope = Optional.of(GML_FACTORY.createEnvelopeType());
String valueToPopulate = MapUtils.getString(envelopeMap, SRS_NAME);
if (StringUtils.isNotBlank(valueToPopulate)) {
optionalEnvelope.get().setSrsName(valueToPopulate);
}
String upperCorner = MapUtils.getString(envelopeMap, UPPER_CORNER);
String lowerCorner = MapUtils.getString(envelopeMap, LOWER_CORNER);
if (StringUtils.isNotBlank(upperCorner)) {
List<Double> values = Arrays.stream(StringUtils.split(upperCorner)).map(e -> new Double(e)).collect(Collectors.toList());
DirectPositionType directPosition = GML_FACTORY.createDirectPositionType();
directPosition.setValue(values);
optionalEnvelope.get().setUpperCorner(directPosition);
}
if (StringUtils.isNotBlank(lowerCorner)) {
List<Double> values = Arrays.stream(StringUtils.split(lowerCorner)).map(e -> new Double(e)).collect(Collectors.toList());
DirectPositionType directPosition = GML_FACTORY.createDirectPositionType();
directPosition.setValue(values);
optionalEnvelope.get().setLowerCorner(directPosition);
}
return optionalEnvelope;
}
use of net.opengis.gml.x32.DirectPositionType in project ddf by codice.
the class Wfs20JTStoGML321Converter method convertToDirectPositionType.
public static DirectPositionType convertToDirectPositionType(Coordinate coordinate, String srsName) {
DirectPositionType directPositionType = GML320_OBJECT_FACTORY.createDirectPositionType();
directPositionType.getValue().add(new Double(coordinate.x));
directPositionType.getValue().add(new Double(coordinate.y));
directPositionType.setSrsName(srsName);
if (!Double.isNaN(coordinate.z)) {
directPositionType.getValue().add(new Double(coordinate.z));
}
return directPositionType;
}
Aggregations