【发布时间】:2020-11-22 23:37:44
【问题描述】:
我已将不同组的手动创建的标记添加到地图中。现在我想从地图中删除特定的标记组。我试过使用 .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);
}
}
}
});
【问题讨论】:
标签: java android google-maps marker