日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于Leaflet和GraphHopper实现离线路径规划

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Leaflet和GraphHopper实现离线路径规划 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求分析:

? ? ? ?首先關于地圖功能都是基于開源框架Leaflet進行開發,現在要在斷網的情況下實現路徑規劃。這里面其實包含了兩個問題:

1.路網數據必須是離線的;

2.必須有離線的路徑規劃后臺服務。

開發過程:

? ? ? ?剛開始把GraphHopper源碼Git下來的時候,看了看代碼我是懵逼的。其實如果只是用他的離線接口的話,沒有必要去看他的源代碼,只要找到必要的readme.md文檔可以了。他這個項目上有好多個md文檔,從這個文檔跳到那個,很容易失去重點。下面給出我閱讀的順序。

? ? ? ? 1.先把他給的例子跑起來看看效果,文檔地址:https://github.com/graphhopper/graphhopper/blob/master/docs/web/quickstart.md? ?怎么跑里面寫的已經很詳細了。

起來之后是這樣的。這里還有個問題,如果你的數據過大,可能會等的時間過長或者內存溢出,正常現象,可以在命令里面加上-Xmx2g -Xms2g,比如我用的是中國路網:java -Xmx2g -Xms2g -Dgraphhopper.datareader.file=china-latest.osm.pbf -jar *.jar server config-example.yml

? ? ? ?2.看完例子你應該有點想法了,接下來說說怎么用他提供的Java API,參考文檔:https://github.com/graphhopper/graphhopper/blob/master/docs/core/routing.md? ? 用Idea新建一個Maven項目,選那個maven-archetype-quickstart就行,

然后在pom.xml里面加上兩個依賴:

<dependency><groupId>com.graphhopper</groupId><artifactId>graphhopper-reader-osm</artifactId><version>0.11.0</version></dependency><dependency><groupId>com.graphhopper</groupId><artifactId>graphhopper-core</artifactId><version>0.11.0</version></dependency>

再然后把文檔里的代碼拷到你的java文件,該改的地方改一改,路網數據也拷到項目里來。下面是我的代碼:

import com.graphhopper.GHRequest; import com.graphhopper.GHResponse; import com.graphhopper.GraphHopper; import com.graphhopper.PathWrapper; import com.graphhopper.reader.osm.GraphHopperOSM; import com.graphhopper.routing.util.EncodingManager; import com.graphhopper.util.GPXEntry; import com.graphhopper.util.Instruction; import com.graphhopper.util.InstructionList; import com.graphhopper.util.PointList;import java.util.List; import java.util.Locale; import java.util.Map;/*** Hello world!**/ public class App {public static void main( String[] args ){// create one GraphHopper instanceGraphHopper hopper = new GraphHopperOSM().forServer();hopper.setDataReaderFile("berlin-latest.osm.pbf");// where to store graphhopper files?hopper.setGraphHopperLocation("resources");hopper.setEncodingManager(new EncodingManager("car"));// now this can take minutes if it imports or a few seconds for loading// of course this is dependent on the area you importhopper.importOrLoad();// simple configuration of the request object, see the GraphHopperServlet classs for more possibilities.GHRequest req = new GHRequest(52.526457, 13.380146, 52.499504,13.426495).setWeighting("fastest").setVehicle("car").setLocale(Locale.CHINA);GHResponse rsp = hopper.route(req);// first check for errorsif(rsp.hasErrors()) {// handle them!// rsp.getErrors()return;}// use the best path, see the GHResponse class for more possibilities.PathWrapper path = rsp.getBest();// points, distance in meters and time in millis of the full pathPointList pointList = path.getPoints();double distance = path.getDistance();long timeInMs = path.getTime();System.out.println(pointList);InstructionList il = path.getInstructions();// iterate over every turn instructionfor(Instruction instruction : il) {instruction.getDistance();//System.out.println(instruction.getDistance());}// or get the jsonList<Map<String, Object>> iList = il.createJson();// or get the result as gpx entries:List<GPXEntry> list = il.createGPXList();System.out.println(iList);} }

? ? ? ?到現在,你想要的數據基本上都可以拿到了,接下來你可以把他寫成一個后臺服務,在前臺調用。但是,上面的這段代碼只提供一個起點和終點的路徑規劃,想要再加上中間點或者有更多需求的話,可以多看看他們官網或者github上的代碼。

? ? ? ?其實,這里有個簡單方法,在第一步的時候,就已經把服務啟動了,那個就相當于一個遠程服務,只不過是跑在本機上。我們只要在前臺把url拼好,直接通過AJAX就可以進行請求。如何搭建離線路徑規劃服務以及前臺如何請求等詳細內容請見下篇。

https://blog.csdn.net/wml00000/article/details/84108694

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的基于Leaflet和GraphHopper实现离线路径规划的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 综合在线播放 | www国产精品 | 国产高清在线视频 | 欧美一极片 | 久久叉 | 青青草成人av | 日本在线播放 | 天堂无乱码| 国产女在线 | japanese国产打屁股网站 | 日本久久视频 | 亚洲欧洲日韩综合 | 麻豆一级片 | 伊人9 | 色二区 | 一区二区在线影院 | 日韩高清免费观看 | 看国产黄色片 | 男女拍拍拍 | 精品无人国产偷自产在线 | 国产亚洲女人久久久久毛片 | 国产极品视频在线观看 | 叼嘿视频在线免费观看 | 深夜福利1000 | 久久久精品在线观看 | 日本理伦片午夜理伦片 | 国产精品久久久久久免费观看 | 国产精品免费无遮挡无码永久视频 | videos另类灌满极品另类 | jzjzz成人免费视频 | 亚洲黄色免费 | 医生强烈淫药h调教小说视频 | 欧美性色a | 一边摸一边做爽的视频17国产 | 8x8x最新网址 | 99er这里只有精品 | 国产成人愉拍精品久久 | av在线免费观看网站 | 涩涩天堂 | 久操网站 | 最新一区二区三区 | 欧美日韩另类一区 | 亚洲图片一区二区三区 | 黄色片hd | 欧美黑人性生活 | 日韩国产亚洲欧美 | 日韩欧美精品一区二区 | wwwxxxx国产 | 女同性做受全过程动图 | 看污片网站 | 2022天天操 | 奇米影视网 | 精品一区二区在线看 | av首页在线 | 欧美日韩久久久久久 | 狠狠躁日日躁 | 亚洲精品久久久乳夜夜欧美 | 亚洲白浆 | 亚洲国产精品狼友在线观看 | 少妇一区二区三区四区 | 亚洲欧美强伦一区二区 | 新国产视频 | 亚洲在线一区二区三区 | 精品伦精品一区二区三区视频密桃 | 亚洲精品91天天久久人人 | 波多野结衣中文字幕一区二区 | 6699嫩草久久久精品影院 | 麻豆自拍偷拍 | 91欧美成人| 老版水浒传83版免费播放 | 老司机午夜福利视频 | 波多野结衣电车痴汉 | 亚洲一区二区久久久 | 亚洲成人一区在线观看 | 成人不卡在线 | 久久88| 69影院在线观看 | 国产三级视频在线播放 | 韩国美女一区二区 | 贵族女沦为官妓h呻吟 | 亚洲视频一二区 | 午夜亚洲成人 | 国产理论视频在线观看 | 日韩中文视频 | 日韩一级在线观看视频 | 免费国产91 | 亚洲av成人无码久久精品 | 国产av一区二区三区传媒 | 亚洲人色| 日韩精品一区二区亚洲av性色 | 在线成人小视频 | 男女午夜爽爽 | 精品视频在线一区二区 | 日韩欧美一区二区三区久久婷婷 | 樱花草涩涩www在线播放 | 久草网视频 | 天天插天天摸 | 免费观看黄色网址 | 日本一二三区视频在线 |