2017-01-22 13 views
0

時間と距離の読み取りに問題がありますのでお手伝いください。これは私が今までに到着するために管理したところです。Googleマップを読むJson

String url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=-1.3070491136606004,36.824679896235466&destinations=-1.3074272067017922,36.82789519429207"; 
     RequestQueue mRequestQueue; 
     Cache cache = new DiskBasedCache(getActivity().getCacheDir(), 1024 * 1024); // 1MB cap 
     final Network network = new BasicNetwork(new HurlStack()); 
     mRequestQueue = new RequestQueue(cache, network); 
     mRequestQueue.start(); 
     StringRequest stringRequest = new StringRequest(Request.Method.POST, url, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         System.out.println("Response" + response); 
         JSONObject jsonObject; 
         JSONArray jsonarray; 
         try { 

          jsonObject = new JSONObject(response); 
          jsonarray = jsonObject.getJSONArray("rows"); 

          for (int i=0; i<jsonarray.length(); i++) 
          { 
           JSONArray jsonArray = jsonarray.getJSONArray(i); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 

        } 
       }){ 
      @Override 
      protected Map<String,String> getParams(){ 
       Map<String,String> params = new HashMap<String, String>(); 
       return params; 
      } 
     }; 

     // Add the request to the RequestQueue. 
     mRequestQueue.add(stringRequest); 

これは私がシステムの印刷距離= 1.8キロ、およびTime = 6分のことができるようにすべきであることで、残りは無視することができます応答です。

{ 
    "destination_addresses": [ 
    "Mombasa Road, Nairobi, Kenya" 
    ], 
    "origin_addresses": [ 
    "Liua House, Muthaiti Ave, Nairobi, Kenya" 
    ], 
    "rows": [ 
    { 
     "elements": [ 
     { 
      "distance": { 
      "text": "1.8 km", 
      "value": 1829 
      }, 
      "duration": { 
      "text": "6 mins", 
      "value": 360 
      }, 
      "status": "OK" 
     } 
     ] 
    } 
    ], 
    "status": "OK" 
} 

答えて

0

は要素

for (int i=0; i<jsonarray.length(); i++) { 
    JSONArray elements = element.getJSONObject(i).getJSONArray("elements"); 
    JSONObject innerObj = elements.getJSONObject(0); 
    String distance = innerObj.getJSONObject("distance").getString("text"); 
    String duration = innerObj.getJSONObject("duration").getString("text"); 
} 
を得ようとしておいてください
関連する問題