2012-12-18 333 views
72

是否可以使用新的Google Maps API v2更改myLocation的縮放級別? 如果設置了GoogleMap.setEnableMyLocation(true);你會在地圖上找到一個按鈕來找到你的位置。如果您點擊它,地圖會將您帶到您的位置並將其放大到某個級別。我可以改變這個縮放比例嗎?Android Google Maps v2 - 爲myLocation設置縮放級別

+0

你有mylocation的任何想法按鈕縮放級別?我想要那個價值。 –

回答

136

您可以使用默認的myLocation標記進行點擊更改。但是,如果您希望應用在發現後自動放大您的位置,我會查看我的答案this question

請注意,我提供的答案沒有放大,但如果修改onLocationChanged方法要像下面的一個,你可以選擇任何縮放級別你喜歡:

@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

您還可以使用:

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

爲了變焦值,只是更改爲最小值之間的任意值= 2.0最大值= 21.0。

該API警告說,並非所有位置的瓦片都處於最大放大或接近最大放大的值。

有關CameraUpdateFactory中可用的縮放方法的更多信息,請參閱this

+0

什麼是默認縮放級別? –

10

稍有不同的解決方案比HeatfanJohn的,在這裏我比較更改縮放到當前的縮放級別:

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

與位置 - 在新的Google地圖SDK:

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

newLatLngZoom()和zoom()是否有很多其他答案引用的區別?在應用中,從最終用戶的角度來看,這些看起來是一樣的。 – portfoliobuilder

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

如果你想要保存變焦或一直獲取,只需撥打以下電話

int zoom = mMap.getCameraPosition().zoom; 

//To set that just use 

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom); 
1

你必須只有一個maps_activity.xml行寫

map:cameraZoom="13" 

我希望這將解決您的問題...

0

在onMapReady()方法

改變個zoomLevel到任何所需的值。

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

即使最近我有相同的查詢....一些如何沒有上述setmaxzoom否則地圖:cameraZoom =「13」沒有工作 所以我發現,我用的是depenedency老 請確保您的谷歌地圖的依賴是正確的 這是最新的採用這種

編譯「com.google.android.gms:發揮服務:11.8.0」

相關問題