/** * A {@link SyntheticBoundaryNodeTag} is a special tag that is placed on any tag that has been * cut on the border of the particular Atlas file or shard that you are processing. The cutting * process has the potential to create floating edges at the border that are in reality not * floating edges. * * @param edge * the edge that is currently be processed * @return {@code true} if the edge contains a synthetic boundary tag */ private boolean isNotOnSyntheticBoundary(final Edge edge) { return !(SyntheticBoundaryNodeTag.isBoundaryNode(edge.start()) || SyntheticBoundaryNodeTag.isBoundaryNode(edge.end())); }
/** * This function checks an edge to determine whether it has certain characteristics that signify * to us that we do not want to keep examining this component of the network. * * @param edge * An Edge we're examining * @return {@code true} if the edge is already flagged, has an amenity type we want to exclude, * or ends in a boundary node {@code false} otherwise */ private boolean edgeCharacteristicsToIgnore(final Edge edge) { // If the edge has already been flagged by another process then we can break out of the // loop and assume that whether the check was a flag or not was handled by the other process return this.isFlagged(edge.getIdentifier()) // We don't want to handle certain types of parking amenities || this.endNodeHasAmenityTypeToExclude(edge) // Ignore edges that have been way sectioned at the border, as has high probability // of creating a false positive due to the sectioning of the way || SyntheticBoundaryNodeTag.isBoundaryNode(edge.end()) || SyntheticBoundaryNodeTag.isBoundaryNode(edge.start()); } }