AmCharts Map - Повышение производительности карты - PullRequest
1 голос
/ 25 марта 2020

У меня есть приложение, которое отображает карту мира с использованием amCharts 4, в котором каждый континент должен быть окрашен по-разному, а затем в некоторых странах есть несколько пузырьковых мест для отображения некоторых данных.

Для карты, У меня есть объект, который перечисляет все страны с помощью кода страны. Затем у меня есть API, который возвращает данные о том, какие страны имеют некоторые связанные с ними значения, которые должны отображаться на карте.

Для того, чтобы континенты были разноцветными (с границами страны), я создал другую серию для каждого континента и раскрасил его соответственно. Однако из-за структуры данных это не позволило бы мне разместить пузырьки, поэтому у меня есть еще одна серия, под всеми цветными, полной карты мира.

Чтобы пузырьки были местами, я ' Мы последовали примеру из демонстраций и вычислили визуальный центр для каждой страны.

Моя проблема в том, что это стало очень ресурсоемким, до такой степени, что иногда случайным образом Карта не может быть построена правильно, в результате чего все пузырьки находятся в верхнем левом углу. Мне было интересно, есть ли способы улучшить эту производительность, а именно: - Более простой способ вычислить визуальный центр или получить координаты для него. - Какой-то способ раскрасить каждый континент, не полагаясь на отдельную серию

1 Ответ

0 голосов
/ 27 марта 2020

Если вам не нужны границы страны, я рекомендую следующие шаги:

1) Создайте карту со странами и установите calculateVisualCenter = true для серии стран. 2) Когда строится карта, l oop через все многоугольники и сохраняем visualLongitude / visualLatitude каждого в некоторый объект, выводим результат в консоль. 3) Используйте координаты в вашей реальной карте для пузырьковых позиций.

Вот краткая демонстрация, в которой координаты сохраняются и записываются в консоль: https://codepen.io/team/amcharts/pen/bGdQXzE

...