Advanced API - procure map entities

Advanced API - procure map entities

by Shamasis Bhattacharya

HTML

<script src="http://static.fusioncharts.com/code/latest/fusioncharts.js"></script>
<script src="http://static.fusioncharts.com/code/latest/fusioncharts.charts.js"></script>
<div id="chart-container">FusionCharts will render here</div>
<button id="get-button">Get Entity ID</button>
<!-- 
Get entities from map
-->

JavaScript

/**
 * Add functionality to procure the map
 */
FusionCharts.prototype.getMapEntityList = function () {

    if (!(this.jsVars.hcObj && 
          this.jsVars.hcObj.entities)) {
        return;
    }
    
    var entities = [],
        sourceEntities = this.jsVars.hcObj.entities,
        prop;
    
    for (prop in sourceEntities) {
        entities.push({
            label: sourceEntities[prop].label,
            shortLabel: sourceEntities[prop].shortLabel,
            id: prop,
            originalId: sourceEntities[prop].origId
        });
    }
    
    return entities;
};

// Render a chart.
FusionCharts.ready(function () {
    var map = new FusionCharts({
        type: 'maps/world',
        renderAt: 'chart-container',
        id: 'worldmap'
    }).render();
});

// Add code to fetch entities on a button click
(function () {
    var button = document.getElementById('get-button');
    button.onclick = function () {
        alert(JSON.stringify(FusionCharts.items.worldmap
            .getMapEntityList(), 0, 2));
    };
}());