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