Я создал карту с помощью Google Maps. У меня есть список местоположений, и у каждого местоположения есть геолокация, с помощью которой я могу создать маркер.
Я хочу, чтобы каждый раз, когда я щелкаю элемент списка, удалялись текущие маркеры на карте и добавлялись новые.
Это способ, которым я добавляю маркеры на карту:
foreach (var postOffice in ViewModel.PostOfficeList)
{
var markerOptions = new MarkerOptions();
markerOptions.SetPosition(new LatLng(postOffice.Location.Lat, postOffice.Location.Lng));
markerOptions.SetTitle(postOffice.Name);
markerOptions.SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.post_office_selected));
if (postOffice.IsHighlighted)
{
markerOptions.SetAlpha(1);
}
else
{
markerOptions.SetAlpha(0.5f);
}
var marker = _mapView.AddMarker(markerOptions);
_markerList.Add(marker);
}
Прежде чем получить доступ к этому, я вызываю функцию, которая удаляет мои маркеры из списка:
private void RemoveMarkers()
{
foreach (var marker in _markerList)
{
marker.Remove();
marker.Dispose();
}
_markerList.Clear();
}
На самом деле происходит то, что при первом доступе к карте все маркеры на месте, но когда я пытаюсь обновить маркеры, все маркеры удаляются из списка и не добавляются обратно.
Я также пытался очистить карту с помощью _mapView.Clear()
, но ничего не произошло.