/* although ammap has methos like getAreaCenterLatitude and getAreaCenterLongitude, they are not suitable in quite a lot of cases as the center of some countries is even outside the country itself (like US, because of Alaska and Hawaii) That's why wehave the coordinates stored here */ var mapData = [ { "code": "AR", "name": "Argentina AR", "latitude": "-34", "longitude": "-64", "value": 113, "color": "#ddb695" },{ "code": "AT", "name": "Austria AT", "latitude": "47.3333", "longitude": "13.3333", "value": 3, "color": "#1e898e" },{ "code": "BO", "name": "Bolivia BO", "latitude": "-17", "longitude": "-65", "value": 3, "color": "#000000" },{ "code": "BR", "name": "Brazil BR", "latitude": "-10", "longitude": "-55", "value": 40, "color": "#ddb695" },{ "code": "CA", "name": "Canada CA", "latitude": "54", "longitude": "-100", "value": 2, "color": "#1e898e" },{ "code": "CL", "name": "Chile CL", "latitude": "-30", "longitude": "-71", "value": 90, "color": "#000000" },{ "code": "CN", "name": "China CN", "latitude": "35", "longitude": "105", "value": 5, "color": "#ddb695" },{ "code": "CO", "name": "Colombia CO", "latitude": "4", "longitude": "-72", "value": 139, "color": "#1e898e" },{ "code": "CR", "name": "Costa Rica CR", "latitude": "10", "longitude": "-84", "value": 5, "color": "#000000" },{ "code": "CU", "name": "Cuba CU", "latitude": "21.5", "longitude": "-80", "value": 5, "color": "#ddb695" },{ "code": "CZ", "name": "Czech Rep. CZ", "latitude": "49.75", "longitude": "15.5", "value": 1, "color": "#1e898e" },{ "code": "DE", "name": "Germany DE", "latitude": "51", "longitude": "9", "value": 1, "color": "#000000" },{ "code": "DO", "name": "Dominican Rep. DO", "latitude": "19", "longitude": "-70.6667", "value": 3, "color": "#ddb695" },{ "code": "EC", "name": "Ecuador EC", "latitude": "-2", "longitude": "-77.5", "value": 38, "color": "#1e898e" },{ "code": "EG", "name": "Egypt EG", "latitude": "27", "longitude": "30", "value": 1, "color": "#000000" },{ "code": "ES", "name": "Spain ES", "latitude": "40", "longitude": "-4", "value": 237, "color": "#ddb695" },{ "code": "FI", "name": "Finland FI", "latitude": "62", "longitude": "26", "value": 1, "color": "#1e898e" },{ "code": "FR", "name": "France FR", "latitude": "46", "longitude": "2", "value": 4, "color": "#000000" },{ "code": "GB", "name": "United Kingdom GB", "latitude": "54", "longitude": "-2", "value": 7, "color": "#ddb695" },{ "code": "HN", "name": "Honduras HN", "latitude": "15", "longitude": "-86.5", "value": 1, "color": "#1e898e" },{ "code": "IN", "name": "India IN", "latitude": "20", "longitude": "77", "value": 3, "color": "#000000" },{ "code": "IT", "name": "Italy IT", "latitude": "42.8333", "longitude": "12.8333", "value": 15, "color": "#ddb695" },{ "code": "JP", "name": "Japan JP", "latitude": "36", "longitude": "138", "value": 1, "color": "#1e898e" },{ "code": "LU", "name": "Luxembourg LU", "latitude": "49.75", "longitude": "6", "value": 1, "color": "#000000" },{ "code": "MX", "name": "Mexico MX", "latitude": "23", "longitude": "-102", "value": 1286, "color": "#ddb695" },{ "code": "MY", "name": "Malaysia MY", "latitude": "2.5", "longitude": "112.5", "value": 1, "color": "#1e898e" },{ "code": "NI", "name": "Nicaragua NI", "latitude": "13", "longitude": "-85", "value": 1, "color": "#000000" },{ "code": "NO", "name": "Norway NO", "latitude": "62", "longitude": "10", "value": 1, "color": "#ddb695" },{ "code": "PA", "name": "Panama PA", "latitude": "9", "longitude": "-80", "value": 1, "color": "#1e898e" },{ "code": "PE", "name": "Peru PE", "latitude": "-10", "longitude": "-76", "value": 11, "color": "#000000" },{ "code": "PL", "name": "Poland PL", "latitude": "52", "longitude": "20", "value": 2, "color": "#ddb695" },{ "code": "PT", "name": "Portugal PT", "latitude": "39.5", "longitude": "-8", "value": 2, "color": "#1e898e" },{ "code": "RO", "name": "Romania RO", "latitude": "46", "longitude": "25", "value": 4, "color": "#000000" },{ "code": "RU", "name": "Russia RU", "latitude": "60", "longitude": "100", "value": 6, "color": "#ddb695" },{ "code": "SA", "name": "Saudi Arabia SA", "latitude": "25", "longitude": "45", "value": 1, "color": "#1e898e" },{ "code": "SI", "name": "Slovenia SI", "latitude": "46", "longitude": "15", "value": 1, "color": "#000000" },{ "code": "TR", "name": "Turkey TR", "latitude": "39", "longitude": "35", "value": 1, "color": "#ddb695" },{ "code": "US", "name": "United States US", "latitude": "38", "longitude": "-97", "value": 31, "color": "#1e898e" },{ "code": "UY", "name": "Uruguay UY", "latitude": "-33", "longitude": "-56", "value": 15, "color": "#000000" },{ "code": "VE", "name": "Venezuela VE", "latitude": "8", "longitude": "-66", "value": 3, "color": "#ddb695" },{ "code": "ZA", "name": "South Africa ZA", "latitude": "-29", "longitude": "24", "value": 1, "color": "#1e898e" } ]; var map; var minBulletSize = 3; var maxBulletSize = 20; var min = Infinity; var max = -Infinity; //AmCharts.theme = AmCharts.themes.black; // get min and max values for (var i = 0; i < mapData.length; i++) { var value = mapData[i].value; if (value < min) { min = value; } if (value > max) { max = value; } } // build map AmCharts.ready(function() { map = new AmCharts.AmMap(); map.projection = "winkel3"; map.addTitle("Procedencia de los autores", 14); map.areasSettings = { unlistedAreasColor: "#000000", unlistedAreasAlpha: 0.1 }; map.imagesSettings = { balloonText: "[[title]]: [[value]]", alpha: 0.6 } var dataProvider = { mapVar: AmCharts.maps.worldLow, images: [] } // create circle for each country // it's better to use circle square to show difference between values, not a radius var maxSquare = maxBulletSize * maxBulletSize * 2 * Math.PI; var minSquare = minBulletSize * minBulletSize * 2 * Math.PI; // create circle for each country for (var i = 0; i < mapData.length; i++) { var dataItem = mapData[i]; var value = dataItem.value; // calculate size of a bubble var square = (value - min) / (max - min) * (maxSquare - minSquare) + minSquare; if (square < minSquare) { square = minSquare; } var size = Math.sqrt(square / (Math.PI * 2)); var id = dataItem.code; dataProvider.images.push({ type: "circle", width: size, height: size, color: dataItem.color, longitude: dataItem.longitude, latitude: dataItem.latitude, title: dataItem.name, value: value }); } // the following code uses circle radius to show the difference /* for (var i = 0; i < mapData.length; i++) { var dataItem = mapData[i]; var value = dataItem.value; // calculate size of a bubble var size = (value - min) / (max - min) * (maxBulletSize - minBulletSize) + minBulletSize; if (size < minBulletSize) { size = minBulletSize; } var id = dataItem.code; dataProvider.images.push({ type: "circle", width: size, height: size, color: dataItem.color, longitude: latlong[id].longitude, latitude: latlong[id].latitude, title: dataItem.name, value: value }); }*/ map.dataProvider = dataProvider; map.write("mapdiv"); });