Ich war von dieser Seite den Code ausprobieren: http://bl.ocks.org/bycoffe/3230965Nachricht „d3.js Typeerror: n undefiniert“ (für D3 Weltkarte mit Kraft-Layout)
Ich halte den Fehler haben, dass " n ist undefiniert ".
Bei der weiteren Verkleinerung, habe ich zu dem Schluss gekommen, dass das Problem mit diesen Linien ist:
(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]);
}
})
Die Frage stellt sich mit der letzten Zeile:
node.cx = xScale(pixelLoc(node.coordinates)[0]);
Ich habe jedoch noch keine Ahnung, was sie mit "n ist undefiniert" meinen. Kann jemand helfen?
Können Sie ein [jsfiddle] (http://jsfiddle.net/) erstellen, das das Problem zeigt? Es gibt kein "n" in der Zeile, auf die Sie zeigen, und es ist unklar, was das Problem sein könnte. –
gut im Grunde können Sie versuchen, die Codes in der HTML-Link, den ich angegeben habe. Kopieren und fügen Sie es einfach ein und versuchen Sie es lokal auszuführen. Das n bezieht sich nicht auf die Codes in der Zeile. es bezieht sich auf die Javascript-Datei von d3.js. – user2972046
Ah, läuft es lokal Sie sagen. Dann vermute ich, dass Sie die Datei 'medias.json' nicht auf einem lokalen Webserver hosten, während Sie die' index.html' öffnen. Ist das der Fall? –