我使用Google地图创建了地图。我有一个位置列表,每个位置都有地理位置,可以帮助我创建标记。
我希望每次单击列表项时,删除地图上的当前标记并添加新标记。
这是我在地图上添加标记的方式:
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()
清除地图,但是什么也没发生。