anychart.onDocumentReady(function() {
anychart.data.loadJsonFile(
'https://gist.githubusercontent.com/shacheeswadia/47b28a4d061e415555f01f5ce48e9ae3/raw/0f7592a8048872db7b77ccd2df8907e61952a806/shippingDataInverted.json',
anychart.theme('darkGlamour');
var map = anychart.map();
map.geoData('anychart.maps.world');
map.title('Shipping ports across the globe');
var portsDataSet = anychart.data.set(data).mapAs();
var createSeries = function(name, data, color) {
var series = map.marker(data);
portsDataSet.filter('outflows', filterFunction(0, 100000)),
portsDataSet.filter('outflows', filterFunction(100000, 1000000)),
portsDataSet.filter('outflows', filterFunction(1000000, 5000000)),
'5,000,000 - 10,000,000',
portsDataSet.filter('outflows', filterFunction(5000000, 10000000)),
'More than 10,000,000 outflows',
portsDataSet.filter('outflows', filterFunction(10000000, 0)),
.padding([8, 13, 10, 13])
.titleFormat(function() {
return this.getData('Name');
'<span style="color: #bfbfbf">Country: </span>' +
this.getData('Country') +
'<span style="color: #bfbfbf">Outflows: </span>' +
this.getData('outflows').toFixed(0)
var zoomController = anychart.ui.zoom();
zoomController.render(map);
map.container('container');
function filterFunction(val1, val2) {
return function(fieldVal) {
return val1 <= fieldVal && fieldVal < val2;
return function(fieldVal) {