HTMLcopy
1
<div id="container"></div>
CSScopy
8
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
// The data used in this sample can be obtained from the CDN
3
// https://cdn.anychart.com/samples/maps-bubble/usa-national-parks/data.json
4
anychart.data.loadJsonFile(
5
'https://cdn.anychart.com/samples/maps-bubble/usa-national-parks/data.json',
6
function (data) {
7
var imgLink = 'https://cdn.anychart.com/images/usa_national_parks/';
8
// add html elements in div#container
9
var container = document.getElementById('container');
10
container.innerHTML =
11
'<div id="map-container"></div><div id="map_tooltip"></div>';
12
var $customTooltip = $('#map_tooltip');
13
// The data used in this sample can be obtained from the CDN
14
// https://cdn.anychart.com/samples/maps-bubble/usa-national-parks/data.js
15
var parksData = data;
16
17
// Creates map chart
18
var map = anychart.map();
19
20
// define settings for maps regions (regions bounds are not relevant for this data, so let's make it less contrast)
21
map
22
.unboundRegions()
23
.enabled(true)
24
.fill('#E1E1E1')
25
.stroke('#D2D2D2');
26
27
map
28
.credits()
29
.enabled(true)
30
.url(
31
'https://en.wikipedia.org/wiki/List_of_national_parks_of_the_United_States'
32
)
33
.text(
34
'Data source: https://en.wikipedia.org/wiki/List_of_national_parks_of_the_United_States'
35
)
36
.logoSrc('https://en.wikipedia.org/static/favicon/wikipedia.ico');
37
38
// Sets geodata using https://cdn.anychart.com/geodata/latest/countries/united_states_of_america/united_states_of_america.js
39
map.geoData('anychart.maps.united_states_of_america');
40
41
// Sets bubble min/max size settings
42
map.minBubbleSize('0.5%').maxBubbleSize('3%');
43
44
// Sets Chart Title
45
map
46
.title()
47
.enabled(true)
48
.useHtml(true)
49
.padding([0, 0, 10, 0])
50
.text(
51
'USA National Parks<br/><span style="color:#929292; font-size: 12px;">' +
52
'Bubble size is defined by amount of visitors in 2014.<br/>According to Wikipedia.org</span>'
53
);
54
55
var series = map.bubble(
56
anychart.data.set(parksData).mapAs({ size: 'visitors' })
57
);
58
series
59
.tooltip(false)
60
.stroke('2 #E1E1E1')
61
.fill('#1976d2')
62
.selectionMode('none');
63
series
64
.labels()
65
.enabled(true)
66
.anchor('left-center')
67
.position('right')
68
.fontSize(11)
69
.offsetX(5);
70
71
map.listen('pointsHover', function (evt) {
72
var isHovered =
73
evt.seriesStatus.length && evt.seriesStatus[0].points.length;
74
if (!isHovered) {
75
$customTooltip.hide();
76
return;
77
}
78
var data = parksData[evt.point.index];
79
$customTooltip
80
.html(
81
'<h3>' +
82
data.name +
83
'</h3>' +
84
'<h5> Established since <b>' +
85
data.date +
86
'</b></h5> ' +
87
'<h5> Area: <b>' +
88
data.area +
89
'</b></h5> ' +
90
'<h5> Visitors in 2014: <b>' +
91
parseInt(data.visitors).toLocaleString() +
92
'</b></h5> ' +
93
'<p> <img src="' +
94
imgLink +
95
data.id +
96
'.jpg"/>' +
97
data.description
98
)
99
.show();
100
});
101
map.listen('mouseMove', function (evt) {
102
var clientX = evt.clientX;
103
var clientY = evt.clientY;
104
105
var container = $(this.container().getStage().container());
106
var containerOffset = container.offset();
107
var scrollLeft = $(document).scrollLeft();
108
var scrollTop = $(document).scrollTop();
109
110
var x = clientX - (containerOffset.left - scrollLeft);
111
var y = clientY - (containerOffset.top - scrollTop);
112
113
$customTooltip
114
.css('top', y - 10 - $('#map_tooltip').height() / 2)
115
.css('left', x + 10);
116
});
117
118
// create zoom controls
119
var zoomController = anychart.ui.zoom();
120
zoomController.render(map);
121
122
// Sets container id for the chart
123
map.container('map-container');
124
// Initiates chart drawing
125
map.draw();
126
}
127
);
128
});