Package org.geolatte.geom.builder
Class DSL
- java.lang.Object
-
- org.geolatte.geom.builder.DSL
-
public class DSL extends Object
Contains a Domain Specific Language for constructing Geometries.The DSL has methods for creating
Positions,Geometrys andGeometryTokens.The methods for creating
Positions are:- g(lon, lat), g(lon,lat,height), gM(lon,lat, measure), and g(lon,lat,height, measure) for resp.
G2D,G3D,G2DMandG3DMPositioninstances - c(x,y), p(x,y,z), cM(x,y,measure), c(x,y,z,m) for resp.
P2D,P3D,P2DMandP3DMPositioninstances
The methods for creating geometries are named for the geometry the create.
Usage example:GeometryTokens are intermediate representations that are handy when creating aGeometrythat is composed ofGeometrys. It allows the DSL user to specify the coordinate reference system only once.import static org.geolatte.geom.builder.DSL.*; public Polygon createPolygon() { CoordinateReferenceSystem crs = ... return polygon(crs, ring(p(0, 0), p(0, 1), p(1, 1), p(1, 0), p(0, 0))); }- Author:
- Karel Maesen, Geovise BVBA creation-date: 11/10/12
- g(lon, lat), g(lon,lat,height), gM(lon,lat, measure), and g(lon,lat,height, measure) for resp.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDSL.GeometryCollectionToken<P extends Position>static classDSL.GeometryToken<P extends Position>static classDSL.LinearRingToken<P extends Position>static classDSL.LineStringToken<P extends Position>static classDSL.MultiLineStringToken<P extends Position>static classDSL.MultiPointToken<P extends Position>static classDSL.MultiPolygonToken<P extends Position>static classDSL.PointToken<P extends Position>static classDSL.PolygonToken<P extends Position>
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static C2Dc(double x, double y)Creates a projected 2D position token.static C3Dc(double x, double y, double z)Creates a projected 3D position tokenstatic C3DMc(double x, double y, double z, double m)Creates a projected 3DM position tokenstatic C2DMcM(double x, double y, double m)Creates a projected 2DM position tokenprotected static <P extends Position,G extends Geometry<P>>
G[]combine(Class<G> resultType, G geometry, G... geometries)static G2Dg(double lon, double lat)Creates a geographic 2D position tokenstatic G3Dg(double lon, double lat, double height)Creates a geographic 3D position tokenstatic G3DMg(double lon, double lat, double height, double m)Creates a geographic 3DM position tokenstatic <P extends Position>
DSL.GeometryCollectionToken<P>geometrycollection(DSL.GeometryToken<P>... tokens)Creates aGeometryCollectionTokenof the specifiedGeometryTokensstatic <P extends Position>
GeometryCollection<P>geometrycollection(CoordinateReferenceSystem<P> crs, DSL.GeometryToken<P>... tokens)Creates aGeometryCollectionfrom the specifiedGeometryTokens andCoordinateReferenceSystem.static <P extends Position>
GeometryCollection<P>geometrycollection(Geometry<P> geometry, Geometry<P>... geometries)Creates aGeometryCollectionfrom the specifiedGeometrys.static G2DMgM(double lon, double lat, double m)Creates a geographic 2DM position tokenstatic <P extends Position>
LineString<P>linestring(CoordinateReferenceSystem<P> crs, P... positions)Creates aLineStringstatic <P extends Position>
DSL.LineStringToken<P>linestring(P... positions)Creates aLineStringTokenstatic <P extends Position>
DSL.MultiLineStringToken<P>multilinestring(DSL.LineStringToken<P>... tokens)static <P extends Position>
MultiLineString<P>multilinestring(CoordinateReferenceSystem<P> crs, DSL.LineStringToken<P>... tokens)static <P extends Position>
MultiLineString<P>multilinestring(LineString<P> linestring, LineString<P>... linestrings)static <P extends Position>
DSL.MultiPointToken<P>multipoint(DSL.PointToken<P>... tokens)static <P extends Position>
MultiPoint<P>multipoint(CoordinateReferenceSystem<P> crs)static <P extends Position>
MultiPoint<P>multipoint(CoordinateReferenceSystem<P> crs, DSL.PointToken<P>... tokens)static <P extends Position>
MultiPoint<P>multipoint(CoordinateReferenceSystem<P> crs, P... positions)static <P extends Position>
MultiPoint<P>multipoint(Point<P> point, Point<P>... points)static <P extends Position>
DSL.MultiPolygonToken<P>multipolygon(DSL.PolygonToken<P>... tokens)static <P extends Position>
MultiPolygon<P>multipolygon(CoordinateReferenceSystem<P> crs, DSL.PolygonToken<P>... tokens)static <P extends Position>
MultiPolygon<P>multipolygon(Polygon<P> polygon, Polygon<P>... polygons)static <P extends Position>
Point<P>point(CoordinateReferenceSystem<P> crs, P p)Creates aPointstatic <P extends Position>
DSL.PointToken<P>point(P position)Creates aPointTokenstatic <P extends Position>
DSL.PolygonToken<P>polygon(DSL.LinearRingToken<P>... tokens)static <P extends Position>
Polygon<P>polygon(CoordinateReferenceSystem<P> crs, DSL.LinearRingToken<P>... tokens)Creates aPolygonfrom the specified ring tokens andCoordinateReferenceSystemstatic <P extends Position>
Polygon<P>polygon(LinearRing<P> hull, LinearRing<P>... rings)Creates aPolygonfrom the specified outer ring (or hull) and inner rings (if any)static <P extends Position>
LinearRing<P>ring(CoordinateReferenceSystem<P> crs, P... positions)Creates aLinearRingstatic <P extends Position>
DSL.LinearRingToken<P>ring(P... positions)Creates aLinearRingToken
-
-
-
Method Detail
-
c
public static C2D c(double x, double y)
Creates a projected 2D position token.- Parameters:
x- x or eastingy- y or northing- Returns:
- a projected 2D PosToken
-
c
public static C3D c(double x, double y, double z)
Creates a projected 3D position token- Parameters:
x- x or eastingy- y or northingz- z or height- Returns:
- a projected 3D PosToken
-
cM
public static C2DM cM(double x, double y, double m)
Creates a projected 2DM position token- Parameters:
x- x or eastingy- y or northingm- measure value- Returns:
- a projected 2DM PosToken
-
c
public static C3DM c(double x, double y, double z, double m)
Creates a projected 3DM position token- Parameters:
x- x or eastingy- y or northingz- z or heightitudem- measure value- Returns:
- a projected 3DM PosToken
-
g
public static G2D g(double lon, double lat)
Creates a geographic 2D position token- Parameters:
lon- longitudelat- latitude- Returns:
- a geographic 2D PosToken
-
g
public static G3D g(double lon, double lat, double height)
Creates a geographic 3D position token- Parameters:
lon- longitudelat- latitudeheight- height- Returns:
- a geographic 3D PosToken
-
gM
public static G2DM gM(double lon, double lat, double m)
Creates a geographic 2DM position token- Parameters:
lon- longitudelat- latitudem- measure value- Returns:
- a geographic 2DM PosToken
-
g
public static G3DM g(double lon, double lat, double height, double m)
Creates a geographic 3DM position token- Parameters:
lon- longitudelat- latitudeheight- heightm- measure value- Returns:
- a geographic 3DM PosToken
-
point
public static <P extends Position> Point<P> point(CoordinateReferenceSystem<P> crs, P p)
Creates aPoint- Type Parameters:
P- thePositiontype- Parameters:
crs- theCoordinateReferenceSystemfor thePointp- thePositionfor thePoint- Returns:
- a
Pointhaving the specifiedPositionandCoordinateReferenceSystem
-
point
public static <P extends Position> DSL.PointToken<P> point(P position)
Creates aPointToken- Type Parameters:
P- thePositiontype- Parameters:
position- thePositionfor thePointToken- Returns:
- a
PointTokenhaving the specifiedPosition
-
linestring
public static <P extends Position> LineString<P> linestring(CoordinateReferenceSystem<P> crs, P... positions)
Creates aLineString- Type Parameters:
P- thePositiontype- Parameters:
crs- theCoordinateReferenceSystemfor theLineStringpositions- thePositions for theLineString- Returns:
- a
LineStringhaving the specifiedPositions andCoordinateReferenceSystem
-
linestring
public static <P extends Position> DSL.LineStringToken<P> linestring(P... positions)
Creates aLineStringToken- Type Parameters:
P- thePositiontype- Parameters:
positions- thePositions for theLineStringToken- Returns:
- a
LineStringTokenhaving the specifiedPositions
-
ring
public static <P extends Position> LinearRing<P> ring(CoordinateReferenceSystem<P> crs, P... positions)
Creates aLinearRing- Type Parameters:
P- thePositiontype- Parameters:
crs- theCoordinateReferenceSystemfor theLinearRingpositions- thePositions for theLinearRing- Returns:
- a
LinearRinghaving the specifiedPositions andCoordinateReferenceSystem
-
ring
@SafeVarargs public static <P extends Position> DSL.LinearRingToken<P> ring(P... positions)
Creates aLinearRingToken- Type Parameters:
P- thePositiontype- Parameters:
positions- thePositions for theLinearRingToken- Returns:
- a
LinearRingTokenhaving the specifiedPositions
-
combine
@SafeVarargs protected static <P extends Position,G extends Geometry<P>> G[] combine(Class<G> resultType, G geometry, G... geometries)
-
geometrycollection
@SafeVarargs public static <P extends Position> GeometryCollection<P> geometrycollection(Geometry<P> geometry, Geometry<P>... geometries)
Creates aGeometryCollectionfrom the specifiedGeometrys.- Type Parameters:
P- thePositiontype- Parameters:
geometry- the first constituentGeometrygeometries- the rest of the constituentGeometrys- Returns:
- the
GeometryCollectionof the specified constituentGeometrys.
-
geometrycollection
@SafeVarargs public static <P extends Position> GeometryCollection<P> geometrycollection(CoordinateReferenceSystem<P> crs, DSL.GeometryToken<P>... tokens)
Creates aGeometryCollectionfrom the specifiedGeometryTokens andCoordinateReferenceSystem.- Type Parameters:
P- thePositiontype- Parameters:
crs- theCoordinateReferenceSystemfor theGeometryCollectiontokens- theGeometryTokensfor the constituentGeometrys of the returnedGeometryCollection- Returns:
- the
GeometryCollectionof the specified constituentGeometrys andCoordinateReferenceSystem
-
geometrycollection
@SafeVarargs public static <P extends Position> DSL.GeometryCollectionToken<P> geometrycollection(DSL.GeometryToken<P>... tokens)
Creates aGeometryCollectionTokenof the specifiedGeometryTokens- Type Parameters:
P- thePositiontype- Parameters:
tokens- theGeometryTokens that represent the constituentGeometrys of the returnedGeometryCollection- Returns:
- the
GeometryCollectionTokenof the specified constituentGeometryTokens
-
polygon
@SafeVarargs public static <P extends Position> Polygon<P> polygon(LinearRing<P> hull, LinearRing<P>... rings)
Creates aPolygonfrom the specified outer ring (or hull) and inner rings (if any)- Type Parameters:
P- thePositiontype- Parameters:
hull- the outer ring of the returnedPolygonrings- the inner rings of the returnedPolygon- Returns:
- the
Polygondefined by the specified outer and inner rings.
-
polygon
@SafeVarargs public static <P extends Position> Polygon<P> polygon(CoordinateReferenceSystem<P> crs, DSL.LinearRingToken<P>... tokens)
Creates aPolygonfrom the specified ring tokens andCoordinateReferenceSystem- Type Parameters:
P- thePositiontype- Parameters:
crs- theCoordinateReferenceSystemfor the returnedPolygontokens- theGeometryTokensrepresenting (in order) the outer and any inner rings- Returns:
- the
Polygondefined by the specified coordinate reference system and ring tokens
-
polygon
@SafeVarargs public static <P extends Position> DSL.PolygonToken<P> polygon(DSL.LinearRingToken<P>... tokens)
-
multipoint
@SafeVarargs public static <P extends Position> MultiPoint<P> multipoint(Point<P> point, Point<P>... points)
-
multipoint
@SafeVarargs public static <P extends Position> DSL.MultiPointToken<P> multipoint(DSL.PointToken<P>... tokens)
-
multipoint
public static <P extends Position> MultiPoint<P> multipoint(CoordinateReferenceSystem<P> crs)
-
multipoint
@SafeVarargs public static <P extends Position> MultiPoint<P> multipoint(CoordinateReferenceSystem<P> crs, P... positions)
-
multipoint
@SafeVarargs public static <P extends Position> MultiPoint<P> multipoint(CoordinateReferenceSystem<P> crs, DSL.PointToken<P>... tokens)
-
multilinestring
@SafeVarargs public static <P extends Position> MultiLineString<P> multilinestring(LineString<P> linestring, LineString<P>... linestrings)
-
multilinestring
@SafeVarargs public static <P extends Position> DSL.MultiLineStringToken<P> multilinestring(DSL.LineStringToken<P>... tokens)
-
multilinestring
@SafeVarargs public static <P extends Position> MultiLineString<P> multilinestring(CoordinateReferenceSystem<P> crs, DSL.LineStringToken<P>... tokens)
-
multipolygon
@SafeVarargs public static <P extends Position> MultiPolygon<P> multipolygon(Polygon<P> polygon, Polygon<P>... polygons)
-
multipolygon
@SafeVarargs public static <P extends Position> DSL.MultiPolygonToken<P> multipolygon(DSL.PolygonToken<P>... tokens)
-
multipolygon
@SafeVarargs public static <P extends Position> MultiPolygon<P> multipolygon(CoordinateReferenceSystem<P> crs, DSL.PolygonToken<P>... tokens)
-
-