2016-01-08 13 views
7

GoogleプレイスAPIを使用していくつかの場所を自動完成したいと考えています。私は特定の地域からの特定の場所を含めるだけです。 Googles APIのドキュメントでは、この機能を関数setBoundsBiasを使って説明していますが、指定された領域外の結果を返すので正しく動作しないようです。Android Googleプレイスの自動補完API境界が機能しない

try { 
      Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY) 
        .setBoundsBias(new LatLngBounds(
          new LatLng(16.371163, 21.051073), 
          new LatLng(16.725743, 21.424006))) 
        .build(getActivity()); 

      startActivityForResult(intent, requestCode); 
     } catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) { 
      e.printStackTrace(); 
     } 
+1

どのようにLatLngBoundsを使用していますか?ドキュメンテーションでは、それぞれ左上および右下に表示する必要があることが記載されています。 'LatLngBoundsオブジェクトは左上と右下隅をマークする2組の緯度/経度座標を使用して地理的領域を定義します。 ' – adjuremods

+2

アンドロイドスタジオのソースコードを見て、最初のパラメータは南西と2番目のようです北東に1つ – qwertz

+0

あなたのコードは私には正しいようですが、私はまったく同じように試してみて、それは私のために働いています。私はそれがsouthWestとNorthEastであることを確認します。それ以外の場合は例外が発生します。しかし、私は別の都市名を書くと、私はBoundBiasの外でいくつかの結果を見ることができます。しかし、もし私がちょうど3つまたは4つの文字、私のすべての結果はバイアスに属しています。私が境界を取り除くと、外にたくさんの結果が出ます。 –

答えて

0

setBoundsBiasは、エリア外の結果を返すことになっています。 これは単なるバイアスです。 範囲内の結果を排他的に返す場合は、AutocompleteFilterを使用する必要があります。 現在のところ、地域別フィルタリングの唯一のレベルは国別です。

関連する問題