2013-02-27 2 views
1

나는 d3.js와지도를 그릴려고하지만 난 여기에d3.js "MNaN, NaN가"

<!-- language: lang-js --> 
    var width=960, height=500; 
    var svg = d3.select("body").append("svg") 
    .attr("width", width) 
    .attr("height", height); 
    var q = 0; 
    var sc = 3000; 
    var d3line2 = d3.svg.line() 
        .x(function(d){q= 0.95105*sc*(d[0]+66.4262); return q;}) 
        .y(function(d){q= sc*(-1*d[1]+ 18.2336); return q;}) 
        .interpolate("linear"); 

    d3.json("/prCounties.json", function(d){ 

     for(var k = 0; k < d.features[0].length; k++){ 
      svg.append("path") 
      .attr("d", d3line2(d.features[0][k].geometry.coordinates)) 
      .attr("class", "stroke"); 
     } 
    }); 

Problem parsing d="MNaN,NaN"가 계속 GeoJson 파일이 구문 분석 문제 - 그것은에 무엇 동일해야합니다을 GitHub.

{ 
"type": "FeatureCollection", 
"properties": {"kind": "state", "state": "PR"}, 
"features": [[ 
    {"geometry": {"type": "MultiPolygon", "coordinates": [[[[-66.7222, 18.2198], [-66.6838, 18.2034], [-66.6729, 18.1541], [-66.6948, 18.1322], [-66.7167, 18.1322], [-66.7331, 18.1103], [-66.7715, 18.1377], [-66.7989, 18.1322], [-66.8262, 18.1705], [-66.8153, 18.2308], [-66.7824, 18.2527]]]]}, 
"type": "Feature", "properties": {"kind": "county", "name": "Adjuntas", "state": "PR"} 
} 

답변

2

개 이상의 문제가있을 수 있습니다 (그리고 jsFiddle 도움이 될),하지만 여기에 하나 :

d3.svg.line() 발생기는 포인트의 배열을 기대하고있다. [[[[-66.7222, 18.2198], [-66.6838, 18.2034]....을주고 있는데, 점의 배열이지만 더 많은 두 레벨의 배열로 중첩됩니다. 스펙에 의한 coordinates 속성은 다중 지형지 물 (단일 지형 개체를 구성하는 여러 섬 또는 경계 내의 호수와 같은 '구멍'과 같음)을 설명 할 수 있기 때문입니다.

그래서 귀하의 경우에 당신은, 및 목적, 당신은 경도 위도 쌍,하지 예상 X, Y 점을하려 할 것 통지를 알지 않고 d.features[0][k].geometry.coordinates[0][0]

이 모든 것을 말해 두 겠는데 줄 필요가있다. 후자가 기대하는 바라면 d3.geo.path()을 살펴보고 프로젝션을 지정할 수 있습니다.

+0

JsFiddle. 그것은 좋은 전화입니다. 괜찮 았어. [지도] (https://a248.e.akamai.net/camo.github.com/521b09a4A0d52539fd2b83060503d96bada85d277/687474703a2f2f646c2e64726f70626f782e636f6d2f752f31373934393130302f70722e706e67) –