我的代码有问题。我想制作三张世界地图。其中两个正在工作,因为我使用的是同一数组,但是第三个(使用不同的数组)不起作用。我做了与第一次相同的操作,但是无论如何都无法正常工作。他们没有选择正确的经度和纬度。应该从国家/地区获取经度和纬度,而不是从拒绝中获取经度和纬度,而应该以拒绝的大小来绘制圆圈。
我尝试了很多事情,但是没有用。我认为问题可能出在这里,但我不确定。
var arrayFullOfCircles = [];
init();
function init () {
arrayFullOfCircles = getCountries();
}
var arr = [];
for (var i = 0; i < data.length; i++) {
var attrAlreadyExists = false;
for (j = 0; j < arr.length; j++) {
if (data[i][attr] === arr[j][attr]) {
attrAlreadyExists = true;
break;
}
}
if (attrAlreadyExists) {
if (!isNaN(Number(data[i].r))) {
arr[j].rSum += Number(data[i].r);
}
} else {
arr.push({
rSum: Number(data[i].r),
});
arr[arr.length - 1][attr] = data[i][attr];
arr[arr.length - 1][attr + "lo"] = data[i][attr + "lo"];
arr[arr.length - 1][attr + "la"] = data[i][attr + "la"];
}
}
function makeRejectedMap() {
for (var j = 0; j < arrayFullOfCircles.length; j++) {
arrayFullOfCircles[j].changed = false;
}
for (i = 0; i < rSumsByCountry.length; i++) {
xPos = map(rSumsByCountry[i].clo, 0 - 180, 180, 0, paperWidth);
yPos = paperHeight - map(rSumsByCountry[i].cla, 0 - 90, 90, 0, paperHeight);
radius = map(areaToRadius(rSumsByCountry[i].rSum), 0, areaToRadius(17000), 0, 4);
for (var j = 0; j < arrayFullOfCircles.length; j++) {
if (arrayFullOfCircles[j].countryCode == rSumsByCountry[i].c) {
arrayFullOfCircles[j].changed = true;
changeCircle(arrayFullOfCircles[j].countryCircle, xPos, yPos, radius, "#FF4545B");
}
}
}
控制台中没有错误。但是它记录了错误的数组。