Я преобразовываю файл карты в Атласе США Бостока (файл shp нефильтрованных штатов США) в topojson. И я остановился на этой карте. Кто-нибудь знает, почему?
Мой код проекции: var svg = d3.select("#interactive").insert("svg") .attr("width", w) .attr("height", h);
var projection = d3.geo.albers().scale([600]);
var path = d3.geo.path().projection(projection);
d3.json("us-states.json", function(error, us) {
if (error) return console.error(error);
svg.append("path")
.datum(topojson.mesh(us))
.attr("d", path);
});
Исходные файлы, которые я пробовал (делал то же самое): 12, преобразованные файлы: 12,
shp
(что бы это ни было) содержит сегменты государственной границы (например, граница между Техасом и Оклахомой, граница между Техасом и Нью-Мексико), в то время как topojson ожидает полные государственные границы (например, границу Техаса, всю округу) . Могут быть и другие проблемы. - person Beta   schedule 20.07.2014topojson.mesh(topology)
возвращает один путь, представляющий все границы в этой топологии как несколько открытых подпутей. Это именно то, что отображается на вашей карте, за исключением того, что ваша карта имеет стиль пути по умолчанию с черной заливкой и отсутствием обводки, что не имеет смысла для пути, который представляет только границы. Если вы просто хотите нарисовать границы, установите.style({fill:"none", stroke:"black"});
на пути. Если вы хотите, чтобы каждое состояние было отдельным заполненным путем, вам понадобится другой подход. - person AmeliaBR   schedule 21.07.2014