0

Markerサーバーから取得しているs とs の長い可変リストがありPolylineます。状況によっては、MarkerのアイコンをPolyline変更したり、 の色を変更したりする必要があります。

私のオブジェクトには ID があるので、どのポリライン/マーカーを更新する必要があるかを知ることができるはずです。ただし、マーカーとポリラインにはsetId()orgetId()メソッドがなく、サーバーが要求すると動的に更新 (および追加) されます。

どのアイテムを削除してから追加する必要があるかを知るために、 aHashMap<Integer, Marker>と aを使用することを考えました。HashMap<Integer, Polyline>私はこれについて考えました:

  • アイテムを受け取ります。そのIDを取得します。
  • HashMap同じ ID を持つアイテムの正しいクエリを実行します。
  • HashMap が null を返さない場合は、Marker.remove()orを呼び出しPolyline.remove()てから、アイテムをHashMap
  • hashMap.get(id)何があってもnullを返す必要があるので、Polyline/を描画して、アイテムをMarkerGoogleMap追加しますHashMap

しかし、これを実装する前に、giant を使用しないでこれを行う方法があるかどうかを知りたいと思いHashMapます。

HashMaps、SparseArrays、または同様のものを使用せずにこの動作を実現する別の方法はありますか?

4

1 に答える 1

1

私は Android 用の Google Map API を一度だけ使用しましたが、それに関連するドキュメントを確認した後、いくつかのリスナーを追加することでこれが可能になるはずであると確信しています。

どのような条件で情報を変更する必要があるか教えていただけますか? たとえば、マーカーをクリックすると変化する場合は、GoogleMap.OnMarkerClickListener https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListenerを使用できます。

とにかく、Java 変数を使用してマーカーの参照がある場合、その情報を変更できませんか? または単に、あなたが話しているこの「条件」が発生したときに、マップ上のマーカーをクリアして再度追加することはできませんか? 同じマーカーはありませんが、結果は同じになります。残念ながら、マーカーが既にマップにアタッチされている場合、マーカーを変更することはできませんが、試してみることはできます。

于 2013-03-19T16:59:48.337 に答える