/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaWebservice.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaWebservice.java

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

revision 3006 by torben, Tue Apr 19 15:49:14 2016 UTC revision 3020 by torben, Mon Apr 25 09:23:26 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.adressevedligehold.dawa;  package dk.daoas.adressevedligehold.dawa;
2    
3  import java.io.File;  import java.io.File;
4    import java.io.FileInputStream;
5  import java.io.FileReader;  import java.io.FileReader;
6  import java.io.IOException;  import java.io.IOException;
7    import java.io.InputStreamReader;
8    import java.nio.charset.Charset;
9  import java.util.ArrayList;  import java.util.ArrayList;
10  import java.util.Iterator;  import java.util.Iterator;
11  import java.util.List;  import java.util.List;
# Line 20  import dk.daoas.adressevedligehold.tasks Line 23  import dk.daoas.adressevedligehold.tasks
23  import dk.daoas.adressevedligehold.util.DeduplicateHelper;  import dk.daoas.adressevedligehold.util.DeduplicateHelper;
24  import dk.daoas.adressevedligehold.util.HttpUtil;  import dk.daoas.adressevedligehold.util.HttpUtil;
25  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
26  /**  
27   *  
  * Vi bruger org.json her istedet for fuld de-serialization via f.eks. Gson da vi kun skal bruge nogle ganske få felter fra resultatet  
  *  
  */  
 /**  
  *  
  * Vi bruger org.json her istedet for fuld de-serialization via f.eks. Gson da vi kun skal bruge nogle ganske få felter fra resultatet  
  *  
  */  
28  public class DawaWebservice {  public class DawaWebservice {
29                    
30          private TaskLogger logger = TaskLogger.getInstance();          private TaskLogger logger = TaskLogger.getInstance();
31                    
         int page = 0;  
           
32          DeduplicateHelper<String> dedup = new DeduplicateHelper<>();          DeduplicateHelper<String> dedup = new DeduplicateHelper<>();
33    
34          public Map<String, Integer> kommunerIRegion(int regionskode) throws IOException {          public Map<String, Integer> kommunerIRegion(int regionskode) throws IOException {
                 TimingHelper timer = new TimingHelper();  
35                                    
36                  final String url = "http://dawa.aws.dk/kommuner";                  final String url = "http://dawa.aws.dk/kommuner";
37                                                                    
# Line 69  public class DawaWebservice { Line 61  public class DawaWebservice {
61                    
62          public List<Address> adresserIKommune(int kommunekode) throws IOException {          public List<Address> adresserIKommune(int kommunekode) throws IOException {
63                                    
64                  //Splitter splitter = Splitter.on(',').trimResults( CharMatcher.is('"') );                  TimingHelper timer = new TimingHelper();
                   
65                  List<Address> result = new ArrayList<>();                  List<Address> result = new ArrayList<>();
66                                    
67                  final String url = "http://dawa.aws.dk/adgangsadresser?kommunekode=" + kommunekode+ "&format=csv";                  final String url = "http://dawa.aws.dk/adgangsadresser?kommunekode=" + kommunekode+ "&format=csv";
68                                    
69                  File file = File.createTempFile("dawa_" + kommunekode + "_", "csv");                  File file = File.createTempFile("dawa_" + kommunekode + "_", "csv");
70                  logger.info("Gemmer til " + file.getName() );                  logger.info("Gemmer til " + file.getName() );
71                  HttpUtil.getContentToFile(url, file, 1000);                  HttpUtil.getContentToFile(url, file, 5000);
72                    
73                                    
                 TimingHelper timer = new TimingHelper();  
74                                    
75                  logger.info("Loaded data elapsed:" + timer.getElapsed());                  logger.info("Downloaded dawa file, elapsed:" + timer.getElapsed());
76                  timer = new TimingHelper();                  timer = new TimingHelper();
77                                    
78                                    
79                  try (FileReader fin = new FileReader(file);                  
80                           CSVParser parser = new CSVParser(fin, CSVFormat.EXCEL);                  
81                    try (FileInputStream fin = new FileInputStream(file);
82                                    InputStreamReader reader = new InputStreamReader(fin, Charset.forName("UTF-8"));
83                                    CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL);
84                                                    
85                                  ) {                                  ) {
86                                                    
# Line 116  public class DawaWebservice { Line 110  public class DawaWebservice {
110                                  a.kommunekode = Short.parseShort( rec.get(13) );                                  a.kommunekode = Short.parseShort( rec.get(13) );
111                                                                    
112    
113                                  a.latitude = safeParseFloat( rec.get(22) );                                  a.latitude = safeParseFloat( rec.get(21) );
114                                  a.longitude = safeParseFloat( rec.get(22) );                                  a.longitude = safeParseFloat( rec.get(22) );
115    
116                                  result.add(a);                                  result.add(a);
117    
118                          }                          }
119                  }                  }
120                  file.delete();                  boolean deleted = file.delete();
121                    if (deleted == false) {
122                            logger.info("Could not delete tmp file");      
123                    }
124                                    
125                  logger.info("AdressCount:" + result.size() + " - " + timer.getElapsed() + "ms");                  logger.info("AdressCount:" + result.size() + " - " + timer.getElapsed() + "ms");
126                                                                    
127                  page++;                  
128                                    
129                  return result;                  return result;
130          }          }
# Line 140  public class DawaWebservice { Line 137  public class DawaWebservice {
137                                    
138          }          }
139                    
         public List<Address> adresserIKommune_old(int kommunekode) throws IOException {  
                   
                   
                   
                 List<Address> result = new ArrayList<>();  
                   
                 final String url = "http://dawa.aws.dk/adgangsadresser?kommunekode=" + kommunekode;  
                   
                 TimingHelper timer = new TimingHelper();  
                   
                 String jsonStr = HttpUtil.getContentString(url, 1000);  
                   
                 logger.info("Loaded data elapsed:" + timer.getElapsed());  
                 timer = new TimingHelper();  
   
                 JSONArray root = new JSONArray( jsonStr) ;  
                   
                 for (int i=0; i<root.length(); i++) {  
                         Address a = new Address();  
                           
                         JSONObject current = root.getJSONObject(i);  
                           
                           
                         JSONObject vejStykke = current.getJSONObject("vejstykke");  
                         String vejNavn = vejStykke.getString("navn");  
                         a.vejnavn = dedup.getInstance(vejNavn);  
                         a.vejkode = (short) vejStykke.getInt("kode");  
                           
                           
                         JSONObject kommune = current.getJSONObject("kommune");  
                         a.kommunekode = (short) kommune.getInt("kode");  
                           
                           
                         JSONObject postnummer = current.getJSONObject("postnummer");  
                         a.postnr = (short) postnummer.getInt("nr");  
   
                           
                         String husnrStr = current.getString("husnr");  
                           
                         a.husnr = Short.parseShort( husnrStr.replaceAll("[^\\d]","") );  
                         a.husnrbogstav = dedup.getInstance( husnrStr.replaceAll("\\d", "") );  
                           
                           
                         JSONObject adgangspunkt = current.getJSONObject("adgangspunkt");  
                         JSONArray koordinater = adgangspunkt.getJSONArray("koordinater");  
                         a.latitude = (float) koordinater.getDouble(1);  // Dawa sender i longitude,latitude  
                         a.longitude = (float) koordinater.getDouble(0);  
                           
                         result.add(a);  
                 }  
                   
                 logger.info("AdressCount:" + result.size() + " - " + timer.getElapsed() + "ms");  
                                   
                 page++;  
                   
                 return result;  
         }  
140  }  }

Legend:
Removed from v.3006  
changed lines
  Added in v.3020

  ViewVC Help
Powered by ViewVC 1.1.20