2015-02-23 56 views
4

我正在開發一個使用谷歌地圖顯示您的位置的應用程序。我想旋轉用戶位置周圍的地圖。我使用getOrientation(R,方向)(並調整爲真正的北)來獲得設備旋轉工作正常,但我希望用戶位置靠近屏幕的底部。我已將地圖上的填充設置爲屏幕高度的四分之一 mMap.setPadding(0,screenHeight/4,0,0); 我注意到的是旋轉仍在圍繞屏幕中心而不是填充中心的點處完成。 這是代碼我使用的onSensorChanged谷歌地圖安卓V2圍繞用戶旋轉填充

currentZoom = mMap.getCameraPosition().zoom; 
CameraPosition currentPlace = new CameraPosition.Builder() 
           .target(new LatLng(currentNode.getLatitude(), currentNode.getLongitude())) 
           .bearing(degrees).tilt(60).zoom(currentZoom).build(); 
mMap.stopAnimation(); 
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(currentPlace),40,null); 

有沒有辦法來改變攝像機旋轉錨點?

+0

儘量讓你的'tilt'爲'65.5f'和'zoom'到'18f',瞭解更多詳情,請參考[這裏](HTTP:// stackoverflow.com/questions/14767282/android-maps-v2-rotate-mapview-with-compass),[here](http://stackoverflow.com/questions/1830391/rotate-mapview-in-android)和[here ](http://stackoverflow.com/questions/26303370/rotate-map-according-current-walk-direction-android-google-maps)。 – bjiang 2015-02-23 19:00:39

+0

謝謝bjiang,但是旋轉本身不是問題,我已經設置了方向並將其調整爲真北,並且在旋轉時沒有填充時它工作正常。問題是,當我向地圖添加填充時,旋轉似乎基於屏幕中心進行應用,導致用戶位置發生偏移,從而導致整個地圖在地圖修復時偏移幾個像素。 – Colm 2015-02-23 20:09:18

+0

你解決了這個問題嗎? – oshurmamadov 2016-09-26 11:40:42

回答

0

我試圖解決這個問題幾個小時。我發現的唯一解決方案不是很好,但它的工作原理如下: 例如,如果要將用戶移動到中心以下200dp:

1)將地圖碎片高度設置爲其高度+ 200dp(然後地圖將去屏幕下方200dp)

2)這工作正常,但它隱藏了Google徽標。要保留Google徽標,請將地圖填充頂部和底部設置爲200dp。

mGoogleMap.setPadding(0, dp2px(200),0 , dp2px(200)); 

解決該問題