2014-02-10 37 views
0

我是d3和GeoJson的新手。我有this GeoJSON顯示在geojson lint。我想顯示以GeoJSON如用下面的代碼的地圖:我的GeoJSON中是否存在畸形或D3代碼中存在錯誤?

var width = 960, 
    height = 1160; 

var svg = d3.select("body").append("svg") 
    .attr("width", width) 
    .attr("height", height); 

var projection = d3.geo.transverseMercator().translate([width/2, height/2]).scale(150).center(-90.088, 29.957); 

var path = d3.geo.path().projection(projection); 

d3.json("orleans.json", function(json) { 
    svg.selectAll("path") 
     .data(json.features) 
     .enter() 
     .append("path") 
     .attr("d", path); 
}); 

第二至最後一行.attr(「d」,路徑)拋出以下錯誤深處D3堆棧跟蹤:

Error: Problem parsing d="MNaN,NaNLNaN,NaNL8.76110196153104,1051.238898038469L8.76110196153104,108.76110196153104L951.238898038469,108.76110196153104L951.238898038469,1051.238898038469LNaN,NaNLNaN,NaNLNaN,NaNLNaN,NaNLNaN,NaNLNaN,NaNZMNaN,NaNLNaN,NaNLNaN,NaNZMNaN,NaNLNaN,NaNLNaN,NaNZMNaN 

我的GeoJSON有問題嗎?或者我在D3中如何使用GeoJSON?看起來這個錯誤來自D3格式錯誤 - 但是我的GeoJSON lint。所以也許這是我的D3語法問題,而不是我的GeoJSON?

GeoJSON確實看起來好像正在正確加載。當我CONSOLE.LOG(JSON)調用 到d3.json("orleans.json", function(json)後馬上顯示以下內容:

enter image description here

+0

您是否驗證過JSON加載是否正確? –

+0

@LarsKotthoff我不知道該怎麼做。你能解釋一下嗎? – bernie2436

+0

例如'的console.log(JSON)'。 –

回答

1

有兩個問題與您的代碼:

  • .center()函數有一個數組論點而不是兩個。
  • 橫向墨卡託投影不支持反經絡切割。

要修復,傳遞一個數組而不是兩個數字並將中心限制在-90度或更小。完整演示here

相關問題