1

私は、ユーザーの位置を追跡し、Polyline. 次に、これらの行を表示するかどうかを切り替えるチェック ボックスを追加します。私が考える課題は、ここに多くのポリラインがあるため、それらすべてを同時に非表示/表示に設定する方法がわからないことです。

レイヤーにそれらを描画してから、そのレイヤーの可視性を切り替えることができますか? 私はちょうど推測しています..

誰もそれを行う方法を知っていますか? 前もって感謝します :)

編集:おそらくあまり関係ありませんが、ユーザーの移動を検出したら、ポリラインを追加する方法を示します

   PolylineOptions options = new PolylineOptions();

   options.add(lastLoc, curLoc);

   mMap.addPolyline(options.color(Color.RED).width(3));
4

2 に答える 2

2

それらすべてを一度に設定するには、すべてlastLoccurLocをリストに追加してから使用しますoptions.addAll(List)

一度にすべてのポリラインが表示されるため、必要に応じて一緒に削除/非表示にすることができます:)

編集:いくつかの例

を初期化しListます。

List<LatLng> points = new ArrayList<LatLng>();

curLoc&lastLocを に挿入points:

while (!traceFinished.equals(true)){
     points.add(curLoc); //read every new current location
}
points.add(lastLoc); //the final location, after the trace stopped

ポリラインを表示するには、次のように呼び出します。

PolylineOptions options = new PolylineOptions();
options.addAll(points);
mMap.addPolyline(options.color(Color.RED).width(3));

幸運を

于 2013-05-29T03:30:42.233 に答える
2

Polylineへの参照を取得した直後に、最初は空のシングルを作成します(後でそれに戻ります) GoogleMap

場所の更新を取得したら、以下のコードを使用してこれPolylineにポイントを追加します (ないため、醜い):Polyline.addPoint

List<LatLng> points = polyline.getPoints();
points.add(currentLocationLatLng);
polyline.setPoints(points);

非表示にする必要がある場合は、 を使用しますpolyline.setVisible(false);

これで、短いポリラインの束について心配する必要はなくなりました。長いポリラインは 1 つだけです。

最初は常に空であるとは限りません: 電話を回転させたり、プロセスがバックグラウンドで強制終了されたりするときにユーザー エクスペリエンスを失わないようにするには、すべてのポイントを「保持」する必要があります。onSaveInstanceState十分なはずです。

于 2013-05-29T17:54:51.630 に答える