【问题标题】:Draw many shapes on one Mapsforge layer在一个 Mapsforge 图层上绘制许多形状
【发布时间】:2016-01-18 01:06:24
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 您是否找到任何可能的解决方案来将多个形状绘制到单层

标签: java android openstreetmap mapsforge


【解决方案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 code

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多