2015-01-06 7 views
0

d3.js와 geojson 파일을 사용하여 완전한 세계지도를 그리는 데 문제가 있습니다. 내가 사용하고있는 파일은 https://gist.github.com/phil-pedruco/10447085이며 여기에서 모든 국가가 제대로 표시되는지 확인할 수 있습니다. 렌더링하려고 시도 할 때 아르헨티나를 제외한 모든 국가가 표시됩니다. 나는 또한 이러한 파일을 사용하여 시도 : https://github.com/rusanu/geodata-rails/tree/master/vendor/assets/javascripts. 여기에 110m 파일은 나에게 동일한 결과 (아르헨티나 없음)를 주지만 50m 파일은 너무 자세하다는 것을 제외하고는 전체 맵을 보여 주며 다른 파일을 사용합니다. 나는지도에 대한 경로를 그리는 코드를 간소화하여 내 코드에 잘못된 코드가 있는지 살펴 보았지만 결과는 동일합니다. 다음은지도를 그리는 간단한 코드입니다.아르헨티나가 d3.js로 세계지도에 표시되지 않음

var projection = d3.geo.mercator() 
      .center([0, 40]) 
      .scale(200) 
      .rotate([0, 0]); 
    var path = d3.geo.path() 
      .projection(projection); 
    var width = 2000; 
    var height = 2000; 

    queue() 
     .defer(d3.json,"world-110m.json") 
     .await(ready); 

    function ready(error,world) { 
      // console.log(world) 
      makeMap(world); 
    } 
    function makeMap(world){ 
     var svg = d3.select("#map").append("svg") 
      .attr("width", width) 
      .attr("height", height); 
     var g = svg.append("g"); 
      svg.selectAll("path") 
       .data(world.features) 
       .enter() 
       .append("path") 
       .attr("d", path) 
       .attr("stroke","black") 
       .attr("fill","white"); 

    } 

누구에게 어떤 문제가 있는지 알 수 있습니까? 문제를 해결하는 방법에 대한 해결책이 있습니까? 도움이 크게 감사하겠습니다 :)

편집 : 나는 "fill : none"을 지정하면 아르헨티나가 갑자기 윤곽이 잡히지 만 채우기 색을 지정하자마자, 사라집니다 ... 왜 이런 일이 발생하는지 아직도 알지 못합니다 .-

답변

0

이 동작 (획을 통해서만 표시되고 채우기가 아닌 국가)을 볼 때마다 일반적으로 다각형이 손상된 위치 데이터가 손상되었음을 나타냅니다 안쪽으로 바뀌 었습니다 (주위에 다각형 테두리가 있음). 데이터 세트를 GIS로 가져 와서 복구해야합니다. 이 경우 실제로 아르헨티나가 아니라 버뮤다가 손상되었습니다. 버뮤다를 삭제하면 문제가없는 것으로 보이거나 GIS 애플리케이션에서 지형 데이터를 복구하려고 할 수 있습니다.

아르헨티나가 없어 보이는 이유는 부패한 버뮤다가 아르헨티나 (다른 사람들도 포함) 위에 그려져 있기 때문입니다.

+0

고맙습니다! 버뮤다 작품을 삭제하면 버뮤다가 필요하지 않습니다 ^^ –

+0

모든 것이 제대로 작동하면 동의하십시오. – kwoxer