2015-09-11 128 views
0

當我打開應用程序時,它顯示整個世界,我必須不斷放大才能正確查看該位置。如何使相機縮放約11倍,就好像我要保持雙擊一樣?如何放大Google地圖位置?

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

    } 

    @Override 
    public void onMapReady(GoogleMap map) { 
     map.addMarker(new MarkerOptions() 
       .position(new LatLng(10.625176, -61.354915)) 
       .title("Tru-Valu, Trincity Mall")); 
    } 

回答

0

試試這個:

LatLng coordinate = new LatLng(lat, lng); 
CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 5); 
map.animateCamera(yourLocation); 
0

到米拉德·努裏的答案類似,最初的用戶可能沒有位置上,而FusedLocationProvider不會有最後的位置,但因爲API客戶,不是招」開始。所以,我的技巧是將用戶的上一次經緯度保存到savedPreferences,並在應用程序啓動時將此位置作爲初始相機動畫的LatLng加載。

我在最後更新時保存LatLng,因此它只記得在地圖上爲用戶位置更新的最後一次經緯度。

1

GoogleMap具有定位和縮放的「移動」和「動畫」方法。

您可以通過CameraUpdateFactory獲取CameraUpdate對象。這裏有些例子。

  • CameraUpdateFactory.newLatLng(LatLng latLng)

返回移動屏幕的一個 緯度和經度由經緯度對象指定的中心提供CameraUpdate。這將 相機放在LatLng對象上。

  • CameraUpdateFactory.newLatLngZoom(LatLng latLng, float zoom)

返回移動屏幕的一個 緯度和經度由經緯度對象指定的中心提供CameraUpdate,並移動到給定的 縮放級別。

  • CameraUpdateFactory.zoomBy(float amount)

返回移動當前 攝像機視點的縮放級別的CameraUpdate。

您可以在CameraUpdateFactory documenation中找到其他輔助方法。另外,關於移動谷歌地圖的相機,這裏非常有用documentation from Google Developers

所以,如果你想在Tru-Valu, Trincity Mall地方放大,這是你的代碼應該怎麼看起來像

googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
     new LatLng(10.625176, -61.354915), 16f)); 
相關問題