D3.js 如何将海洋形状文件转换为topojson
我在MacOs 10.7.5上安装了gdal 1.10.1和topojson 1.4.0。 我已经下载了自然地球的表格 我成功地在GeoJSON中转换了形状文件:D3.js 如何将海洋形状文件转换为topojson,d3.js,topojson,D3.js,Topojson,我在MacOs 10.7.5上安装了gdal 1.10.1和topojson 1.4.0。 我已经下载了自然地球的表格 我成功地在GeoJSON中转换了形状文件: ogr2ogr \ -f GeoJSON \ ocean.json \ ne_110m_ocean.shp 然后我将GeoJSON转换为topojson: topojson \ -o ocean_tj.json \ ocean=ocean.json \ 当我使用GeoJSON文件打印时,一切都正常 d3.jso
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");
});
有人能帮忙吗
提前感谢使用选项--顺时针不用力修复问题:
topojson -o ocean_tj.json ocean=ocean.json --no-force-clockwise
使用该文件时,我也会得到一些奇怪的结果。基本上,我在数据的中间有一个条带,海洋和陆地是反向的。我用过。我会在Google Groups上发布一些东西,看看那边有没有人有什么想法。我仍然不知道为什么会发生这种情况,但使用
no force顺时针
解决了这个问题。如果有必要的话,我会再调查一点并填写一份bug报告。谢谢Pablo,这解决了问题。