2017-01-05 11 views
-1

У меня есть карта состояний состояний с использованием D3, и я могу построить Centroid каждого состояния, используя функцию path.Centroid(), но как только я объединю состояния (многоугольники), чтобы сделать его большим участком области .Centroid() не работает.D3 как найти Centroid объединенных ploygons

Как найти Centroid объединенных Ploygons?

Ссылка: here is the link to merged states example

Примечание: У меня есть список широты/долготы для всех государств центра тяжести.

+0

Пожалуйста, создайте [mcve], показывающий отказ вычисления центра тяжести в вопросе. Ваша ссылка внешняя, длинная и не демонстрирует проблему, которую вы описываете. –

ответ

1

Чтобы найти центр тяжести на примере в "сливающихся государств:

var mergeTopo = topojson.merge(us, us.objects.states.geometries.filter(function(d) { return selected.has(d.id); })); 
var mergeCentroid = [path.centroid(mergeTopo)]; 

svg.selectAll(".mergedcentroid").data(mergeCentroid) 
     .enter().append("circle") 
     .attr("class", "mergedcentroid") 
     .attr("fill", "black") 
     .attr("stroke", "purple") 
     .attr("stroke-width", 5) 
     .attr("r", 15) 
     .attr("cx", function (d){ return d[0]; }) 
     .attr("cy", function (d){ return d[1]; }); 

Обертывание центроид координаты в массиве, прежде чем создавать круг.

+0

ты спаситель :) – AnandSonake