在Android应用程序中操作Google地图v2上的叠加层

时间:2013-07-14 20:22:33

标签: android performance google-maps-android-api-2 android-maps-v2

我正在尝试创建Android应用程序使用Google maps API v2并将覆盖放在包含位图的地图上。我使用addGroundOverlay方法将位图附加到叠加层。但是当新的位置来自LocationManager我想修改位图(擦除东西并绘制其他东西)。有一个问题,因为根据规范,当我在叠加上绘制位图时,我无法修改它。所以我删除了叠加并再次使用操作的位图添加它:

public void draw(Bitmap modifiedBmp) {
    if (overlay != null) {
        overlay.remove();
    }

    BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(modifiedBmp);
overlay = map.addGroundOverlay(new GroundOverlayOptions().image(descriptor).positionFromBounds(bounds).zIndex(100));

}

先前使用

修改了位图
p.setXfermode(new PorterDuffXfermode(Mode.CLEAR));

擦除位图的某些区域并绘制另一个区域

但是该解决方案性能较弱,而且地图上可以看到更糟糕的位图重新加载。有人能指出更好的解决方案吗?

1 个答案:

答案 0 :(得分:-3)

试试此代码

private void drawMarker() {

        if (googleMap != null) {
            googleMap.clear();

            double lati = 25.16828;
            double longi = 55.28818;
            LatLng dest = new LatLng(lati, longi);              

            MarkerOptions options = new MarkerOptions();
            options.position(dest);
            options.title("title here")
                    .snippet("")
                    .icon(BitmapDescriptorFactory
                            .fromResource(R.drawable.icon_blue));

            googleMap.addMarker(options);

        }       

}