2016-12-24 1 views
1

マップにはポリラインでリンクされた一連のポイントが表示されます。マップはLiteModeですが、特定の状況でLatLngBoundsを作成してカメラを更新するいくつかのポイントは地図から除外されます。LatLngBoundsまたはCameraUpdateでMaps Liteモードのすべてのポイントが表示されない

LatLngBounds.Builder builder = new LatLngBounds.Builder(); 
    for (LatLng latLng : listPoints) { 
     builder.include(latLng); 
    } 
    LatLngBounds bounds = builder.build(); 
    int padding = 0; //offset from edges of the map in pixels 
    CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding); 
    map.moveCamera(cu); 

どうすれば解決できますか? 1 そして、私はLiteModeを削除する場合はそれが見られている:私たちもpadingを変更することで、彼らが視界の外にあることがわかりますポリラインを通じ

2]

答えて

2

を私はこの問題を解決! Googleマップのライトモードdocumentationによると
は言う:

カメラの位置、ズーム、アニメーション
がサポートされていますか?部分的に
カメラのターゲットとズームは設定できますが、傾きやベアリングは設定できません。 ズームレベルは、ライトモードで最も近い整数に丸められます。 GoogleMap.moveCamera()を呼び出すと、別の静的マップイメージが表示されます。カメラの設定と操作の詳細については、ビューの変更を参照してください。

私のソリューションマップから可視域を取得し、私のリスト上の点のいずれかがその領域外であったかどうかを確認するために比較することであったのであれば、私はすべてのポイントとなるよう、十分なカメラをズームアウトするZoomOutを適用可視領域にあった。

for (LatLng latLng : listPoints) { 
       if (!(map.getProjection().getVisibleRegion().latLngBounds.contains(latLng))) { 
        map.moveCamera(CameraUpdateFactory.zoomOut()); 
        break; 
       } 
      } 

どうやら問題私はそれがズームレベルは、例えば、ある場合7.4が正しく最も近い整数に丸めて地図上の全ての点を表示することで理解するとおり、貴重.4 LiteModeよりも余裕がなくなります。これは無効になります。

最適なオプションかどうかわかりませんが、問題は解決しています。どの意見も歓迎です! :)

+0

制限がある場合、解決策が最適です。これがあなたの問題を解決するので、あなた自身の答えを受け入れて他者を助けることができます – antonio

関連する問題