1

我是 android 地图视图的新手。我必须根据特定区域的降雨量在 android 地图视图中显示不同的颜色。请帮我弄清楚这个功能。

您的帮助将不胜感激。

4

2 回答 2

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 点及其在屏幕上的位置绘制颜色,并使其绘制在地图上方。这是最辛苦的工作:)

于 2013-01-08T13:42:44.740 回答
2

在旧的 API 中,您也可以在地图上显示颜色,方法是覆盖您的自定义形状,如圆形、矩形或任何形状。

只需draw()在您的Overlay班级中覆盖即可。

拥有新的 API 总是好的,但现在可以使用任何人。

本页试图解释如何构建具有自定义形状和颜色的叠加层。

希望这会有所帮助。

于 2013-01-08T13:46:33.553 回答