2013-08-28 4 views
6

初めてマーカーを表示しているときにマーカーを表示したり、ズームやカメラ設定で表示することができます。しかし私の必要条件は、訪問中にユーザーがそのマーカ位置から離れると(マーカは画面外に出る)、同じマーカ位置にカメラを移動することです(ユーザが望む場合)。 Googleマップオブジェクトへとマーカーへの参照を持つGoogleマップの特定のマーカーにcamraを移動する方法androidでv2を使用する

+0

任意のコードを - :私は、これはコードの下に使用してマップAPIの最新のアップデート(setOnMyLocationButtonClickListenerを持っている)と協力しましたか? –

答えて

9

回答ありがとうございます。 私はいくつかのネイティブマップコンポ外部ボタンではなくマップマーカーリセットタスクを実行して、目的のマーカ位置に戻ることができます。 .....

mMap.setMyLocationEnabled(true); 
    LatLng markerLoc=new LatLng(companyDetail.getLatitude(), companyDetail.getLongitude()); 
    final CameraPosition cameraPosition = new CameraPosition.Builder() 
    .target(markerLoc)  // Sets the center of the map to Mountain View 
    .zoom(13)     // Sets the zoom 
    .bearing(90)    // Sets the orientation of the camera to east 
    .tilt(30)     // Sets the tilt of the camera to 30 degrees 
    .build();     // 
    mMap.addMarker(new MarkerOptions().position(new LatLng(companyDetail.getLatitude(), companyDetail.getLongitude())).title("Marker")); 
    mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
    mMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() { 
     @Override 
     public boolean onMyLocationButtonClick() { 
      mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
      return true; 
     } 
    }); 
16

、あなたは、単に(あなたがズームのご希望のレベルのための「14」を代用する場所)

GoogleMap mMap; 
Marker mMarker; 

[...] 

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mMarker.getPosition(), 14)); 

を使用することができます。

ユーザーがマーカーに戻るためにクリックするボタンのOnClickイベントにその行を添付すれば完了です。 ;)

5

あなたはまた、次のように使用することができますGoogleマップのオブジェクト

GoogleMap googleMap = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map).getMap(); 

googleMap.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition())); 


    [1]: https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap#animateCamera%28com.google.android.gms.maps.CameraUpdate%29 
2

の[animateCamera] [1]機能を使用することができます。

LatLng cur_Latlng=new LatLng(21.0000,78.0000); // giving your marker to zoom to your location area. 
gm.moveCamera(CameraUpdateFactory.newLatLng(cur_Latlng)); 
gm.animateCamera(CameraUpdateFactory.zoomTo(4)); 

//別の方法は、現在の場所

を使用することです
@Override 
public void onLocationChanged(Location location) { 

LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); 

CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 4); 

gm.animateCamera(cameraUpdate); 

Marker myMarkerthirtyfour = gm.addMarker(new MarkerOptions() 

.position(latLng) 

.title("You are here") 

.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))); 

locationManager.removeUpdates(this); 

    } 
関連する問題