Member 10966414 Ответов: 0

WPF Gmap.NET добавление большого количества маркеров


я использую Gmap.NET с помощью C# WPF, и я хотел бы добавить большое количество маркеров (~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);
                             }
                         }
                         ));
             }
         }));
    }

0 Ответов