public class Multipolygon extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Multipolygon.JoinedWay
Class representing a string of ways.
|
private static class |
Multipolygon.MultipolygonRoleMatcher
Kind of strategy object which is responsible for deciding whether a given
member role indicates that the member belongs to an outer or an
inner polygon.
|
static class |
Multipolygon.PolyData
The polygon data for a multipolygon part.
|
Modifier and Type | Field and Description |
---|---|
private java.util.List<Multipolygon.PolyData> |
combinedPolygons |
private boolean |
incomplete |
private java.util.List<Way> |
innerWays |
private java.util.List<Node> |
openEnds |
private java.util.List<Way> |
outerWays |
static java.lang.String |
PREF_KEY_INNER_ROLE_PREFIXES
preference key for collection of role prefixes which indicate that the respective
member belongs to an inner polygon.
|
static java.lang.String |
PREF_KEY_INNER_ROLES
preference key for a collection of roles which indicate that the respective member belongs to an
inner polygon.
|
static java.lang.String |
PREF_KEY_OUTER_ROLE_PREFIXES
preference key for collection of role prefixes which indicate that the respective
member belongs to an outer polygon.
|
static java.lang.String |
PREF_KEY_OUTER_ROLES
preference key for a collection of roles which indicate that the respective member belongs to an
outer polygon.
|
private static Multipolygon.MultipolygonRoleMatcher |
roleMatcher |
Constructor and Description |
---|
Multipolygon(Relation r)
Constructs a new
Multipolygon from a relation. |
Modifier and Type | Method and Description |
---|---|
private void |
addInnerToOuters(java.util.List<Multipolygon.PolyData> innerPolygons,
java.util.List<Multipolygon.PolyData> outerPolygons) |
private void |
createPolygons(java.util.List<Way> ways,
java.util.List<Multipolygon.PolyData> result) |
Multipolygon.PolyData |
findOuterPolygon(Multipolygon.PolyData inner,
java.util.List<Multipolygon.PolyData> outerPolygons)
Find a matching outer polygon for the inner one
|
java.util.List<Multipolygon.PolyData> |
getCombinedPolygons()
Replies the list of combined polygons.
|
java.util.List<Multipolygon.PolyData> |
getInnerPolygons()
Replies the list of inner polygons.
|
java.util.List<Way> |
getInnerWays()
Replies the list of inner ways.
|
private static Multipolygon.MultipolygonRoleMatcher |
getMultipolygonRoleMatcher() |
java.util.List<Node> |
getOpenEnds()
Returns the start and end node of non-closed rings.
|
java.util.List<Multipolygon.PolyData> |
getOuterPolygons()
Replies the list of outer polygons.
|
java.util.List<Way> |
getOuterWays()
Replies the list of outer ways.
|
boolean |
isIncomplete()
Determines if this multipolygon is incomplete.
|
static java.util.Collection<Multipolygon.JoinedWay> |
joinWays(java.util.Collection<Way> waysToJoin)
Attempt to combine the ways in the list if they share common end nodes
|
private void |
load(Relation r) |
public static final java.lang.String PREF_KEY_OUTER_ROLES
outer
.public static final java.lang.String PREF_KEY_OUTER_ROLE_PREFIXES
public static final java.lang.String PREF_KEY_INNER_ROLES
inner
.public static final java.lang.String PREF_KEY_INNER_ROLE_PREFIXES
private static Multipolygon.MultipolygonRoleMatcher roleMatcher
private final java.util.List<Multipolygon.PolyData> combinedPolygons
private boolean incomplete
public Multipolygon(Relation r)
Multipolygon
from a relation.r
- relationprivate static Multipolygon.MultipolygonRoleMatcher getMultipolygonRoleMatcher()
public final boolean isIncomplete()
true
if this multipolygon is incompleteprivate void createPolygons(java.util.List<Way> ways, java.util.List<Multipolygon.PolyData> result)
public static java.util.Collection<Multipolygon.JoinedWay> joinWays(java.util.Collection<Way> waysToJoin)
waysToJoin
- The ways to joinMultipolygon.JoinedWay
objects indicating the possible join of those wayspublic Multipolygon.PolyData findOuterPolygon(Multipolygon.PolyData inner, java.util.List<Multipolygon.PolyData> outerPolygons)
inner
- The inner polygon to search the outer forouterPolygons
- The possible outer polygonsnull
if none was found.private void addInnerToOuters(java.util.List<Multipolygon.PolyData> innerPolygons, java.util.List<Multipolygon.PolyData> outerPolygons)
public java.util.List<Way> getOuterWays()
public java.util.List<Way> getInnerWays()
public java.util.List<Multipolygon.PolyData> getCombinedPolygons()
public java.util.List<Multipolygon.PolyData> getInnerPolygons()
public java.util.List<Multipolygon.PolyData> getOuterPolygons()
public java.util.List<Node> getOpenEnds()