2013-08-28 40 views
6

Tôi có thể hiển thị điểm đánh dấu cũng như hiển thị điểm đánh dấu bằng cài đặt thu phóng và máy ảnh khi người dùng lần đầu tiên xem bản đồ. Nhưng yêu cầu của tôi là di chuyển máy ảnh đến cùng vị trí điểm đánh dấu (khi người dùng muốn) nếu người dùng rời khỏi vị trí điểm đánh dấu đó (điểm đánh dấu bị tắt màn hình) trong lần truy cập của họ.cách di chuyển camra đến điểm đánh dấu cụ thể trong google maps v2 trong android

+0

bất kỳ mã nào .....? –

Trả lời

9

Cảm ơn bạn đã trả lời, nhưng tôi đang tìm kiếm một số bản đồ gốc compo nent để thực hiện tác vụ đặt lại điểm đánh dấu bản đồ thay vì nút ngoài để điều hướng trở lại vị trí điểm đánh dấu mong muốn. Tôi đã làm việc này với bản cập nhật mới nhất trong Bản đồ Api (để có setOnMyLocationButtonClickListener) Sử dụng mã bên dưới: -

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

Có một tham chiếu đến đối tượng googlemap và Marker, bạn chỉ có thể sử dụng

GoogleMap mMap; 
Marker mMarker; 

[...] 

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

(nơi bạn sẽ thay thế "14" cho mức độ mong muốn của bạn zoom).

Chỉ cần đính kèm dòng đó vào sự kiện OnClick của nút mà người dùng sẽ nhấp để "lấy lại" vào điểm đánh dấu ... và bạn đã hoàn tất! ;)

5

bạn có thể sử dụng [animateCamera] [1] chức năng của đối tượng 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

Bạn cũng có thể sử dụng như thế này:

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

// phương pháp khác là sử dụng vị trí hiện tại

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

    } 
Các vấn đề liên quan