我开发了一款使用MapsForge plugin显示地图的Android应用。
我想在地图上显示2000点。目前我使用FixedPixelCircle
来做这个,这给了我一个漂亮的圆圈,每个点我可以填充颜色,我喜欢指示不同的点状态。
问题是FixedPixelCircle
是一个图层,我必须在地图中添加2000个图层
getMapView().getLayerManager().getLayers().add(myFixedPixelCircle);
导致OutofMemoryError
或极其缓慢。我读到每层需要大约3MB。
现在我正在寻找一种不同的显示点的方法。我可以以某种方式将多个形状添加到单个图层吗?
答案 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
}
}
}