1

我开发了一个使用MapsForge 插件来显示地图的 Android 应用程序。

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

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

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

这导致OutofMemoryErroror 非常慢。我读到每层大约需要 3MB。

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

4

1 回答 1

1

我最终使用了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 代码

于 2016-01-17T17:06:24.930 回答