JSFiddle - React, Tailwind, and code Playground

by mhouser_nowmediagroup

HTML

<script src="//www.amcharts.com/lib/4/core.js"></script>
<script src="//www.amcharts.com/lib/4/maps.js"></script>
<script src="//www.amcharts.com/lib/4/geodata/worldLow.js"></script>
<div id="chart"></div>

JavaScript

var chart = am4core.create("chart", am4maps.MapChart)
chart.geodata = am4geodata_worldLow

var mapData = {
    'cities': [
    {"name":"Москва", "latitude":55.752, "longitude":37.615, "value":"10", "color": am4core.color("#ff0000")},
    {"name":"Старая Ладога", "latitude":60.0016, "longitude":32.2926, "value":"20", "color":chart.colors.getIndex(1)},
    {"name":"Великий Новгород", "latitude":58.33, "longitude":31.16, "value":"30", "color":chart.colors.getIndex(1)},
    {"name":"Белозерск", "latitude":60.02, "longitude":37.46, "value":"40", "color":chart.colors.getIndex(2)},
    {"name":"Изборск", "latitude":57.7082, "longitude":27.8609, "value":"50", "color":chart.colors.getIndex(3)}
]};

var imageSeries = chart.series.push(new am4maps.MapImageSeries());
    imageSeries.data = mapData.cities;
    imageSeries.dataFields.value = ParseInt("value");

var imageTemplate = imageSeries.mapImages.template;
    imageTemplate.propertyFields.latitude = "latitude";
    imageTemplate.propertyFields.longitude = "longitude";
    imageTemplate.nonScaling = true

var circle = imageTemplate.createChild(am4core.Circle);
    circle.fillOpacity = 0.7;
    circle.propertyFields.fill = "color";
    circle.tooltipText = "{name}: [bold]{value}[/]";

imageSeries.heatRules.push({
    "target": circle,
    "property": "radius",
    "min": 4,
    "max": 4,
    "dataField": "value"
})

function toggleCities() {
    var series = imageSeries;
    series.dataFields.value
        if (series.isHiding || series.isHidden) {
        series.show();
    }
    else {
        series.hide();
    }
}