Карты Google не могут добавлять маркеры после их удаления - PullRequest
0 голосов
/ 14 марта 2019

Я создал карту с помощью 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(), но ничего не произошло.

...