Package com.vividsolutions.jts.algorithm

Examples of com.vividsolutions.jts.algorithm.MinimumDiameter


        if (spaceAround != 0) {
            conflictBounds = bounds.buffer(spaceAround);
            if (conflictBounds.isEmpty() || conflictBounds.getArea() == 0) {
                conflictBounds = null;
            } else {
                conflictBounds = new MinimumDiameter(conflictBounds).getMinimumRectangle();
            }
        }
        return conflictBounds;
    }
View Full Code Here


            // blindly assumes the shape is a polygon, while it may not be. Building a multipoint
            // instead
            AffineTransform at = AffineTransform.getScaleInstance(markSize, -markSize);
            Shape ts = at.createTransformedShape(shape);
            Geometry shapeGeometry = JTS.toGeometry(ts);
            bounds = new MinimumDiameter(shapeGeometry).getMinimumRectangle();
        }
        // grow by the stroke size, if this is a mark
        if (icon == null && mark != null) {
            Stroke stroke = factory.getStroke(mark.getStroke(), feature);
            if (stroke instanceof BasicStroke) {
                float width = ((BasicStroke) stroke).getLineWidth() / 2 + 1;
                if (width > 0) {
                    Geometry buffered = bounds.buffer(width);
                    bounds = new MinimumDiameter(buffered).getMinimumRectangle();
                }
            }
        }
        return bounds;
    }
View Full Code Here

        }
    }

    double calcPolygonAlignMBRAngle(Geometry geometry) {
        // use JTS MinimumDiameter class to calc MBR
        Geometry mbr = new MinimumDiameter(geometry).getMinimumRectangle();

        // calc angle from the longest side of the MBR
        Coordinate[] coordinates = mbr.getCoordinates();
        double dx, dy;
        if (coordinates[0].distance(coordinates[1]) > coordinates[1].distance(coordinates[2])) {
View Full Code Here

        Function exp = ff.function("minimumdiameter", ff.property("geom"));
        SimpleFeatureIterator iter = featureCollection.features();
        while (iter.hasNext()) {
            SimpleFeature feature = iter.next();
            Geometry geom = (Geometry) feature.getDefaultGeometry();
            Geometry minimumDiameter = new MinimumDiameter(geom).getDiameter();
            Object value = exp.evaluate(feature);
            assertTrue(value instanceof LineString);
            assertTrue(minimumDiameter.equalsExact((Geometry) value, 0.1));
        }
        iter.close();
View Full Code Here

        Function exp = ff.function("minrectangle", ff.property("geom"));
        SimpleFeatureIterator iter = featureCollection.features();
        while (iter.hasNext()) {
            SimpleFeature feature = iter.next();
            Geometry geom = (Geometry) feature.getDefaultGeometry();
            Geometry rectangle = new MinimumDiameter(geom).getMinimumRectangle();
            Object value = exp.evaluate(feature);
            assertTrue(value instanceof Polygon);
            assertTrue(rectangle.equals((Geometry) value));
        }
        iter.close();
View Full Code Here

         return circle.getCircle();
     }
    
     static public Geometry minimumRectangle(Geometry g) {
         if (g == null) return null;
         MinimumDiameter min = new MinimumDiameter(g);
         return min.getMinimumRectangle();
     }
View Full Code Here

         return env.toGeometry(arg0.getFactory());
     }
    
     static public Geometry minimumDiameter(Geometry arg0) {
         if (arg0 == null) return null;
         MinimumDiameter minDiameter = new MinimumDiameter(arg0);
         return minDiameter.getDiameter();
     }
View Full Code Here

  public void testMinimumDiameter6() throws Exception {
    doMinimumDiameterTest(false, "LINESTRING ( 39 119, 162 197, 135 70, 95 35, 33 66, 111 82, 97 131, 48 160, -4 182, 57 195, 94 202, 90 174, 75 134, 47 114, 0 100, 59 81, 123 60, 136 43, 163 75, 145 114, 93 136, 92 159, 105 175 )", new Coordinate(64.46262341325811, 196.41184767277855), new Coordinate(95, 35));
 

  private void doMinimumDiameterTest(boolean convex, String wkt, Coordinate c0, Coordinate c1) throws ParseException {
    Coordinate[] minimumDiameter = new MinimumDiameter(new WKTReader().read(wkt), convex).getDiameter().getCoordinates();
    double tolerance = 1E-10;
    assertEquals(c0.x, minimumDiameter[0].x, tolerance);
    assertEquals(c0.y, minimumDiameter[0].y, tolerance);
    assertEquals(c1.x, minimumDiameter[1].x, tolerance);
    assertEquals(c1.y, minimumDiameter[1].y, tolerance);
View Full Code Here

TOP

Related Classes of com.vividsolutions.jts.algorithm.MinimumDiameter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.