c# - 删除标记后,谷歌地图无法添加标记
问题描述
我使用谷歌地图创建了一张地图。我有一个位置列表,每个位置都有帮助我创建标记的地理位置。
我希望每次单击列表项时删除地图上的当前标记并添加新标记。
这是我在地图上添加标记的方式:
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()
但什么也没发生。
解决方案
推荐阅读
- javascript - 如何在不使用 nativeElement 的情况下自动聚焦 Angular 10 中的表单控件
- laravel - NGINX 和 Laravel - 带有特殊字符的 json 发布请求
- python - AttributeError: 'WebElement' object has no attribute 'get_text' 使用 Selenium Python 提取开始和结束标记之间的文本时出错
- javascript - 如何从 react 和 firebase 为每个用户创建用户页面
- azure - 如何在 Azure DevOps Pipeline (Salesforce) 中增加标签
- asp.net - 为什么插入过程在 ASP.NET 中不起作用
- python - Python:如何将列数据 csv 转换为行数据
- linux - 如何测试/验证 vmalloc 保护页面在 Linux 中是否正常工作
- elasticsearch - 数组中的elasticsearch匹配查询
- asp.net-core - Swagger JWT 授权在 ASP.net core 3.1 中不起作用