--- dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java 2015/07/17 08:27:50 2626 +++ dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java 2015/11/20 16:31:01 2778 @@ -46,6 +46,7 @@ StreetnameHelper levenshteinHelper; + StreetnameHelper metaphoneHelper; StreetnameHelper googleHelper; StreetnameHelper osmHelper; @@ -55,10 +56,28 @@ this.db = db; levenshteinHelper = new LevenshteinStreetnameHelper( this ); + metaphoneHelper = new DoubleMetaphoneStreetnameHelper(config); googleHelper = new GoogleStreetnameHelper( config ); osmHelper = new OSMStreetnameHelper( config ); } + public Address getAddressSafe(int gadeid, String husnr) throws Exception { + + Map gade = searchGadeidentAdresser.get(gadeid); + + if (gade == null) { + throw new Exception("GadeID ikke fundet"); + } + + Address addr = gade.get(husnr); + + if (addr == null) { + throw new Exception("Adresse ikke ikke fundet"); + } + + return addr; + } + public SearchResult search(String postnrStr, String adresse) { @@ -209,6 +228,13 @@ } } + if (gadeident == null) { + String vej = levenshteinHelper.proposeStreetName(request, result); + if (vej != null) { + gadeident = request.streetNames.get(vej); + } + } + // Brug OpenStreetMap før vi prøver google // For google har en request limit, det har OSM ikke! @@ -439,7 +465,7 @@ //////////////////////////////////////////////////////////////////////////////////// long stop = System.currentTimeMillis(); - System.out.println("Build, stage3 elapsed: " + (stop-start4) ); + System.out.println("Build, stage4 elapsed: " + (stop-start4) ); System.out.println("Build -- Gathering statistics"); for (Address addr : alleAdresser) { @@ -504,7 +530,7 @@ return ".." + targetAddress.rute; } else if (eb.afstand < 0.701) { return "..." + targetAddress.rute; - } else if (eb.afstand < 0.501) { + } else if (eb.afstand < 1.001) { return "...." + targetAddress.rute; } break; @@ -530,6 +556,8 @@ return "...." + targetAddress.rute; } break; + default: + System.out.println("Ukendt transport type: " + eb ); } return null; } @@ -545,6 +573,17 @@ return result; } + public List
get100PctAddresses() { + List
result = new ArrayList
(120000); + for (Address a : alleAdresser) { + if ( a.daekningsType == DaekningsType.DAEKNING_100PCT) { + result.add(a); + } + } + Collections.sort(result ); + return result; + } + /////////////////////////////////////////////////////////// private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) { String inject; @@ -583,6 +622,9 @@ aliasSet.add(vejnavn.replace("gl", "gammel") ); aliasSet.add(vejnavn.replace("gammel", "gl") ); + aliasSet.add(vejnavn.replace("gl", "gamle") ); + aliasSet.add(vejnavn.replace("gamle", "gl") ); + aliasSet.add(vejnavn.replace("lille", "ll") ); aliasSet.add(vejnavn.replace("ll ", "lille") ); aliasSet.add(vejnavn.replace("ll.", "lille") ); @@ -638,6 +680,12 @@ aliasSet.add(vejnavn.replace("christians", "chr") ); aliasSet.add(vejnavn.replace("kristian", "kr") ); aliasSet.add(vejnavn.replace("kristians", "kr") ); + + aliasSet.add(vejnavn.replace("mylius", "myl") ); + aliasSet.add(vejnavn.replace("myl", "mylius") ); + + aliasSet.add(vejnavn.replace("ludvig", "ludv") ); + aliasSet.add(vejnavn.replace("ludv", "ludvig") ); // alternative stavninger