У меня проблема с рисованием полной карты мира с использованием d3.js и файла geojson. Я использую файл https://gist.github.com/phil-pedruco/10447085, и здесь вы можете видеть, что все страны отображаются правильно, но когда я пытаюсь это отобразить, я получаю все страны, кроме аргентины. Я также пытался использовать эти файлы: https://github.com/rusanu/geodata-rails/tree/master/vendor/assets/javascripts. Здесь файл 110 м дает мне тот же результат (без аргентины), но файл 50 м показывает всю карту, за исключением того, что он слишком подробный, и я бы предпочел использовать другой файл. Я упростил код, чтобы просто рисовать пути для карты, чтобы увидеть, есть ли что-то в моем коде, что может быть неправильным, но результат тот же... Вот упрощенный код для рисования карты:
var projection = d3.geo.mercator()
.center([0, 40])
.scale(200)
.rotate([0, 0]);
var path = d3.geo.path()
.projection(projection);
var width = 2000;
var height = 2000;
queue()
.defer( d3.json,"world-110m.json")
.await(ready);
function ready(error,world) {
// console.log(world)
makeMap(world);
}
function makeMap(world){
var svg = d3.select("#map").append("svg")
.attr("width", width)
.attr("height", height);
var g = svg.append("g");
svg.selectAll("path")
.data(world.features)
.enter()
.append("path")
.attr("d", path)
.attr("stroke","black")
.attr("fill","white");
}
Кто-нибудь знает, в чем может быть проблема, и решения, как это исправить? Помощь будет принята с благодарностью :)
edit: Попробовав целую кучу разных вещей, я заметил, что если я укажу «fill: none», аргентина внезапно обрисуется в общих чертах, но как только я укажу цвет заливки, он исчезнет ... До сих пор не знаю, почему Это случилось -.-