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

Contents of /dao/DaoAdresseService/src/dk/daoas/daoadresseservice/GeocodeHelper.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2301 - (show annotations) (download)
Sun Feb 15 16:09:11 2015 UTC (9 years, 3 months ago) by torben
File size: 3035 byte(s)
Implement OpenStretMap helper
1 package dk.daoas.daoadresseservice;
2
3 import java.io.IOException;
4 import java.net.URLEncoder;
5 import java.util.List;
6
7 import com.google.code.geocoder.Geocoder;
8 import com.google.code.geocoder.GeocoderRequestBuilder;
9 import com.google.code.geocoder.model.GeocodeResponse;
10 import com.google.code.geocoder.model.GeocoderAddressComponent;
11 import com.google.code.geocoder.model.GeocoderRequest;
12 import com.google.code.geocoder.model.GeocoderResult;
13 import com.google.code.geocoder.model.GeocoderStatus;
14 import com.google.gson.Gson;
15
16 import dk.daoas.daoadresseservice.beans.OSMAddress;
17
18 public class GeocodeHelper {
19
20
21
22
23
24 public static void main(String[] args) throws IOException {
25 //System.out.println( GeocodeHelper.googleHelper(2800, "Chr. Xs Alle") );
26 System.out.println( GeocodeHelper.openstreetmapHelper(2800, "Chr. Xs Alle") );
27 System.out.println( GeocodeHelper.openstreetmapHelper(8700, "Enebaervej") );
28 }
29
30 public static String openstreetmapHelper(int postnr, String vejnavn) {
31
32 try {
33
34 String encVej = URLEncoder.encode(vejnavn, "UTF-8");
35
36 String url = "http://nominatim.openstreetmap.org/search?country=DK&street=" + encVej + "&postalcode=" + postnr + "&format=json&addressdetails=1";
37 //String url = "http://nominatim.openstreetmap.org/search?country=DK&street=" + encVej + "&format=json&addressdetails=1";
38 //System.out.println (url);
39
40 String json = HttpUtil.getContentString(url, 1000);
41 //System.out.println(json);
42
43 Gson gson = new Gson();
44 OSMAddress adrList[] = gson.fromJson(json, OSMAddress[].class);
45
46 //System.out.println("Count: " + adrList.length);
47 if (adrList.length != 1)
48 return null;
49
50 if (adrList[0].address != null) {
51 return adrList[0].address.road;
52 }
53
54
55 } catch (Exception e) {
56 System.out.println( "Error: " + e.getMessage() );
57 }
58 return null;
59 }
60
61
62
63 public static String googleHelper(int postnr, String vejnavn) {
64 try {
65 //Todo: Load api key from context config
66 final Geocoder geocoder = new Geocoder();
67
68 String search = vejnavn + ", " + postnr + ", Denmark";
69 GeocoderRequest geocoderRequest = new GeocoderRequestBuilder().setAddress(search).setLanguage("en").getGeocoderRequest();
70 GeocodeResponse geocoderResponse = geocoder.geocode(geocoderRequest);
71
72
73 //System.out.println( "Status: >" + geocoderResponse.getStatus() + "<");
74 if ( geocoderResponse.getStatus() != GeocoderStatus.OK) {
75 return null;
76 }
77
78 List<GeocoderResult> resList = geocoderResponse.getResults();
79 //System.out.println( "Count: " + resList.size() );
80
81 if (resList.size() != 1) {
82 return null;
83 }
84 GeocoderResult res = resList.get(0);
85
86 List<GeocoderAddressComponent> compList = res.getAddressComponents();
87 for (GeocoderAddressComponent c : compList) {
88 //System.out.println(c);
89 if (c.getTypes().contains("route")) {
90 return c.getLongName();
91 }
92 }
93
94 } catch (IOException e) {
95 System.out.println( "GoogleError: " + e.getMessage() );
96 }
97 return null;
98
99 }
100
101 }

  ViewVC Help
Powered by ViewVC 1.1.20