2013-08-28 11 views
6

Sono in grado di visualizzare un marker e di visualizzarlo con lo zoom e l'impostazione della fotocamera quando l'utente che visualizza per la prima volta la mappa. Ma il mio requisito è quello di spostare la telecamera nella stessa posizione del marker (quando l'utente lo desidera) se l'utente si allontana dalla posizione di quel marker (il marker diventa fuori schermo) durante la sua visita.come spostare la camma su un marker specifico in google maps v2 in android

+0

qualsiasi codice .....? –

risposta

9

Grazie per le risposte, ma stavo cercando una mappa nativa compo per eseguire l'operazione di azzeramento dell'indicatore della mappa anziché un pulsante esterno per tornare alla posizione desiderata dell'indicatore. Ho ottenuto questo lavoro con l'ultimo aggiornamento in Map Api (per avere setOnMyLocationButtonClickListener) utilizzando il codice seguente: -

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

Avere un riferimento all'oggetto GoogleMap e al marcatore, si può semplicemente utilizzare

GoogleMap mMap; 
Marker mMarker; 

[...] 

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

(dove si desidera sostituire il "14" per il livello desiderato di zoom).

Basta collegare quella linea all'evento OnClick del pulsante che l'utente farà clic per "tornare indietro" all'indicatore ... e il gioco è fatto! ;)

5

è possibile usare [animateCamera] [1] la funzione di oggetto GoogleMap

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

Si può anche utilizzare in questo modo:

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)); 

// altro metodo è quello di utilizzare la posizione corrente

@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); 

    } 
Problemi correlati