google.charts.load('current', {
packages: ['geochart', 'table'],
mapsApiKey: 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY'
}).then(function () {
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['Germany', 200],
['United States', 300],
['Brazil', 400],
['Canada', 500],
['France', 600],
['RU', 700]
]);
var containerChart = document.getElementById('chart');
var containerTable = document.getElementById('table');
var chart = new google.visualization.GeoChart(containerChart);
var table = new google.visualization.Table(containerTable);
google.visualization.events.addListener(table, 'ready', function () {
chart.draw(data, {
tooltip: {
trigger: 'both'
}
});
$(containerTable).find('tbody > tr > td').on('mouseenter', markerShow);
$(containerTable).find('tbody > tr > td').on('mouseleave', markerHide);
});
table.draw(data);
function markerShow(sender) {
chart.setSelection([{row: sender.target.parentNode.rowIndex - 1}]);
}
function markerHide(sender) {
chart.setSelection([]);
}
});
html, body {
height: 100%;
margin: 0px 0px 0px 0px;
overflow: hidden;
padding: 0px 0px 0px 0px;
}
#chart {
height: 100%;
}
.flex-row {
display: flex;
flex-direction: row;
height: 100%;
}
.flex-grow {
flex-basis: 0;
flex-grow: 1;
flex-shrink: 1;
}
.flex-static {
flex-grow: 0;
flex-shrink: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div class="flex-row">
<div class="flex-grow">
<div id="chart"></div>
</div>
<div class="flex-static">
<div id="table"></div>
</div>
</div>