2013-09-26 41 views
5

我在我的MacOs 10.7.5上安裝了gdal 1.10.1和topojson 1.4.0。 我已經下載了自然地球的ne_110m_ocean如何將海洋形狀文件轉換爲topojson

我成功地改變了形狀文件中以GeoJSON:

ogr2ogr \ 
    -f GeoJSON \ 
    ocean.json \ 
    ne_110m_ocean.shp 

然後,我改變了以GeoJSON到topojson:

topojson \ 
    -o ocean_tj.json \ 
    ocean=ocean.json \ 

當我繪製使用GeoJSON的文件,一切工作正常。

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

當我繪製使用而不是海洋,我得到了土地的多邊形的多邊形topojson文件!!!!

d3.json("ocean_tj.json", function(topology) { 
var ocean = topojson.feature(topology, topology.objects.ocean); 
svg.append("path") 
.datum(ocean) 
.attr("d", path) 
.style("fill", "red"); 
}); 

任何人都可以幫忙嗎?

在此先感謝

+0

與該文件工作時,我也得到了一些奇怪的結果。基本上,我在海洋和陸地被顛倒的數據中間有一條帶子。我使用了[ShapeEscape](http://www.shpescape.com/mix/)。我會在Google網上論壇上發佈一些內容,看看那邊的任何人是否有任何想法。 – user1614080

+0

我還不確定爲什麼會發生這種情況,但是使用'no-force-clockwise'解決了這個問題。如果有必要,我會再調查一下並填寫錯誤報告。 –

回答

4

使用選項--no-force-clockwise解決問題:

topojson -o ocean_tj.json ocean=ocean.json --no-force-clockwise 
+0

謝謝帕布羅,解決了這個問題。 – poujoo

+2

你能接受答案嗎? –

+1

示例:http://bl.ocks.org/mbostock/6713736 – mbostock