Как удалить с карты указанную группу c маркеров? - PullRequest
1 голос
/ 02 августа 2020

Я добавил на карту разные группы маркеров, созданных мной вручную. теперь я хочу удалить с карты указанную группу c маркеров. Я пробовал использовать .remove (); и методы clear () не работали. вот мой код.

 HashMap<Integer,Marker> aa = new HashMap<>();

 void addAtmkMarker(LatLng latLng, String title, boolean status) {
    Log.d(TAG, "moveCamera: Clearing Previous location");
    if (mMap != null) {

        Log.d(TAG, "moveCamera: Moving Camera to current location");
      

        MarkerOptions options = new MarkerOptions()
                .position(latLng)
                .title(title)
                .icon(status ? BitmapDescriptorFactory.fromResource(R.drawable.ic_green) : BitmapDescriptorFactory.fromResource(R.drawable.ic_red));
        mAtm = mMap.addMarker(options);
        i++;
        aa.put(i,mAtm); //created hashmap to store status of multiple markers. 



    }
}



 atm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(((CheckBox)view).isChecked()){
                    addAtmkMarker(new LatLng(latLng.latitude + Math.random() * (0 - 0.005), latLng.longitude + Math.random() * (0 - 0.005)), "SBI", true);
                    addAtmkMarker(new LatLng(latLng.latitude + Math.random() * (0.005 - 0), latLng.longitude + Math.random() * (0 - 0.005)), "BOI", true);
                    addAtmkMarker(new LatLng(latLng.latitude + Math.random() * (0.005 - 0), latLng.longitude + Math.random() * (0 - 0.005)), "SBI", false);
                    addAtmkMarker(new LatLng(latLng.latitude + Math.random() * (0.005 - 0), latLng.longitude + Math.random() * (0 - 0.005)), "SBI", true);

                }
                else{
                    for(int j=0;j<=4;j++) //logic implemented for removing marker but didn't worked.
                    {
                        aa.remove(j);
                    }


                }
            }
        });

1 Ответ

0 голосов
/ 03 августа 2020

Вы должны удалить маркер с помощью markerName. Сначала получите имя, затем удалите его.

aa.get(j).remove()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...