Voy a tirar una respuesta más, aunque las respuestas anteriores son en el estadio de béisbol.
Supongamos que quiere trabajar en todos los navegadores. Si necesita trabajar en Internet Explorer y codifica su propia solución Canvas, puede incluir ExplorerCanvas.
Los árboles genealógicos son esencialmente árboles binarios - Lo sé, la vida real es complicada con las adopciones, los divorcios, ugh, pero supongamos por un segundo que son binarios yendo en una dirección (ancestros) de una persona en particular.
Una buena herramienta que utiliza Canvas, tiene el puente para trabajar en IE incluido, y utiliza un formato de datos simple y general es el JavaScript InfoVis Toolkit.
Salida de la muestra a: http://thejit.org/static/v20/Jit/Examples/Spacetree/example2.html
Puede que no sea exactamente lo que quiere sacarlo de la caja, pero se puede modificar la apariencia.
La carga útil de datos para plug-in es muy simple, y su ejemplo podría ser algo como esto:
var tree = {
id: "ME", // Needs to be internally unique
name: "ME", // Visual label, does not need to match id
data: {}, // not really used here, but parameter needed
children: [
{id: "DAD",
name: "DAD",
data: {},
children: [
{id: "GrDAD1",
name: "GrDAD1",
data: {},
children: []},
{id: "GrMOM1",
name: "GrMOM1",
data: {},
children: []},
]},
{id: "MOM",
name: "MOM",
data: {},
children: [
{id: "GrDAD2",
name: "GrDAD2",
data: {},
children: []},
{id: "GrMOM2",
name: "GrMOM2",
data: {},
children: []},
]}
]
};
Estoy seguro de que hay otras soluciones por ahí, y espero que encuentre uno que funcione para ti.
¿Se requiere que el usuario final del navegador de instalar nada? Me gustaría evitar eso si es posible. –
No, es solo una biblioteca de JavaScript. Sin instalaciones, funciona en todos los navegadores principales. – smercer