starałem się kod z tej strony: http://bl.ocks.org/bycoffe/3230965Message „d3.js TypeError: n jest nieokreślone” (dla D3 mapa świata z układu sił)
trzymam o błędzie, który " n jest niezdefiniowane ".
Po dalszym skalowanie w dół, i doszli do wniosku, że problem jest z tych linii:
(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]);
}
})
Problem wynika z ostatniego wiersza:
node.cx = xScale(pixelLoc(node.coordinates)[0]);
Jednak nadal mam nie mam pojęcia, co oznaczają "n jest niezdefiniowane". Ktoś może pomóc?
Czy można utworzyć [jsfiddle] (http://jsfiddle.net/) pokazujący problem? Nie ma "n" w linii, którą wskazujesz i nie jest jasne, jaki może być problem. –
dobrze w zasadzie możesz spróbować użyć kodów w podanym przeze mnie linku html. po prostu skopiuj i wklej go i spróbuj uruchomić go lokalnie. n nie odnosi się do kodów w linii. odnosi się do pliku javascript d3.js. – user2972046
Ah, działając lokalnie, mówisz. Wtedy mocno podejrzewam, że nie hostujesz pliku 'medals.json' na lokalnym serwerze podczas otwierania' index.html'. Czy tak jest? –