在数据清洗过程中,行政区域代码转换最麻烦,繁琐。
1 package Util;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.net.HttpURLConnection;
6 import java.net.MalformedURLException;
7 import java.net.URL;
8 import java.util.List;
9
10 import org.dom4j.Document;
11 import org.dom4j.DocumentException;
12 import org.dom4j.Element;
13 import org.dom4j.io.SAXReader;
14
15 public class getregion{
16
17 /*
18 *
19 *
20 *
21 * 地址编码
22 *
23 * */
24 public static String getLocation(String lat,String lng){
25 String location1="";
26 String url="http://api.map.baidu.com/reverse_geocoding/v3/?ak=ld0uqubVfSTAUlXH5qIMN2F3Snsp16LU&output=xml&coordtype=wgs84ll&location="+lat+","+lng;
27 System.out.println(url);
28 Document doc = null;
29 java.net.HttpURLConnection conn = null;
30 InputStream ins = null;
31 SAXReader reader = null;
32 try{
33 //HttpTimeoutHandler hth = new HttpTimeoutHandler(600000);
34 URL conURL = new URL(null,url);
35 conn = (HttpURLConnection)conURL.openConnection();
36 conn.setDoInput(true);
37 conn.setDoOutput(true);
38 conn.setUseCaches(false);
39 ins = conn.getInputStream();
40 reader =new SAXReader();
41 doc= reader.read(ins);
42 //System.out.println(url);
43 Element root=doc.getRootElement();
44 String docXmlText=doc.asXML();
45 //System.out.println(docXmlText);
46 Element e=root.element("result");
47 Element location=e.element("formatted_address");
48 location1=location.asXML();
49 location1=location1.substring(location1.indexOf("address>")+8,location1.indexOf("</formatted_address>"));
50 /* System.out.println("lng"+lng1);
51 System.out.println("lat"+lat1);
52 // System.out.println("location"+location.asXML());
53 //System.out.println("xiayukun"+e.asXML());
54 lng1=lng1.substring(lng1.indexOf("<lng>")+5,lng1.indexOf("</lng>"));
55
56 System.out.println(lng1);
57 lat1=lat1.substring(lat1.indexOf("<lat>")+5,lat1.indexOf("</lat>"));
58 System.out.println(lat1);*/
59 List<Element> list = root.elements("location");
60 System.out.println(url);
61 for (Element object : list) {
62 System.out.println(url);
63 System.out.println(object.getName());
64 for (Element element : (List<Element>) object.elements()) {
65 System.out.print(((Element) element).getName() + ":");
66 System.out.print(element.getText() + " ");
67 }
68 System.out.println();
69
70 }
71
72 ins.close();
73 conn.disconnect();
74 }catch (MalformedURLException e) {
75 e.printStackTrace();
76 } catch (IOException e) {
77 e.printStackTrace();
78 } catch (DocumentException e) {
79 e.printStackTrace();
80 }catch(Exception e){
81 e.printStackTrace();
82 }finally {
83 try {
84 if (ins != null) {
85 ins.close();
86 ins = null;
87 }
88 } catch (IOException e1) {
89 e1.printStackTrace();
90 }
91 try {
92 if (conn != null) {
93 conn.disconnect();
94 conn = null;
95 }
96 } catch (Exception e2) {
97 e2.printStackTrace();
98 }
99 }
100 return location1;
101 }
102 /*
103 *
104 *
105 *
106 * 地址你编码
107 *
108 * */
109 public static String getlocation1(String loc){
110 String location2="";
111 String url="http://api.map.baidu.com/geocoding/v3/?address="+loc+"10号&output=xml&ak=ld0uqubVfSTAUlXH5qIMN2F3Snsp16LU&callback=showLocation";
112 System.out.println(url);
113 Document doc = null;
114 java.net.HttpURLConnection conn = null;
115 InputStream ins = null;
116 SAXReader reader = null;
117 try{
118 //HttpTimeoutHandler hth = new HttpTimeoutHandler(600000);
119 URL conURL = new URL(null,url);
120 conn = (HttpURLConnection)conURL.openConnection();
121 conn.setDoInput(true);
122 conn.setDoOutput(true);
123 conn.setUseCaches(false);
124 ins = conn.getInputStream();
125 reader =new SAXReader();
126 doc= reader.read(ins);
127 //System.out.println(url);
128 Element root=doc.getRootElement();
129 String docXmlText=doc.asXML();
130 //System.out.println(docXmlText);
131 Element e=root.element("result");
132 Element location=e.element("location");
133 Element lng=location.element("lng");
134 Element lat=location.element("lat");
135 String lng1=lng.asXML();
136 String lat1=lat.asXML();
137 System.out.println("lng"+lng1);
138 System.out.println("lat"+lat1);
139 // System.out.println("location"+location.asXML());
140 //System.out.println("xiayukun"+e.asXML());
141 lng1=lng1.substring(lng1.indexOf("<lng>")+5,lng1.indexOf("</lng>"));
142
143 System.out.println(lng1);
144 lat1=lat1.substring(lat1.indexOf("<lat>")+5,lat1.indexOf("</lat>"));
145 System.out.println(lat1);
146 location2=getLocation(lat1,lng1);
147 List<Element> list = root.elements("location");
148 System.out.println(url);
149 for (Element object : list) {
150 System.out.println(url);
151 System.out.println(object.getName());
152 for (Element element : (List<Element>) object.elements()) {
153 System.out.print(((Element) element).getName() + ":");
154 System.out.print(element.getText() + " ");
155 }
156 System.out.println();
157
158 }
159
160 ins.close();
161 conn.disconnect();
162 }catch (MalformedURLException e) {
163 e.printStackTrace();
164 } catch (IOException e) {
165 e.printStackTrace();
166 } catch (DocumentException e) {
167 e.printStackTrace();
168 }catch(Exception e){
169 e.printStackTrace();
170 }finally {
171 try {
172 if (ins != null) {
173 ins.close();
174 ins = null;
175 }
176 } catch (IOException e1) {
177 e1.printStackTrace();
178 }
179 try {
180 if (conn != null) {
181 conn.disconnect();
182 conn = null;
183 }
184 } catch (Exception e2) {
185 e2.printStackTrace();
186 }
187 }
188 return location2;
189 }
190
191 public static void main(String[] strgs){
192 System.out.println("aaaa");
193 String loc="河北邯郸马头经济开发区";
194 System.out.println(loc);
195 String structloc="";
196 structloc=getlocation1(loc);
197 System.out.println("struct_location:"+structloc);
198
199 /*//System.out.println(addressResolution("湖北省武汉市洪山区"));
200 //getPoint("河北省迁安市聚鑫街2126号");
201 ArrayList<Map<String,String>> table=new ArrayList<Map<String,String>>();
202 table = addressResolution(structloc);
203 System.out.println(table.size());
204 for(int i = 0; i < table.size(); i++){
205 System.out.println(table.get(i).get("province")+table.get(i).get("city")+table.get(i).get("county"));
206 }*/
207 }
208
209
210
211 }