2016-11-24 25 views
0

特定のクエリに基づいて場所を取得しようとしています。私は次のインターフェイスを実装しました。Android Retrofit + GoogleプレイスAPI(テキスト検索)

@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の場所を取得)に一致しない多くの結果を取得します。私は郵便配達員のURLで試してみたhttps://maps.googleapis.com/maps/api/place/textsearch/json?query=psí+škola&location=49.188963,16.532183&radius=50000&key=MY_KEY

私は私のコードで正しくURLを設定するか分からない。

アドバイスありがとうございました 正しい番号は8つしかありません。

答えて

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) 
関連する問題