diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/GeocodingUtilities.java b/OsmAnd-java/src/main/java/net/osmand/binary/GeocodingUtilities.java index a372f12aa1..02f9e88098 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/GeocodingUtilities.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/GeocodingUtilities.java @@ -282,10 +282,12 @@ public class GeocodingUtilities { } else { Collections.sort(streetsList, DISTANCE_COMPARATOR); double streetDistance = 0; + boolean isBuildingFound = knownMinBuildingDistance > 0; for (GeocodingResult street : streetsList) { if (streetDistance == 0) { streetDistance = street.getDistance(); - } else if (street.getDistance() > streetDistance + DISTANCE_STREET_FROM_CLOSEST_WITH_SAME_NAME) { + } else if (streetDistance > 0 && street.getDistance() > streetDistance + DISTANCE_STREET_FROM_CLOSEST_WITH_SAME_NAME && + isBuildingFound) { continue; } street.connectionPoint = road.connectionPoint; @@ -296,6 +298,7 @@ public class GeocodingUtilities { if (knownMinBuildingDistance == 0) { GeocodingResult firstBld = it.next(); knownMinBuildingDistance = firstBld.getDistance(); + isBuildingFound = true; res.add(firstBld); } while (it.hasNext()) {