2013-09-26 42 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