Dijskastra + GeoTools 实现最短路径计算:
- 对路网(shp文件)进行处理,完成一部分Postgis替我们干活;主要是给道路进行编号,给道路节点进行编号,给道路添加起止节点,生成两个文件,暂且个它命令为(roadline roadpoint)
- roadline: 道路中心的分段,每条段有段ID、起点编号start、终点编号target、是否双向(twoway)、权重(weight)【路段长度】
- roadpoint: 记录节点编号
将数据手动填充完,把两个文件保存为geojson格式
- 算法开发 Dijkastra:
- 将顶点分成两个部分:已知当前最短路径的顶点集合Q和无法到达顶点集合R
- 定义一个数组(distance)记录源点到各顶点的距离,下标表示顶点,元素值顶点,源点(start)到自身的距离
首先,读取节点对应的geosjson文件,来初始化图中的节点列表; 其次,读取路段对应的geosjson文件,构建节点的连接关系,并填完图中的路段列表