Googleマップ上の複数のマーカーを削除する
マーカーをリストに格納しておいて、1件ずつremoveしていきます。
もっと良い方法がありそう・・・
public class MapsActivity extends FragmentActivity implements LocationListener, LocationSource, LoaderManager.LoaderCallbacks<JSONArray> { private static final String URLTEXT = "https://xxxxxxxxxxxxxxxxxxxxx"; private static final int ADDRESSLOADER_ID = 0; // 既存マーカーを消去する為 private List<Marker> markerArray = new ArrayList<Marker>(); private Marker marker = null; private GoogleMap mMap; // Might be null if Google Play services APK is not available. private OnLocationChangedListener mListener; private LocationManager locationManager; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @Override public void onLoadFinished(Loader<JSONArray> loader, JSONArray data) { if (data != null) { // 既存のマーカーを消す処理 for (int i = 0 ; i < markerArray.size() ; i++){ markerArray.get(i).remove(); } markerArray.clear(); try { for (int i = 0; i < data.length(); i++) { JSONObject jsData = data.getJSONObject(i); String locationName = jsData.getString("LocationName"); String prefecture = jsData.getString("Perfecture"); double latitude = jsData.getDouble("Latitude"); double longitude = jsData.getDouble("Longitude"); MarkerOptions options = new MarkerOptions(); options.position(new LatLng(latitude, longitude)); options.title(locationName); options.snippet(prefecture); marker = mMap.addMarker(options); markerArray.add(marker); // リストに格納(削除する為) } } catch (JSONException e) { Log.d("onLoadFinished", "JSONのパースに失敗しました。 JSONException=" + e); } }else{ Log.d("onLoadFinished", "onLoadFinished error!"); } } }