--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaWebservice.java 2016/04/19 15:49:14 3006 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/dawa/DawaWebservice.java 2016/04/25 09:23:26 3020 @@ -1,8 +1,11 @@ package dk.daoas.adressevedligehold.dawa; import java.io.File; +import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -20,26 +23,15 @@ import dk.daoas.adressevedligehold.util.DeduplicateHelper; import dk.daoas.adressevedligehold.util.HttpUtil; import dk.daoas.adressevedligehold.util.TimingHelper; -/** - * - * 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 - * - */ + + public class DawaWebservice { private TaskLogger logger = TaskLogger.getInstance(); - int page = 0; - DeduplicateHelper dedup = new DeduplicateHelper<>(); public Map kommunerIRegion(int regionskode) throws IOException { - TimingHelper timer = new TimingHelper(); final String url = "http://dawa.aws.dk/kommuner"; @@ -69,24 +61,26 @@ public List
adresserIKommune(int kommunekode) throws IOException { - //Splitter splitter = Splitter.on(',').trimResults( CharMatcher.is('"') ); - + TimingHelper timer = new TimingHelper(); List
result = new ArrayList<>(); final String url = "http://dawa.aws.dk/adgangsadresser?kommunekode=" + kommunekode+ "&format=csv"; File file = File.createTempFile("dawa_" + kommunekode + "_", "csv"); logger.info("Gemmer til " + file.getName() ); - HttpUtil.getContentToFile(url, file, 1000); + HttpUtil.getContentToFile(url, file, 5000); + - TimingHelper timer = new TimingHelper(); - logger.info("Loaded data elapsed:" + timer.getElapsed()); + logger.info("Downloaded dawa file, elapsed:" + timer.getElapsed()); timer = new TimingHelper(); - try (FileReader fin = new FileReader(file); - CSVParser parser = new CSVParser(fin, CSVFormat.EXCEL); + + + try (FileInputStream fin = new FileInputStream(file); + InputStreamReader reader = new InputStreamReader(fin, Charset.forName("UTF-8")); + CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL); ) { @@ -116,18 +110,21 @@ a.kommunekode = Short.parseShort( rec.get(13) ); - a.latitude = safeParseFloat( rec.get(22) ); + a.latitude = safeParseFloat( rec.get(21) ); a.longitude = safeParseFloat( rec.get(22) ); result.add(a); } } - file.delete(); + boolean deleted = file.delete(); + if (deleted == false) { + logger.info("Could not delete tmp file"); + } logger.info("AdressCount:" + result.size() + " - " + timer.getElapsed() + "ms"); - page++; + return result; } @@ -140,61 +137,4 @@ } - public List
adresserIKommune_old(int kommunekode) throws IOException { - - - - List
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