【问题标题】:WPF Gmap.NET adding large amount of markersWPF Gmap.NET 添加大量标记
【发布时间】:2017-03-15 03:13:36
【问题描述】:

我正在使用带有 C# WPF 的 Gmap.NET,我想在地图上添加大量标记 (~6k)。 但是我仍然无法异步添加它们,地图总是冻结并且根本没有响应,直到不会添加所有标记... 这是我的代码示例:

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);
                            }
                        }
                        ));
            }
        }));
}

【问题讨论】:

    标签: c# wpf gmap.net


    【解决方案1】:

    您可能需要为 GMap 设计一个聚类标记解决方案。使用Map_OnMapZoomChanged 事件相应地隐藏/显示标记。

    稍加努力,您或许可以实现类似Google Maps 的集群:

    祝你好运!完成后不要忘记开源它:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      相关资源
      最近更新 更多