2013-01-08 43 views

回答

2

確保使用Map API v2而不是舊的API(並非所有人都知道它已停用)。 當用戶通過將onCameraChangeListener設置爲GoogleMap時,您可以始終獲取更新的可見區域。

googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() 
{    
    @Override 
    public void onCameraChange(CameraPosition arg0) 
    { 
     VisibleRegion r = googleMap.getProjection().getVisibleRegion(); 
    } 
}); 

讓您的佈局類似

<fragment 
    class="com.google.android.gms.maps.SupportMapFragment" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/map_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    map:cameraZoom="14"/> 

<yout.package.view.ColorOverlay 
    android:id="@+id/overlay" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#00000000"/> 

添加全屏地圖片段,並用透明背景,將吸引你的顏色區域的覆蓋。 這個想法是讓你自定義視圖,它將根據VisibleRegion的東北和西南LatLng點及其在屏幕上的位置繪製顏色,並使其在地圖上方繪製。這是最難的工作:)

+0

感謝您的回覆。我有一些經驗,基於這一點,我必須弄清楚該區域並填充顏色。它應該工作嗎? –

+0

使用GoogleMap來獲取相機中心和可見區域,根據這些數據在手工製作的ColorOverlay View中繪製半透​​明顏色。我認爲覆蓋,正如akkilis建議是一個更好的主意。我完全忘記了覆蓋寫作答案。 –

2

那麼在舊的API中,您還可以在地圖上顯示顏色,方法是將自定義形狀(如圓形,矩形或任何其他形狀)的疊加層顯示出來。

只需在Overlay課中覆蓋draw()即可。

新的API總是很好,但現在可以使用任何人。

This page試圖解釋如何構建具有自定義形狀和顏色的疊加層。

希望這會有所幫助。

+0

非常感謝您的回覆。如果你提供一些相同的示例代碼,這將是很好的。 –

+0

重疊是一個好主意。我會勸阻使用舊的API。新地圖也支持疊加層。 –

+0

@DoctororDrive:有新的API總是很好,但覆蓋很簡單,方便。 http://android-support-akkilis.blogspot.in/2013/01/map-overlays-of-custom-shape-and-color.html嘗試用自定義顏色來解釋一個簡單的覆蓋圖,並提供lat long或geo point到代碼 – akkilis

相關問題