gt-graph有向图是geotools中的图模块,是一个图形框架,该框架对寻找最短路径的dijkstra算法和A*算法都提供了实现。
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-graph</artifactId>
<version>18.0</version>
</dependency>
利用gt_graph进行手动有向图建模的时候(还可以使用路网数据导入建模),在计算最短路径取值时,经常会出现方向搞混的情况,非常的头疼。
建模时,图中的主要对象:
图Graph是由一堆的Node(点)和Edge(边)构成的
Edge边是由两个Node(点)构成的,可以理解为有向线段
边和其方向的指向
构建有向边时,是用框架提供的构建器进行构建
Edge edge = graphGenerator.getGraphBuilder().buildEdge(nodeA, nodeB);
此时我们会默认认为,这条边的方向应该是nodeA -----> nodeB。实际也是这个方向,从源码中我们会发现 nodeA对应的是Edge中的m_in字段,nodeB对应的m_out字段