JavaScript/PHP家谱生成器,支持多个父母

22

有没有现成的PHP、Javascript,或者命令行工具可以创建HTML的家谱树(最好)或至少为其创建一张图片?要求支持多个父节点。我已经搜索了几个小时,但没有找到。

例如,Google组织结构图非常理想,但它只允许每个节点最多有一个父节点。我需要支持两个父节点。

这个网站所做的任何事情都是完美的:http://www.familyecho.com/,但它似乎不是用Javascript完成的,而且他们也没有公开创建可视化效果的代码。

即使连接到外部网站使用他们的API生成可视化图表也是完美的。


Family Echo 确实使用 JavaScript - 你为什么认为它不使用 JavaScript? - Matt Ball
我尝试复制他们的JavaScript文件并运行它们,只是为了看看是否可以在外部使用它,但是没有成功。似乎它正在尝试向他们的网站上的/ap发出ajax请求,而我无法访问。你能让它工作吗? - Explosion Pills
你所说的多个父母是什么意思?你是指祖先图而不是后代吗?就像标准的家谱一样?phpGedView确实有这个功能。 - defines
你能给我展示一个类似于标准家谱的祖先图的例子吗? - Explosion Pills
1
我投票关闭此问题,因为尽管它的存在时间很长,并且得到了压倒性的认可,但它实际上并不是一个适合在SO上提问的问题。 - Strawberry
显示剩余2条评论
5个回答

7

你可能会对Raphaël感兴趣,特别是这个演示


编辑:我刚刚发现了另外一些有前途的选项,来自这个问题

  • Protovis - 当我第一次回答时,我知道这个选项,但当时没有想到。它非常灵活。看看这些例子
  • Dracula Graph - 我没有试过。它可能对你的用途太简单了。

我不需要能够拖动形状,但是 Raphael 是否允许多个父节点? - Explosion Pills
之前也看过这两个,但还不是我需要的。Protovis看起来很有潜力,但我仍然没有看到节点可以有多个父节点的树的示例! - Explosion Pills

5

这个看起来很有前途;唯一让我担心的是它似乎会随机放置节点,而且连接线不会形成T字型,但穷人不能挑剔。学习和使用这个也似乎非常复杂,但我想任何构建这样的树都会是如此。 - Explosion Pills
@tandu 我认为随机性是由特定的实现造成的。还有其他更整洁的可视化类型。多试验一下,就能得到你想要的多个父类组合,并以整齐的方式显示它们。这比仅仅“插上即用”要复杂,但文档非常好。 - Dan Blows
你推荐哪种特定的可视化呢?有没有一种看起来类似于我在问题中提供的两个示例的可视化呢? - Explosion Pills
@tandu 或许可以尝试 http://thejit.org/static/v20/Jit/Examples/Hypertree/example1.html - 您可以使用JavaScript和CSS自定义确切的布局和外观。它基本上通过AJAX工作 - 您向JIT传递JSON字符串,如果允许更新,则可以将JSON发送回您的服务器。http://thejit.org/static/v20/Docs/files/Visualizations/Hypertree-js.html#Hypertree.Op 是相关的文档。 - Dan Blows
@tandu 有没有成功让它工作? - Dan Blows
还没有到那个点,我会告诉你的。 - Explosion Pills

3
这可以使用Graphviz实现。它是一种易于学习的语言,也是一个命令行可执行文件(适用于Linux、Solaris、Windows和Mac),至少可以导出PNG和SVG格式。它非常灵活,可以制作家谱图。我想多个父母绝不是问题。请查看http://www.graphviz.org/content/kennedyanc获取示例。在http://www.graphviz.org/Gallery.php中查看所有其他示例。

您可能会发现Graphviz有其他几个用途。


Graphviz很酷,我可能最终会使用它,但问题是我真的需要用JavaScript完成这个任务,因为人们需要能够像点击节点查看配置文件、通过单击添加新节点等操作。我认为这将非常难以通过图像实现。 - Explosion Pills

1
Family Echo现在拥有API,使您能够以GEDCOM或FamilyScript格式提交家谱,并通过Family Echo网站在线查看。

这似乎是网络上唯一一个从GEDCOM文件实现真正家谱的网站 - 多个父母,多个祖先和后代,并且格式化将树状片段推到一边以为其他祖先腾出空间,就像手工制作家谱艺术家所做的那样。 - Peter Flynn

0
最后,我找到了一个非常有用的 PHP 脚本,可以制作专业的家谱图。它帮助了我很多。我想与其他人分享,也许对他们有帮助。

jTree Family Tree Maker Script


4
提示:对于浏览者来说,jTree家谱制作软件是付费产品。 - javatarz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接