溫馨提示:沒有設(shè)置星標(biāo)的小伙伴可能會收不到文章的推送信息,歡迎各位新老朋友給【hello trans】加個星標(biāo),以便及時獲得最新推文,感謝支持。 本文主要是提供技術(shù)路線和思路,使用Python語言,通過高德API接口,來獲取路網(wǎng)實時的交通態(tài)勢。 (一)效果預(yù)覽 (二)準(zhǔn)備工作 (1)高德api key申請 進入高德開放平臺,地址為:https://lbs.amap.com/。當(dāng)然直接使用瀏覽器進行搜索【高德開放平臺】也可以快速進入。首先進入控制臺,然后點擊管理key。添加一個【web服務(wù)】的key即可。 個人用戶者,每天免費使用的key額度是有限的,以路徑規(guī)劃為例,每天免費調(diào)用量上限為5000。換言之,我們每次構(gòu)造的OD對不能超過5000個。如果想要調(diào)用更多的量可以向高德進行申請。 (2)范圍shp文件準(zhǔn)備 以arcgis為例,在arcgis中加載好高德的在線地圖,然后再右側(cè)目錄欄連接到我們的目錄(代碼所在的根目錄)。 然后在該目錄下新建一個shp文件。 名稱命名為【bounds】,要素選擇面,坐標(biāo)系選擇地理坐標(biāo)系WGS84。 然后,在左側(cè)圖層欄,選擇bounds圖層【開始編輯】。 在新彈出的編輯窗口選擇面,然后就可以繪制出范圍了。 最后停止停止編輯,保存即可,這一步arcgis的操作比較簡單,就不詳細展開。 (三)代碼演示 要使用路徑規(guī)劃API來獲取信息就需要提前構(gòu)造OD對,通過讀取邊界范圍的最大最小值來生成均勻的點。 構(gòu)造完OD,就需要使用路徑規(guī)劃API來獲取信息。詳細的url中的請求參數(shù)和返回的信息可以查看官方的開發(fā)者文檔。 利用python寫一個循環(huán),來獲取多個od路徑。主要思路如下: 這段代碼通過高德地圖API獲取每一對起點(Origin)和終點(Destination)之間的駕車路線信息,并處理請求結(jié)果,包括錯誤處理。具體步驟如下:
然后就是將url返回的信息按照我們的需求提取出來。 最后,可以對結(jié)果進行簡單的可視化: (四)圖形化小程序演示 為了方便使用,對進行了整合,寫了一個圖形界面的小工具。以下對該工具進行一個簡單的介紹: 這是主要界面,一共分為四個步驟,操作的演示視頻如下: (五)注意事項說明 (1)首先需要準(zhǔn)備邊界范圍,范圍不易過大,可使用Qgis或Acrgis構(gòu)建一個shp格式的邊界。因為高德key每天調(diào)用的額度是有限的,只有5000條。 (2)每次爬取可獲取當(dāng)前時刻下實時的交通狀態(tài),若需要爬取不同時刻的交通狀態(tài),需要手動進行多次爬取操作。 最終結(jié)果分別保存為shp、geojson和csv文件,其中csv文件包含以下道路信息: 第一列是道路的名稱,第二列是擁堵系數(shù),第三列是交通擁堵狀態(tài)。 (六)效果展示 可視化預(yù)覽的最終的效果如下: 這是工作日早上八點,案例片區(qū)的交通狀態(tài)。 然后,我分別爬取了周末和工作日早上七點到晚上七點的交通態(tài)勢,將每張圖片合并成gif格式,如下: ![]() 周末全天擁堵變化 ![]() 工作日全天擁堵變化 我們還可以利用csv中的擁堵系數(shù),進行全天交通態(tài)勢變化趨勢分析。 注意:該小工具無法一次性爬取全天的交通態(tài)勢變化情況,只能獲取當(dāng)前時刻下的路網(wǎng)交通態(tài)勢。 (七)較大范圍測試 以渝中區(qū)為例: 第一步:通過邊界范圍構(gòu)造OD對 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|