Skip to content

ClusterAggregates.razor often fails unless I add a delay #102

Description

@MarkEvans8

I'm a newbie so please excuse any mistakes I have made by submitting this issue. I have not used Slack before, and I was unable to join the group there. My email address is mark@markevans.org if anyone needs to add me first.

I have found that the example file ClusterAggregates.razor often fails. It's inconsistent. The map always loads. But sometimes the bubble layer loads and sometimes it doesn't. When it fails, I get the following JS error:

atlas.min.js:55 Error: layers.75e0ea40-700e-4382-9741-5b7027861563: source "2671a15c-0192-4d19-b5e6-bdffc9c45ef8" not found
at Object.Rn [as emitValidationErrors] (atlas.min.js:56:9835)
at pt (atlas.min.js:56:355799)
at mt._validate (atlas.min.js:56:375637)
at mt.addLayer (atlas.min.js:56:367199)
at t.addLayer (atlas.min.js:105:172826)
at fN._addMapboxLayers (atlas.min.js:105:1048190)

I have also found that adding the following delay fixes the problem:

public async Task OnMapReady(MapEventArgs eventArgs)
{
    await eventArgs.Map.AddPopupAsync(_popup);        

    _datasource = new AzureMapsControl.Components.Data.DataSource
        {
            EventActivationFlags = AzureMapsControl.Components.Data.DataSourceEventActivationFlags.None(),
            Options = new()
            {
                Cluster = true,
                ClusterRadius = 50,
                ClusterProperties = new Dictionary<string, AzureMapsControl.Components.Atlas.Expression>(_entityTypes.Select(entityType => BuildClusterProperty(entityType)))
            }
        };

    await Task.Delay(100); // ############# map often fails without this delay ###############
    await eventArgs.Map.AddSourceAsync(_datasource);        
}

I'm wondering if there is a better way to avoid this issue?

To Reproduce

  1. Create a new Blazor Web app.
  2. Add all the nuget packages, links to js files, appconfig.json stuff, AuthService.cs, data file etc.
  3. Copy/paste ClusterAggregates.razor to your project.
  4. Run

Expected behavior
Load the bubble layer every time rather than just some of the time.

Desktop (please complete the following information):

  • OS: Windows 11
  • Browser Edge
  • VS 2022, .net 8.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions