在一个Mapsforge图层上绘制许多形状

时间:2016-01-14 18:28:11

标签: java android openstreetmap mapsforge

我开发了一款使用MapsForge plugin显示地图的Android应用。

我想在地图上显示2000点。目前我使用FixedPixelCircle来做这个,这给了我一个漂亮的圆圈,每个点我可以填充颜色,我喜欢指示不同的点状态。

问题是FixedPixelCircle是一个图层,我必须在地图中添加2000个图层

getMapView().getLayerManager().getLayers().add(myFixedPixelCircle);

导致OutofMemoryError或极其缓慢。我读到每层需要大约3MB。

现在我正在寻找一种不同的显示点的方法。我可以以某种方式将多个形状添加到单个图层吗?

1 个答案:

答案 0 :(得分:0)

我最终使用Circle的代码 - 一类MapsForge,在图层中显示一个圆圈。我只是在这一层画了一个圆圈,但是我想要的所有形状。

public class PointLayer extends TileRendererLayer {
    @Override
    public void draw(BoundingBox boundingBox, byte zoomLevel, Canvas canvas, Point canvasPosition) {
        super.draw(boundingBox, zoomLevel, canvas, canvasPosition);

        for (Point p : myPoints) {
            //pretty much use the circle code to draw the point
        }
    }
}

请参阅MapsForge Cicle code