Parse JSON data using jQuery.getJSON()

A simple demo to show how we can parse JSON data using jQuery.getJSON()

by mram888

HTML

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<select id="mapRegion" class="form-control input-sm pull-right mr5"  ng-model="mapRegion" name="mapRegion" onchange="drawRegionsMap()">
            <option value="world" selected="selected">World</option>
            <optgroup label="Americas">
            <option value="019">Americas</option>
            <option value="021">Northern America</option>
            <option value="US">United States of America</option>
            <option value="029">Caribbean</option>
            <option value="013">Central America</option>
            <option value="ME">Mexico</option>
            <option value="005">South America</option>
            </optgroup>
            <optgroup label="Europe">
            <option value="150">Europe</option>
            <option value="154">Northern Europe</option>
            <option value="GB">United Kingdom</option>
            <option value="155">Western Europe</option>
            <option value="DE">Germany</option>
            <option value="FR">France</option>
            <option value="151">Eastern Europe</option>
            <option value="039">Southern Europe</option>
            <option value="ES">Spain</option>
            </optgroup>
            <optgroup label="Asia">
            <option value="142">Asia</option>
            <option value="143">Central Asia</option>
            <option value="030">Eastern Asia</option>
            <option value="034">Southern Asia</option>
            <option value="035">South-Eastern Asia</option>
            <option value="145">Western Asia</option>
            </optgroup>
            <optgroup label="Africa">
            <option value="002">Africa</option>
            <option value="015">Northern Africa</option>
            <option value="011">Western Africa</option>
            <option value="017">Middle Africa</option>
           ...

JavaScript

var geocodingAPI = "https://s3.eu-west-1.amazonaws.com/test.local.in/test/reports/data/39fe44e5/geoStats.json";

google.charts.load('current', {
    'packages': ['geochart']
});

google.charts.setOnLoadCallback(drawRegionsMap);
var array = []; 
var jsonData = $.ajax({
          url: geocodingAPI,
          dataType: "json",
          async: false
          }).responseText;
            
 $.each(JSON.parse(jsonData).locations, function(index,elem) {
        array.push([elem.lat,elem.lng,elem._id,elem.total]);
 });
 
function drawRegionsMap() {
  var e = document.getElementById('mapRegion');
  var myRegion = e.options[e.selectedIndex].value;

  var data = google.visualization.arrayToDataTable([
     ['Latitude', 'Longitude','Location','Tweets'],
     ...array,
  ]);

  var options = {
        colorAxis: {colors: ['green','blue']},
        displayMode: 'markers',
        region: myRegion,
        resolution: 'states',
        magnifyingGlass: {enable: true, zoomFactor: 7.5},
        // backgroundColor: '#81d4fa',
        // datalessRegionColor: '#f8bbd0',
        defaultColor: '#f5f5f5',
        };

  var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));

  chart.draw(data, options);
}

$("#mapRegion" ).change(function() {
  drawRegionsMap();
});