跳到主要內容

java google Map api



使用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);
        } 
    }

3.搜尋結果

4.視窗版(1)首先到google static maps了解如何傳入相關參數以取得靜態標記圖片。(2)而該範例以此格式取之:http://maps.google.com/maps/api/staticmap?center=台北市&zoom=10&size=800x500&sensor=false&markers=color:blue%7Clabel:S%7C110台灣台北市信義區台北101,其中center參數為地圖中心、zoom為縮放等級、size圖片大小、markers則是標記出精確位置。(3)這些參數的相關資訊都可以從上述JSON格式中取之。(4)接著就可以設計出搜尋視窗讓使用者點選地址,並根據JSON資訊來向google static map取圖片並顯示,最後設計JSON格式輸出來了解其內容。



5.檔案下載





留言

  1. 請問 我直接下載了您的檔案 不過都顯示無法執行和debug(沒有任何紅色驚嘆號的錯誤標示)
    是否是因為我需要下載甚麼套件呢? 我用的開發環境是:NetBeans IDE8.0.2

    回覆刪除
    回覆
    1. 有較具體的畫面嗎?我的NetBeans IDE8.0.2是正常可以執行的,還有你是執行哪隻檔案

      刪除
    2. 剛剛用了另一台電腦就能執行了, 謝謝您的回覆喔~~
      我在繼續研究一下code 感恩~

      刪除

張貼留言

這個網誌中的熱門文章

java西元民國轉換_各種不同格式

C#資料庫操作(新增、修改、刪除、查詢)

【Excel好好玩】 自己的資產自己管!善用Google Sheet來幫我們評估貸款

這次介紹的主題是關於Excel的貸款還款計畫試算,我們人生中總會遇到需要大筆金額的花費,但當資金不夠時就得進行貸款,而貸款之前如果我們能夠審慎評估,並分析自己的還款能力之後在進行凍作,相信風險會小很多,因此就自己動動手來使用Google Sheet進行試算吧! 基本資料 ● 貸款總額: 1000000 ● 貸款期數: 84月 ● 年利率: 2.11% ● 月利率: 0.18% P.S 月利率 = 年利率 / 12 重要函式 PMT : 這是Google Sheet內建的重要年金計算公式,我們可以善用這個公式來計算固定利率及期數的固定攤還本息。因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 動手做 首先我們在Excel表上列出我們的基本資料 圖片來源 其中月利率的部分就使用公式「=B4/12」 接著我們填上第一列的期數跟餘額 圖片來源 =B2 =B3 使用關鍵PMT函數來計算本息的部分 因為PMT函式計算出的結果為負數,所以前面加上-號轉成正數。 -PMT(貸款利率(月利率), 貸款期數, 貸款總額) =-PMT($B$5,$B$3,$B$2) 圖片來源 計算利息 利息 = 貸款餘額 x 月利率 =B8*$B$5 圖片來源 計算本金 本金 = 本息 - 利息 =C8-D8 圖片來源 製作第二列餘額的部分 餘額的部分 = 上一期的餘額 - 上一期的本金 圖片來源 接著拖曳該兩列往下拉,即可查看每一期的利息與本金 圖片來源 結語 雖然市面上已經有很多貸款銀行都提供了試算功能,但如果我們想要進一步管理自己的資產時,就需要將每一期的金額給計算出來,因此才會將公式運用在Excel表,讓我們的資產管理表能夠結合負債,進一步評估我們理財行動的下一步,希望這樣的經驗可以幫助到正在理財道路上打拼的夥伴,讓我們透過有效的管理,幫助荷包長大吧! 喜歡撰寫文章的你,不妨來了解一下: Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入? 歡迎加入一起練習寫作,賺取知識,累積財富!