私はGoogleマップ上にマーカーとして表示したいLatLngポイントのリストを持っています。ポイントとパディングからCameraUpdateを作成してマーカーをうまく表示
まず、私はすべての私のポイントでLatLngBoundsを計算: は、私は現在、次のように私のすべての点にフィットするカメラビューを計算しています。
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
更新はいくつかの素晴らしいパディングと、すべての私の点で良好な眺めを提供しています:
Iterator<LatLng> i = items.iterator();
LatLngBounds.Builder builder = LatLngBounds.builder();
while (i.hasNext()) {
builder.include(i.next());
}
LatLngBounds bounds = builder.build();
質問
私はpaddingTop、paddingBottomの、paddingLeftおよびpaddingRightに異なる値を適用したいと思います。すなわち、私は両側に何も持っていない、私は上部にフローティングツールバー(約50dp
)と下部にフローティングカード(約200dp
)があります。
パディングを追加しないと、ポイントの一部が上部のツールバーまたは下部のカードで覆われます。
最大パディング(200dp
)を追加すると、上下左右に大きなギャップがあります。何か案が?
__________________________
| ___________o__________ |
| | | |
| |____________________|o|
| o |
| o |
| o |
| MAP |
| o |
| o |
| ______________________ |
| | | |
|o| | |
| | |o|
| |____________________| |
|____________________o___|
私の唯一のアイデア右今、ピクセル単位でのマップ幅を取得するLNG(明確に定義されていない)のマップ幅を取得し、ピクセル/ LNGの比率を求め、LNGへのピクセルから希望のパディングを変換して再計算LatLngBoundsは、元の境界から離れている偽のポイント(各面に1つずつ)を追加します。