Я использую AmCharts v4 для рисования MapChart.
У меня есть функция, которая отвечает за рисование линий на графике.Эта функция вызывается один раз, когда изначально рисуется диаграмма, и несколько раз, когда на диаграмме должны отображаться обновленные данные линии.
function draw_lines( first_load, pub_key ) {
if( !first_load ){
chart.series.removeIndex(2);
}
var lineSeries = chart.series.push(new am4maps.MapLineSeries());
lineSeries.dataFields.multiGeoLine = "multiGeoLine";
var lineTemplate = lineSeries.mapLines.template;
lineTemplate.stroke = am4core.color("#FFF");
lineTemplate.line.strokeOpacity = 0.6;
lineTemplate.shortestDistance = false;
lineTemplate.strokeWidth = .6;
lineTemplate.opacity = .6;
lineTemplate.nonScalingStroke = true;
var lines = prepare_line_data( pub_key );
lineSeries.data = [{ "multiGeoLine": lines }];
}
Когда линии нарисованы изначально, при первой загрузке все отлично работает.Когда я вызываю функцию впоследствии, чтобы обновить линии на графике, начальные линии удаляются, и обновленные линии отображаются успешно, однако обновленные линии находятся не совсем в правильном положении.Они все немного «выключены».Если я беру окно браузера и быстро изменяю его размер, мои новые линии фиксируются в правильных положениях, в соответствии с остальными объектами диаграммы.
Есть ли функция AmChart, которую я могу вызвать, которая будет копировать это изменение размера действия?
Я нашел ссылки на .resizeNow () и .validateData (), но эти функции либо ничего не делают, либо не распознаются как часть amCharts v4.
Любая помощь приветствуется.