org.openjump.core.geomutils
Class GeoUtils
java.lang.Object
org.openjump.core.geomutils.GeoUtils
public class GeoUtils
- extends java.lang.Object
- Author:
- Larry
|
Method Summary |
static com.vividsolutions.jts.geom.Coordinate |
along(double d,
com.vividsolutions.jts.geom.Coordinate q,
com.vividsolutions.jts.geom.Coordinate r)
|
static boolean |
clockwise(com.vividsolutions.jts.geom.Geometry geo)
|
static com.vividsolutions.jts.geom.CoordinateList |
ConvexHullWrap(com.vividsolutions.jts.geom.CoordinateList coords)
|
static com.vividsolutions.jts.geom.Geometry |
createPlume(com.vividsolutions.jts.geom.Coordinate[] coords,
double radius1,
double radius2)
Generate a plume Polygon using Coordinate[] bounded on each end by circles of radius1 and radius2. |
static double |
distance(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2)
|
static double |
dot(com.vividsolutions.jts.geom.Coordinate p,
com.vividsolutions.jts.geom.Coordinate q)
|
static boolean |
geometriesEqual(com.vividsolutions.jts.geom.Geometry geo1,
com.vividsolutions.jts.geom.Geometry geo2)
|
static boolean |
geometryIsSegmentOf(com.vividsolutions.jts.geom.Geometry geo1,
com.vividsolutions.jts.geom.Geometry geo2)
|
static double |
getBearing180(com.vividsolutions.jts.geom.Coordinate startPt,
com.vividsolutions.jts.geom.Coordinate endPt)
|
static double |
getBearing360(com.vividsolutions.jts.geom.Coordinate startPt,
com.vividsolutions.jts.geom.Coordinate endPt)
|
static double |
getBearingRadians(com.vividsolutions.jts.geom.Coordinate startPt,
com.vividsolutions.jts.geom.Coordinate endPt)
|
static com.vividsolutions.jts.geom.Coordinate |
getCenter(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3)
|
static com.vividsolutions.jts.geom.Coordinate |
getClosestPointOnLine(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1)
|
static com.vividsolutions.jts.geom.Coordinate |
getClosestPointOnSegment(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1)
|
static double |
getDistance(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1)
|
static com.vividsolutions.jts.geom.Coordinate[] |
getDistanceAngleArray(com.vividsolutions.jts.geom.LineString ring)
|
static com.vividsolutions.jts.geom.Coordinate[] |
getDistanceBearingArray(com.vividsolutions.jts.geom.LineString ring)
|
static double |
getDistanceFromPointToGeometry(com.vividsolutions.jts.geom.Coordinate coord,
com.vividsolutions.jts.geom.Geometry geo)
|
static com.vividsolutions.jts.geom.Coordinate |
getIntersection(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3,
com.vividsolutions.jts.geom.Coordinate p4)
|
static double |
interiorAngle(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3)
|
static com.vividsolutions.jts.geom.Coordinate |
intersect(com.vividsolutions.jts.geom.Coordinate P1,
com.vividsolutions.jts.geom.Coordinate P2,
com.vividsolutions.jts.geom.Coordinate P3,
com.vividsolutions.jts.geom.Coordinate P4)
|
static com.vividsolutions.jts.geom.Coordinate |
intersectSegments(com.vividsolutions.jts.geom.Coordinate P1,
com.vividsolutions.jts.geom.Coordinate P2,
com.vividsolutions.jts.geom.Coordinate P3,
com.vividsolutions.jts.geom.Coordinate P4)
|
static double |
mag(com.vividsolutions.jts.geom.Coordinate q)
|
static com.vividsolutions.jts.geom.LineString |
MakeRoundCorner(com.vividsolutions.jts.geom.Coordinate A,
com.vividsolutions.jts.geom.Coordinate B,
com.vividsolutions.jts.geom.Coordinate C,
com.vividsolutions.jts.geom.Coordinate D,
double r,
boolean arcOnly)
|
static com.vividsolutions.jts.geom.Coordinate |
perpendicularVector(com.vividsolutions.jts.geom.Coordinate v1,
com.vividsolutions.jts.geom.Coordinate v2,
double dist,
boolean toLeft)
|
static boolean |
pointToRight(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2)
|
static com.vividsolutions.jts.geom.Geometry |
reducePoints(com.vividsolutions.jts.geom.Geometry geo,
double tolerance)
|
static com.vividsolutions.jts.geom.LinearRing |
removeRedundantPoints(com.vividsolutions.jts.geom.LineString ring)
|
static com.vividsolutions.jts.geom.Coordinate |
rotPt(com.vividsolutions.jts.geom.Coordinate inpt,
com.vividsolutions.jts.geom.Coordinate rpt,
double theta)
|
static java.util.BitSet |
setBit(java.util.BitSet bitSet,
com.vividsolutions.jts.geom.Geometry geometry)
|
static com.vividsolutions.jts.geom.Polygon |
taperedBufferSegment(com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1,
double d1,
double d2)
|
static double |
theta(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2)
|
static com.vividsolutions.jts.geom.Coordinate |
unitVec(com.vividsolutions.jts.geom.Coordinate q)
|
static com.vividsolutions.jts.geom.Coordinate |
vectorAdd(com.vividsolutions.jts.geom.Coordinate q,
com.vividsolutions.jts.geom.Coordinate r)
|
static com.vividsolutions.jts.geom.Coordinate |
vectorBetween(com.vividsolutions.jts.geom.Coordinate q,
com.vividsolutions.jts.geom.Coordinate r)
|
static com.vividsolutions.jts.geom.Coordinate |
vectorTimesScalar(com.vividsolutions.jts.geom.Coordinate q,
double m)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
emptyBit
public static final int emptyBit
- See Also:
- Constant Field Values
pointBit
public static final int pointBit
- See Also:
- Constant Field Values
lineBit
public static final int lineBit
- See Also:
- Constant Field Values
polyBit
public static final int polyBit
- See Also:
- Constant Field Values
GeoUtils
public GeoUtils()
mag
public static double mag(com.vividsolutions.jts.geom.Coordinate q)
distance
public static double distance(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2)
unitVec
public static com.vividsolutions.jts.geom.Coordinate unitVec(com.vividsolutions.jts.geom.Coordinate q)
vectorAdd
public static com.vividsolutions.jts.geom.Coordinate vectorAdd(com.vividsolutions.jts.geom.Coordinate q,
com.vividsolutions.jts.geom.Coordinate r)
vectorBetween
public static com.vividsolutions.jts.geom.Coordinate vectorBetween(com.vividsolutions.jts.geom.Coordinate q,
com.vividsolutions.jts.geom.Coordinate r)
vectorTimesScalar
public static com.vividsolutions.jts.geom.Coordinate vectorTimesScalar(com.vividsolutions.jts.geom.Coordinate q,
double m)
dot
public static double dot(com.vividsolutions.jts.geom.Coordinate p,
com.vividsolutions.jts.geom.Coordinate q)
rotPt
public static com.vividsolutions.jts.geom.Coordinate rotPt(com.vividsolutions.jts.geom.Coordinate inpt,
com.vividsolutions.jts.geom.Coordinate rpt,
double theta)
pointToRight
public static boolean pointToRight(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2)
perpendicularVector
public static com.vividsolutions.jts.geom.Coordinate perpendicularVector(com.vividsolutions.jts.geom.Coordinate v1,
com.vividsolutions.jts.geom.Coordinate v2,
double dist,
boolean toLeft)
getBearing180
public static double getBearing180(com.vividsolutions.jts.geom.Coordinate startPt,
com.vividsolutions.jts.geom.Coordinate endPt)
getBearingRadians
public static double getBearingRadians(com.vividsolutions.jts.geom.Coordinate startPt,
com.vividsolutions.jts.geom.Coordinate endPt)
getBearing360
public static double getBearing360(com.vividsolutions.jts.geom.Coordinate startPt,
com.vividsolutions.jts.geom.Coordinate endPt)
theta
public static double theta(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2)
ConvexHullWrap
public static com.vividsolutions.jts.geom.CoordinateList ConvexHullWrap(com.vividsolutions.jts.geom.CoordinateList coords)
getDistance
public static double getDistance(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1)
getClosestPointOnSegment
public static com.vividsolutions.jts.geom.Coordinate getClosestPointOnSegment(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1)
getClosestPointOnLine
public static com.vividsolutions.jts.geom.Coordinate getClosestPointOnLine(com.vividsolutions.jts.geom.Coordinate pt,
com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1)
along
public static com.vividsolutions.jts.geom.Coordinate along(double d,
com.vividsolutions.jts.geom.Coordinate q,
com.vividsolutions.jts.geom.Coordinate r)
interiorAngle
public static double interiorAngle(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3)
getDistanceBearingArray
public static com.vividsolutions.jts.geom.Coordinate[] getDistanceBearingArray(com.vividsolutions.jts.geom.LineString ring)
- Parameters:
ring - - LinearRing represented as LineString to analyze
- Returns:
- - Coordinate[] with first point of passed LineString in [0]
followed by [1-length] with x as distance and y as angle.
The angle will be the will be the absolute bearing in the range 0-360.
The original LineString and Coordinate points are unmodified.
getDistanceAngleArray
public static com.vividsolutions.jts.geom.Coordinate[] getDistanceAngleArray(com.vividsolutions.jts.geom.LineString ring)
- Parameters:
ring - - LinearRing represented as LineString to analyze
- Returns:
- - Coordinate[] array of with x as distance and y as
interior angles in degrees 0 to +180.
The angles at each index in the array are the interior angles at the
vertex position in the (closed polygon) ring. Every array position if filled.
The distances are the distance at a vertex to the following point. For [n-2]
the distance is computed to the [n-1] position assuming the ring is closed.
removeRedundantPoints
public static com.vividsolutions.jts.geom.LinearRing removeRedundantPoints(com.vividsolutions.jts.geom.LineString ring)
- Parameters:
ring - - a LineString representing a linear ring
- Returns:
- - an array of Coordinate points with colinear points removed.
The original LineString and Coordinate points are unmodified.
reducePoints
public static com.vividsolutions.jts.geom.Geometry reducePoints(com.vividsolutions.jts.geom.Geometry geo,
double tolerance)
clockwise
public static boolean clockwise(com.vividsolutions.jts.geom.Geometry geo)
intersect
public static com.vividsolutions.jts.geom.Coordinate intersect(com.vividsolutions.jts.geom.Coordinate P1,
com.vividsolutions.jts.geom.Coordinate P2,
com.vividsolutions.jts.geom.Coordinate P3,
com.vividsolutions.jts.geom.Coordinate P4)
getIntersection
public static com.vividsolutions.jts.geom.Coordinate getIntersection(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3,
com.vividsolutions.jts.geom.Coordinate p4)
intersectSegments
public static com.vividsolutions.jts.geom.Coordinate intersectSegments(com.vividsolutions.jts.geom.Coordinate P1,
com.vividsolutions.jts.geom.Coordinate P2,
com.vividsolutions.jts.geom.Coordinate P3,
com.vividsolutions.jts.geom.Coordinate P4)
getCenter
public static com.vividsolutions.jts.geom.Coordinate getCenter(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3)
setBit
public static java.util.BitSet setBit(java.util.BitSet bitSet,
com.vividsolutions.jts.geom.Geometry geometry)
MakeRoundCorner
public static com.vividsolutions.jts.geom.LineString MakeRoundCorner(com.vividsolutions.jts.geom.Coordinate A,
com.vividsolutions.jts.geom.Coordinate B,
com.vividsolutions.jts.geom.Coordinate C,
com.vividsolutions.jts.geom.Coordinate D,
double r,
boolean arcOnly)
geometriesEqual
public static boolean geometriesEqual(com.vividsolutions.jts.geom.Geometry geo1,
com.vividsolutions.jts.geom.Geometry geo2)
getDistanceFromPointToGeometry
public static double getDistanceFromPointToGeometry(com.vividsolutions.jts.geom.Coordinate coord,
com.vividsolutions.jts.geom.Geometry geo)
geometryIsSegmentOf
public static boolean geometryIsSegmentOf(com.vividsolutions.jts.geom.Geometry geo1,
com.vividsolutions.jts.geom.Geometry geo2)
createPlume
public static com.vividsolutions.jts.geom.Geometry createPlume(com.vividsolutions.jts.geom.Coordinate[] coords,
double radius1,
double radius2)
- Generate a plume Polygon using Coordinate[] bounded on each end by circles of radius1 and radius2.
- Parameters:
coords - - Coordinate[] sequence of points derived from a LineString.radius1 - - the radius around the first point in coords.radius2 - - the radius around the last point in coords.
- Returns:
- Geometry containing Polygon of plume.
taperedBufferSegment
public static com.vividsolutions.jts.geom.Polygon taperedBufferSegment(com.vividsolutions.jts.geom.Coordinate p0,
com.vividsolutions.jts.geom.Coordinate p1,
double d1,
double d2)