Search in sources :

Example 61 with WKTReader

use of com.vividsolutions.jts.io.WKTReader in project alliance by codice.

the class SimplifyGeometryFunctionTest method setup.

@Before
public void setup() {
    simplifyGeometryFunction = new SimplifyGeometryFunction();
    wktReader = new WKTReader();
}
Also used : WKTReader(com.vividsolutions.jts.io.WKTReader) Before(org.junit.Before)

Example 62 with WKTReader

use of com.vividsolutions.jts.io.WKTReader in project alliance by codice.

the class LocationKlvProcessor method setLocationFromAttribute.

private void setLocationFromAttribute(Metacard metacard, Attribute attribute, GeometryOperator.Context geometryOperatorContext) {
    WKTReader wktReader = new WKTReader();
    WKTWriter wktWriter = new WKTWriter();
    GeometryUtility.createUnionOfGeometryAttribute(wktReader, wktWriter, attribute, postUnionGeometryOperator, preUnionGeometryOperator, geometryOperatorContext).ifPresent(location -> setAttribute(metacard, location));
}
Also used : WKTWriter(com.vividsolutions.jts.io.WKTWriter) WKTReader(com.vividsolutions.jts.io.WKTReader)

Example 63 with WKTReader

use of com.vividsolutions.jts.io.WKTReader in project alliance by codice.

the class WKTUtil method getWKTBoundingRectangle.

public static Geometry getWKTBoundingRectangle(String wktString) throws ParseException {
    Geometry boundingGeo = null;
    WKTReader wktReader = new WKTReader(GEOMETRY_FACTORY);
    Geometry geo = wktReader.read(wktString);
    if (geo instanceof Point) {
        Point pt = (Point) geo;
        Coordinate[] coordinates = new Coordinate[5];
        Coordinate ptCoord = pt.getCoordinate();
        Coordinate lowerLeftCoord = ptCoord;
        Coordinate upperLeftCoord = ptCoord;
        Coordinate upperRightCoord = ptCoord;
        Coordinate lowerRightCoord = ptCoord;
        coordinates[0] = lowerLeftCoord;
        coordinates[1] = upperLeftCoord;
        coordinates[2] = upperRightCoord;
        coordinates[3] = lowerRightCoord;
        coordinates[4] = lowerLeftCoord;
        LinearRing shell = GEOMETRY_FACTORY.createLinearRing(coordinates);
        boundingGeo = new Polygon(shell, null, GEOMETRY_FACTORY);
    } else {
        boundingGeo = geo.getEnvelope();
    }
    return boundingGeo;
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) Coordinate(com.vividsolutions.jts.geom.Coordinate) Point(com.vividsolutions.jts.geom.Point) WKTReader(com.vividsolutions.jts.io.WKTReader) LinearRing(com.vividsolutions.jts.geom.LinearRing) Polygon(com.vividsolutions.jts.geom.Polygon)

Example 64 with WKTReader

use of com.vividsolutions.jts.io.WKTReader in project alliance by codice.

the class FrameCenterUpdateField method doUpdateField.

@Override
protected void doUpdateField(Metacard parent, List<Metacard> children, Context context) {
    WKTReader wktReader = new WKTReader();
    List<String> childLocations = extractChildFrameCenters(children);
    List<Geometry> geometries = new LinkedList<>();
    if (intermediateGeometry != null) {
        geometries.add(intermediateGeometry);
    }
    geometries.addAll(childLocations.stream().map(s -> GeometryUtility.wktToGeometry(s, wktReader)).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList()));
    List<Coordinate> coordinates = geometries.stream().flatMap(geometry -> Stream.of(geometry.getCoordinates())).collect(Collectors.toList());
    intermediateGeometry = geometryFactory.createLineString(coordinates.toArray(new Coordinate[coordinates.size()]));
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) Coordinate(com.vividsolutions.jts.geom.Coordinate) Arrays(java.util.Arrays) StringUtils(org.apache.commons.lang.StringUtils) GeometryOperatorList(org.codice.alliance.libs.klv.GeometryOperatorList) LinestringGeometrySubsampler(org.codice.alliance.libs.klv.LinestringGeometrySubsampler) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) WKTReader(com.vividsolutions.jts.io.WKTReader) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) List(java.util.List) AttributeNameConstants(org.codice.alliance.libs.klv.AttributeNameConstants) Attribute(ddf.catalog.data.Attribute) Stream(java.util.stream.Stream) Metacard(ddf.catalog.data.Metacard) Geometry(com.vividsolutions.jts.geom.Geometry) WKTWriter(com.vividsolutions.jts.io.WKTWriter) Optional(java.util.Optional) GeometryUtility(org.codice.alliance.libs.klv.GeometryUtility) Context(org.codice.alliance.video.stream.mpegts.Context) GeometryFactory(com.vividsolutions.jts.geom.GeometryFactory) LinkedList(java.util.LinkedList) GeometryOperator(org.codice.alliance.libs.klv.GeometryOperator) NotThreadSafe(javax.annotation.concurrent.NotThreadSafe) Optional(java.util.Optional) Coordinate(com.vividsolutions.jts.geom.Coordinate) WKTReader(com.vividsolutions.jts.io.WKTReader) LinkedList(java.util.LinkedList)

Example 65 with WKTReader

use of com.vividsolutions.jts.io.WKTReader in project alliance by codice.

the class LocationMetacardUpdater method locationUnion.

private Optional<String> locationUnion(Metacard metacard1, Metacard metacard2, GeometryOperator.Context geometryOperatorContext) {
    WKTReader wktReader = new WKTReader();
    WKTWriter wktWriter = new WKTWriter();
    Optional<Geometry> parentGeometry = GeometryUtility.wktToGeometry(metacard1.getLocation(), wktReader);
    Optional<Geometry> childGeometry = GeometryUtility.wktToGeometry(metacard2.getLocation(), wktReader);
    return Stream.of(parentGeometry, childGeometry).filter(Optional::isPresent).map(Optional::get).map(geometry -> preUnionGeometryOperator.apply(geometry, geometryOperatorContext)).reduce(Geometry::union).map(geometry -> postUnionGeometryOperator.apply(geometry, geometryOperatorContext)).map(wktWriter::write);
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) Stream(java.util.stream.Stream) Metacard(ddf.catalog.data.Metacard) AttributeImpl(ddf.catalog.data.impl.AttributeImpl) Geometry(com.vividsolutions.jts.geom.Geometry) WKTWriter(com.vividsolutions.jts.io.WKTWriter) Optional(java.util.Optional) GeometryUtility(org.codice.alliance.libs.klv.GeometryUtility) Context(org.codice.alliance.video.stream.mpegts.Context) WKTReader(com.vividsolutions.jts.io.WKTReader) GeometryOperator(org.codice.alliance.libs.klv.GeometryOperator) WKTWriter(com.vividsolutions.jts.io.WKTWriter) Optional(java.util.Optional) WKTReader(com.vividsolutions.jts.io.WKTReader)

Aggregations

WKTReader (com.vividsolutions.jts.io.WKTReader)70 Geometry (com.vividsolutions.jts.geom.Geometry)50 Test (org.junit.Test)28 ParseException (com.vividsolutions.jts.io.ParseException)23 WKTWriter (com.vividsolutions.jts.io.WKTWriter)9 Metacard (ddf.catalog.data.Metacard)9 Coordinate (com.vividsolutions.jts.geom.Coordinate)6 IsValidOp (com.vividsolutions.jts.operation.valid.IsValidOp)6 AttributeImpl (ddf.catalog.data.impl.AttributeImpl)6 GeometryOperator (org.codice.alliance.libs.klv.GeometryOperator)6 Context (org.codice.alliance.video.stream.mpegts.Context)6 MapLayer (au.org.emii.portal.menu.MapLayer)5 GeometryFactory (com.vividsolutions.jts.geom.GeometryFactory)4 Polygon (com.vividsolutions.jts.geom.Polygon)4 ArrayList (java.util.ArrayList)4 List (java.util.List)4 Optional (java.util.Optional)4 ByteArrayInputStream (java.io.ByteArrayInputStream)3 File (java.io.File)3 Before (org.junit.Before)3