[解決済み] GoogleMapからマーカーを削除する
2022-06-07 23:19:12
質問
Android用の新しいGoogle Maps APIでは、以下のことが可能です。 マーカーを追加する を追加できますが、(簡単に) 削除する方法はありません。
私の解決策は、マップ内にマーカーを保持し、マーカーを削除したいときにマップを再描画することですが、これはあまり効率的ではありません。
private final Map<String, MarkerOptions> mMarkers = new ConcurrentHashMap<String, MarkerOptions>();
private void add(String name, LatLng ll) {
final MarkerOptions marker = new MarkerOptions().position(ll).title(name);
mMarkers.put(name, marker);
runOnUiThread(new Runnable() {
@Override
public void run() {
mMap.addMarker(marker);
}
});
}
private void remove(String name) {
mMarkers.remove(name);
runOnUiThread(new Runnable() {
@Override
public void run() {
mMap.clear();
for (MarkerOptions item : mMarkers.values()) {
mMap.addMarker(item);
}
}
});
}
誰かいいアイデアないですか?
どのように解決するのですか?
のメソッドシグネチャは
addMarker
は
public final Marker addMarker (MarkerOptions options)
ですから、マーカーを
GoogleMap
にマーカーを追加する場合、そのマーカーのオプションを指定することで、マーカーを保存する必要があります。
Marker
オブジェクトを保存する必要があります (代わりに
MarkerOptions
オブジェクトの代わりに) 返されます。 このオブジェクトを使用すると、後でマーカーの状態を変更することができます。 マーカーを終了するときは
Marker.remove()
を呼び出して、地図から削除します。
余談ですが、一時的に隠したいだけなら、マーカーを表示するかどうかを
Marker.setVisible(boolean)
.
関連
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
android:EMSのプロパティ
-
Androidの美しいSeekBarスタイルのカスタマイズ
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
Android Studioのgitの使用とgitの設定パス
-
android studioが新しいプロジェクトを作成しますが、プロジェクトの同期に成功するまでデザインエディタが使用できません。
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Google Maps JS API v3 - シンプルな複数マーカーの例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
アンドロイドスタジオのエラーを解決する --> Error:(1, 0) id 'com.android.application' を持つプラグインが見つかりません。
-
アンドロイドのエリプサイズを使用する
-
Androidプロセス生存のためのソリューション
-
Android ProgressBarのスタイルカラーを変更する
-
Androidの美しいSeekBarスタイルのカスタマイズ
-
アンドロイドにおけるトークンの利用
-
[解決済み】緯度・経度から完全な住所を取得する方法は?