有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何添加随缩放和位置改变大小/位置的覆盖

这几天来,我一直在寻找解决这个问题的办法。 我想添加一个图像作为覆盖(或任何最好的解决方案)。该图像显示了地图的一部分,但有自己的图形。因此,重要的是,它的比例、位置和行为就像它是地图的一部分一样

映像非常大(800x1200),因此使用som类型的tilebased解决方案可能是一个优势


共 (2) 个答案

  1. # 1 楼答案

    我找到了解决办法!!(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); 
    
    
    }
    

    //我在构造函数中设置了图片的地理点(geoPointTopLeft,geoPointBottomRight)

  2. # 2 楼答案

    听起来好像您想要自定义地图分幅。覆盖用于添加标记或不缩放的小视觉细节,只要地图缩放即可重新绘制

    AFAIK MapView当前仅支持卫星和地图视图分幅。似乎也没有API可用于向地图添加自定义“层”,这可能是另一种解决方案

    如果这对您来说是一个项目破坏者,那么您可以考虑使用类似OSMDroid的东西,这是一个功能齐全的MapView替代品,它使用OpenStreetMap数据,并且可能更易于自定义