2014-04-01 34 views
0

我正在獲取谷歌路線並在V2地圖視圖中顯示它們。因此,最終的地圖顯示了一個起點,終點和它們之間的路線。我將它們添加到地圖如下:顯示方向旋轉地圖

LatLngBounds bounds = builder.build(); 
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding); 
mapView.animateCamera(cu); 

我現在想旋轉地圖,使起點和終點位於同一水平面上。地圖每次顯示一條不同的路線,所以我需要邏輯來計算旋轉需要的旋轉角度,以及實際旋轉地圖的代碼,如上面的代碼所示,在指定範圍內。我正在努力尋找一種做法。

+0

基本上你想讓你的地圖在你走路或開車穿過兩個地點之間的路徑時旋轉? – Pankaj

+0

不,我只想要一次只顯示在水平面上的路線。在此之後,方向不會跟隨。 – androidneil

回答

4

試試這個,我實現了那段時間。 (如果妳不想要有傾斜效果) - 只需將其設置爲零)

targetBearing = destinationLocation.bearingTo(myCurrentLocation); 
    CameraPosition cameraPosition = new CameraPosition.Builder() 
      .target(new LatLng(latitudeCurrentLocation, 
        longitudeCurrentLocation)).bearing(targetBearing + 530) 
      .tilt(67).zoom(15).build(); 

    map.animateCamera(
      CameraUpdateFactory.newCameraPosition(cameraPosition), 5000, 
      null); 

編輯:bearing(targetBearing + 530)這確實在度的旋轉。

+0

謝謝,bearingTo()方法在這裏很有用。我遇到的問題是將我的代碼(其中animateCamera方法需要CameraUpdate對象)與您的代碼(其中animateCamera方法採用CameraPosition對象)相結合。我需要CameraUpdate對象,因爲它包含對我的需求至關重要的邊界。 – androidneil

+0

好吧,沒關係,我需要在代碼完成後應用你的代碼,通過檢查onCameraChangedListener。然後我從當前的地圖中取值,並將它們應用到CameraPosition.Builder()方法。謝謝! – androidneil

+0

沒問題,那究竟是如何工作:) –