2013-08-28 10 views
6

Jestem w stanie wyświetlić znacznik, a także pokazując go z zoomem i ustawieniem kamery, gdy pierwszy użytkownik przegląda mapę. Ale moim wymaganiem jest przesunięcie kamery do tej samej pozycji znacznika (gdy użytkownik tego chce), jeśli użytkownik odejdzie z tej pozycji znacznika (znacznik zostanie usunięty z ekranu) podczas jego wizyty.jak przenieść camra do określonego znacznika w Google Maps v2 w Androidzie

+0

dowolny kod .....? –

Odpowiedz

9

Dzięki za odpowiedzi, , ale szukałem jakiegoś natywnego kompozytu Map nent, aby wykonać zadanie resetowania znaczników mapy, a nie zewnętrzny przycisk, aby powrócić do wybranej lokalizacji znacznika. Mam to działa z najnowszą aktualizacją w Map Api (mieć setOnMyLocationButtonClickListener) Używając poniższego kodu: -

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

uwzględniając odwołanie do obiektu GoogleMap i do znacznika, można po prostu użyć

GoogleMap mMap; 
Marker mMarker; 

[...] 

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

(gdzie byś zastąpić „14” do pożądanego poziomu zoom).

Wystarczy przypiąć ten wiersz do zdarzenia OnClick przycisku, który użytkownik kliknie, aby "wrócić" do znacznika ... i gotowe! ;)

5

można użyć [animateCamera] [1] Funkcja obiektu 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

Można również użyć tak:

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

// Inną metodą jest użycie bieżącej lokalizacji

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

    } 
Powiązane problemy