private Geometry boundaryLineString(LineString line) { if (geom.isEmpty()) { return getEmptyMultiPoint(); } if (line.isClosed()) { // check whether endpoints of valence 2 are on the boundary or not boolean closedEndpointOnBoundary = bnRule.isInBoundary(2); if (closedEndpointOnBoundary) { return line.getStartPoint(); } else { return geomFact.createMultiPoint((Coordinate[]) null); } } return geomFact.createMultiPoint(new Point[]{ line.getStartPoint(), line.getEndPoint() }); } }
static public Point startPoint(Geometry arg0) { if (!(arg0 instanceof LineString)) return null; LineString _this = (LineString) arg0; return _this.getStartPoint(); }
static public Geometry startPoint(Geometry arg0) { LineString _this = (LineString) arg0; return _this.getStartPoint(); }
public Point getStartPoint() { return lineString.getStartPoint(); }
/** * @param geometry Geometry * @return The first coordinate of a Geometry as a POINT, given that the * Geometry is a LINESTRING or a MULTILINESTRING containing only one * LINESTRING; Returns NULL for all other Geometries. */ public static Geometry getStartPoint(Geometry geometry) { if(geometry== null){ return null; } if (geometry instanceof MultiLineString) { if (geometry.getNumGeometries() == 1) { return ((LineString) geometry.getGeometryN(0)).getStartPoint(); } } else if (geometry instanceof LineString) { return ((LineString) geometry).getStartPoint(); } return null; } }
/** * @param geometry Geometry * @return The first coordinate of a Geometry as a POINT, given that the * Geometry is a LINESTRING or a MULTILINESTRING containing only one * LINESTRING; Returns NULL for all other Geometries. */ public static Geometry getStartPoint(Geometry geometry) { if(geometry== null){ return null; } if (geometry instanceof MultiLineString) { if (geometry.getNumGeometries() == 1) { return ((LineString) geometry.getGeometryN(0)).getStartPoint(); } } else if (geometry instanceof LineString) { return ((LineString) geometry).getStartPoint(); } return null; } }
@Override public Item item(final QueryContext qc, final InputInfo ii) throws QueryException { final Geometry geo = geo(0, qc, LINE, Q_GML_LINEARRING, Q_GML_LINESTRING); return toElement(((LineString) geo).getStartPoint(), qc); } }
LineString firstPiece = findCrossingPair(LineStringA, LineStringB); LineString secondPiece = findCrossingPair(LineStringB, firstPiece); // Now we have two 2-point LineStrings which we can pass to the // LineIntersector LineIntersector lineIntersector = new RobustLineIntersector(); lineIntersector.computeIntersection( firstPiece.getStartPoint().getCoordinate(), firstPiece.getEndPoint().getCoordinate(), secondPiece.getStartPoint().getCoordinate(), secondPiece.getEndPoint().getCoordinate() ); Coordinate intersect = lineIntersector.getIntersection(0); System.out.println("Intersection at " + intersect);
@Override public void visit(LineString line) { upPrecision(line.getStartPoint()).upPrecision(line.getEndPoint()); //dim = Math.max(dim, line.getCoordinateSequence().getDimension()); } });
/** * Remove holes from a polygon * * @param polygon */ private Polygon simplifyPoly(Polygon polygon) { if(polygon.getNumInteriorRing() == 0) return polygon; LineString outer = polygon.getExteriorRing(); if (outer.getStartPoint().distance(outer.getEndPoint()) != 0) { List clist = new ArrayList(Arrays.asList(outer.getCoordinates())); clist.add(outer.getStartPoint().getCoordinate()); outer = outer.getFactory().createLinearRing( (Coordinate[]) clist.toArray(new Coordinate[clist.size()])); } LinearRing r = (LinearRing) outer; return outer.getFactory().createPolygon(r, null); }
public static GeometryType startEndPoint(GeometryType geom, boolean start) throws FunctionExecutionException { Geometry g = getGeometry(geom); if (g instanceof LineString) { LineString lineString = (LineString)g; Geometry p = null; if (start) { p = lineString.getStartPoint(); } else { p = lineString.getEndPoint(); } if (p == null) { //can be empty return null; } return getGeometryType(p); } return null; }
/** * Interpolate a linestring according start and end coordinates z value. If * the z is NaN return the input linestring * * @param lineString * @return */ public static LineString linearZInterpolation(LineString lineString) { double startz = lineString.getStartPoint().getCoordinate().z; double endz = lineString.getEndPoint().getCoordinate().z; return linearZInterpolation(lineString, startz, endz); }
/** * Interpolate a linestring according the start and the end coordinates z * value. If the start or the end z is NaN return the input linestring * * @param lineString * @return */ private static LineString linearZInterpolation(LineString lineString) { double startz = lineString.getStartPoint().getCoordinate().z; double endz = lineString.getEndPoint().getCoordinate().z; if (Double.isNaN(startz) || Double.isNaN(endz)) { return lineString; } else { double length = lineString.getLength(); lineString.apply(new LinearZInterpolationFilter(startz, endz, length)); return lineString; } }
/** * Interpolate a linestring according the start and the end coordinates z * value. If the start or the end z is NaN return the input linestring * * @param lineString * @return */ private static LineString linearZInterpolation(LineString lineString) { double startz = lineString.getStartPoint().getCoordinate().z; double endz = lineString.getEndPoint().getCoordinate().z; if (Double.isNaN(startz) || Double.isNaN(endz)) { return lineString; } else { double length = lineString.getLength(); lineString.apply(new LinearZInterpolationFilter(startz, endz, length)); return lineString; } }
private Geometry boundaryLineString(LineString line) { if (geom.isEmpty()) { return getEmptyMultiPoint(); } if (line.isClosed()) { // check whether endpoints of valence 2 are on the boundary or not boolean closedEndpointOnBoundary = bnRule.isInBoundary(2); if (closedEndpointOnBoundary) { return line.getStartPoint(); } else { return geomFact.createMultiPoint((Coordinate[]) null); } } return geomFact.createMultiPoint(new Point[]{ line.getStartPoint(), line.getEndPoint() }); } }
public static GeometryType startEndPoint(GeometryType geom, boolean start) throws FunctionExecutionException { Geometry g = getGeometry(geom); if (g instanceof LineString) { LineString lineString = (LineString)g; Geometry p = null; if (start) { p = lineString.getStartPoint(); } else { p = lineString.getEndPoint(); } if (p == null) { //can be empty return null; } return getGeometryType(p, geom.getSrid()); } return null; }
public static GeometryType startEndPoint(GeometryType geom, boolean start) throws FunctionExecutionException { Geometry g = getGeometry(geom); if (g instanceof LineString) { LineString lineString = (LineString)g; Geometry p = null; if (start) { p = lineString.getStartPoint(); } else { p = lineString.getEndPoint(); } if (p == null) { //can be empty return null; } return getGeometryType(p, geom.getSrid()); } return null; }
public static MultiLineString linearZInterpolation(MultiLineString multiLineString) { int nbGeom = multiLineString.getNumGeometries(); LineString[] lines = new LineString[nbGeom]; for (int i = 0; i < nbGeom; i++) { LineString subGeom = (LineString) multiLineString.getGeometryN(i); double startz = subGeom.getStartPoint().getCoordinates()[0].z; double endz = subGeom.getEndPoint().getCoordinates()[0].z; double length = subGeom.getLength(); subGeom.apply(new LinearZInterpolationFilter(startz, endz, length)); lines[i] = subGeom; } return FACTORY.createMultiLineString(lines); }
/** * Interpolate each linestring of the multilinestring. * * @param multiLineString * @return */ private static MultiLineString linearZInterpolation(MultiLineString multiLineString) { int nbGeom = multiLineString.getNumGeometries(); LineString[] lines = new LineString[nbGeom]; for (int i = 0; i < nbGeom; i++) { LineString subGeom = (LineString) multiLineString.getGeometryN(i); double startz = subGeom.getStartPoint().getCoordinates()[0].z; double endz = subGeom.getEndPoint().getCoordinates()[0].z; double length = subGeom.getLength(); subGeom.apply(new LinearZInterpolationFilter(startz, endz, length)); lines[i] = subGeom; } return FACTORY.createMultiLineString(lines); }
/** * Interpolate each linestring of the multilinestring. * * @param multiLineString * @return */ private static MultiLineString linearZInterpolation(MultiLineString multiLineString) { int nbGeom = multiLineString.getNumGeometries(); LineString[] lines = new LineString[nbGeom]; for (int i = 0; i < nbGeom; i++) { LineString subGeom = (LineString) multiLineString.getGeometryN(i); double startz = subGeom.getStartPoint().getCoordinates()[0].z; double endz = subGeom.getEndPoint().getCoordinates()[0].z; double length = subGeom.getLength(); subGeom.apply(new LinearZInterpolationFilter(startz, endz, length)); lines[i] = subGeom; } return FACTORY.createMultiLineString(lines); }