【发布时间】:2012-01-03 21:39:50
【问题描述】:
我目前使用 API 在 Google 地图上使用 Protovis 绘制了一堆点。看起来像这样:http://mbostock.github.com/protovis/ex/oakland.html
但我不只是想要点——我想要连接点的线来显示一个网络。我想我可以使用 nodes 和 links 属性以及 pv.Dot 和 pv.Line 类在 Google 地图上使用 Protovis 网络布局 (pv.Layout.Network)。节点显示在我的地图上,但没有显示链接。其他两个用户已经在 Protovis 讨论组上提出了类似的问题,但没有人回答。看起来应该很简单。
我的代码与上面的 Oakland Crime-spotting 示例基本相同,但我将代码的“渲染可视化”部分更改为:
p = new pv.Panel()
.canvas(c)
.left(-x.min)
.top(-y.min);
var pn = p.add(pv.Layout.Network)
.nodes(this.exampleNetwork.nodes)
.links(this.exampleNetwork.links);
pn.link.add(pv.Line)
pn.node.add(pv.Dot)
.left(function() pixels[this.index].x)
.top(function() pixels[this.index].y)
p.render();
这是将网络布局添加到可视化的部分。同样,节点工作正常,但链接不显示。如有任何帮助,我将不胜感激!
更新:这是 Protovis 中的强制导向布局示例,它使用网络布局:http://mbostock.github.com/protovis/ex/force.html。是的,我知道 Protovis 有点过时了。
以下是我的数据的示例:
var exampleNetwork = {
nodes:[
{
nodeName : "Example1",
nodeValue : 100,
group : 0,
lat : 40.726446,
lon : -74.007339
},
{
nodeName : "Example2",
nodeValue : 2048,
group : 0,
lat : 34.073137,
lon : -118.248596
}
],
links:[
{source:0, target:1, value:5}
]
};
【问题讨论】:
-
你能创建一个更简单的代码版本吗?和/或设置一个 jsFiddle?这很难检查。作为补充,我认为 d3.js 已经使 protovis 变得多余
-
我想不出比奥克兰更适合说明犯罪流动的城市
标签: google-maps networking map visualization protovis