--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/26 11:25:26 2383 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/26 16:09:39 2391 @@ -82,6 +82,14 @@ gadeident = helperCache.get(helperSearchKey); } + if (gadeident == null) { + String best = getbestLevenshteinDistance(vasketVejnavn, postnrVeje); + if (best != null) { + result.levenshtein = true; + gadeident = postnrVeje.get(best); + } + } + // Brug OpenStreetMap før vi prøver google // For google har en request limit, det har OSM ikke! @@ -340,6 +348,17 @@ } + private String getbestLevenshteinDistance(String vasketVejnavn, Map postnrVeje) { + for(String vej : postnrVeje.keySet()) { + if ( StringUtils.getLevenshteinDistance(vasketVejnavn, vej) == 1) { + System.out.println("Levenstein: " + vasketVejnavn + "->" + vej); + return vej; + } + } + + return null; + } + private String calculateExtendedDaoRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) { // /////////////////////////////////////////////////////////////////// @@ -418,6 +437,13 @@ aliasSet.add(vejnavn.replace("dr.", "dronningens") ); aliasSet.add(vejnavn.replace("dr ", "dronningens") ); + aliasSet.add(vejnavn.replace("dronning", "dr") ); + aliasSet.add(vejnavn.replace("dr.", "dronning") ); + aliasSet.add(vejnavn.replace("dr ", "dronning") ); + + aliasSet.add(vejnavn.replace("kng", "kongen") ); + aliasSet.add(vejnavn.replace("kongen", "kng") ); + aliasSet.add(vejnavn.replace("kvt", "kvarter") ); aliasSet.add(vejnavn.replace("kvarter", "kvt") ); @@ -453,6 +479,7 @@ //alternative måder at stave vej/gade/alle aliasSet.add(vejnavn.replace("vej", "ve") ); aliasSet.add(vejnavn.replace("vej", "vj") ); + aliasSet.add(vejnavn.replace("vej", "v") ); aliasSet.add(vejnavn.replace("alle", "all") ); aliasSet.add(vejnavn.replace("allé", "all") );