具有多个父项的 Javascript/PHP 家谱生成器 [关闭]

Posted

技术标签:

【中文标题】具有多个父项的 Javascript/PHP 家谱生成器 [关闭]【英文标题】:Javascript/PHP Family Tree Builder with Multiple Parents [closed] 【发布时间】:2011-08-04 02:13:52 【问题描述】:

是否有现有的 phpjavascript 甚至命令行工具可以用 html(最好)或至少为它创建一个图像来构建家谱?多个父母是必需的。我已经在谷歌上搜索了几个小时,但无济于事。

例如,Google Organizational Chart 是理想的,但它只允许每个节点最多有一个父节点。我需要两个父母才有可能。

无论这个网站做什么都是完美的:http://www.familyecho.com/,但似乎不是用 javascript 完成的,而且他们没有发布实际创建可视化的代码。

即使连接到外部网站以使用其 API 生成可视化效果也是完美的。

【问题讨论】:

Family Echo 确实使用了 JavaScript - 是什么让你认为它没有? 我尝试复制他们的 javascript 文件并运行它们只是为了看看我是否可以在外部使用它,但它不起作用。似乎它正试图在他们的网站上向 /ap 发出 ajax 请求,而我无权访问。你能让它工作吗? 多父母到底是什么意思?您只是在谈论上升图而不是后代吗?像标准的家谱? phpGedView 确实有。 你能给我看一个像标准家谱这样的上升图的例子吗? 我投票结束这个问题作为题外话,因为尽管它的年龄很大,并且得到了压倒性的支持,但它不是,也从来不是一个真正适合 SO 的问题。 【参考方案1】:

您可能对Raphaël 感兴趣,尤其是this demo。


编辑:我刚刚从this question 发现了其他几个看起来很有希望的选项。

Protovis - 我第一次回答时就知道这个,但当时没有想到。它真的很灵活。查看the examples。 Dracula Graph - 没试过。对于您的使用而言,它可能太简单了。

【讨论】:

我不需要能够拖动形状,但 Raphael 是否允许多个父节点? 之前也检查过这两个。仍然不是我真正需要的。 Protovis 看起来很有潜力,但我仍然没有看到节点可以有多个父节点的树的示例!【参考方案2】:

因为它只是您所追求的 JavaScript(我假设,因为您正在设计自己的架构......)InfoVis 框架提供了各种复杂的关系 - http://thejit.org/static/v20/Jit/Examples/ForceDirected/example1.html。

【讨论】:

这个看起来很有希望;唯一让我担心的是它似乎随机放置节点并且连接不形成T,但乞丐不能挑剔。这似乎也很难学习和使用,但我想像这样构建一棵树会很复杂。 @tandu 我认为随机性是那个特定的实现。还有其他更整洁的可视化类型。有的玩弄会给你多亲的组合,整齐的展示你想要的。它比“即插即用”更复杂,但文档很棒。 您推荐特定的可视化吗?一个看起来类似于我在问题中提供的两个示例? @tandu 也许thejit.org/static/v20/Jit/Examples/Hypertree/example1.html - 您可以使用 JavaScript 和 CSS 自定义确切的布局和外观。它本质上是通过 AJAX 工作的——你将一个 JSON 字符串传递给 JIT,如果你允许更新,你可以将 JSON 发送回你的服务器。 thejit.org/static/v20/Docs/files/Visualizations/… 是相关文档。 @tandu 让它工作有什么乐趣吗?【参考方案3】:

Graphviz 可以做到这一点。它是一种(易于学习)语言和命令行可执行文件(适用于 Linux、Solaris、Windows 和 Mac),至少可以导出为 PNG 和 SVG。它非常灵活,可以做家谱。我想多个父母根本不是问题。以http://www.graphviz.org/content/kennedyanc 为例。查看所有其他示例:http://www.graphviz.org/Gallery.php

您自己可能会发现 Graphviz 的其他几种用途。

【讨论】:

Graphviz 很酷,我可能最终会使用它,但问题是我真的需要用 javascript 来完成这项工作,因为人们需要能够执行诸如单击节点以查看配置文件之类的操作,通过单击等添加新节点。我认为这对于图像来说非常困难。【参考方案4】:

Family Echo 现在有一个API,允许您提交 GEDCOM 或 FamilyScript 格式的家谱,并通过 Family Echo 网站在线查看。

【讨论】:

这似乎是网络上唯一一个从 GEDCOM 文件实现真正家谱的网站——多个父母、多个祖先和后代,以及将树碎片推到一边为其他祖先让路的格式,就像手动家谱艺术家所做的那样。【参考方案5】:

如果有人愿意使用 CSS - http://thecodeplayer.com/experiment/css3-family-tree/2

【讨论】:

很好的解决方案,但我相信它不会因为不按照 OP 的要求处理多个父母。 那不是家庭结构图……那是组织结构图……它们不显示父亲和母亲……它们只显示具有一个实体的父母…… 然而在 cmets 部分有关于如何使用父亲姓名和母亲姓名以及如何使用离婚者的建议......【参考方案6】:

终于找到了非常有用的用php制作专业家谱图的脚本。这对我帮助很大。只是想和别人分享,可能对别人有帮助。

jTree Family Tree Maker Script

【讨论】:

浏览者请注意,jTree Family Tree Maker 是一款付费产品。

以上是关于具有多个父项的 Javascript/PHP 家谱生成器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

OLAP 多维数据集:具有多个父项的父子维度

Hsqldb 重命名具有相同父项的重复项

如何将 GridLayoutManager 中的项目固定为具有不同跨度计数的父项的开始和结束

如何将父项的第一个子项中的属性移动到 XSLT 中的父项?

ToolStripMenuItem 相对于父项的位置

在物料清单中插入父项的销售价格而不重复