2013-12-15 68 views
0

逗人,與animateCamera到屏幕位置x地圖標記位置,Y

我具有覆蓋整個屏幕的地圖視圖。在它的頂部,有一個查看尋呼機。 視圖尋呼機由兩部分組成,頂部40%和底部60%,頂部只是一個透明視圖。

在滑動視圖尋呼機時,地圖上顯示的標記應該位於透明頂視圖中間的40%。

此圖片描述的故事:

Sketch

如何實現這一目標? 我想這一點,但沒有運氣:

public void FollowVehicle(clsFollowMode vehicle){ 
    final LatLng vehiclePosition = new LatLng(vehicle.getLatitude(), vehicle.getLongtitude()); 
    Marker vehicleMarker = myGMap.addMarker(new MarkerOptions() 
           .position(vehiclePosition) 
           .title(vehicle.getDeviceName()) 
           .snippet(String.valueOf(vehicle.getSpeed())) 
           .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_vehicle_follow))); 

    float zoom_lvl = myGMap.getCameraPosition().zoom; 

    double dpPerdegree = 256.0*Math.pow(2, zoom_lvl)/170.0; 
    double screen_height = (double) mapContainer.getHeight(); 
    double screen_height_30p = -20.0*screen_height/100.0; 
    double degree_30p = screen_height_30p/dpPerdegree; 

    LatLng centerlatlng = new LatLng(vehiclePosition.latitude + degree_30p, vehiclePosition.longitude); 

    myGMap.animateCamera(CameraUpdateFactory.newLatLngZoom(centerlatlng, 15), 1000, null); 
} 

任何幫助嗎?上述解決方案found here

問候,

+0

那麼是什麼問題?沒有運氣,你是什麼意思?它現在如何工作? –

+0

當尋呼機第一次打開時,它不會集中到第一個標記,但當我移動到其他頁面時,進一步,當我第二次再次返回到第一頁時,它工作正常。此外,頁面與另一頁面之間的縮放變化導致下一個標記的故障集中。我認爲我在縮放級別的這段代碼(我猜)時會遇到問題。任何建議?我做錯了什麼? – alawibh

回答

0

如果我理解正確的話,那麼你的問題是你放置在地圖的全屏fragmnet,並在此之上,你放在ViewPager的事實。因此,當您以標記爲中心時,地圖會執行此操作,但標記位於ViewPager之下。

你就可以欺騙地圖,以爲它具有更小的尺寸,然後它確實是,通過使用GoogleMap.setPadding方法,你可以閱讀更多關於它在這裏:

https://developers.google.com/maps/documentation/android/map#map_padding

+0

嗨,首先我想確認你對我的問題的理解,其次,我試着通過設置'ViewPager'的40%透明視圖的'GoogleMap.setPadding'方法來建議你的建議,如下所示:'myGMap.setPadding(transGap。 getLeft(),transGap.getTop(),transGap.getRight(),transGap.getBottom());',沒有什麼變化,它仍然集中在整個屏幕中央的ViewPager後面。我做錯了什麼? – alawibh

+0

明白了:),我使用60%的視圖來設置底部填充,它的工作原理非常完美:'myGMap.setPadding(0,0,0,bottomview.getHeight());',謝謝 – alawibh

+0

太棒了,告訴你這是你需要什麼:) –