我正在尝试创建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));
擦除位图的某些区域并绘制另一个区域
但是该解决方案性能较弱,而且地图上可以看到更糟糕的位图重新加载。有人能指出更好的解决方案吗?
答案 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);
}
}