/[projects]/dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java
ViewVC logotype

Diff of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AddressSearch.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2615 by torben, Wed Jul 15 13:39:46 2015 UTC revision 2778 by torben, Fri Nov 20 16:31:01 2015 UTC
# Line 46  public class AddressSearch { Line 46  public class AddressSearch {
46                    
47                    
48          StreetnameHelper levenshteinHelper;          StreetnameHelper levenshteinHelper;
49            StreetnameHelper metaphoneHelper;
50          StreetnameHelper googleHelper;          StreetnameHelper googleHelper;
51          StreetnameHelper osmHelper;          StreetnameHelper osmHelper;
52                    
# Line 55  public class AddressSearch { Line 56  public class AddressSearch {
56                  this.db = db;                  this.db = db;
57                                    
58                  levenshteinHelper = new LevenshteinStreetnameHelper( this );                  levenshteinHelper = new LevenshteinStreetnameHelper( this );
59                    metaphoneHelper = new DoubleMetaphoneStreetnameHelper(config);
60                  googleHelper = new GoogleStreetnameHelper( config );                  googleHelper = new GoogleStreetnameHelper( config );
61                  osmHelper = new OSMStreetnameHelper( config );                  osmHelper = new OSMStreetnameHelper( config );
62          }          }
63                    
64            public Address getAddressSafe(int gadeid, String husnr)  throws Exception {
65                    
66                    Map<String,Address> gade = searchGadeidentAdresser.get(gadeid);
67                    
68                    if (gade == null) {
69                            throw new Exception("GadeID ikke fundet");
70                    }
71                    
72                    Address addr = gade.get(husnr);
73                    
74                    if (addr == null) {
75                            throw new Exception("Adresse ikke ikke fundet");
76                    }
77                                    
78                    return addr;
79            }
80            
81                    
82          public SearchResult search(String postnrStr, String adresse)  {          public SearchResult search(String postnrStr, String adresse)  {
83                                    
# Line 209  public class AddressSearch { Line 228  public class AddressSearch {
228                          }                          }
229                  }                  }
230                                    
231                    if (gadeident == null) {
232                            String vej = levenshteinHelper.proposeStreetName(request, result);
233                            if (vej != null) {
234                                    gadeident =  request.streetNames.get(vej);
235                            }
236                    }
237                    
238                                    
239                  // Brug OpenStreetMap før vi prøver google                  // Brug OpenStreetMap før vi prøver google
240                  // For google har en request limit, det har OSM ikke!                  // For google har en request limit, det har OSM ikke!
# Line 439  public class AddressSearch { Line 465  public class AddressSearch {
465                                    
466                  ////////////////////////////////////////////////////////////////////////////////////                  ////////////////////////////////////////////////////////////////////////////////////
467                  long stop = System.currentTimeMillis();                  long stop = System.currentTimeMillis();
468                  System.out.println("Build, stage3 elapsed: " + (stop-start4) );                  System.out.println("Build, stage4 elapsed: " + (stop-start4) );
469                  System.out.println("Build -- Gathering statistics");                  System.out.println("Build -- Gathering statistics");
470                                                                    
471                  for (Address addr : alleAdresser) {                  for (Address addr : alleAdresser) {
# Line 504  public class AddressSearch { Line 530  public class AddressSearch {
530                                  return ".." + targetAddress.rute;                                  return ".." + targetAddress.rute;
531                          } else if (eb.afstand < 0.701) {                          } else if (eb.afstand < 0.701) {
532                                  return "..." + targetAddress.rute;                                  return "..." + targetAddress.rute;
533                          } else if (eb.afstand < 0.501) {                          } else if (eb.afstand < 1.001) {
534                                  return "...." + targetAddress.rute;                                  return "...." + targetAddress.rute;
535                          }                          }
536                          break;                                            break;                  
# Line 530  public class AddressSearch { Line 556  public class AddressSearch {
556                                  return "...." + targetAddress.rute;                                  return "...." + targetAddress.rute;
557                          }                          }
558                          break;                          break;
559                    default:
560                            System.out.println("Ukendt transport type: " + eb );
561                  }                                }              
562                  return null;                  return null;
563          }          }
# Line 545  public class AddressSearch { Line 573  public class AddressSearch {
573                  return result;                  return result;
574          }          }
575                    
576            public List<Address> get100PctAddresses() {
577                    List<Address> result = new ArrayList<Address>(120000);
578                    for (Address a : alleAdresser) {
579                            if ( a.daekningsType == DaekningsType.DAEKNING_100PCT) {
580                                    result.add(a);
581                            }
582                    }
583                    Collections.sort(result );
584                    return result;
585            }
586            
587          ///////////////////////////////////////////////////////////          ///////////////////////////////////////////////////////////
588          private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) {          private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) {
589                  String inject;                  String inject;
# Line 583  public class AddressSearch { Line 622  public class AddressSearch {
622                  aliasSet.add(vejnavn.replace("gl", "gammel") );                  aliasSet.add(vejnavn.replace("gl", "gammel") );
623                  aliasSet.add(vejnavn.replace("gammel", "gl") );                  aliasSet.add(vejnavn.replace("gammel", "gl") );
624                                    
625                    aliasSet.add(vejnavn.replace("gl", "gamle") );
626                    aliasSet.add(vejnavn.replace("gamle", "gl") );
627                    
628                  aliasSet.add(vejnavn.replace("lille", "ll") );                  aliasSet.add(vejnavn.replace("lille", "ll") );
629                  aliasSet.add(vejnavn.replace("ll ", "lille") );                  aliasSet.add(vejnavn.replace("ll ", "lille") );
630                  aliasSet.add(vejnavn.replace("ll.", "lille") );                  aliasSet.add(vejnavn.replace("ll.", "lille") );
# Line 638  public class AddressSearch { Line 680  public class AddressSearch {
680                  aliasSet.add(vejnavn.replace("christians", "chr") );                  aliasSet.add(vejnavn.replace("christians", "chr") );
681                  aliasSet.add(vejnavn.replace("kristian", "kr") );                  aliasSet.add(vejnavn.replace("kristian", "kr") );
682                  aliasSet.add(vejnavn.replace("kristians", "kr") );                  aliasSet.add(vejnavn.replace("kristians", "kr") );
683    
684                    aliasSet.add(vejnavn.replace("mylius", "myl") );
685                    aliasSet.add(vejnavn.replace("myl", "mylius") );
686                    
687                    aliasSet.add(vejnavn.replace("ludvig", "ludv") );
688                    aliasSet.add(vejnavn.replace("ludv", "ludvig") );
689                                    
690                                    
691                  // alternative stavninger                  // alternative stavninger
# Line 754  public class AddressSearch { Line 802  public class AddressSearch {
802                    
803          public Set<Entry<String,Integer>> getVejnavne(short postnr) {          public Set<Entry<String,Integer>> getVejnavne(short postnr) {
804                  Map<String,Integer> map = searchPostnrVejnavnGadeid.get(postnr);                  Map<String,Integer> map = searchPostnrVejnavnGadeid.get(postnr);
805                  TreeMap<String,Integer> newMap = new TreeMap<String,Integer>();                  
806                  for (Entry<String,Integer> entry : map.entrySet() ) {                  TreeMap<String,Integer> newMap = new TreeMap<String,Integer>( map );//Lav et nyt TreeMap for at sikre sortering
                         newMap.put(entry.getKey(), entry.getValue());  
                 }  
807                                    
808                  return newMap.entrySet();                  return newMap.entrySet();
809          }          }

Legend:
Removed from v.2615  
changed lines
  Added in v.2778

  ViewVC Help
Powered by ViewVC 1.1.20