我有一個world-50m.json
文件工作的投影,但是當我用一種顏色填充它時,有幾個國家的邊緣被切斷,這些國家會在邊緣創建水平填充部分/線條整個地圖。D3世界-50m.json投影填充不正確
這是對D3-地理例如投影這裏實際可見:https://github.com/d3/d3-geo/blob/master/test/data/world-50m.json
有沒有這些截止各國的另一個JSON文件?或者,也許我可以從我的填充中省略特定的多邊形?不太清楚我將如何找到每個國家/地區的問題。雖然大多數是微小的,如果省略不會錯過,主要的一個似乎是俄羅斯。
這裏是我的代碼以供參考:
var w = 960,
h = 660,
active = d3.select(null);
var projection = d3.geoMercator()
.scale(150)
.translate([w/2, h/2])
.precision(.1);
var path = d3.geo.path()
.projection(projection);
var countries = svg.append("svg:g").attr("id", "countries");
d3.json("world-50m.json", function(error, us) {
mapFeatures = topojson.feature(us, us.objects.countries).features;
mapFeatures.type = "countries";
drawMap();
});
function drawMap() {
countries.selectAll("path")
.data(mapFeatures)
.enter().append("svg:path")
.attr("d", path)
.attr("class", "feature")
.attr("data-id", function(d) { return d.id; })
.style("fill", "blue")
.style("stroke", "white")
.style("stroke-width", ".2px");
};
任何幫助將不勝感激!
是否有可能包括在你的代碼塊你'path'和'projection'嗎? –
你的問題讓我想到了答案!我正在使用錯誤的路徑投影。應該使用'geoPath()'而不是'geo.path()'請回答這個問題,這樣我可以標記它是正確的:) – MatOwen11
@ MatOwen11這很可能不是正確的解釋。看看* Antimeridian Cutting *,例如比較此[示例](https://bl.ocks.org/mbostock/3788999)與此[示例](https://bl.ocks.org/mbostock/5735770)沒有antimeridian切割。 – altocumulus