Android Retrofit + Google Places API(文字搜索)

时间:2016-11-24 13:18:00

标签: android google-maps google-places-api retrofit2

我正在尝试根据给定的查询获取地点。我实现了以下界面。

 @GET("api/place/textsearch/json?key=MY_API_KEY")
Call<PlaceResponse> getNearbyPlacesByText(@Query("query") String query, @Query("location") String location, @Query("radius") int radius);

然后我像这样称呼这个方法

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    ApiInterface service = retrofit.create(ApiInterface.class);
 Call<PlaceResponse> callByText = service.getNearbyPlacesByText("psí" + "škola", currentLocation.getLatitude() + "," + currentLocation.getLongitude(), PROXIMITY_RADIUS);

然后我正在检索结果。

 callByText.enqueue(new Callback<PlaceResponse>() {
        @Override
        public void onResponse(Call<PlaceResponse> call, Response<PlaceResponse> response) {
            List<Place> places = response.body().getResults();
            Log.d(TAG, "Number of places received: " + places.size());
            setMarkers(type, places, googleMap, context);

        }


        @Override
        public void onFailure(Call<PlaceResponse> call, Throwable t) {

        }

    });

但是我得到的结果与给定的查询不匹配(我得到20个位置)。我在Postman中尝试使用网址https://maps.googleapis.com/maps/api/place/textsearch/json?query=psí+škola&location=49.188963,16.532183&radius=50000&key=MY_KEY

我不确定我是否在代码中正确设置了网址。

感谢您的任何建议 我只有8个正确数字的地方。我不确定我是否

1 个答案:

答案 0 :(得分:1)

您可以在Retrofit中设置日志记录并检查发送的内容(例如Kotlin中的内容)。

val logging = HttpLoggingInterceptor()
logging.level = HttpLoggingInterceptor.Level.BODY
val httpClient = OkHttpClient.Builder()
httpClient.addInterceptor(logging)

Retrofit.Builder()
        .baseUrl(url)
        .client(httpClient.build())
        .build()
        .create(ApiDao::class.java)