/** * Creates an OSM turn relation out of an unspecified OSM relation * <p> * * @return the OSM turn relation, <code>null</code>, if unsupported turn relation */ OSMTurnRelation createTurnRelation(ReaderRelation relation) { OSMTurnRelation.Type type = OSMTurnRelation.Type.getRestrictionType(relation.getTag("restriction")); if (type != OSMTurnRelation.Type.UNSUPPORTED) { long fromWayID = -1; long viaNodeID = -1; long toWayID = -1; for (ReaderRelation.Member member : relation.getMembers()) { if (ReaderElement.WAY == member.getType()) { if ("from".equals(member.getRole())) { fromWayID = member.getRef(); } else if ("to".equals(member.getRole())) { toWayID = member.getRef(); } } else if (ReaderElement.NODE == member.getType() && "via".equals(member.getRole())) { viaNodeID = member.getRef(); } } if (fromWayID >= 0 && toWayID >= 0 && viaNodeID >= 0) { return new OSMTurnRelation(fromWayID, viaNodeID, toWayID, type); } } return null; }
/** * Creates an OSM turn relation out of an unspecified OSM relation * <p> * * @return the OSM turn relation, <code>null</code>, if unsupported turn relation */ OSMTurnRelation createTurnRelation(ReaderRelation relation) { OSMTurnRelation.Type type = OSMTurnRelation.Type.getRestrictionType(relation.getTag("restriction")); if (type != OSMTurnRelation.Type.UNSUPPORTED) { long fromWayID = -1; long viaNodeID = -1; long toWayID = -1; for (ReaderRelation.Member member : relation.getMembers()) { if (ReaderElement.WAY == member.getType()) { if ("from".equals(member.getRole())) { fromWayID = member.getRef(); } else if ("to".equals(member.getRole())) { toWayID = member.getRef(); } } else if (ReaderElement.NODE == member.getType() && "via".equals(member.getRole())) { viaNodeID = member.getRef(); } } if (fromWayID >= 0 && toWayID >= 0 && viaNodeID >= 0) { return new OSMTurnRelation(fromWayID, viaNodeID, toWayID, type); } } return null; }