3

jvectormapを使用しようとしていますが、ISO3166-1alpha-2国コードの形式で入力を受け取ります。

私の入力は国名の形式です。JavasSriptで名前からコードへのコンバーターを確認しましたが、ありません。

入力をjvectormap入力と一致させるために、どのように変換が可能か疑問に思いました。何か案は?

リンクを確認してください:http://jsfiddle.net/sprugman/fkRnC/7/

jvectormap入力モデルは次のようなものです

var gdpData = {
"US": 25,
"CA": 50,
"RU": 100,
"AO": 200,
"AG": 200,
"AR": 400,
"BR":200 
 };

また、グーグルジオチャートはこれよりも優れていますか?

4

2 に答える 2

2

プロパティのworld_mill_enマップと国名の値を使用して、国名をキーにした新しいマップを生成できます。name

//Clone the world map that uses ISO-2 keys
var countriesByName = $.extend(true, {}, jvm.WorldMap.maps['world_mill_en']);

countriesByName.paths = {}; //clear the paths

$.each(jvm.WorldMap.maps['world_mill_en'].paths, function(key, obj){
   //create new path entries, keyed by the country name
   countriesByName.paths[obj.name] = obj; 
});  

//Add this new data map, to be loaded
$.fn.vectorMap('addMap', 'world_mill_en_byName',countriesByName);

次に、国名をキーオフしたデータをロードし、新しく作成されたマップを参照します。

//data with country name as key
var gdpData = {
    "United States of America": 25,
    "Canada": 50,
    "Russia": 100,
    "Angola": 200,
    "Argentina": 400
};

$(function() {
    $('#map').vectorMap({
        map: 'world_mill_en_byName', //load up the map with country name as key
        backgroundColor: '#eeeeee',
        regionStyle: {
            initial: {
                fill: '#cccccc'
            }
        },
        series: {
            regions: [{
                values: gdpData,
                scale: ['#C8EEFF', '#0071A4'],
                min: 0,
                max: 400,
                normalizeFunction: 'polynomial'}]
        },
        hoverOpacity: 0.7,
        hoverColor: false
    });

    var mapObj = $('#map').vectorMap('get', 'mapObject');
    var steps = 4;
    for (var i = 0; i <= steps; i++) {
        var val = 400 / steps * i;
        var color = mapObj.series.regions[0].scale.getValue(val);
        $('#key').append('<div style="background-color:' + color + ';">' + val + ' - ' + color + '</div>');
    }
});

投稿したjsfiddleに適用:http://jsfiddle.net/hansenmc/fkRnC/8/ < / p>

于 2012-11-08T01:36:20.107 に答える
1

これはよくあるリクエストですが、国の名前、さらには国の地域の名前を書くためのバリエーションが多数あるという理由だけで、この問題を永遠に解決することは非常に困難です。したがって、ここでの解決策は、ウィキペディアまたはその他のソースからのデータを使用して、国の名前を国コードに変換することです。

于 2012-11-07T20:44:16.157 に答える