|
各位boss,早上好。直接看表结构吧。主要由一个路线表(busline)和站点表(busstop)完成:
busline表主要字段:
lineid routeno from to price ......
1 1A 站点A 站点E 5.8
2 1B 站点1 站点4 3.5
3 1C 站点F 站点H 4.5
4 1D 站点B 站点6 4.0
busstop表主要字段:
id lineid stoporder title areacode subareacode price lng lat ......
1 1A 0 站点A 01 01A 3.0 114.21311 22.42421
2 1A 1 站点B 01 01A 3.0 114.23511 22.45421
3 1A 2 站点C 01 01B 3.5 114.27511 22.42421
4 1A 3 站点D 01 01B 3.5 114.85311 22.44421
5 1A 4 站点E 01 01C 5.8 114.21511 22.42821
6 1B 0 站点1 01 01D 3.0 114.21341 22.42426
7 1B 1 站点2 01 01D 3.0 114.21351 22.42427
8 1B 2 站点3 01 01E 3.0 114.21551 22.42467
9 1B 3 站点4 01 01E 3.5 114.21351 22.42437
10 1C 0 站点F 02 02A 3.0 114.21351 22.42427
11 1C 1 站点G 02 02B 3.5 114.21353 22.42727
12 1C 2 站点H 03 03A 4.5 114.21355 22.46427
13 1D 0 站点B 01 01A 3.0 114.23511 22.45421
14 1D 1 站点5 04 04A 3.5 114.21951 22.41427
15 1D 2 站点6 04 04A 4.0 114.21381 22.45427
大致列出上述结构。其中直达方案以及转乘一次方案(无需步行:比如站点A到站点6,先坐1A坐到站点B,再转乘1D坐到站点6)已经完成。目前需要完成的是获取步行转乘方案,比如从站点A到站点4,假设站点C与站点2距离很近,可以通过步行换乘(先乘坐1A到站点C下车,步行至站点2,再转乘1B坐到站点4).我现在的想法是通过经纬度计算出站点间的距离来获取线路之间距离最近站点。先查询出经过起点的所有路线(多条),再查询出经过目的地的所有路线(多条),然后获得经过起点的路线的所有站点,获得经过目的地的路线的所有站点,再逐一进行经纬度换算成距离进行比较。只是发觉实现起来计算太多。不知道各位有何建议。
|
|