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



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

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

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新