2013-11-09 35 views
5

(kuvvet düzeniyle D3 Dünya haritasında için): http://bl.ocks.org/bycoffe/3230965Mesaj "TypeError d3.js: n tanımsız" Ben bu siteden kod deniyordum

enter image description here

ben "o hatayı yapmaya devam edin n tanımsızdır ". ayrıca ölçekleme aşağı üzerine

i sorun bu hatları ile olduğu sonucuna gelmiş:

(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]); 
      } 

     }) 

meselesi geçen çizgi ile ortaya çıkar: Hala var Ancak

node.cx = xScale(pixelLoc(node.coordinates)[0]); 

"n undefined" ile ne anlama geliyor? Yardım edebilecek biri var mı?

+0

Sorunu gösteren bir [jsfiddle] (http://jsfiddle.net/) oluşturabilir misiniz? İşaret ettiğiniz satırda 'n' yoktur ve sorunun ne olabileceği açık değildir. –

+0

temelde, verdiğim html bağlantısında kodları kullanmayı deneyebilirsiniz. kopyalayıp yapıştırın ve yerel olarak çalıştırmayı deneyin. n, satırdaki kodlara işaret etmez. d3.js. javascript dosyasına başvurur. – user2972046

+1

Ah, yerel olarak çalıştırıyorsunuz diyorsunuz. Daha sonra, 'index.html' dosyasını açarken yerel bir web sunucusunda 'medals.json' dosyasını barındırmadığınızdan şüpheleniyorum. Bu dava mı? –

cevap

2

sen d3.min kullanıyorsanız: d3.min.js gelen kütüphane muhtemelen

TypeError hata değişiklikler olduğunu göreceksiniz d3.js için

Değiştir: dizinin tanımlanmamış

Bu, min ve max işlevlerinin propperly çalışmadığı anlamına gelir.

var minX = d3.min(xs); 
//Change this for actual min value and max for actual max value and it should work.