2017-01-23 96 views
7

我想在地圖上設置用戶位置,使其位於屏幕底部的1/3左右,當地圖旋轉時,它將繞此旋轉點。更改Google地圖偏移中心

最近我要實現這一點是通過使用setPadding()方法,但是,這導致地圖旋轉時搖晃排序,作爲中心點的類型'浮動',它實際上應該在哪裏。它看起來很醜陋

int mapHeight = mapView.getHeight(); 
googleMap.setPadding(0, mapHeight/5, 0, 0); 

有沒有更好的方式來做到這一點?

編輯:下面

enter image description here

+0

也許這可以幫助你:http://stackoverflow.com/questions/41469392/lock-google-maps-on-users -location/41618422#41618422 –

+0

我不明白這個答案將如何讓我鎖定用戶位置,而不是在地圖中心。 – Dportology

+0

你可以更好地解釋你正在嘗試做什麼?也許一個圖像... –

回答

13

在畫面解釋你需要,你可以調用這個地方,你想你不需要墊襯

變化MapPoint的X和Y值!可能是裏面的onLocationChangedchangeOffsetCenter(location.getLatitude(),location.getLongitude());

public void changeOffsetCenter(double latitude,double longitude) { 
      Point mappoint = mGoogleMap.getProjection().toScreenLocation(new LatLng(latitude, longitude)); 
      mappoint.set(mappoint.x, mappoint.y-100); // change these values as you need , just hard coded a value if you want you can give it based on a ratio like using DisplayMetrics as well 
      mGoogleMap.animateCamera(CameraUpdateFactory.newLatLng(mGoogleMap.getProjection().fromScreenLocation(mappoint))); 
     } 

輸出:

enter image description here

+0

如何使用LatLngBounds的兩點? – ZeroOne

+0

@ZeroOne你的問題不清楚請詳細說明吧?你可以有一箇中心點是你問什麼? –

+0

基本上,如何爲多個標記重新定位它們在地圖底部? – ZeroOne