From 3ff9446950508f7ca385d46fa25072211513eeec Mon Sep 17 00:00:00 2001 From: Roman Inflianskas Date: Fri, 24 Jun 2016 17:53:13 +0300 Subject: [PATCH] Formatting --- .../net/osmand/binary/GeocodingUtilities.java | 123 +++++++++--------- 1 file changed, 61 insertions(+), 62 deletions(-) diff --git a/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java b/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java index 34fef16e45..73c58b97b8 100644 --- a/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java +++ b/OsmAnd-java/src/net/osmand/binary/GeocodingUtilities.java @@ -36,34 +36,34 @@ import gnu.trove.set.hash.TLongHashSet; public class GeocodingUtilities { private static final Log log = PlatformUtil.getLog(GeocodingUtilities.class); - + public static final float THRESHOLD_MULTIPLIER_SKIP_STREETS_AFTER = 4; public static final float STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS = 100; public static final float STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS = 400; - + public static final float DISTANCE_STREET_NAME_PROXIMITY_BY_NAME = 15000; public static final float DISTANCE_STREET_FROM_CLOSEST_WITH_SAME_NAME = 1000; - + public static final float THRESHOLD_MULTIPLIER_SKIP_BUILDINGS_AFTER = 1.5f; - public static final float DISTANCE_BULDING_PROXIMITY = 100; - - public static final String[] SUFFIXES = new String[] { - "av.", "avenue", "просп.", "пер.", "пр.","заул.", "проспект", "переул.", "бул.", "бульвар", "тракт"}; - public static final String[] DEFAULT_SUFFIXES = new String[] { - "str.", "street", "улица", "ул.", "вулица", "вул.", "вулиця"}; + public static final float DISTANCE_BUILDING_PROXIMITY = 100; + + public static final String[] SUFFIXES = new String[]{ + "av.", "avenue", "просп.", "пер.", "пр.", "заул.", "проспект", "переул.", "бул.", "бульвар", "тракт"}; + public static final String[] DEFAULT_SUFFIXES = new String[]{ + "str.", "street", "улица", "ул.", "вулица", "вул.", "вулиця"}; private static Set SET_DEF_SUFFIXES = null; private static Set SET_SUFFIXES = null; - + public static Set getDefSuffixesSet() { - if(SET_DEF_SUFFIXES == null) { + if (SET_DEF_SUFFIXES == null) { SET_DEF_SUFFIXES = new TreeSet(); SET_DEF_SUFFIXES.addAll(Arrays.asList(DEFAULT_SUFFIXES)); } return SET_DEF_SUFFIXES; } - + public static Set getSuffixesSet() { - if(SET_SUFFIXES == null) { + if (SET_SUFFIXES == null) { SET_SUFFIXES = new TreeSet(); SET_SUFFIXES.addAll(Arrays.asList(SUFFIXES)); } @@ -76,19 +76,19 @@ public class GeocodingUtilities { public int compare(GeocodingResult o1, GeocodingResult o2) { LatLon l1 = o1.getLocation(); LatLon l2 = o2.getLocation(); - if(l1 == null || l2 == null){ + if (l1 == null || l2 == null) { return l2 == l1 ? 0 : (l1 == null ? -1 : 1); } return Double.compare(MapUtils.getDistance(l1, o1.searchPoint), MapUtils.getDistance(l2, o2.searchPoint)); } }; - + public static class GeocodingResult { - public GeocodingResult(){ + public GeocodingResult() { } - - public GeocodingResult(GeocodingResult r){ + + public GeocodingResult(GeocodingResult r) { this.searchPoint = r.searchPoint; this.regionFP = r.regionFP; this.regionLen = r.regionLen; @@ -99,7 +99,7 @@ public class GeocodingUtilities { this.city = r.city; this.street = r.street; } - + // input public LatLon searchPoint; // 1st step @@ -114,20 +114,20 @@ public class GeocodingUtilities { public Street street; public City city; private double dist = -1; - + public LatLon getLocation() { return connectionPoint; } - + public double getDistance() { - if(dist == -1 && connectionPoint != null && searchPoint != null) { + if (dist == -1 && connectionPoint != null && searchPoint != null) { dist = MapUtils.getDistance(connectionPoint, searchPoint); } return dist; } public double getDistanceP() { - if(point != null && searchPoint != null) { + if (point != null && searchPoint != null) { // Need distance between searchPoint and nearest RouteSegmentPoint here, to approximate distance from neareest named road return Math.sqrt(point.distSquare); } else { @@ -138,26 +138,25 @@ public class GeocodingUtilities { @Override public String toString() { StringBuilder bld = new StringBuilder(); - if(building != null) { + if (building != null) { bld.append(building.getName()); } - if(street != null) { + if (street != null) { bld.append(" str. ").append(street.getName()).append(" city ").append(city.getName()); - } else if(streetName != null) { + } else if (streetName != null) { bld.append(" str. ").append(streetName); - } else if(city != null) { + } else if (city != null) { bld.append(" city ").append(city.getName()); } - if(connectionPoint != null && searchPoint != null) { - + if (connectionPoint != null && searchPoint != null) { + bld.append(" dist=").append((int) getDistance()); } return bld.toString(); } } - - + public List reverseGeocodingSearch(RoutingContext ctx, double lat, double lon) throws IOException { RoutePlannerFrontEnd rp = new RoutePlannerFrontEnd(false); List lst = new ArrayList(); @@ -166,40 +165,40 @@ public class GeocodingUtilities { double distSquare = 0; TLongHashSet set = new TLongHashSet(); Set streetNames = new HashSet(); - for(RouteSegmentPoint p : listR) { + for (RouteSegmentPoint p : listR) { RouteDataObject road = p.getRoad(); - if(!set.add(road.getId())) { + if (!set.add(road.getId())) { continue; } // System.out.println(road.toString() + " " + Math.sqrt(p.distSquare)); - boolean emptyName = Algorithms.isEmpty(road.getName()) && Algorithms.isEmpty(road.getRef()) ; - if(!emptyName) { - if(distSquare == 0 || distSquare > p.distSquare) { + boolean emptyName = Algorithms.isEmpty(road.getName()) && Algorithms.isEmpty(road.getRef()); + if (!emptyName) { + if (distSquare == 0 || distSquare > p.distSquare) { distSquare = p.distSquare; } GeocodingResult sr = new GeocodingResult(); sr.searchPoint = new LatLon(lat, lon); - sr.streetName = Algorithms.isEmpty(road.getName())? road.getRef() : road.getName(); + sr.streetName = Algorithms.isEmpty(road.getName()) ? road.getRef() : road.getName(); sr.point = p; sr.connectionPoint = new LatLon(MapUtils.get31LatitudeY(p.preciseY), MapUtils.get31LongitudeX(p.preciseX)); sr.regionFP = road.region.getFilePointer(); sr.regionLen = road.region.getLength(); - if(streetNames.add(sr.streetName)) { + if (streetNames.add(sr.streetName)) { lst.add(sr); } } - if(p.distSquare > STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS * STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS && - distSquare != 0 && p.distSquare > THRESHOLD_MULTIPLIER_SKIP_STREETS_AFTER * distSquare ) { + if (p.distSquare > STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS * STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS && + distSquare != 0 && p.distSquare > THRESHOLD_MULTIPLIER_SKIP_STREETS_AFTER * distSquare) { break; } - if(p.distSquare > STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS*STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS) { + if (p.distSquare > STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS * STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS) { break; } } Collections.sort(lst, GeocodingUtilities.DISTANCE_COMPARATOR); return lst; } - + public List prepareStreetName(String s) { List ls = new ArrayList(); int beginning = 0; @@ -233,7 +232,7 @@ public class GeocodingUtilities { ls.add(w); } } - + public List justifyReverseGeocodingSearch(final GeocodingResult road, BinaryMapIndexReader reader, double knownMinBuidlingDistance, final ResultMatcher result) throws IOException { // test address index search @@ -242,13 +241,13 @@ public class GeocodingUtilities { if (streetNamePacked.size() > 0) { log.info("Search street by name " + road.streetName + " " + streetNamePacked); String mainWord = ""; - for(int i = 0; i < streetNamePacked.size(); i++) { + for (int i = 0; i < streetNamePacked.size(); i++) { String s = streetNamePacked.get(i); - if(!getSuffixesSet().contains(s) && s.length() > mainWord.length()) { + if (!getSuffixesSet().contains(s) && s.length() > mainWord.length()) { mainWord = s; } } - if(Algorithms.isEmpty(mainWord)) { + if (Algorithms.isEmpty(mainWord)) { mainWord = streetNamePacked.get(0); } SearchRequest req = BinaryMapIndexReader.buildAddressByNameRequest( @@ -280,17 +279,17 @@ public class GeocodingUtilities { }, mainWord, StringMatcherMode.CHECK_EQUALS_FROM_SPACE);// TODO search boundaries reader.searchAddressDataByName(req); } - + final List res = new ArrayList(); - if(streetsList.size() == 0) { + if (streetsList.size() == 0) { res.add(road); } else { Collections.sort(streetsList, DISTANCE_COMPARATOR); double streetDistance = 0; for (GeocodingResult street : streetsList) { - if(streetDistance == 0) { + if (streetDistance == 0) { streetDistance = street.getDistance(); - } else if(street.getDistance() > streetDistance + DISTANCE_STREET_FROM_CLOSEST_WITH_SAME_NAME) { + } else if (street.getDistance() > streetDistance + DISTANCE_STREET_FROM_CLOSEST_WITH_SAME_NAME) { continue; } street.connectionPoint = road.connectionPoint; @@ -325,7 +324,7 @@ public class GeocodingUtilities { reader.preloadBuildings(street.street, null); log.info("Preload buildings " + street.street.getName() + " " + street.city.getName() + " " + street.street.getId()); for (Building b : street.street.getBuildings()) { - if(b.getLatLon2() != null) { + if (b.getLatLon2() != null) { double slat = b.getLocation().getLatitude(); double slon = b.getLocation().getLongitude(); double tolat = b.getLatLon2().getLatitude(); @@ -334,33 +333,33 @@ public class GeocodingUtilities { slat, slon, tolat, tolon); double plat = slat + (tolat - slat) * coeff; double plon = slon + (tolon - slon) * coeff; - if (MapUtils.getDistance(road.searchPoint, plat, plon) < DISTANCE_BULDING_PROXIMITY) { + if (MapUtils.getDistance(road.searchPoint, plat, plon) < DISTANCE_BUILDING_PROXIMITY) { GeocodingResult bld = new GeocodingResult(street); bld.building = b; bld.connectionPoint = b.getLocation(); - streetBuildings.add(bld); - if(!Algorithms.isEmpty(b.getName2())) { + streetBuildings.add(bld); + if (!Algorithms.isEmpty(b.getName2())) { int fi = Algorithms.extractFirstIntegerNumber(b.getName()); int si = Algorithms.extractFirstIntegerNumber(b.getName2()); - if(si != 0 && fi != 0) { + if (si != 0 && fi != 0) { int num = (int) (fi + (si - fi) * coeff); BuildingInterpolation type = b.getInterpolationType(); - if(type == BuildingInterpolation.EVEN || type == BuildingInterpolation.ODD) { - if(num % 2 == (type == BuildingInterpolation.EVEN ? 1 : 0)) { - num --; + if (type == BuildingInterpolation.EVEN || type == BuildingInterpolation.ODD) { + if (num % 2 == (type == BuildingInterpolation.EVEN ? 1 : 0)) { + num--; } - } else if(b.getInterpolationInterval() > 0){ + } else if (b.getInterpolationInterval() > 0) { int intv = b.getInterpolationInterval(); if ((num - fi) % intv != 0) { num = ((num - fi) / intv) * intv + fi; } } - bld.buildingInterpolation = num +""; + bld.buildingInterpolation = num + ""; } } } - - } else if (MapUtils.getDistance(b.getLocation(), road.searchPoint) < DISTANCE_BULDING_PROXIMITY) { + + } else if (MapUtils.getDistance(b.getLocation(), road.searchPoint) < DISTANCE_BUILDING_PROXIMITY) { GeocodingResult bld = new GeocodingResult(street); bld.building = b; bld.connectionPoint = b.getLocation();