2015-01-30 4 views
0

я проектирую страны границы с помощью: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 соединяется с другими из них без объяснения причин:

enter image description here

Когда zommed в:

enter image description here

Примечание: ни береговые линии, ни замкнутые многоугольники не испорчены вверх. Я сгенерировал эти данные через 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).

+1

Это работает, если вы используете 'topojson.feature' вместо' mesh'? –

+0

@LarsKotthoff: 'data (topojson.feature (json, L0) .features)' работает, нет артефактов. Это потеряло фильтрацию внутренних дуг, которые я не всегда могу наложить на синюю береговую линию. Политические границы могут быть больше, чем линии побережья. ** Примечание **: международные границы не распространяются вокруг желтой Индии (пакистанская, непальская, камбоджийская границы). – Hugolpz

+0

Я понимаю, что данные верны, сетка делает что-то неправильно. – Hugolpz

ответ