проблема преобразования кода страны в карту jvector

Я пытаюсь использовать jvectormap, и он принимает данные в формате кодов стран ISO 3166-1 alpha-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 
 };

а также является ли Google geochart лучше, чем этот??


person user1371896    schedule 07.11.2012    source источник
comment
Не уверен, что это будет возможно. Есть ли способ, которым вы вводите коды вместо этого?   -  person Snowy Coder Girl    schedule 07.11.2012
comment
Я искал конвертеры в Интернете... Я мог бы изменить свой ввод, если бы знал, что такое коды всех этих стран...   -  person user1371896    schedule 07.11.2012
comment
Можно использовать en.wikipedia.org/wiki/   -  person Snowy Coder Girl    schedule 07.11.2012
comment
он охватывает все нынешние страны??   -  person user1371896    schedule 07.11.2012
comment
Вы можете использовать официальный сайт, если вы беспокоитесь. Похоже, что это iso.org/iso/home/ стандарты/коды_стран/   -  person Snowy Coder Girl    schedule 07.11.2012
comment
хорошо, спасибо .. попробую это .. и обязательно дам вам отзыв ..   -  person user1371896    schedule 07.11.2012
comment
Вас интересуют картографические данные с названиями стран вместо альфы-2, или вы хотите преобразовать свои данные в набор данных с клавиатурой с альфа-2? Было бы полезно, если бы вы также разместили образец своих данных.   -  person Mads Hansen    schedule 08.11.2012
comment
@MadsHansen, как мой ввод для графической карты имеет форму .. США Великобритания Австралия Китай   -  person user1371896    schedule 08.11.2012
comment
Ну, вам нужен общий ключ, чтобы иметь возможность выбирать предметы. Вы можете настроить свою карту или ключи набора данных, но в какой-то момент вам понадобится сопоставление между значениями названия вашей страны и данными карты. Каковы ваши данные по словарному запасу или как были выбраны названия стран?   -  person Mads Hansen    schedule 10.11.2012


Ответы (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/< / а>​

person Mads Hansen    schedule 08.11.2012
comment
Опять же, проблема в том, что существует большая вероятность того, что многие названия стран не будут такими же, как в источнике данных OP. Вот почему для идентификации стран используется простой и общепринятый стандарт. - person bjornd; 08.11.2012

Это распространенная просьба, но решить эту проблему раз и навсегда просто потому, что существует множество вариантов написания названий стран и даже регионов страны, очень сложно. Таким образом, решением здесь может быть преобразование названий стран в коды стран с использованием данных из wikipedia или любой другой источник.

person bjornd    schedule 07.11.2012