я проектирую страны границы с помощью:topojson.mesh вывод пути установки? (Инсульт-dasharray)
d3.json("./admin_0.topo.json", function(error, json) {
var L0 = json.objects.admin_0;
//inland borders lines
svg.append("g").attr("id","border")
.attr("style", mesh)
.selectAll("path")
.data([topojson.mesh(json, L0, function(a, b) { return a !== b; })])
.enter().append("path")
.attr("d", path);
//coast lines
svg.append("g").attr("id","coast")
.attr("style", coast)
.append("path")
.datum(topojson.mesh(json, L0, function(a, b) { return a == b; }))
.attr("d", path);
});
Некоторых линий границы SVG соединяется с другими из них без объяснения причин:
Когда zommed в:
Примечание: ни береговые линии, ни замкнутые многоугольники не испорчены вверх. Я сгенерировал эти данные через npm topojson
& натуральные формы поверхности земли. Также кажется, что одна из двух международных границ отсутствует вокруг желтой Индии (пакистанская, непальская, камбоджийская границы).
# Download (not tested)
curl https://github.com/nvkelso/natural-earth-vector/raw/master/10m_cultural/ne_10m_admin_0_countries.shp
# shp2topojson:
topojson \
--id-property name \
-p name=name \
-q 1e4 \
--filter=small \
-o admin_0.topo.json \
-- admin_0=ne_10m_admin_0_countries.shp
Что такое прослушивание? Как я могу это исправить?
Demo, #Mesh, потенциально связанных с: D3js SVG open lines display a fill artifact, how to fix it? & "stroke-dasharray:x,y;" mess up svg path? (Chrome).
Это работает, если вы используете 'topojson.feature' вместо' mesh'? –
@LarsKotthoff: 'data (topojson.feature (json, L0) .features)' работает, нет артефактов. Это потеряло фильтрацию внутренних дуг, которые я не всегда могу наложить на синюю береговую линию. Политические границы могут быть больше, чем линии побережья. ** Примечание **: международные границы не распространяются вокруг желтой Индии (пакистанская, непальская, камбоджийская границы). – Hugolpz
Я понимаю, что данные верны, сетка делает что-то неправильно. – Hugolpz