Я хочу показать близлежащие рестораны, используя мое текущее местоположение. Я использую Retrofit, но я не знаю, как передать мою текущую широту и долготу в GET. Я использую ZOMATO API для получения информации о ресторанах. Мой геокод URL
Если я получу свое местоположение в MainActivity, то как передать его в GET.
Пожалуйста, помогите мне, я впервые работаю с Retrofit и API.
Мой класс интерфейса - ZomatoApi. java
package com.example.zomatoapi;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Headers;
public interface ZomatoApi {
String baseUrl = "https://developers.zomato.com/api/v2.1/";
@Headers("user-key: 1d63821dbb228ee5d09e8c8f7cfe10c3")
@GET("geocode?lat=18.521428&lon=73.8544541")
Call<CurrentCity> getRestaurant();
}
MainActivity
package com.example.zomatoapi;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class MainActivity extends AppCompatActivity {
private FusedLocationProviderClient mFusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
Retrofit retrofit = new Retrofit.Builder().baseUrl(ZomatoApi.baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
ZomatoApi zomatoApi = retrofit.create(ZomatoApi.class);
final ListView listView = findViewById(R.id.restaurantList);
final ArrayList<String> restaurantNames = new ArrayList<>();
Call<CurrentCity> listCall = zomatoApi.getRestaurant();
listCall.enqueue(new Callback<CurrentCity>() {
@Override
public void onResponse(Call<CurrentCity> call, Response<CurrentCity> response) {
CurrentCity currentCity = response.body();
List<NearbyRestaurant> nearbyRestaurants = currentCity.getNearbyRestaurants();
for (NearbyRestaurant nearbyRestaurant : nearbyRestaurants) {
Restaurant restaurant = nearbyRestaurant.getRestaurant();
Log.i("heyy", restaurant.getName());
restaurantNames.add(restaurant.getName());
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, restaurantNames);
listView.setAdapter(arrayAdapter);
}
@Override
public void onFailure(Call<CurrentCity> call, Throwable t) {
}
});
}
}