国家/地区名称转换为ISO

时间:2017-04-20 09:55:18

标签: javascript jquery json

我正在制作一张世界图表,该图表还显示了来自某个国家/地区的交易数量。但我需要将国家/地区的名称翻译为ISO,因为这是此图表工作的唯一方式。事务也是字符串(它实际上是事务的类型)所以我试图将字符串转换为数字。我不知道我是否也这样做。

这是我的代码:

<script>
var xmlURL = "some url";
var xml;
    var xmlData;
    var countryCodeColumn = "Counterparty country";
    var categoryColumn = "Type of transaction";


    var map;
    var jsonText = "{";
    var mapData;
    var regionStyling = {initial: {fill: '#93959b'}};

$j.ajax({
    url:xmlURL,
    dataType:"xml",
    beforeSend: function(){
        $j('#loader').show();
    },
    success: function(data){
        xml = data;
        drawMap();
        $j('#loader').hide();

    }
});


function drawMap(){
console.log("xml as text", (new XMLSerializer()).serializeToString(xml));
    var columns = {};
    var columnNames = [];
    var xmlColumns = $j('head', xml);
    xmlColumns.find('headColumn').each(function(){
        var columnName = $j(this).find('columnValue').text();
        var columnID = $j(this).attr('columnid');       
        columns[columnName] = columnID;
        console.log("column",columnName,columnID);
    });

    var xmlData = $j('data', xml);
    var countryCode;
    var category;
    var categoryColor;

    var url;

xmlData.find('item').each(function(){
    itemId = $j(this).find('itemID').text();
            url = "./injectColumnViewItemPage.action?metaData.channelID=9&metaData.siteID=723&metaData.sheetId=4640&metaData.itemId=" + itemId + "&metaData.sheetViewID=0&metaData.viewMode=0&view=readonly&sheetItemLinkView=true";
            console.log("url", url);
            console.log("itemid", itemId);
            $j(this).find('column').each(function(){
            var colID = $j(this).attr("columnid");
console.log(colID);
            var value = $j(this).find('displayData').text();
                            console.log("field:", colID,value);

        if(colID == columns[countryCodeColumn]){
            countryCode = value;

                    }else if(colID == columns[categoryColumn]){
                            if(value != 0){
                                category++;
                            }
            category = value;
                            categoryColor = $j(this).find('rawData').find('choice').attr('style');
            }
                            });
                            jsonText += '"' + countryCode + '":{' + '"Transactions":"' + category + '","Color":"' + categoryColor + '","ItemID":' + itemId + '},';
                            });
                            jsonText = jsonText.substring(0,jsonText.length-1) + "}";
                            console.log("jsontext", jsonText);
                            mapData = JSON.parse(jsonText);
                            console.log("json", JSON.stringify(mapData));

                            map = new jvm.Map({container: $j('#isheet-map'),
                            map: 'world_mill_en',
                            series:{
                                regions: [{
                                        normalizeFunction: 'polynomial'
                                }]
                            },
                            zoomOnScroll: true, 
                            regionStyle: regionStyling, 
                            backgroundColor: "#ffffff", 
                            onRegionTipShow: function(e,el,code)
                            {
                            if(mapData[code])
                            {
                                el.html('<div style = "line-height:50%;"><span class="map-tip-title">' + el.html() + '</span><p></p><span class="map-tip-label">Transactions:</span>' + mapData[code]["Transactions"] + '<p></p></div>');   
                            }else{
                            return false;
                                    }
                                    },
                            onRegionClick: function(e, code){
                            if(mapData[code]){


                                var href ="./injectColumnViewItemPage.action?metaData.channelID=9&metaData.siteID=" + 723 + "&metaData.sheetId=" + 4640 + "&metaData.itemId=" + mapData[code]["itemId"] + "&metaData.sheetViewID=0&metaData.viewMode=0&view=readonly&sheetItemLinkView=true";
                           $j("#iframe-Map").attr('src', href);
                           $j("#map-dialog").dialog({modal: true, title: map.getRegionName(code), width:600, height:500});
                                        }
                                        else{

                                        return false;
                                            }
                                    }
                                    });

                                    map.series.regions[0].setValues(getColors());

                                    function getColors(){
                                    var colors = {};
                                        $j.each(mapData,function(code,val){
                                        colors[code] = mapData[code]["Color"];
                                                });
                                                console.log("colors", colors);
                                                return colors;
                                            }
                                            }

</script>

我的ajax代码没有任何问题,因为如果我将它链接到另一个URL它可以正常工作

0 个答案:

没有答案