使用java JSON剖析套件來擷取google map api內重要資訊,包含經緯度、地址、大小、精度等,從中學習如何使用google公開API,以及了解到JSON的格式、運作,因目前網路上傳送資料的方式亦趨使用JSON格式,其容易閱讀、相容性高、支援多資料格式,故盡早了解其內容是必然之趨勢。
1.首先需引用java-json.jar
2.撰寫並引入json Object,並使用google map json api(1)google mp api說明:https://developers.google.com/maps/documentation/geocoding/?hl=zh-tw#JSON,尚包括xml格式,而在此使用json方式解析。(2)Json api 內容:http://maps.googleapis.com/maps/api/geocode/json?address=您想要的地址&sensor=false&language=zh-TW(3)import引用的json jar:
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
3.取得輸入地址及經度、緯度
public static void main(String[] args) {
try {
String sKeyWord = "台北市101";
URL url = new URL(String.format("http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false&language=zh-TW",
URLEncoder.encode(sKeyWord, "UTF-8")));//p=%s is KeyWord in
URLConnection connection = url.openConnection();
String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
while ((line = reader.readLine()) != null) {builder.append(line);}
JSONObject json = new JSONObject(builder.toString()); //轉換json格式
JSONArray ja = json.getJSONArray("results");//取得json的Array物件
for (int i = 0; i < ja.length(); i++) {
System.out.print("地址:" + ja.getJSONObject(i).getString("formatted_address") + " ");
System.out.print("緯度:" + ja.getJSONObject(i).getJSONObject("geometry").getJSONObject("location").getDouble("lat") + " ");
System.out.print("經度:" + ja.getJSONObject(i).getJSONObject("geometry").getJSONObject("location").getDouble("lng"));
System.out.println("");
}
} catch (JSONException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex);
}
}
請問 我直接下載了您的檔案 不過都顯示無法執行和debug(沒有任何紅色驚嘆號的錯誤標示)
回覆刪除是否是因為我需要下載甚麼套件呢? 我用的開發環境是:NetBeans IDE8.0.2
有較具體的畫面嗎?我的NetBeans IDE8.0.2是正常可以執行的,還有你是執行哪隻檔案
刪除剛剛用了另一台電腦就能執行了, 謝謝您的回覆喔~~
刪除我在繼續研究一下code 感恩~