我几天来一直在寻找这个问题的解决方案。 我想添加一个图像作为叠加(或任何最好的解决方案)。图像可视化地图的一部分,但具有自己的图形。因此,它的缩放,位置和行为就像它是地图的一部分一样重要。
图像非常大(800x1200),因此使用som类型的基于图块的解决方案可能是一个优势。
答案 0 :(得分:2)
我找到了解决方案!! (http://groups.google.com/group/android-developers/browse_thread/thread/79b233ab9ec64e1e#)
我正在使用叠加层,在绘制方法中,我这样做。
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if(shadow){
return;
}
super.draw(canvas, mapView, shadow);
// convert bitmap's bounding box into pixels
Point top_left = new Point();
mapView.getProjection().toPixels(topLeft, top_left);
Point bottom_right = new Point();
mapView.getProjection().toPixels(bottomRight, bottom_right);
// Prepare two rectangles (pixels)
Rect src = new Rect( 0,0,bmp.getWidth() - 1, bmp.getHeight() - 1 );
Rect dst = new Rect( top_left.x, top_left.y, bottom_right.x,bottom_right.y );
// draw bitmap
canvas.drawBitmap(bmp, src, dst, null);
}
//我在构造函数中设置了图片的geoPoints(geoPointTopLeft,geoPointBottomRight)
答案 1 :(得分:0)
听起来你想拥有自定义地图图块。叠加层用于添加不缩放或缩放的标记或小视觉细节,只要地图缩放或缩放,它们就会重新绘制。
AFAIK MapView目前仅支持卫星和地图视图切片。似乎没有用于向地图添加自定义“图层”的API,这可能是另一种解决方案。
如果这是一个项目交易破坏者,那么你可以考虑使用像OSMDroid这样的东西,它是一个使用OpenStreetMap-Data的全功能MapView替代品,可能更容易定制。