Package org.openstreetmap.josm.data.osm
Class MultipolygonBuilder
- java.lang.Object
-
- org.openstreetmap.josm.data.osm.MultipolygonBuilder
-
public class MultipolygonBuilder extends Object
Helper class to build multipolygons from multiple ways.- Since:
- 7392 (rename), 3704
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MultipolygonBuilder.JoinedPolygon
Represents one polygon that consists of multiple ways.static class
MultipolygonBuilder.JoinedPolygonCreationException
An exception indicating an error while joining ways to multipolygon rings.
-
Field Summary
Fields Modifier and Type Field Description List<MultipolygonBuilder.JoinedPolygon>
innerWays
List of inner waysList<MultipolygonBuilder.JoinedPolygon>
outerWays
List of outer ways
-
Constructor Summary
Constructors Constructor Description MultipolygonBuilder()
Constructs a new emptyMultipolygonBuilder
.MultipolygonBuilder(List<MultipolygonBuilder.JoinedPolygon> outerWays, List<MultipolygonBuilder.JoinedPolygon> innerWays)
Constructs a newMultipolygonBuilder
initialized with given ways.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static List<MultipolygonBuilder.JoinedPolygon>
joinWays(Collection<Way> ways)
Joins the givenways
to multipolygon rings.static Pair<List<MultipolygonBuilder.JoinedPolygon>,List<MultipolygonBuilder.JoinedPolygon>>
joinWays(Relation multipolygon)
Joins the givenmultipolygon
to a pair of outer and inner multipolygon rings.String
makeFromWays(Collection<Way> ways)
Splits ways into inner and outer JoinedWays.
-
-
-
Field Detail
-
outerWays
public final List<MultipolygonBuilder.JoinedPolygon> outerWays
List of outer ways
-
innerWays
public final List<MultipolygonBuilder.JoinedPolygon> innerWays
List of inner ways
-
-
Constructor Detail
-
MultipolygonBuilder
public MultipolygonBuilder(List<MultipolygonBuilder.JoinedPolygon> outerWays, List<MultipolygonBuilder.JoinedPolygon> innerWays)
Constructs a newMultipolygonBuilder
initialized with given ways.- Parameters:
outerWays
- The outer waysinnerWays
- The inner ways
-
MultipolygonBuilder
public MultipolygonBuilder()
Constructs a new emptyMultipolygonBuilder
.
-
-
Method Detail
-
makeFromWays
public String makeFromWays(Collection<Way> ways)
Splits ways into inner and outer JoinedWays. SetsinnerWays
andouterWays
to 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,
null
if all fine.
-
joinWays
public static Pair<List<MultipolygonBuilder.JoinedPolygon>,List<MultipolygonBuilder.JoinedPolygon>> joinWays(Relation multipolygon)
Joins the givenmultipolygon
to 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 List<MultipolygonBuilder.JoinedPolygon> joinWays(Collection<Way> ways)
Joins the givenways
to multipolygon rings.- Parameters:
ways
- the ways to join.- Returns:
- a list of multipolygon rings.
- Throws:
MultipolygonBuilder.JoinedPolygonCreationException
- if the creation fails.
-
-