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