d3-最短路径问题

D3最短路径

dijistra算法

多条相同路径(基于dijkstra)

求路径策略

  • 给每幅图生成一个graphId
  • 以graphId为键,存储dijistra计算结果(中心点到所有节点最短路径)->前驱数组
    • 如果graphId计算过则走缓存,否则重新计算路径
  • 通过前驱列表,回溯查找某个节点最短路径nodeIds
  • 根据节点路径nodeIds求得linkIds

D3渲染路径

  • 渲染节点或边时,判断当前id是否在shortest_path_ids数据里