rdf4j-postgis  Version 0.1.0.0
ApproximateMedialAxis Class Reference
Inheritance diagram for ApproximateMedialAxis:
Collaboration diagram for ApproximateMedialAxis:

Public Member Functions

String getURI ()
 
Value evaluate (ValueFactory valueFactory, Value... args) throws ValueExprEvaluationException
 

Protected Member Functions

Geometry operation (Geometry geom)
 

Member Function Documentation

◆ evaluate()

Value evaluate ( ValueFactory  valueFactory,
Value...  args 
) throws ValueExprEvaluationException
inherited
16  {
17  if (args.length != 1) {
18  throw new ValueExprEvaluationException(getURI() + " requires exactly 1 argument, got " + args.length);
19  }
20 
21  LiteralType l=LiteralRegistry.getLiteral(((Literal)args[0]).getDatatype().toString());
22  if(l instanceof VectorLiteral) {
23  Geometry geom=((VectorLiteral)l).read(args[0].stringValue());
24  Geometry result = operation(geom);
25  return valueFactory.createLiteral(((VectorLiteral) l).unparse(result),((Literal)args[0]).getDatatype());
26  }
27  throw new ValueExprEvaluationException("Argument given is not a geometry literal");
28  }

References LiteralRegistry.getLiteral(), and GeometricUnaryFunction.operation().

Referenced by BoundaryTest.testBoundary(), BoundingDiagonalTest.testBoundingDiagonal(), CentroidTest.testCentroid(), StartPointTest.testCircularString(), CircumcentreTest.testCircumcentre1(), CollectionHomogenizeTest.testCollectionHomogenize(), FlipCoordinatesTest.testFlipCoordinates(), Force2DTest.testForce2D(), Force3DTest.testForce3D(), Force3DMTest.testForce3DM(), Force3DMTest.testForce3DM2(), Force4DTest.testForce4D(), ForceCollectionTest.testForceCollection(), ForceCollectionTest.testForceCollectionZ(), ForcePolygonCCWTest.testForcePolygonCCW(), ForcePolygonCWTest.testForcePolygonCW(), EndPointTest.testLineString2D(), StartPointTest.testLineString2D(), EndPointTest.testLineString3D(), StartPointTest.testLineString3D(), MinimumBoundingCircleCenterTest.testMinimumBoundingCircle(), MinimumBoundingCircleTest.testMinimumBoundingCircle(), MinimumClearanceLineTest.testMinimumClearanceLine(), MinimumDiameterLineTest.testMinimumDiameterLine(), MinimumRectangleTest.testMinimumRectangle(), MultiTest.testMulti2D(), MultiTest.testMulti3D(), SelfIntersectionsTest.testNoSelfIntersections(), EndPointTest.testPoint(), StartPointTest.testPoint(), PointsTest.testPoints(), PointsTest.testPoints3D(), ReverseTest.testReverse(), SelfIntersectionsTest.testSelfIntersections(), ShiftLongitudeTest.testShiftLongitude(), SimplifyPreserveTopologyTest.testSimplifyVW(), and TransScaleTest.testTransScale().

◆ getURI()

String getURI ( )
18  {
19  return null;
20  }

◆ operation()

Geometry operation ( Geometry  geom)
protected

Reimplemented from GeometricUnaryFunction.

23  {
24  final ArrayList<LineString> list = new ArrayList<LineString>();
25  final GeometryFactory gf = new GeometryFactory();
26  /*
27  final Coordinate[] coords = poly.getExteriorRing().getCoordinates();
28  final Point xpoints[] = new Point[coords.length];
29  for (int i = 0; i < coords.length; i++) {
30  xpoints[i] = new Point(coords[i].x, coords[i].y);
31  }
32  final Polygon xpoly = new Polygon(xpoints);
33  final Skeleton skeleton = new Skeleton(xpoly);
34  skeleton.execute();
35  final List lines = skeleton.getLines(false);
36  final Object[] array = lines.convertValuesToArray();
37 
38  for (int i = 0; i < array.length; i++) {
39  final Segment segment = (Segment) array[i];
40  System.out.println(segment.toString());
41  final Coordinate[] segmentCoords = new Coordinate[] {
42  new Coordinate(segment.getStartPoint().x, segment.getStartPoint().y),
43  new Coordinate(segment.getEndPoint().x, segment.getEndPoint().y) };
44  list.add(gf.createLineString(segmentCoords));
45  }
46 
47  return gf.createMultiLineString(list.toArray(new LineString[0]));
48  */
49  return null;
50  }