Calculer SVG Chemin du Centre de gravité avec D3.js

Je suis en utilisant le format SVG situé à http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg dans un projet et interagir avec elle, avec d3.js. J'aimerais créer un cliquez pour effet de zoom comme http://bl.ocks.org/2206590, cependant que l'exemple s'appuie sur le chemin d'accès des données stockées dans un objet JSON pour calculer le centre de gravité. Est-il possible de charger les données de la trajectoire en d3 à partir d'un SVG pour obtenir le centre de gravité?

Mon (hackish) tentative à ce jour:

  function get_centroid(sel){
    var coords = d3.select(sel).attr('d');
    coords = coords.replace(/*[LC] */g,'],[').replace(/*M */g,'[[[').replace(/*z */g,']]]').replace(//g,'],[');
    return d3.geo.path().centroid({
      "type":"Feature",
      "geometry":{"type":"Polygon","coordinates":JSON.parse(coords)}
    });
  }

Cela semble fonctionner sur certains états, comme le Missouri, mais d'autres, comme Washington échouer parce que mon SVG données d'analyse est si rudimentaire. Ne d3 soutien à quelque chose comme ça en natif?

InformationsquelleAutor Zikes | 2012-08-21