此示例使用我在其他纯 d3 项目中使用过的 topojson 文件,并且在这些上下文中填充了#RUS,而没有此问题。
您一定是误会了,因为您的 TopoJSON 文件实际上已损坏。直接从您的服务器查看该文件的示例:http ://plnkr.co/edit/QOTwV3?p=preview 请注意,我使用的是普通的 TopoJSON 和 Leaflet 的 GeoJSON 层,但它产生的结果完全相同。
PS。您为什么要为此使用 D3 有什么理由吗?问是因为我看到你在做什么可以只使用 Leaflet 和 TopoJSON 来完成,而不需要 D3。这是一个简单的例子:
function delay(features) {
var geojsonLayer = new L.GeoJSON(null, {
style: getStyle,
}).addTo(map);
var delay = 100;
features.forEach(function(feature) {
delay = delay + 100;
setTimeout(function() {
geojsonLayer.addData(feature);
}, delay);
});
}
var url = 'http://crossorigin.me/http://dataviz.du.edu/projects/scratch/worldnew.json';
$.getJSON(url, function(data) {
var geojsonData = topojson.feature(data, data.objects.test);
delay(geojsonData.features);
});