google map APIを用いて緯度経度情報から住所をとってくるプログラムを書いています.エクリプスでjava言語を使用しています.
あらかじめcsvファイルに緯度経度情報を入力しているのですが,なぜか住所を取得しcsvファイルに出力した時に,結果がずれてしまいます.
なぜなのか教えていただきたいです.
開発環境はwindows7です.
java
1コード 2```package google; 3 4import java.io.BufferedReader; 5import java.io.BufferedWriter; 6import java.io.FileInputStream; 7import java.io.FileWriter; 8import java.io.InputStreamReader; 9import java.io.PrintWriter; 10import java.net.URL; 11import java.net.URLConnection; 12import java.util.Arrays; 13 14public class AP{ 15 16 17 18 public static void main(String[] argv) throws NumberFormatException,Exception { 19 20 21 22 23 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("week2.csv"))); 24 String read; 25 26 FileWriter fw = new FileWriter("C:\\Users\\konoLAB\\Documents\\卒研\\workspace\\API\\out11.csv", false); //???P 27 PrintWriter pw = new PrintWriter(new BufferedWriter(fw)); 28 29 double a; 30 double c; 31 double [] b;//??x?z?? 32 double [] d;//?o?x?z?? 33 String [] day;//?o?x?z?? 34 day=new String[300000]; 35 b=new double[300000]; 36 d=new double[300000]; 37 String [] timecsv;//?o?x?z?? 38 timecsv=new String[300000]; 39 double [] time_hour;//????v?f?????z?? 40 double [] time_second;//????v?f?????z?? 41 double [] time_minitue;//????v?f?????z?? 42 String time;//???? 43 String [] time_para;//????v?f???? 44 time_para=new String[300000]; 45 time_hour=new double[300000]; 46 time_second=new double[300000]; 47 time_minitue=new double[300000]; 48 int h=0; 49 double [] e;//?o?x?z?? 50 e=new double[300000]; 51 double [] f;//?o?x?z?? 52 f=new double[300000]; 53 double [] g;//?o?x?z?? 54 g=new double[300000]; 55 while((read=br.readLine())!=null) 56 { 57 String[] sp = read.split(",");//","?????????z???B 58 for(int j=0;j<sp.length;j++) 59 { 60 if(j==0) 61 { 62 day[h]=sp[j]; 63 64 } 65 66 if(j==1) 67 { 68 time=sp[j]; 69 timecsv[h]=sp[j]; 70 //System.out.println(time); 71 time_para=time.split(":"); 72 //System.out.println(time_para[1]); 73 time_hour[h]=Double.parseDouble(time_para[0]); 74 time_second[h]=Double.parseDouble(time_para[1]); 75 time_minitue[h]=Double.parseDouble(time_para[2]); 76 } 77 78 if(j==3) 79 { 80 b[h]=Double.parseDouble(sp[j]); 81 } 82 83 if(j==4) 84 { 85 d[h]=Double.parseDouble(sp[j]); 86 87 } 88 if(j==5) 89 { 90 e[h]=Double.parseDouble(sp[j]); 91 92 } 93 if(j==6) 94 { 95 f[h]=Double.parseDouble(sp[j]); 96 97 } 98 if(j==7) 99 { 100 g[h]=Double.parseDouble(sp[j]); 101 h++; 102 } 103 } 104 } 105 br.close(); 106 107///////////////////////http/////////////////////////////////////////////////////////////////////////// 108 for(int x=0;x<h;x++) 109 { 110 String S = "https://maps.googleapis.com/maps/api/geocode/json?latlng="; 111 String S1 = ","; 112 String S2 = "&language=jp&sensor=false"; 113 114 String last=S+b[x]+S1+d[x]+S2; 115 116 /**/ 117 FileWriter f1 = new FileWriter("C:\\Users\\konoLAB\\Documents\\卒研\\workspace\\API\\out21.csv", true); //???P 118 PrintWriter p1 = new PrintWriter(new BufferedWriter(f1)); 119 URL url = new URL(last); 120 URLConnection conn = url.openConnection(); 121 122 String charset = Arrays.asList(conn.getContentType().split(";") ).get(1); 123 String encoding = Arrays.asList(charset.split("=") ).get(1); 124 125 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding )); 126 StringBuffer response = new StringBuffer(); 127 String line; 128 int count=0; 129 130 while ((line= in.readLine()) != null) 131 { 132 //System.out.println(line); 133 if (line.contains("\"formatted_address\" :")) 134 { 135 136 /*if(count==0) 137 { 138 final String start = "\"formatted_address\" : \""; 139 final int start1 = line.indexOf(start) + start.length(); 140 141 final String finish = "\","; 142 final int finish1 = line.indexOf(finish); 143 144 System.out.println(line.substring(start1, finish1)); 145 pw.print(line.substring(start1, finish1)); 146 pw.println(); 147 }*/ 148 149 150 if(count==1) 151 { 152 String start = "\"formatted_address\" : \""; 153 int start1 = line.indexOf(start) + start.length(); 154 155 String finish = "\","; 156 int finish1 = line.indexOf(finish); 157 158 System.out.println(line.substring(start1, finish1)); 159 p1.print(line.substring(start1, finish1)); 160 p1.println(); 161 162 break; 163 } 164 165 /*if(count==2) 166 { 167 final String start = "\"formatted_address\" : \""; 168 final int start1 = line.indexOf(start) + start.length(); 169 170 final String finish = "\","; 171 final int finish1 = line.indexOf(finish); 172 173 System.out.println(line.substring(start1, finish1)); 174 pw.print(line.substring(start1, finish1)); 175 pw.println(); 176 }*/ 177 178 count++; 179 180 181 } 182 response.append(line+"\n"); 183 184 } 185 186 187p1.close(); 188in.close(); 189 190/**/ 191 192//String title = AP.getTitle(last); 193 194 } 195 196 pw.close(); 197////////////////////////////////////////////////////////////////////////////////////////////////////// 198 199 200 } 201}
あなたの回答
tips
プレビュー