Проблемы с AmCharts MapChart при перерисовке данных линий - PullRequest
0 голосов
/ 04 апреля 2019

Я использую 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.

Любая помощь приветствуется.

...