1.什么是Graphhopper

GraphHopper是有Java语言编写,可基于内存的高效导航引擎,默认使用OSM和GTFS数据,也可导入其他的数据源。支持CH(Contraction Hierarchies)、A*、Dijkstra等导航算法。

2.Graphhopper的特点

  1. 算法:
  • Dijkstra算法运行得较慢,但确实能保证找到一条最短路径
  • 最佳优先搜索(BFS)运行得较快,但是它找到的路径不一定是最好的
  • A算法把启发式方法(heuristic approaches)如BFS,和常规方法如Dijsktra算法结合在一起的算法。A是路径搜索中最受欢迎的选择,因为它相当灵活,并且能用于多种多样的情形之中。A潜在地搜索图中一个很大的区域。和Dijkstra一样,A能用于搜索最短路径。和BFS一样,A*能用启发式函数(注:原文为heuristic)引导它自己。在简单的情况中,它和BFS一样快
  1. 开源:代码开源,可本地部署服务,利用OSM实现离线路径导航,便于构建自己的服务。后期如果考虑对算法进行改进的话,扩展空间比较大;
  2. 效率:相比较于调用远程服务,调用本地路径规划服务会更快。路径寻找比谷歌地图还要快,与OSRM速度相当(350km路径,平均时间0.8s(0.4s-1.2s));
  3. 成熟度:已存在一些开源版本的成功运用,且有官方网站、论坛等;
  4. 功能:导航系统的核心功能是根据地理数据,利用算法进行路径规划导航。Graphhopper实现了路径导航功能,并且支持中文。

    3.搭建本地Graphhopper

    前提

  5. 安装JDK,且版本>=1.8

  6. 安装maven
  7. 提前下载osm的离线地图数据,我下载的是摩尔达维亚的数据,因为小。下载地址:https://download.geofabrik.de/europe/moldova-latest.osm.pbf

    项目地址

  8. github地址:https://github.com/graphhopper/graphhopper

image.png

  1. 国内镜像地址:https://gitcode.net/mirrors/graphhopper/graphhopper?utm_source=csdn_github_accelerator

image.png

  1. 点击clone,下载源码

image.png

  1. 解压,项目目录如图

image.png

下载地址

https://github.com/graphhopper/graphhopper/releases
选择对应版本jar包即可
image.png

启动项目

  1. 新建graphhopper-example文件夹
  2. 将下载好的jar包,osm离线数据文件,以及源代码中的config-example.yml全部放到graphhopper-example文件夹下
  3. CMD打开控制台,输入:

    1. java -Ddw.graphhopper.datareader.file=moldova-latest.osm.pbf -jar graphhopper-web-6.0.jar server config-example.yml
  4. 如图,graphhopper启动成功

image.png

  1. 浏览器输入:http://localhost:8989/,如下图,地图数据已渲染成功

image.png

  1. 在左侧输入起点以及终点之后,就可以在地图上将最短路径展示出来了

image.png

  1. 浏览器输入:http://localhost:8989/route?point=47.915115,27.344971&point=48.03157,28.242187&type=json&locale=zh-CN&vehicle=car&weighting=fastest&points_encoded=false
  2. route路由返回结果如下:包含了当前路径中涉及到的所有经纬度,总路程(单位m)和总耗时。以及每一段路径的总路程,总耗时等信息

    1. {
    2. "hints":{
    3. "visited_nodes.sum":80,
    4. "visited_nodes.average":80
    5. },
    6. "info":{
    7. "copyrights":[
    8. "GraphHopper",
    9. "OpenStreetMap contributors"
    10. ],
    11. "took":4
    12. },
    13. "paths":[
    14. {
    15. "distance":86342.661,
    16. "weight":5167.44077,
    17. "time":5167435,
    18. "transfers":0,
    19. "points_encoded":false,
    20. "bbox":[
    21. 27.342371,
    22. 47.916198,
    23. 28.230925,
    24. 48.13333
    25. ],
    26. "points":{
    27. "type":"LineString",
    28. "coordinates":[
    29. [
    30. 27.342371,
    31. 47.916198
    32. ],
    33. [
    34. 27.343725,
    35. 47.917631
    36. ],
    37. [
    38. 27.345368,
    39. 47.919247
    40. ],
    41. [
    42. 27.345611,
    43. 47.919519
    44. ],
    45. [
    46. 27.345853,
    47. 47.91981
    48. ],
    49. [
    50. 27.34621,
    51. 47.920298
    52. ],
    53. [
    54. 27.347056,
    55. 47.921654
    56. ],
    57. [
    58. 27.347402,
    59. 47.922077
    60. ],
    61. [
    62. 27.347582,
    63. 47.922246
    64. ],
    65. [
    66. 27.348068,
    67. 47.922613
    68. ],
    69. [
    70. 27.35299,
    71. 47.925535
    72. ],
    73. [
    74. 27.353992,
    75. 47.926156
    76. ],
    77. [
    78. 27.354899,
    79. 47.926778
    80. ],
    81. [
    82. 27.355298,
    83. 47.927108
    84. ],
    85. [
    86. 27.355905,
    87. 47.927695
    88. ],
    89. [
    90. 27.357022,
    91. 47.92883
    92. ],
    93. [
    94. 27.361427,
    95. 47.933177
    96. ],
    97. [
    98. 27.362308,
    99. 47.934156
    100. ],
    101. [
    102. 27.362598,
    103. 47.934432
    104. ],
    105. [
    106. 27.36418,
    107. 47.935818
    108. ],
    109. [
    110. 27.366243,
    111. 47.937507
    112. ],
    113. [
    114. 27.370841,
    115. 47.941206
    116. ],
    117. [
    118. 27.371247,
    119. 47.94149
    120. ],
    121. [
    122. 27.371945,
    123. 47.941901
    124. ],
    125. [
    126. 27.372821,
    127. 47.942332
    128. ],
    129. [
    130. 27.373234,
    131. 47.942505
    132. ],
    133. [
    134. 27.373524,
    135. 47.942606
    136. ],
    137. [
    138. 27.373878,
    139. 47.9427
    140. ],
    141. [
    142. 27.374163,
    143. 47.942757
    144. ],
    145. [
    146. 27.37469,
    147. 47.942813
    148. ],
    149. [
    150. 27.375094,
    151. 47.942803
    152. ],
    153. [
    154. 27.375543,
    155. 47.942759
    156. ],
    157. [
    158. 27.3761,
    159. 47.942657
    160. ],
    161. [
    162. 27.379429,
    163. 47.941848
    164. ],
    165. [
    166. 27.380625,
    167. 47.94154
    168. ],
    169. [
    170. 27.381335,
    171. 47.941314
    172. ],
    173. [
    174. 27.381633,
    175. 47.941183
    176. ],
    177. [
    178. 27.386686,
    179. 47.938227
    180. ],
    181. [
    182. 27.38733,
    183. 47.937827
    184. ],
    185. [
    186. 27.387522,
    187. 47.937695
    188. ],
    189. [
    190. 27.389719,
    191. 47.935862
    192. ],
    193. [
    194. 27.390133,
    195. 47.935547
    196. ],
    197. [
    198. 27.39043,
    199. 47.93537
    200. ],
    201. [
    202. 27.390699,
    203. 47.935252
    204. ],
    205. [
    206. 27.391001,
    207. 47.93515
    208. ],
    209. [
    210. 27.391398,
    211. 47.935061
    212. ],
    213. [
    214. 27.391704,
    215. 47.935036
    216. ],
    217. [
    218. 27.392066,
    219. 47.935044
    220. ],
    221. [
    222. 27.392322,
    223. 47.935065
    224. ],
    225. [
    226. 27.392737,
    227. 47.935127
    228. ],
    229. [
    230. 27.392981,
    231. 47.935188
    232. ],
    233. [
    234. 27.398872,
    235. 47.937047
    236. ],
    237. [
    238. 27.399188,
    239. 47.937166
    240. ],
    241. [
    242. 27.410609,
    243. 47.942347
    244. ],
    245. [
    246. 27.416837,
    247. 47.945201
    248. ],
    249. [
    250. 27.421101,
    251. 47.947198
    252. ],
    253. [
    254. 27.422488,
    255. 47.94775
    256. ],
    257. [
    258. 27.422946,
    259. 47.947883
    260. ],
    261. [
    262. 27.423272,
    263. 47.94794
    264. ],
    265. [
    266. 27.423588,
    267. 47.947965
    268. ],
    269. [
    270. 27.423919,
    271. 47.947967
    272. ],
    273. [
    274. 27.424455,
    275. 47.947942
    276. ],
    277. [
    278. 27.429978,
    279. 47.94755
    280. ],
    281. [
    282. 27.430717,
    283. 47.947449
    284. ],
    285. [
    286. 27.430968,
    287. 47.947389
    288. ],
    289. [
    290. 27.431554,
    291. 47.947209
    292. ],
    293. [
    294. 27.432351,
    295. 47.946903
    296. ],
    297. [
    298. 27.434953,
    299. 47.945757
    300. ],
    301. [
    302. 27.435305,
    303. 47.945627
    304. ],
    305. [
    306. 27.435793,
    307. 47.945489
    308. ],
    309. [
    310. 27.436461,
    311. 47.94538
    312. ],
    313. [
    314. 27.437143,
    315. 47.945341
    316. ],
    317. [
    318. 27.437869,
    319. 47.945364
    320. ],
    321. [
    322. 27.43836,
    323. 47.945412
    324. ],
    325. [
    326. 27.438687,
    327. 47.945467
    328. ],
    329. [
    330. 27.43922,
    331. 47.945629
    332. ],
    333. [
    334. 27.442669,
    335. 47.946806
    336. ],
    337. [
    338. 27.445019,
    339. 47.94758
    340. ],
    341. [
    342. 27.450009,
    343. 47.949145
    344. ],
    345. [
    346. 27.451202,
    347. 47.949486
    348. ],
    349. [
    350. 27.451381,
    351. 47.949528
    352. ],
    353. [
    354. 27.451894,
    355. 47.949611
    356. ],
    357. [
    358. 27.452529,
    359. 47.949661
    360. ],
    361. [
    362. 27.454234,
    363. 47.94977
    364. ],
    365. [
    366. 27.455266,
    367. 47.949808
    368. ],
    369. [
    370. 27.456378,
    371. 47.949743
    372. ],
    373. [
    374. 27.458375,
    375. 47.949594
    376. ],
    377. [
    378. 27.45906,
    379. 47.949518
    380. ],
    381. [
    382. 27.473245,
    383. 47.946048
    384. ],
    385. [
    386. 27.473906,
    387. 47.945922
    388. ],
    389. [
    390. 27.475479,
    391. 47.945694
    392. ],
    393. [
    394. 27.47577,
    395. 47.945666
    396. ],
    397. [
    398. 27.47669,
    399. 47.945636
    400. ],
    401. [
    402. 27.477346,
    403. 47.945644
    404. ],
    405. [
    406. 27.478297,
    407. 47.945684
    408. ],
    409. [
    410. 27.479183,
    411. 47.945754
    412. ],
    413. [
    414. 27.479935,
    415. 47.945831
    416. ],
    417. [
    418. 27.481211,
    419. 47.94602
    420. ],
    421. [
    422. 27.481801,
    423. 47.946139
    424. ],
    425. [
    426. 27.482213,
    427. 47.946265
    428. ],
    429. [
    430. 27.482432,
    431. 47.94636
    432. ],
    433. [
    434. 27.48255,
    435. 47.946432
    436. ],
    437. [
    438. 27.48265,
    439. 47.946507
    440. ],
    441. [
    442. 27.482764,
    443. 47.946631
    444. ],
    445. [
    446. 27.482876,
    447. 47.946797
    448. ],
    449. [
    450. 27.48515,
    451. 47.950441
    452. ],
    453. [
    454. 27.485485,
    455. 47.950921
    456. ],
    457. [
    458. 27.485809,
    459. 47.951203
    460. ],
    461. [
    462. 27.486236,
    463. 47.951517
    464. ],
    465. [
    466. 27.486442,
    467. 47.951635
    468. ],
    469. [
    470. 27.486646,
    471. 47.951708
    472. ],
    473. [
    474. 27.487148,
    475. 47.951794
    476. ],
    477. [
    478. 27.503152,
    479. 47.953684
    480. ],
    481. [
    482. 27.503892,
    483. 47.953755
    484. ],
    485. [
    486. 27.504431,
    487. 47.953745
    488. ],
    489. [
    490. 27.504708,
    491. 47.953714
    492. ],
    493. [
    494. 27.511054,
    495. 47.952855
    496. ],
    497. [
    498. 27.512953,
    499. 47.952562
    500. ],
    501. [
    502. 27.514196,
    503. 47.952308
    504. ],
    505. [
    506. 27.51425,
    507. 47.952261
    508. ],
    509. [
    510. 27.514402,
    511. 47.952201
    512. ],
    513. [
    514. 27.514489,
    515. 47.952192
    516. ],
    517. [
    518. 27.514658,
    519. 47.952212
    520. ],
    521. [
    522. 27.514717,
    523. 47.952242
    524. ],
    525. [
    526. 27.515308,
    527. 47.952089
    528. ],
    529. [
    530. 27.525479,
    531. 47.950184
    532. ],
    533. [
    534. 27.526053,
    535. 47.95009
    536. ],
    537. [
    538. 27.526494,
    539. 47.950045
    540. ],
    541. [
    542. 27.526811,
    543. 47.950038
    544. ],
    545. [
    546. 27.533371,
    547. 47.95024
    548. ],
    549. [
    550. 27.536304,
    551. 47.9505
    552. ],
    553. [
    554. 27.538444,
    555. 47.950724
    556. ],
    557. [
    558. 27.539019,
    559. 47.950802
    560. ],
    561. [
    562. 27.539517,
    563. 47.950894
    564. ],
    565. [
    566. 27.540245,
    567. 47.951105
    568. ],
    569. [
    570. 27.540676,
    571. 47.951272
    572. ],
    573. [
    574. 27.541021,
    575. 47.951447
    576. ],
    577. [
    578. 27.541366,
    579. 47.951655
    580. ],
    581. [
    582. 27.541861,
    583. 47.951997
    584. ],
    585. [
    586. 27.543066,
    587. 47.953021
    588. ],
    589. [
    590. 27.543719,
    591. 47.953613
    592. ],
    593. [
    594. 27.544293,
    595. 47.954164
    596. ],
    597. [
    598. 27.544382,
    599. 47.954279
    600. ],
    601. [
    602. 27.545001,
    603. 47.955481
    604. ],
    605. [
    606. 27.545229,
    607. 47.955886
    608. ],
    609. [
    610. 27.545349,
    611. 47.956036
    612. ],
    613. [
    614. 27.545497,
    615. 47.956159
    616. ],
    617. [
    618. 27.545676,
    619. 47.956255
    620. ],
    621. [
    622. 27.545986,
    623. 47.956369
    624. ],
    625. [
    626. 27.546197,
    627. 47.95641
    628. ],
    629. [
    630. 27.547864,
    631. 47.956637
    632. ],
    633. [
    634. 27.548554,
    635. 47.95678
    636. ],
    637. [
    638. 27.548928,
    639. 47.956841
    640. ],
    641. [
    642. 27.549197,
    643. 47.956855
    644. ],
    645. [
    646. 27.549439,
    647. 47.956834
    648. ],
    649. [
    650. 27.549814,
    651. 47.956754
    652. ],
    653. [
    654. 27.550803,
    655. 47.956456
    656. ],
    657. [
    658. 27.551225,
    659. 47.956363
    660. ],
    661. [
    662. 27.551925,
    663. 47.956269
    664. ],
    665. [
    666. 27.55266,
    667. 47.956106
    668. ],
    669. [
    670. 27.553301,
    671. 47.955983
    672. ],
    673. [
    674. 27.553559,
    675. 47.955893
    676. ],
    677. [
    678. 27.554206,
    679. 47.955731
    680. ],
    681. [
    682. 27.55731,
    683. 47.953845
    684. ],
    685. [
    686. 27.559898,
    687. 47.952316
    688. ],
    689. [
    690. 27.562066,
    691. 47.951011
    692. ],
    693. [
    694. 27.566375,
    695. 47.948551
    696. ],
    697. [
    698. 27.566506,
    699. 47.948303
    700. ],
    701. [
    702. 27.566512,
    703. 47.948254
    704. ],
    705. [
    706. 27.566576,
    707. 47.948186
    708. ],
    709. [
    710. 27.566686,
    711. 47.948155
    712. ],
    713. [
    714. 27.56678,
    715. 47.948163
    716. ],
    717. [
    718. 27.566858,
    719. 47.948199
    720. ],
    721. [
    722. 27.568494,
    723. 47.948199
    724. ],
    725. [
    726. 27.571139,
    727. 47.948256
    728. ],
    729. [
    730. 27.58099,
    731. 47.948527
    732. ],
    733. [
    734. 27.585286,
    735. 47.948649
    736. ],
    737. [
    738. 27.585949,
    739. 47.948707
    740. ],
    741. [
    742. 27.586381,
    743. 47.948776
    744. ],
    745. [
    746. 27.58695,
    747. 47.948901
    748. ],
    749. [
    750. 27.587308,
    751. 47.949004
    752. ],
    753. [
    754. 27.587955,
    755. 47.949225
    756. ],
    757. [
    758. 27.595278,
    759. 47.951889
    760. ],
    761. [
    762. 27.609702,
    763. 47.9571
    764. ],
    765. [
    766. 27.610858,
    767. 47.957454
    768. ],
    769. [
    770. 27.612446,
    771. 47.95805
    772. ],
    773. [
    774. 27.612987,
    775. 47.95829
    776. ],
    777. [
    778. 27.62765,
    779. 47.963583
    780. ],
    781. [
    782. 27.628776,
    783. 47.963969
    784. ],
    785. [
    786. 27.629761,
    787. 47.964248
    788. ],
    789. [
    790. 27.630841,
    791. 47.964506
    792. ],
    793. [
    794. 27.631637,
    795. 47.964654
    796. ],
    797. [
    798. 27.632224,
    799. 47.964746
    800. ],
    801. [
    802. 27.633446,
    803. 47.964896
    804. ],
    805. [
    806. 27.635072,
    807. 47.965063
    808. ],
    809. [
    810. 27.649549,
    811. 47.966501
    812. ],
    813. [
    814. 27.66233,
    815. 47.967741
    816. ],
    817. [
    818. 27.670162,
    819. 47.968538
    820. ],
    821. [
    822. 27.673867,
    823. 47.968899
    824. ],
    825. [
    826. 27.676067,
    827. 47.969144
    828. ],
    829. [
    830. 27.676989,
    831. 47.969307
    832. ],
    833. [
    834. 27.67826,
    835. 47.969604
    836. ],
    837. [
    838. 27.679149,
    839. 47.969855
    840. ],
    841. [
    842. 27.679767,
    843. 47.970058
    844. ],
    845. [
    846. 27.68043,
    847. 47.970306
    848. ],
    849. [
    850. 27.704242,
    851. 47.979689
    852. ],
    853. [
    854. 27.706252,
    855. 47.98046
    856. ],
    857. [
    858. 27.724619,
    859. 47.987692
    860. ],
    861. [
    862. 27.732244,
    863. 47.990661
    864. ],
    865. [
    866. 27.732935,
    867. 47.991001
    868. ],
    869. [
    870. 27.733553,
    871. 47.991376
    872. ],
    873. [
    874. 27.734387,
    875. 47.991952
    876. ],
    877. [
    878. 27.734749,
    879. 47.992258
    880. ],
    881. [
    882. 27.735098,
    883. 47.992575
    884. ],
    885. [
    886. 27.742019,
    887. 47.999348
    888. ],
    889. [
    890. 27.742643,
    891. 47.999939
    892. ],
    893. [
    894. 27.743008,
    895. 48.000235
    896. ],
    897. [
    898. 27.743352,
    899. 48.000447
    900. ],
    901. [
    902. 27.743856,
    903. 48.000693
    904. ],
    905. [
    906. 27.744336,
    907. 48.000902
    908. ],
    909. [
    910. 27.75399,
    911. 48.005044
    912. ],
    913. [
    914. 27.776982,
    915. 48.014838
    916. ],
    917. [
    918. 27.782176,
    919. 48.017031
    920. ],
    921. [
    922. 27.782596,
    923. 48.017237
    924. ],
    925. [
    926. 27.783308,
    927. 48.017664
    928. ],
    929. [
    930. 27.783718,
    931. 48.017966
    932. ],
    933. [
    934. 27.784031,
    935. 48.01823
    936. ],
    937. [
    938. 27.784335,
    939. 48.018526
    940. ],
    941. [
    942. 27.784643,
    943. 48.018875
    944. ],
    945. [
    946. 27.78491,
    947. 48.019234
    948. ],
    949. [
    950. 27.785283,
    951. 48.019825
    952. ],
    953. [
    954. 27.789344,
    955. 48.026582
    956. ],
    957. [
    958. 27.789638,
    959. 48.026993
    960. ],
    961. [
    962. 27.790085,
    963. 48.02747
    964. ],
    965. [
    966. 27.790402,
    967. 48.027759
    968. ],
    969. [
    970. 27.790912,
    971. 48.02815
    972. ],
    973. [
    974. 27.791682,
    975. 48.028626
    976. ],
    977. [
    978. 27.796657,
    979. 48.031325
    980. ],
    981. [
    982. 27.797483,
    983. 48.031794
    984. ],
    985. [
    986. 27.797603,
    987. 48.031817
    988. ],
    989. [
    990. 27.797919,
    991. 48.031965
    992. ],
    993. [
    994. 27.802189,
    995. 48.034829
    996. ],
    997. [
    998. 27.802497,
    999. 48.035063
    1000. ],
    1001. [
    1002. 27.802573,
    1003. 48.035222
    1004. ],
    1005. [
    1006. 27.802789,
    1007. 48.035377
    1008. ],
    1009. [
    1010. 27.802945,
    1011. 48.035459
    1012. ],
    1013. [
    1014. 27.803052,
    1015. 48.035559
    1016. ],
    1017. [
    1018. 27.803184,
    1019. 48.035628
    1020. ],
    1021. [
    1022. 27.803341,
    1023. 48.035676
    1024. ],
    1025. [
    1026. 27.803572,
    1027. 48.035724
    1028. ],
    1029. [
    1030. 27.804016,
    1031. 48.035764
    1032. ],
    1033. [
    1034. 27.809126,
    1035. 48.032455
    1036. ],
    1037. [
    1038. 27.81074,
    1039. 48.031336
    1040. ],
    1041. [
    1042. 27.812214,
    1043. 48.030367
    1044. ],
    1045. [
    1046. 27.812427,
    1047. 48.030309
    1048. ],
    1049. [
    1050. 27.812588,
    1051. 48.030308
    1052. ],
    1053. [
    1054. 27.8128,
    1055. 48.03034
    1056. ],
    1057. [
    1058. 27.817592,
    1059. 48.032314
    1060. ],
    1061. [
    1062. 27.819301,
    1063. 48.033092
    1064. ],
    1065. [
    1066. 27.821216,
    1067. 48.033913
    1068. ],
    1069. [
    1070. 27.821457,
    1071. 48.033995
    1072. ],
    1073. [
    1074. 27.822825,
    1075. 48.034552
    1076. ],
    1077. [
    1078. 27.824128,
    1079. 48.035126
    1080. ],
    1081. [
    1082. 27.828482,
    1083. 48.036918
    1084. ],
    1085. [
    1086. 27.828572,
    1087. 48.03692
    1088. ],
    1089. [
    1090. 27.828656,
    1091. 48.036944
    1092. ],
    1093. [
    1094. 27.828748,
    1095. 48.037008
    1096. ],
    1097. [
    1098. 27.828764,
    1099. 48.037039
    1100. ],
    1101. [
    1102. 27.829292,
    1103. 48.037262
    1104. ],
    1105. [
    1106. 27.829586,
    1107. 48.037468
    1108. ],
    1109. [
    1110. 27.830147,
    1111. 48.037637
    1112. ],
    1113. [
    1114. 27.83062,
    1115. 48.037823
    1116. ],
    1117. [
    1118. 27.834852,
    1119. 48.039602
    1120. ],
    1121. [
    1122. 27.835286,
    1123. 48.039728
    1124. ],
    1125. [
    1126. 27.835535,
    1127. 48.039769
    1128. ],
    1129. [
    1130. 27.835798,
    1131. 48.039774
    1132. ],
    1133. [
    1134. 27.836126,
    1135. 48.039761
    1136. ],
    1137. [
    1138. 27.836221,
    1139. 48.039749
    1140. ],
    1141. [
    1142. 27.836396,
    1143. 48.03978
    1144. ],
    1145. [
    1146. 27.836468,
    1147. 48.039818
    1148. ],
    1149. [
    1150. 27.836552,
    1151. 48.039926
    1152. ],
    1153. [
    1154. 27.836559,
    1155. 48.039969
    1156. ],
    1157. [
    1158. 27.836669,
    1159. 48.040075
    1160. ],
    1161. [
    1162. 27.836791,
    1163. 48.040262
    1164. ],
    1165. [
    1166. 27.83692,
    1167. 48.040397
    1168. ],
    1169. [
    1170. 27.837186,
    1171. 48.040565
    1172. ],
    1173. [
    1174. 27.843774,
    1175. 48.04332
    1176. ],
    1177. [
    1178. 27.846932,
    1179. 48.044624
    1180. ],
    1181. [
    1182. 27.854047,
    1183. 48.047616
    1184. ],
    1185. [
    1186. 27.854586,
    1187. 48.04786
    1188. ],
    1189. [
    1190. 27.855095,
    1191. 48.048124
    1192. ],
    1193. [
    1194. 27.855581,
    1195. 48.04841
    1196. ],
    1197. [
    1198. 27.861914,
    1199. 48.052673
    1200. ],
    1201. [
    1202. 27.872115,
    1203. 48.059593
    1204. ],
    1205. [
    1206. 27.872847,
    1207. 48.06007
    1208. ],
    1209. [
    1210. 27.873082,
    1211. 48.060201
    1212. ],
    1213. [
    1214. 27.873516,
    1215. 48.060401
    1216. ],
    1217. [
    1218. 27.874066,
    1219. 48.060589
    1220. ],
    1221. [
    1222. 27.87456,
    1223. 48.06073
    1224. ],
    1225. [
    1226. 27.875044,
    1227. 48.060831
    1228. ],
    1229. [
    1230. 27.875354,
    1231. 48.060876
    1232. ],
    1233. [
    1234. 27.875816,
    1235. 48.060907
    1236. ],
    1237. [
    1238. 27.876142,
    1239. 48.060914
    1240. ],
    1241. [
    1242. 27.876696,
    1243. 48.060892
    1244. ],
    1245. [
    1246. 27.877024,
    1247. 48.060864
    1248. ],
    1249. [
    1250. 27.877594,
    1251. 48.060777
    1252. ],
    1253. [
    1254. 27.878164,
    1255. 48.060663
    1256. ],
    1257. [
    1258. 27.884002,
    1259. 48.059242
    1260. ],
    1261. [
    1262. 27.888411,
    1263. 48.058148
    1264. ],
    1265. [
    1266. 27.889306,
    1267. 48.057946
    1268. ],
    1269. [
    1270. 27.889769,
    1271. 48.0579
    1272. ],
    1273. [
    1274. 27.890118,
    1275. 48.057892
    1276. ],
    1277. [
    1278. 27.890505,
    1279. 48.05793
    1280. ],
    1281. [
    1282. 27.890851,
    1283. 48.058006
    1284. ],
    1285. [
    1286. 27.891272,
    1287. 48.058153
    1288. ],
    1289. [
    1290. 27.893052,
    1291. 48.058975
    1292. ],
    1293. [
    1294. 27.894505,
    1295. 48.059691
    1296. ],
    1297. [
    1298. 27.898481,
    1299. 48.061587
    1300. ],
    1301. [
    1302. 27.902342,
    1303. 48.063388
    1304. ],
    1305. [
    1306. 27.902748,
    1307. 48.063617
    1308. ],
    1309. [
    1310. 27.903118,
    1311. 48.063898
    1312. ],
    1313. [
    1314. 27.906104,
    1315. 48.066715
    1316. ],
    1317. [
    1318. 27.908339,
    1319. 48.068861
    1320. ],
    1321. [
    1322. 27.938902,
    1323. 48.097744
    1324. ],
    1325. [
    1326. 27.941212,
    1327. 48.099878
    1328. ],
    1329. [
    1330. 27.942045,
    1331. 48.100553
    1332. ],
    1333. [
    1334. 27.942424,
    1335. 48.100832
    1336. ],
    1337. [
    1338. 27.943285,
    1339. 48.101435
    1340. ],
    1341. [
    1342. 27.943792,
    1343. 48.101759
    1344. ],
    1345. [
    1346. 27.944341,
    1347. 48.102097
    1348. ],
    1349. [
    1350. 27.945318,
    1351. 48.102649
    1352. ],
    1353. [
    1354. 27.946407,
    1355. 48.103194
    1356. ],
    1357. [
    1358. 27.949112,
    1359. 48.104449
    1360. ],
    1361. [
    1362. 27.952346,
    1363. 48.105912
    1364. ],
    1365. [
    1366. 27.95615,
    1367. 48.1076
    1368. ],
    1369. [
    1370. 27.959196,
    1371. 48.108929
    1372. ],
    1373. [
    1374. 27.964947,
    1375. 48.111484
    1376. ],
    1377. [
    1378. 27.97194,
    1379. 48.114625
    1380. ],
    1381. [
    1382. 27.990534,
    1383. 48.123019
    1384. ],
    1385. [
    1386. 27.992002,
    1387. 48.123695
    1388. ],
    1389. [
    1390. 27.996379,
    1391. 48.12565
    1392. ],
    1393. [
    1394. 28.001737,
    1395. 48.128084
    1396. ],
    1397. [
    1398. 28.004521,
    1399. 48.129327
    1400. ],
    1401. [
    1402. 28.013333,
    1403. 48.13333
    1404. ],
    1405. [
    1406. 28.014114,
    1407. 48.132672
    1408. ],
    1409. [
    1410. 28.016207,
    1411. 48.131021
    1412. ],
    1413. [
    1414. 28.016736,
    1415. 48.130579
    1416. ],
    1417. [
    1418. 28.017161,
    1419. 48.130149
    1420. ],
    1421. [
    1422. 28.017599,
    1423. 48.12965
    1424. ],
    1425. [
    1426. 28.018549,
    1427. 48.128221
    1428. ],
    1429. [
    1430. 28.019789,
    1431. 48.126172
    1432. ],
    1433. [
    1434. 28.021254,
    1435. 48.123657
    1436. ],
    1437. [
    1438. 28.022117,
    1439. 48.122274
    1440. ],
    1441. [
    1442. 28.022391,
    1443. 48.121648
    1444. ],
    1445. [
    1446. 28.02353,
    1447. 48.11879
    1448. ],
    1449. [
    1450. 28.024899,
    1451. 48.115465
    1452. ],
    1453. [
    1454. 28.024984,
    1455. 48.115187
    1456. ],
    1457. [
    1458. 28.025045,
    1459. 48.114836
    1460. ],
    1461. [
    1462. 28.025026,
    1463. 48.11453
    1464. ],
    1465. [
    1466. 28.024922,
    1467. 48.114157
    1468. ],
    1469. [
    1470. 28.023087,
    1471. 48.110401
    1472. ],
    1473. [
    1474. 28.023053,
    1475. 48.110298
    1476. ],
    1477. [
    1478. 28.023047,
    1479. 48.110148
    1480. ],
    1481. [
    1482. 28.023336,
    1483. 48.108137
    1484. ],
    1485. [
    1486. 28.02335,
    1487. 48.107924
    1488. ],
    1489. [
    1490. 28.023327,
    1491. 48.106219
    1492. ],
    1493. [
    1494. 28.023354,
    1495. 48.105916
    1496. ],
    1497. [
    1498. 28.023407,
    1499. 48.105642
    1500. ],
    1501. [
    1502. 28.023756,
    1503. 48.104675
    1504. ],
    1505. [
    1506. 28.023797,
    1507. 48.104511
    1508. ],
    1509. [
    1510. 28.024158,
    1511. 48.10153
    1512. ],
    1513. [
    1514. 28.024279,
    1515. 48.101201
    1516. ],
    1517. [
    1518. 28.028472,
    1519. 48.095847
    1520. ],
    1521. [
    1522. 28.033462,
    1523. 48.089426
    1524. ],
    1525. [
    1526. 28.034426,
    1527. 48.08814
    1528. ],
    1529. [
    1530. 28.038388,
    1531. 48.082976
    1532. ],
    1533. [
    1534. 28.041011,
    1535. 48.079621
    1536. ],
    1537. [
    1538. 28.04473,
    1539. 48.075795
    1540. ],
    1541. [
    1542. 28.044853,
    1543. 48.075646
    1544. ],
    1545. [
    1546. 28.045018,
    1547. 48.07551
    1548. ],
    1549. [
    1550. 28.04917,
    1551. 48.073287
    1552. ],
    1553. [
    1554. 28.051353,
    1555. 48.072098
    1556. ],
    1557. [
    1558. 28.052004,
    1559. 48.071693
    1560. ],
    1561. [
    1562. 28.052586,
    1563. 48.071263
    1564. ],
    1565. [
    1566. 28.053118,
    1567. 48.070828
    1568. ],
    1569. [
    1570. 28.053618,
    1571. 48.070461
    1572. ],
    1573. [
    1574. 28.055709,
    1575. 48.06878
    1576. ],
    1577. [
    1578. 28.055973,
    1579. 48.068587
    1580. ],
    1581. [
    1582. 28.056179,
    1583. 48.068469
    1584. ],
    1585. [
    1586. 28.056476,
    1587. 48.068344
    1588. ],
    1589. [
    1590. 28.061457,
    1591. 48.066521
    1592. ],
    1593. [
    1594. 28.063121,
    1595. 48.065844
    1596. ],
    1597. [
    1598. 28.065376,
    1599. 48.064868
    1600. ],
    1601. [
    1602. 28.066287,
    1603. 48.064446
    1604. ],
    1605. [
    1606. 28.066541,
    1607. 48.064287
    1608. ],
    1609. [
    1610. 28.066909,
    1611. 48.064016
    1612. ],
    1613. [
    1614. 28.067252,
    1615. 48.063722
    1616. ],
    1617. [
    1618. 28.067809,
    1619. 48.063192
    1620. ],
    1621. [
    1622. 28.068702,
    1623. 48.062239
    1624. ],
    1625. [
    1626. 28.069644,
    1627. 48.061044
    1628. ],
    1629. [
    1630. 28.070041,
    1631. 48.060635
    1632. ],
    1633. [
    1634. 28.070243,
    1635. 48.060487
    1636. ],
    1637. [
    1638. 28.070863,
    1639. 48.060139
    1640. ],
    1641. [
    1642. 28.07473,
    1643. 48.057869
    1644. ],
    1645. [
    1646. 28.085551,
    1647. 48.051426
    1648. ],
    1649. [
    1650. 28.096578,
    1651. 48.044735
    1652. ],
    1653. [
    1654. 28.097084,
    1655. 48.044756
    1656. ],
    1657. [
    1658. 28.098567,
    1659. 48.044735
    1660. ],
    1661. [
    1662. 28.10517,
    1663. 48.044603
    1664. ],
    1665. [
    1666. 28.108537,
    1667. 48.04455
    1668. ],
    1669. [
    1670. 28.109575,
    1671. 48.04457
    1672. ],
    1673. [
    1674. 28.10994,
    1675. 48.044599
    1676. ],
    1677. [
    1678. 28.113335,
    1679. 48.044602
    1680. ],
    1681. [
    1682. 28.113579,
    1683. 48.044623
    1684. ],
    1685. [
    1686. 28.113938,
    1687. 48.044703
    1688. ],
    1689. [
    1690. 28.121451,
    1691. 48.047704
    1692. ],
    1693. [
    1694. 28.127478,
    1695. 48.050171
    1696. ],
    1697. [
    1698. 28.130917,
    1699. 48.051298
    1700. ],
    1701. [
    1702. 28.13144,
    1703. 48.051503
    1704. ],
    1705. [
    1706. 28.132513,
    1707. 48.051976
    1708. ],
    1709. [
    1710. 28.137722,
    1711. 48.054496
    1712. ],
    1713. [
    1714. 28.138757,
    1715. 48.055084
    1716. ],
    1717. [
    1718. 28.139353,
    1719. 48.055526
    1720. ],
    1721. [
    1722. 28.143254,
    1723. 48.058831
    1724. ],
    1725. [
    1726. 28.143403,
    1727. 48.058931
    1728. ],
    1729. [
    1730. 28.143519,
    1731. 48.058976
    1732. ],
    1733. [
    1734. 28.143572,
    1735. 48.058981
    1736. ],
    1737. [
    1738. 28.14364,
    1739. 48.058974
    1740. ],
    1741. [
    1742. 28.143711,
    1743. 48.058946
    1744. ],
    1745. [
    1746. 28.148627,
    1747. 48.056098
    1748. ],
    1749. [
    1750. 28.148827,
    1751. 48.05603
    1752. ],
    1753. [
    1754. 28.149148,
    1755. 48.055981
    1756. ],
    1757. [
    1758. 28.153241,
    1759. 48.056106
    1760. ],
    1761. [
    1762. 28.155086,
    1763. 48.056195
    1764. ],
    1765. [
    1766. 28.159209,
    1767. 48.056343
    1768. ],
    1769. [
    1770. 28.163399,
    1771. 48.056526
    1772. ],
    1773. [
    1774. 28.166443,
    1775. 48.056622
    1776. ],
    1777. [
    1778. 28.167231,
    1779. 48.056674
    1780. ],
    1781. [
    1782. 28.167543,
    1783. 48.056716
    1784. ],
    1785. [
    1786. 28.170217,
    1787. 48.057272
    1788. ],
    1789. [
    1790. 28.179447,
    1791. 48.059126
    1792. ],
    1793. [
    1794. 28.179938,
    1795. 48.059204
    1796. ],
    1797. [
    1798. 28.180367,
    1799. 48.05924
    1800. ],
    1801. [
    1802. 28.181556,
    1803. 48.059022
    1804. ],
    1805. [
    1806. 28.216341,
    1807. 48.053949
    1808. ],
    1809. [
    1810. 28.225387,
    1811. 48.055741
    1812. ],
    1813. [
    1814. 28.225743,
    1815. 48.055598
    1816. ],
    1817. [
    1818. 28.225522,
    1819. 48.055385
    1820. ],
    1821. [
    1822. 28.225232,
    1823. 48.055062
    1824. ],
    1825. [
    1826. 28.225135,
    1827. 48.054813
    1828. ],
    1829. [
    1830. 28.225108,
    1831. 48.054681
    1832. ],
    1833. [
    1834. 28.225186,
    1835. 48.053069
    1836. ],
    1837. [
    1838. 28.225304,
    1839. 48.052646
    1840. ],
    1841. [
    1842. 28.225409,
    1843. 48.052415
    1844. ],
    1845. [
    1846. 28.225742,
    1847. 48.051897
    1848. ],
    1849. [
    1850. 28.227323,
    1851. 48.049616
    1852. ],
    1853. [
    1854. 28.228131,
    1855. 48.048411
    1856. ],
    1857. [
    1858. 28.228974,
    1859. 48.047051
    1860. ],
    1861. [
    1862. 28.22941,
    1863. 48.046233
    1864. ],
    1865. [
    1866. 28.229739,
    1867. 48.045485
    1868. ],
    1869. [
    1870. 28.23081,
    1871. 48.042569
    1872. ],
    1873. [
    1874. 28.230913,
    1875. 48.042145
    1876. ],
    1877. [
    1878. 28.230925,
    1879. 48.041955
    1880. ],
    1881. [
    1882. 28.230807,
    1883. 48.041314
    1884. ],
    1885. [
    1886. 28.230058,
    1887. 48.038736
    1888. ]
    1889. ]
    1890. },
    1891. "instructions":[
    1892. {
    1893. "ref":"R7",
    1894. "distance":15647.34,
    1895. "heading":31.87,
    1896. "sign":0,
    1897. "interval":[
    1898. 0,
    1899. 118
    1900. ],
    1901. "text":"继续行驶到 Drochia-Costești",
    1902. "time":866626,
    1903. "street_name":"Drochia-Costești"
    1904. },
    1905. {
    1906. "exit_number":2,
    1907. "distance":3322.279,
    1908. "sign":6,
    1909. "exited":true,
    1910. "turn_angle":-3.07,
    1911. "interval":[
    1912. 118,
    1913. 161
    1914. ],
    1915. "text":"在环岛内,使用2出口出环岛,进入Strada Independenței",
    1916. "time":238464,
    1917. "street_name":"Strada Independenței"
    1918. },
    1919. {
    1920. "exit_number":1,
    1921. "distance":1288.6,
    1922. "sign":6,
    1923. "exited":true,
    1924. "interval":[
    1925. 161,
    1926. 167
    1927. ],
    1928. "text":"在环岛内,使用1出口出环岛,进入Strada Independenței",
    1929. "time":92779,
    1930. "street_name":"Strada Independenței"
    1931. },
    1932. {
    1933. "exit_number":2,
    1934. "distance":1090.682,
    1935. "sign":6,
    1936. "exited":true,
    1937. "turn_angle":-4.38,
    1938. "interval":[
    1939. 167,
    1940. 175
    1941. ],
    1942. "text":"在环岛内,使用2出口出环岛,进入Strada Independenței",
    1943. "time":78529,
    1944. "street_name":"Strada Independenței"
    1945. },
    1946. {
    1947. "ref":"R7",
    1948. "distance":19769.105,
    1949. "sign":0,
    1950. "interval":[
    1951. 175,
    1952. 243
    1953. ],
    1954. "text":"继续行驶到 Drochia-Costești",
    1955. "time":1034915,
    1956. "street_name":"Drochia-Costești"
    1957. },
    1958. {
    1959. "ref":"R7",
    1960. "distance":128.545,
    1961. "sign":1,
    1962. "interval":[
    1963. 243,
    1964. 250
    1965. ],
    1966. "text":"偏右转 到 Strada Evgheni Gudanov",
    1967. "time":10284,
    1968. "street_name":"Strada Evgheni Gudanov"
    1969. },
    1970. {
    1971. "distance":2277.404,
    1972. "sign":2,
    1973. "interval":[
    1974. 250,
    1975. 263
    1976. ],
    1977. "text":"右转 到 Strada Mitropolit Varlaam",
    1978. "time":136642,
    1979. "street_name":"Strada Mitropolit Varlaam"
    1980. },
    1981. {
    1982. "exit_number":2,
    1983. "distance":661.541,
    1984. "sign":6,
    1985. "exited":true,
    1986. "turn_angle":-3.15,
    1987. "interval":[
    1988. 263,
    1989. 276
    1990. ],
    1991. "text":"在环岛内,使用2出口出环岛,进入R14-Drochia",
    1992. "time":52258,
    1993. "street_name":"R14-Drochia"
    1994. },
    1995. {
    1996. "exit_number":2,
    1997. "distance":17547.506,
    1998. "sign":6,
    1999. "exited":true,
    2000. "turn_angle":-4.17,
    2001. "interval":[
    2002. 276,
    2003. 343
    2004. ],
    2005. "text":"在环岛内,使用2出口出环岛,进入R14-Drochia",
    2006. "time":879379,
    2007. "street_name":"R14-Drochia"
    2008. },
    2009. {
    2010. "ref":"G33",
    2011. "distance":12232.362,
    2012. "sign":2,
    2013. "interval":[
    2014. 343,
    2015. 405
    2016. ],
    2017. "text":"右转 到 Zgurița-Mărculești",
    2018. "time":733940,
    2019. "street_name":"Zgurița-Mărculești"
    2020. },
    2021. {
    2022. "ref":"L99",
    2023. "distance":10406.531,
    2024. "sign":-7,
    2025. "interval":[
    2026. 405,
    2027. 446
    2028. ],
    2029. "text":"保持左行 到 G35-Regina Maria-Bulboci",
    2030. "time":915826,
    2031. "street_name":"G35-Regina Maria-Bulboci"
    2032. },
    2033. {
    2034. "ref":"G36",
    2035. "distance":1970.766,
    2036. "sign":2,
    2037. "interval":[
    2038. 446,
    2039. 464
    2040. ],
    2041. "text":"右转 到 Strada Calea Sorocii",
    2042. "time":127793,
    2043. "street_name":"Strada Calea Sorocii"
    2044. },
    2045. {
    2046. "distance":0,
    2047. "sign":4,
    2048. "last_heading":190.9954810068599,
    2049. "interval":[
    2050. 464,
    2051. 464
    2052. ],
    2053. "text":"终点到达",
    2054. "time":0,
    2055. "street_name":""
    2056. }
    2057. ],
    2058. "legs":[
    2059. ],
    2060. "details":{
    2061. },
    2062. "ascend":0,
    2063. "descend":0,
    2064. "snapped_waypoints":{
    2065. "type":"LineString",
    2066. "coordinates":[
    2067. [
    2068. 27.342371,
    2069. 47.916198
    2070. ],
    2071. [
    2072. 28.230058,
    2073. 48.038736
    2074. ]
    2075. ]
    2076. }
    2077. }
    2078. ]
    2079. }

    API相关文档地址

    https://github.com/graphhopper/graphhopper/blob/5.x/docs/index.md
    如下,该页面可看到相关API文档以及响应的Maven依赖
    image.png

    4.Graphhopper代码解析

    从哪里决定加载什么OSM数据

  3. Class:com.graphhopper.GraphHopper

  4. Method:init
  5. Lines:416~445

image.png

加载所有权重的网状数据

  1. Class:com.graphhopper.routing.subnetwork.PrepareRoutingSubnetworks
  2. Method:doWork
  3. Lines:84~169