stavo provando il codice da questo sito: http://bl.ocks.org/bycoffe/3230965messaggio "d3.js TypeError: n è indefinito" (per la D3 mappa del mondo con il layout forza)
io continuo ad avere l'errore che " n non è definito ".
Su ulteriore ridimensionamento, sono giunto alla conclusione che il problema è con queste linee:
(function() {
var width = 800;
var height = 700;
var padding = 10;
var k;
var node;
var pixelLoc = d3.geo.mercator();
pixelLoc.scale(2000);
svg = d3.select('#map')
.append('svg:svg')
.attr('width', width)
.attr('height', height);
d3.json('coordinates.json', function(coordinates) {
var coords = [];
var xs = [];
var ys = []
for (alias in coordinates) {
coords.push(coordinates[alias]);
xs.push(coordinates[alias][0]);
ys.push(coordinates[alias][1]);
}
var minX = d3.min(xs);
var maxX = d3.max(xs);
var xScale = d3.scale.linear().domain([minX, maxX]).range([-50, -30]);
var minY = d3.min(ys);
var maxY = d3.max(ys);
var yScale = d3.scale.linear().domain([minY, maxY]).range([-20, -10]);
d3.json('medals.json', function(medals) {
var pointScale = d3.scale.sqrt().domain([0, 80]).range([0, 75]);
nodes = []
for (i=0; i<medals.length; i++){
node = medals[i];
node.coordinates = coordinates[node.alias];
node.cx = xScale(pixelLoc(node.coordinates)[0]);
}
})
Il problema nasce con l'ultima riga:
node.cx = xScale(pixelLoc(node.coordinates)[0]);
Tuttavia, ho ancora non hanno idea di cosa intendano per "n non è definito". Qualcuno in grado di aiutare?
È possibile creare un [jsfiddle] (http://jsfiddle.net/) che mostra il problema? Non c'è alcun 'n' nella linea a cui si punta e non è chiaro quale potrebbe essere il problema. –
beh, in pratica puoi provare a usare i codici nel link html che ho dato. copia e incolla e prova a eseguirlo localmente. il n non si riferisce ai codici nella linea. si riferisce al file javascript di d3.js. – user2972046
Ah, eseguendolo localmente dici. Quindi sospetto fortemente che tu non stia ospitando il file 'medals.json' su un server web locale mentre apri l''index.html'. È questo il caso? –