如何在android mapview中为特定区域着色?

时间:2013-01-08 13:27:53

标签: android

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

非常感谢您的帮助。

2 个答案:

答案 0 :(得分: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点以及它们在屏幕上的位置绘制颜色,并将其绘制在地图上方。这是最难的工作:)

答案 1 :(得分:2)

在旧API中,您也可以在地图上显示颜色,方法是制作自定义形状的叠加层,如圆形,矩形或任何其他形状。

只需覆盖draw()课程中的Overlay即可。

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

This page尝试解释如何构建具有自定义形状和颜色的叠加层。

希望这会有所帮助。