2012-12-18 44 views
72

Có thể thay đổi mức thu phóng cho myLocation bằng API Google Maps mới v2 không? Nếu bạn đặt GoogleMap.setEnableMyLocation (true); bạn có một nút trên bản đồ để tìm vị trí của bạn. Nếu bạn nhấp vào nó, bản đồ sẽ đưa bạn đến vị trí của bạn và phóng to nó đến một mức nào đó. Tôi có thể thay đổi thu phóng này ít hoặc nhiều hơn không?Android Google Maps v2 - đặt mức thu phóng cho myLocation

+0

bạn có bất kỳ ý tưởng về Vị trí của tôi nút zoom mức độ? Tôi muốn có giá trị đó. –

Trả lời

136

Nghi ngờ là bạn có thể thay đổi nó khi nhấp bằng Bút đánh dấu myLocation mặc định. Tuy nhiên, nếu bạn muốn ứng dụng tự động phóng to vị trí của bạn khi tìm thấy, tôi sẽ xem câu trả lời của tôi cho this question

Lưu ý rằng câu trả lời tôi cung cấp không phóng to, nhưng nếu bạn sửa đổi phương pháp onLocationChanged để được như hình dưới đây, bạn có thể chọn bất cứ mức độ phóng bạn thích:

@Override 
public void onLocationChanged(Location location) 
{ 
    if(mListener != null) 
    { 
     mListener.onLocationChanged(location); 

     //Move the camera to the user's location and zoom in! 
     mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 12.0f)); 
    } 
} 
108

bạn cũng có thể sử dụng:

mMap.animateCamera(CameraUpdateFactory.zoomTo(17.0f));  

để chỉ cần thay đổi giá trị zoom tới bất kỳ giá trị mong muốn giữa giá trị tối thiểu = 2.0 và giá trị tối đa = 21.0.

API cảnh báo rằng không phải tất cả các vị trí đều có các giá trị tại hoặc gần thu phóng tối đa.

Xem this để biết thêm thông tin về các phương pháp thu phóng có sẵn trong CameraUpdateFactory.

+0

Mức thu phóng mặc định là gì ?? –

10

giải pháp Hơi khác so với HeatfanJohn, nơi tôi thay đổi zoom tương đối với mức zoom hiện tại:

// Zoom out just a little 
map.animateCamera(CameraUpdateFactory.zoomTo(map.getCameraPosition().zoom - 0.5f)); 
15

với vị trí - in new GoogleMaps SDK:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14)); 
+1

Có sự khác biệt nào giữa newLatLngZoom() và zoom() mà nhiều câu trả lời khác đã tham chiếu không? Trong ứng dụng, từ góc độ người dùng cuối, các giao diện này giống nhau. – portfoliobuilder

0
Location locaton; 
double latitude = location.getlatitude; 
double longitude = location.getlongitude; 

Nếu bạn muốn để tiết kiệm thu phóng hoặc thu hút mọi lúc, bạn chỉ cần gọi

int zoom = mMap.getCameraPosition().zoom; 

//To set that just use 

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom); 
012 sau đây
1

bạn phải viết chỉ có một dòng trong maps_activity.xml

map:cameraZoom="13" 

Tôi hy vọng điều này sẽ giải quyết vấn đề của bạn ...

0

Trong onMapReady() Phương pháp

thay đổi các zoomLevel cho bất kỳ mong muốn giá trị.

float zoomLevel = (float) 18.0; 
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel)); 
0

Ngay cả khi tôi gần đây đã có cùng một truy vấn .... một số cách không ai trong số các setmaxzoom nêu trên hoặc bản đồ khác: cameraZoom = "13" đã không làm việc Vì vậy, tôi phát hiện ra rằng depenedency mà tôi sử dụng là cũ hãy chắc chắn rằng sự phụ thuộc của bạn cho các bản đồ google là đúng này là việc sử dụng mới nhất này

biên dịch 'com.google.android.gms: play-dịch vụ: 11.8.0'

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