Как повысить производительность картографических диаграмм? - PullRequest
0 голосов
/ 07 мая 2020

У меня есть карта-карта с 24 сериями. Каждая серия представляет один час в день и включает долготу, широту, цвет и информацию, скажем, об угле. На карте в любой момент видна только одна серия, щелкая серию в разделе легенды, я меняю серию на карте. Расположение кругов на карте фиксировано, их единственный цвет и данные угла изменяются вместе с сериями.

Однако первоначальная загрузка диаграммы происходит слишком медленно, поскольку каждая серия содержит значительный объем данных и присваивает все свойства серии требует времени.

Обратите внимание, что я пробую рекомендации на https://www.amcharts.com/docs/v4/concepts/performance/, но это не помогло.

В коде я назначаю свойства серии одно за другим. Интересно, возможно ли, чтобы общие свойства, такие как долгота и широта, можно было определить сразу, чтобы загрузка диаграммы происходила быстрее?

    var series1= chart.series.push(new am4maps.MapImageSeries());
    series1.data = thegraph.z1; // z1 is like a key that defines series1
    var tmTemplate1 = series1.mapImages.template;
    var daire1 = tmTemplate1.createChild(am4core.Circle);
    daire1.radius = 4;
    tmTemplate1.propertyFields.fill = "color";
    tmTemplate1.propertyFields.stroke = "color";
    daire1.strokeWidth = 1;
    daire1.tooltipText = "{name}: {angle}";
    tmTemplate1.propertyFields.latitude = "latitude ";
    tmTemplate1.propertyFields.longitude = "longitude ";
    tmSerisi1.name = 'Hour 1';

    var series2= chart.series.push(new am4maps.MapImageSeries());
    series2.data = thegraph.z2;
    var tmTemplate2 = series2.mapImages.template;
    var daire2 = tmTemplate2.createChild(am4core.Circle);
    daire2.radius = 4;
    tmTemplate2.propertyFields.fill = "color";
    tmTemplate2.propertyFields.stroke = "color";
    daire2.strokeWidth = 1;
    daire2.tooltipText = "{name}: {angle}";
    tmTemplate2.propertyFields.latitude = "latitude ";
    tmTemplate2.propertyFields.longitude = "longitude ";
    series2.name = 'Hour 2';

and so on up to 24
...