I have been trying to get similar types of places using google places api. Here's code
/**
* Method to search certain type of place using Places API
* Uses latitude and longitude from global variable
*/
private void getPlaces() {
apiList = getResources().getStringArray(R.array.apiList);
int randomIndex = new Random().nextInt(apiList.length);
String api = apiList[randomIndex];
String url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=" +
latitude + "," + longitude + "&rankby=distance&type=" + type + "&key=" + api;
Log.i("PlaceList", "url: " + url);
final RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, new com.android.volley.Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Places place;
Log.i("PlaceList", "onResponse: response: " + response.toString());
try {
JSONArray jsonArray = response.getJSONArray("results");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
JSONObject geometry = jsonObject.getJSONObject("geometry");
JSONObject location = geometry.getJSONObject("location");
double lat = location.getDouble("lat");
double lng = location.getDouble("lng");
String id = jsonObject.getString("id");
String name = jsonObject.getString("name");
String placeId = jsonObject.getString("place_id");
double rating = 0.0;
if (jsonObject.has("rating")) {
rating = jsonObject.getDouble("rating");
}
String vicinity = jsonObject.getString("vicinity");
String photoReference = "null";
if (jsonObject.has("photos")) {
JSONArray photos = jsonObject.getJSONArray("photos");
JSONObject photosObject = photos.getJSONObject(0);
photoReference = photosObject.getString("photo_reference");
}
place = new Places(lat, lng, id, name, placeId, rating, photoReference, vicinity);
placeArrayList.add(place);
Log.i(TAG, "onResponse: palceArrayList: " + placeArrayList.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
placeListAdapter.notifyDataSetChanged();
dialog.dismiss();
}
}, new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "onErrorResponse: error: " + error.toString());
}
});
requestQueue.add(jsonObjectRequest);
}
I am always getting api quote exceeds error so I tried using multiple api using string-array . No matter what I am unable to get data, I have tried creating new gmail and api which doesn't works. So what am I doing wrong?
Please help. I am beginner so sorry if I have done something wrong please point that mistake, I will correct.
Thank you.