2015-10-19 68 views
2
一個TopoJSON文件時

我試圖以顯示意大利製圖shape文件,for example this one,使用D3.js隨機線裝載在D3

我可以加載在MapShaper Zip文件,看看地圖,簡化它,導出到TopoJSON。我可以在MapShaper中加載TopoJSON,並且它看起來還可以。

但是,當我嘗試使用D3.js顯示,我收到了一堆意大利麪條:

enter image description here

美,不是嗎?

代碼直接來自示例。投影中心,旋轉和相似點應該是意大利的標準點,但它並不重要:地圖在選擇任何投影時仍然是意大利麪。

width = 600 
height = 1200 

projection = d3.geo.albers() 
    .center [0, 41] 
    .rotate [347, 0] 
    .parallels [35, 45] 
    .scale 2000 
    .translate [width/2, height/2] 

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

svg = d3.select "body" 
    .append "svg" 
    .attr "width", width 
    .attr "height", height 

d3.json "Reg2011_ED50.json", (json) -> 
    svg.append "path" 
     .datum topojson.feature json, json.objects.Reg2011_ED50 
     .attr "d", path 

我在做什麼錯?

+0

當渲染意大利地圖時,獲得一堆意大利麪條並不是那麼遙遠吧?製作我的一天;-)無論如何,你能否提供包括導出的TopoJSON在內的現場演示? – altocumulus

+0

@altocumulus謝謝,但我找到了解決方案,儘管我不明白。 – Tobia

+0

這是因爲你沒有指定投影。這很正常。 – kwoxer

回答

3

我發現了一箇舊的郵件列表帖子,詳細介紹瞭如何導入這些確切的文件。

基本上我需要投影轉換爲標準的一個使用此命令:

ogr2ogr -t_srs EPSG:4326 converted.shp original.shp 

我不明白爲什麼它的需要:我認爲.prj文件注意到投影差異照顧。顯然不是。