一種路徑相似度比較方法
【技術領域】
[0001] 本發明屬于路徑相似度對比技術領域。
【背景技術】
[0002] 隨著城市人口增加,上班族上下班出行的難度和體驗越來越差,人們上下班拼車 出行(多人出行,由于出行線路類似,可以乘坐同一輛轎車)的需求越來越大。
[0003] 隨著我國經濟的飛速發展,人們的生活水平不斷提高,人們在旅游方面的支出顯 著增長,選擇自駕出游的人越來越多。人們期望在旅途中有人陪伴,同時隨著低碳環保觀念 深入人心,越來越多的人渴望拼車出行來降低成本、便利交通、節省能源、保護環境、結交好 友,一舉多得。
[0004] 另外伴隨著我國信息化水平的不斷提高,人們習慣并且需要從互聯網上獲取各種 信息,包括本專利涉及到的拼車信息。谷歌地圖、百度地圖等一些WebGIS技術迅猛發展,并 提供了免費的API服務供開發者使用,給拼車類應用的實現提供了便利。
[0005] 市場上天天用車、嘀嗒拼車、51拼車等拼車類應用如雨后春筍般涌現出來。用戶可 以在此類應用中發布自己出行的起點和終點,系統會自動比較無車用戶與有車用戶線路相 似度,當相似度較高時會自動提醒用戶選擇拼車出行。這就對相似度算法有了較高的要求。
【發明內容】
[0006] 有鑒于此,本發明提供了一種路徑相似度比較方法,該方法計算簡單、效率高。
[0007] 為了達到上述目的,本發明的技術方案包括如下步驟:
[0008] 步驟1、獲取相比較的二者的路徑信息,建立駕駛路線A和B。
[0009] 步驟2、建立A外接矩形A',和B的外界矩形B',確定A'和B'的左上角點間的距 離L1和右下角點間的距離L2,若LJP 1^均小于設定閾值,進入步驟3 ;否則,輸出相似度為 0,本方法結束。
[0010] 步驟3、計算A和B之間重復的路徑長度S,首其中A的總路程長度為S1A的總路 程長度為S2,在相似度C為
[0011] 進一步地,步驟3中計算A和B之間重復的路徑長度S的方法具體為:在根據所建 立的駕駛路線A和B,分別獲取A和B的折線圖A。和B。;從折線圖A。上獲取每個轉折點,共 N個,保存至數組心中,從B。上獲取每個轉折點,共M個,保存至數組R 8中,計算數組R &中 任意兩個相鄰轉折點組成的線段和數組Rb中任意兩個相鄰轉折點所組成的線段之間的重 合距離并疊加,獲得整個駕駛路線A和B的重合距離。
[0012] 進一步地,計算數組Ra中任意兩個相鄰轉折點組成的線段和數組Rb中任意兩個相 鄰轉折點所組成的線段之間的重合距離的方法具體為:數組Ra中任意兩個相鄰轉折點組成 的線段為(RA[i],RA[i+l]),其中RA[i]為數組R a中的第i個轉折點,i = 1~N-I ;數組1?沖 任意兩個相鄰轉折點所組成的線段為(RB[j], RB[j+l]),j = 1~M-I ;計算(RA[i], RA[i+l]) 和(RB[j],RB[j+l])之間的重合距離并疊加獲得總的重合距離。
[0013] 具體步驟如下:
[0014] 步驟 301、判斷(RA[i],RA[i+l])和(RB[j],R B[j+l])是否共線:
[0015] 判斷RB[j]是否在線段(RA[i],RA[i+l])上:判斷R A[i]、RB[j]組成的向量與 RA[i+l]、RB[j]組成的向量是否平行,若平行則RB[j]是在線段(R A[i],RA[i+l])上。
[0016] 判斷RB[j+l]是否在線段(RA[i],RA[i+l])上:判斷R A[i]、RB[j+l]組成的向量與 RA[i+l]、RB[j+l]組成的向量是否平行,若平行則RB[j+l]是在線段(R A[i],RA[i+l])上。
[0017] 若 RB[j]和 RB[j+l]均在線段(RA[i],RA[i+l])上;則(R A[i],RA[i+l])和 (RB[j],RB[j+l])共線。
[0018] 若(RA[i],RA[i+l])和(RB[j],RB[j+l])共線,則進入步驟 302,否則 (RA[i],RA[i+l])和(RB[j],RB[j+l])之間的重合距離為 〇。
[0019] 步驟 302、找到共線線段(RA[i],RA[i+l])和(RB[j],R B[j+l]),以點 RA[i]、 RA[i+l]、RB[j]以及RB[j+l]的坐標值為比較基準,設R A[i]和心[1+1]之間較小的為P、較 大的為Q,設RB[j]和RB[j+l]之間較小的為R、較大的為S ;然后以P、R二者中較大的為U, 以Q、S二者中較小的為V。
[0020] 判斷若U> = V則重合距離為0,否則重合距離為UV兩點之間距離。
[0021] 進一步地,步驟302中以點RA[i]、RA[i+l]、R B[j]以及RB[j+l]的煒度值為比較基 準,若煒度值相同則以經度值為比較基準。
[0022] 進一步地,路徑信息包括路徑的起點、終點以及中途必經點;根據路徑信息,駕駛 路線為連接起點、終點和中途必經點的路線。
[0023] 有益效果:
[0024] 本發明提供的路徑相似度比較算法,能夠在合理的時間內給出多種輸入形式的路 徑相似度,不僅提供了粗略比較算法來減少計算量,而且有多處參數可以按照實際需求進 行調整。
【附圖說明】
[0025] 圖1為計算路徑相似度的方法流程圖;
[0026] 圖2為駕駛路線的外包矩形圖。
【具體實施方式】
[0027] 下面結合附圖并舉實施例,對本發明進行詳細描述。
[0028] 實施例1、本實施例中路徑相似度比較方法,如圖1所示,包括如下步驟:
[0029] 步驟1、獲取相比較的二者的路徑信息,建立駕駛路線A和B ;本實施例中,路徑信 息包括路徑的起點、終點以及中途必經點;根據路徑信息,駕駛路線為連接起點、終點和中 途必經點的路線。
[0030] 可以接收多種形式的輸入。若輸入格式為出發地、目的地及沿途經過地點的文字 描述,則將其通過谷歌、高德、百度等WebGIS提供商提供的Geocoder服務,將出發地、目 的地、途經點轉換為地理位置坐標信息。再使用WebGIS提供的路線服務(如高德地圖的 Driving服務)獲取連接出發地、途經點、目的地的推薦駕駛路徑信息。
[0031] 步驟2、在得到待比較路線的路徑必經點信息后,可以先對兩條路徑進行粗略比 較,具體方法為:建立A外接矩形A',如圖2所示,同時類似建立B的外界矩形B',確定A' 和B'的左上角點間的距離L1和右下角點間的距離L 2,若M5P L 2均小于設定閾值,進入步 驟3 ;否則,輸出相似度為0,本方法結束,這樣能夠減少計算量,節約計算時間。此處的設 定閾值在實施過程中可作為輸入參數,取值越小,得到的精確度越高,兩條路徑越不容易相 似;取值越大,越容易判定兩條路徑為相似。
[0032] 步驟3、計算A和B之間重復的路徑長度S,首其中A的總路程長度為S1A的總路 程長度為S2,在相似度C為
[0033] 特殊的,當兩路徑完全重合時,C取值為1 ;當兩路徑完全不重合時,C取值為0。此 處路徑長度可以根據路徑上各點經煒度坐標計算出,已有很多較為成熟的根據兩點經煒度 坐標計算距離的方法。
[0034] 本實施例中,步驟3中計算A和B之間重復的路徑長度S的方法具體為:得到兩條 推薦駕駛線路后,將兩條線路分別轉換為折線圖形式。在路徑上每隔一定距離取一個點,此 處間隔距離可以作為輸入參數,距離越短,相似度比較精度越高,因為取得的折線更接近于 推薦駕駛路線,將取得的點用線段依次連接,即可得到路徑的折線圖形式,分別保存兩條路 徑上取得的必經點的經煒度坐標,供下一步使用。
[0035] 在根據所建立的駕駛路線A和B,分別獲取A和B的折線圖A。和B。;從折線圖A。 上獲取每個轉折點,共N個,保存至