私の問題を説明するのは簡単ではありませんが、試してみます。
私はAndroidのGoogleMapを持っています。その上に、ImageViewを常にその中心に配置しています。マップをドラッグ/パンすると、ピンは常に GoogleMap の中心になります。
ここで、マップ上のどこかにマーカーを追加します。中心点がマップの中心に留まり、マーカーがマップ内に表示され、最高のズーム レベルになるようにズームしたいと考えています。
問題は、マーカーがマップの境界内にあるかどうかを確認し、それまでズームイン/アウトし続けると、このプロセスが常に繰り返されます。つまり、ズームインしようとして、マーカーが外側になった場合、ズームアウトする。
問題は、ズームインまたはズームアウトするたびに自分自身を呼び出し続ける OnCameraChange リスナーに依存しているため、ズームイン/ズームアウトのプロセスが無期限に発生し続けることです。
journeyGoogleMap.setOnCameraChangeListener(new OnCameraChangeListener()
{
@Override
public void onCameraChange(final CameraPosition position)
{
基本的に、私が必要としているのは、中心の LatLng と markerLatLng を提供できる関数であり、LatLngBounds を自動的に計算して、私の中心が LatLng 境界の中心内にあることを確認してから、単純に使用できます
public static CameraUpdate newLatLngBounds (LatLngBounds bounds, int width, int height, int padding)
以下のリンクに示すように https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/CameraUpdateFactory#newLatLngBounds(com.google.android.gms.maps.model. LatLngBounds,int , int,int)
さらに明確にする必要がある場合は、教えてください