1

MapsForge プラグインを使用して地図を表示するAndroid アプリを開発しています。

マップに 2000 ポイントを表示したいと考えています。現在、私はこれを使用FixedPixelCircleして、さまざまなポイントのステータスを示すために好きな色で塗りつぶすことができる各ポイントに素敵な円を与えます.

問題はFixedPixelCircleレイヤーであり、マップに 2000 レイヤーを追加する必要があることです

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

orOutofMemoryErrorが非常に遅くなります。各レイヤーには約 3MB が必要であると読みました。

現在、ポイントを表示する別の方法を探しています。どうにかして複数の図形を 1つのレイヤーに追加できますか?

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 に答える