单个json Api解决方案,用于两个相对的Json API

时间:2015-06-25 06:28:19

标签: json google-places-api android-volley android-recyclerview google-distancematrix-api

我正在使用两个Json Apis作为我的应用程序,NearbyPlaces API返回我的位置" 名称" &安培; "的附近" Google Distance Matrix API 返回的地方" 持续时间"在几分钟内。

从json Api获取数据后,我正在尝试使用Volley库将数据加载到RecyclerView。我能够解析附近的响应并能够加载" 名称&#34 ;和" 附近"在RecyclerView中但在加载时出现问题" 持续时间"从当前位置。

我正在编写以下代码来解析齐射响应中的附近场所:

  String NEARBY_URL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+current_latitude+","+current_longitude+"&radius=500&types=embassy|shopping_mall|school|zoo|taxi_stand&key=AIzaSyD784AbXVmgxPLyeIUG137FEMu-82sadK4";
    Log.e("Response:", NEARBY_URL);
    final JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, NEARBY_URL, null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject response) {
            Log.e("Response:", response.toString());
            try {
                String status = response.getString("status");
                if (status.equalsIgnoreCase("OK")) {

                    JSONArray arrayObject = response.getJSONArray("results");
                    Log.e("Array Obj:", arrayObject.toString());


                    name_array = new ArrayList<>();
                    add_array = new ArrayList<>();
                    latitide_array=new ArrayList<>();
                    longitude_aray =new ArrayList<>();


                    for (int i = 0; i < arrayObject.length(); i++) {

                        JSONObject c = arrayObject.getJSONObject(i);
                        //below codes for current place and vicinity
                        String name = c.getString("name");
                        String address = c.getString("vicinity");
                        Log.e("Name", name);
                        Log.e("Address", address);
                        name_array.add(name);
                        add_array.add(address);
                        //below code to get latitude and longitude of specific location
                        JSONObject geometry = c.getJSONObject("geometry");
                        JSONObject locaction = geometry.getJSONObject("location");
                        Double lat = locaction.getDouble("lat");
                        Double lng = locaction.getDouble("lng");
                        Log.e("Latitude>>>>", lat.toString() + " " + lng.toString());
                        latitide_array.add(lat);
                        longitude_aray.add(lng);


                        //adding places detail in ArrayList for passing a pararmeter for RecyclerAdapter
                        nearby_items.add(new NearbyPlaces(name_array.get(i).toString(), add_array.get(i).toString(), "0.2", R.drawable.icon_rate));
                    }


                }
            } catch (JSONException e) {
                e.printStackTrace();
            }


        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.d("Error: ", "Error: " + error.getMessage());
            Toast.makeText(getActivity(),
                    error.getMessage(), Toast.LENGTH_SHORT).show();
            // hide the progress dialog
            // hidepDialog();
        }
    });

    // Adding request to request queue
    app.addToRequestQueue(jsonObjReq);
}

我面临的问题是我无法解析&#34; Googel Distance Matrix API&#34;在排球中同样的响应。

是否可以从Volley解析多个API?或者我们可以使用单个API来获取&#34;地址名称&#34;,&#34;地址&#34;和&#34;两个GeoPoints之间的距离&#34; 我也搜索了它,但没有找到任何解决方案,期待这里有一些指导,谢谢

0 个答案:

没有答案