我已经加载了一个世界地图的json文件,并且正在使用d3。然而,俄罗斯的一部分在地图的另一边,在阿拉斯加旁边。
json文件是从我导出为非投影(WGS84)的shapefile创建的。
有没有办法改变中央经脉,使俄罗斯不分裂?我试过改变d3的中心,但它没有起作用。
供参考的代码:
d3.json("data/world.json", function (error, myMap) {
if (error) return console.error(errorMap);
var myMapFeatures = topojson.feature(myMap, myMap.objects.world);
var projection = d3.geo.mercator()
.center([30,39])
.scale(width*.10)
.translate([width/2, height/2]);
var geoProjectionPath = d3.geo.path()
.projection(projection);
svg.selectAll("path")
.data(myMapFeatures.features)
.enter()
.append("path")
.attr("class", function(d) {
return "country " + d.properties.Terr_Name;
})
.attr("d", geoProjectionPath);})
发布于 2016-04-20 14:11:53
你可以借助投影上的rotate来处理这个问题。
var projection = d3.geo.equirectangular()
.center([30,39])
.scale(100)
.rotate([-90,0]);//this will make Russia unsplit工作代码这里
https://stackoverflow.com/questions/36741456
复制相似问题