Package org.openstreetmap.josm.data.osm
Class MultipolygonBuilder
- java.lang.Object
-
- org.openstreetmap.josm.data.osm.MultipolygonBuilder
-
public class MultipolygonBuilder extends java.lang.Object
Helper class to build multipolygons from multiple ways.- Since:
- 7392 (rename), 3704
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMultipolygonBuilder.JoinedPolygonRepresents one polygon that consists of multiple ways.static classMultipolygonBuilder.JoinedPolygonCreationExceptionAn exception indicating an error while joining ways to multipolygon rings.
-
Field Summary
Fields Modifier and Type Field Description java.util.List<MultipolygonBuilder.JoinedPolygon>innerWaysList of inner waysjava.util.List<MultipolygonBuilder.JoinedPolygon>outerWaysList of outer ways
-
Constructor Summary
Constructors Constructor Description MultipolygonBuilder()Constructs a new emptyMultipolygonBuilder.MultipolygonBuilder(java.util.List<MultipolygonBuilder.JoinedPolygon> outerWays, java.util.List<MultipolygonBuilder.JoinedPolygon> innerWays)Constructs a newMultipolygonBuilderinitialized with given ways.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.util.List<MultipolygonBuilder.JoinedPolygon>joinWays(java.util.Collection<Way> ways)Joins the givenwaysto multipolygon rings.static Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>>joinWays(java.util.Map<IRelation<?>,Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>>> cache, Relation multipolygon)Joins the givenmultipolygonto a pair of outer and inner multipolygon rings.static Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>>joinWays(Relation multipolygon)Joins the givenmultipolygonto a pair of outer and inner multipolygon rings.private static Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>>joinWaysActual(IRelation<?> multipolygon)Perform the actual join ways calculationjava.lang.StringmakeFromWays(java.util.Collection<Way> ways)Splits ways into inner and outer JoinedWays.
-
-
-
Field Detail
-
outerWays
public final java.util.List<MultipolygonBuilder.JoinedPolygon> outerWays
List of outer ways
-
innerWays
public final java.util.List<MultipolygonBuilder.JoinedPolygon> innerWays
List of inner ways
-
-
Constructor Detail
-
MultipolygonBuilder
public MultipolygonBuilder(java.util.List<MultipolygonBuilder.JoinedPolygon> outerWays, java.util.List<MultipolygonBuilder.JoinedPolygon> innerWays)
Constructs a newMultipolygonBuilderinitialized with given ways.- Parameters:
outerWays- The outer waysinnerWays- The inner ways
-
MultipolygonBuilder
public MultipolygonBuilder()
Constructs a new emptyMultipolygonBuilder.
-
-
Method Detail
-
makeFromWays
public java.lang.String makeFromWays(java.util.Collection<Way> ways)
Splits ways into inner and outer JoinedWays. SetsinnerWaysandouterWaysto the result. Calculation is done inMultipolygonTest.makeFromWays(Collection)to ensure that the result is a valid multipolygon.- Parameters:
ways- ways to analyze- Returns:
- error description if the ways cannot be split,
nullif all fine.
-
joinWays
public static Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>> joinWays(Relation multipolygon)
Joins the givenmultipolygonto a pair of outer and inner multipolygon rings.- Parameters:
multipolygon- the multipolygon to join.- Returns:
- a pair of outer and inner multipolygon rings.
- Throws:
MultipolygonBuilder.JoinedPolygonCreationException- if the creation fails.
-
joinWays
public static Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>> joinWays(java.util.Map<IRelation<?>,Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>>> cache, Relation multipolygon)
Joins the givenmultipolygonto a pair of outer and inner multipolygon rings.- Parameters:
multipolygon- the multipolygon to join.- Returns:
- a pair of outer and inner multipolygon rings.
- Throws:
MultipolygonBuilder.JoinedPolygonCreationException- if the creation fails.- Since:
- 19336
-
joinWaysActual
private static Pair<java.util.List<MultipolygonBuilder.JoinedPolygon>,java.util.List<MultipolygonBuilder.JoinedPolygon>> joinWaysActual(IRelation<?> multipolygon)
Perform the actual join ways calculation- Parameters:
multipolygon- the multipolygon to join.- Returns:
- a pair of outer and inner multipolygon rings.
- Throws:
MultipolygonBuilder.JoinedPolygonCreationException- if the creation fails.
-
joinWays
public static java.util.List<MultipolygonBuilder.JoinedPolygon> joinWays(java.util.Collection<Way> ways)
Joins the givenwaysto multipolygon rings.- Parameters:
ways- the ways to join.- Returns:
- a list of multipolygon rings.
- Throws:
MultipolygonBuilder.JoinedPolygonCreationException- if the creation fails.
-
-