/[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 3021 by torben, Mon Apr 25 09:34:22 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.FileReader;  import java.io.FileInputStream;
5  import java.io.IOException;  import java.io.IOException;
6    import java.io.InputStreamReader;
7    import java.nio.charset.Charset;
8  import java.util.ArrayList;  import java.util.ArrayList;
9  import java.util.Iterator;  import java.util.Iterator;
10  import java.util.List;  import java.util.List;
# Line 20  import dk.daoas.adressevedligehold.tasks Line 22  import dk.daoas.adressevedligehold.tasks
22  import dk.daoas.adressevedligehold.util.DeduplicateHelper;  import dk.daoas.adressevedligehold.util.DeduplicateHelper;
23  import dk.daoas.adressevedligehold.util.HttpUtil;  import dk.daoas.adressevedligehold.util.HttpUtil;
24  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
25  /**  
26   *  
  * 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  
  *  
  */  
27  public class DawaWebservice {  public class DawaWebservice {
28                    
29          private TaskLogger logger = TaskLogger.getInstance();          private TaskLogger logger = TaskLogger.getInstance();
30                    
         int page = 0;  
           
31          DeduplicateHelper<String> dedup = new DeduplicateHelper<>();          DeduplicateHelper<String> dedup = new DeduplicateHelper<>();
32    
33          public Map<String, Integer> kommunerIRegion(int regionskode) throws IOException {          public Map<String, Integer> kommunerIRegion(int regionskode) throws IOException {
                 TimingHelper timer = new TimingHelper();  
34                                    
35                  final String url = "http://dawa.aws.dk/kommuner";                  final String url = "http://dawa.aws.dk/kommuner";
36                                                                    
# Line 69  public class DawaWebservice { Line 60  public class DawaWebservice {
60                    
61          public List<Address> adresserIKommune(int kommunekode) throws IOException {          public List<Address> adresserIKommune(int kommunekode) throws IOException {
62                                    
63                  //Splitter splitter = Splitter.on(',').trimResults( CharMatcher.is('"') );                  TimingHelper timer = new TimingHelper();
                   
64                  List<Address> result = new ArrayList<>();                  List<Address> result = new ArrayList<>();
65                                    
66                  final String url = "http://dawa.aws.dk/adgangsadresser?kommunekode=" + kommunekode+ "&format=csv";                  final String url = "http://dawa.aws.dk/adgangsadresser?kommunekode=" + kommunekode+ "&format=csv";
67                                    
68                  File file = File.createTempFile("dawa_" + kommunekode + "_", "csv");                  File file = File.createTempFile("dawa_" + kommunekode + "_", "csv");
69                  logger.info("Gemmer til " + file.getName() );                  logger.info("Gemmer til " + file.getName() );
70                  HttpUtil.getContentToFile(url, file, 1000);                  HttpUtil.getContentToFile(url, file, 5000);
71                    
72                                    
                 TimingHelper timer = new TimingHelper();  
73                                    
74                  logger.info("Loaded data elapsed:" + timer.getElapsed());                  logger.info("Downloaded dawa file, elapsed:" + timer.getElapsed());
75                  timer = new TimingHelper();                  timer = new TimingHelper();
76                                    
77                                    
78                  try (FileReader fin = new FileReader(file);                  
79                           CSVParser parser = new CSVParser(fin, CSVFormat.EXCEL);                  
80                    try (FileInputStream fin = new FileInputStream(file);
81                                    InputStreamReader reader = new InputStreamReader(fin, Charset.forName("UTF-8"));
82                                    CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL);
83                                                    
84                                  ) {                                  ) {
85                                                    
# Line 116  public class DawaWebservice { Line 109  public class DawaWebservice {
109                                  a.kommunekode = Short.parseShort( rec.get(13) );                                  a.kommunekode = Short.parseShort( rec.get(13) );
110                                                                    
111    
112                                  a.latitude = safeParseFloat( rec.get(22) );                                  a.latitude = safeParseFloat( rec.get(21) );
113                                  a.longitude = safeParseFloat( rec.get(22) );                                  a.longitude = safeParseFloat( rec.get(22) );
114    
115                                  result.add(a);                                  result.add(a);
116    
117                          }                          }
118                  }                  }
119                  file.delete();                  boolean deleted = file.delete();
120                    if (deleted == false) {
121                            logger.info("Could not delete tmp file");      
122                    }
123                                    
124                  logger.info("AdressCount:" + result.size() + " - " + timer.getElapsed() + "ms");                  logger.info("AdressCount:" + result.size() + " - " + timer.getElapsed() + "ms");
125                                                                    
126                  page++;                  
127                                    
128                  return result;                  return result;
129          }          }
# Line 140  public class DawaWebservice { Line 136  public class DawaWebservice {
136                                    
137          }          }
138                    
         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;  
         }  
139  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20