92

私の地図が表示されるとき、それは常に固定された場所 (アフリカの近く) から始まります。

次に、次のコードを使用して、マップを目的の場所に中央揃えします。

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(loc.getLatitude(), loc.getLongitude()), 14.0f));

私の質問は、地図が表示される前にデフォルトの場所とズーム レベルを設定できますか?

ユーザーに最初のアニメーションを見せたくないからです。

ありがとう。

4

5 に答える 5

178

これを使用して、アニメーションなしで直接ズームできます。

map.moveCamera( CameraUpdateFactory.newLatLngZoom(new LatLng(xxxx,xxxx) , 14.0f) );
于 2013-01-04T13:39:42.280 に答える
91

こちらのドキュメントをご覧ください。

https://developers.google.com/maps/documentation/android-api/map#configure_initial_state

マップを XML 経由で追加するか、プログラムで追加するかによって、その方法が少し異なります。XML を使用している場合は、次のように実行できます。

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:map="http://schemas.android.com/apk/res-auto"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.SupportMapFragment"
  map:cameraBearing="112.5"
  map:cameraTargetLat="-33.796923"
  map:cameraTargetLng="150.922433"
  map:cameraTilt="30"
  map:cameraZoom="13"/>

プログラムで実行している場合は、次のことができます。

CameraPosition cameraPosition = new CameraPosition.Builder()
    .target(new LatLng(-33, 150))
    .zoom(13)
    .build();
MapFragment.newInstance(new GoogleMapOptions()
    .camera(camera));
于 2013-01-05T01:28:36.443 に答える
3

へのハンドルを作成し、それをusingSupportMapFragmentに設定しました。次に、クラスが実装するコールバックで、true かどうかを確認し、trueに設定します。これにより、ロード時に見られるジャンプがなくなり、開始位置を動的に初期化できます。私の場合、ユーザーの位置を中心にカメラを配置しているため、 が原因ですぐに呼び出されます。 visibilityView.INVISIBLESupportMapFragment.getView().setVisibility()onLocationChangedINVISIBLEVISIBLEonLocationChangedsetMyLocationEnabled(true)

要件は異なる場合がありますが、いずれにしても、可視性を設定して、適切なデータが読み込まれた後INVISIBLEに設定する適切な場所を見つけるだけで済みます。VISIBLE

于 2013-11-25T21:34:42.640 に答える
2

静的緯度経度を使用して直接 CameraUpdate を使用できます

 LatLong latlong = new LatLong(lat, long);
 CameraUpdate cameraPosition = CameraUpdateFactory.newLatLngZoom(latLong, 15);
                mGoogleMap.moveCamera(cameraPosition);
                mGoogleMap.animateCamera(cameraPosition);
于 2016-09-30T13:00:49.447 に答える