使用Lat Long的气泡高图

时间:2015-03-15 11:13:22

标签: javascript jquery highcharts

我正在使用highcharts绘制气泡图,我已达到某个点,我根据状态代码(在/ RJ中)和值(1000)成功绘制气泡。

http://jsfiddle.net/voidSO/h2f4ugz4/

$(function () {


var mapData = Highcharts.geojson(Highcharts.maps['countries/in/in-all']);

var data = [{
    "z": 10038,
        "code": "RJ"
}, {
    "z": 100,
        "code": "PB"
}];

$('#container').highcharts('Map', {
    chart: {
        borderWidth: 1
    },

    title: {
        text: 'World population 2010 by country'
    },

    subtitle: {
        text: 'Demo of Highcharts map with bubbles'
    },

    legend: {
        enabled: false
    },

    mapNavigation: {
        enabled: true,
        buttonOptions: {
            verticalAlign: 'bottom'
        }
    },

    series: [{
        name: 'Countries',
        mapData: mapData,
        color: '#E0E0E0',
        enableMouseTracking: false
    }, {
        type: 'mapbubble',
        mapData: mapData,
        name: 'Population 2010',
        data: data,
        joinBy: ['postal-code', 'code'],
        minSize: 4,
        maxSize: '12%',
        tooltip: {
            pointFormat: '{point.code}: {point.z} thousands'
        }
    }]
});

});

但是我没有使用状态代码来制作使用纬度和经度的气泡,而且我没有得到任何提示如何去做。

例如(RJ)拉贾斯坦邦(印度的一个国家)使用它的长度为26.5727°N,73.8390°E的纬度。

1 个答案:

答案 0 :(得分:2)

您需要采取几个小步骤。首先,包括进行坐标系转换的Proj4s。这归结为:

<script src="http://.../proj4.js"></script>

其次,您应该将mapData换成这样:

var mapData = Highcharts.maps['countries/in/in-all'];

这样做的原因是将其包装在Highcharts.geojson中意味着Highmaps不会将其识别为来自其自己的集合的地图,并且不允许轻松进行lat / lng转换。

最后一件事是使用纬度和经度放置气泡,如下所示:

var data =  [{
    "z": 10038,
    "lat": 26.5727,
    "lon": 73.8390
    // "code": "RJ"
}, {
    "z": 100,
    "code": "PB"
}];

请参阅this updated JSFiddle demonstration,其中使用lat / lng表示拉贾斯坦(RJ)。