我将 Gmap.NET 与 C# WPF 一起使用,我想在 map 上添加大量标记 (~6k)。 但是我仍然无法异步添加它们, map 总是卡住并且根本没有响应,直到所有标记都不会被添加...... 这是我的代码示例:
private void MainMap_Loaded(object sender, RoutedEventArgs e)
{
MainMap.Zoom = 12;
LoadMarkers();
}
private async void LoadMarkers()
{
await Task.Run(new Action(() =>
{
for (int i = 0; i <= 6000; i++)
{
Dispatcher.InvokeAsync(
new Action(
delegate()
{
PointLatLng point = new PointLatLng(GetRandomNumber(55.0000, 55.7510),
GetRandomNumber(36.0000, 38.9999));
var currentMarker = new GMap.NET.WindowsPresentation.GMapMarker(point);
{
currentMarker.Shape = new MarkerTemplate(this, currentMarker,
string.Empty);
currentMarker.Offset = new Point(-16, -32);
currentMarker.ZIndex = int.MaxValue;
MainMap.Markers.Add(currentMarker);
}
}
));
}
}));
}
最佳答案
您可能需要为 GMap 设计聚类标记解决方案。使用 Map_OnMapZoomChanged
事件相应地隐藏/显示标记。
通过一些工作,您可能能够实现像 Google Maps 这样的集群。一:
祝你好运!完成后不要忘记将其开源:)
关于c# - WPF Gmap.NET 添加大量标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26276474/