В настоящее время у меня есть куча точек, нарисованных с помощью Protovis поверх Google Maps с использованием API. Это выглядит так: http://mbostock.github.com/protovis/ex/oakland.html
Но я не просто хочу точки - я хочу, чтобы линии, соединяющие точки, отображали сеть. Я подумал, что мог бы использовать сетевой макет Protovis (pv.Layout.Network) в Картах Google, используя свойства nodes
и links
и классы pv.Dot и pv.Line. Узлы отображаются на моей карте, но не ссылки. Два других пользователя уже задавали подобные вопросы в дискуссионной группе Protovis, но никто не ответил. Кажется, все должно быть просто.
Мой код в основном такой же, как в приведенном выше примере с раскрытием преступления в Окленде, но я изменил часть кода «Визуализация визуализации» на следующую:
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}
]
};