專利名稱:基于形狀保真的地圖坐標轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電子地圖領(lǐng)域,特別是涉及一種導(dǎo)航電子地圖數(shù)據(jù)格式轉(zhuǎn)換過程。
背景技術(shù):
導(dǎo)航電子地圖數(shù)據(jù)格式轉(zhuǎn)換過程中,經(jīng)常需要將高精度的坐標系統(tǒng)向低精度的坐標系統(tǒng) 轉(zhuǎn)換。通常的坐標轉(zhuǎn)換方法是對坐標進行比例變換后,做四舍五入或直接截斷處理。由于舍 入誤差引起的LINK (路段)角度變化,常出現(xiàn)道路形狀失真和LINK反轉(zhuǎn)等問題。給導(dǎo)航系 統(tǒng)的地圖匹配和語音引導(dǎo)造成麻煩,同時影響導(dǎo)航系統(tǒng)的地圖顯示效果。
相關(guān)名詞解釋
1. MESH (網(wǎng)孔)
導(dǎo)航系統(tǒng)為了方便管理和査詢地圖數(shù)據(jù),通常按一定的地理坐標范圍,將地圖數(shù)據(jù)分幅 存儲。這樣的一個地理坐標范圍稱為一個MESH,每個MESH按地理位置和范圍大小,分配一 個唯一標識,稱為MESHCODE (網(wǎng)孔編號)。本發(fā)明所基于的坐標格式都是用整數(shù)表示的相對 于MESH左下角偏移的MESH內(nèi)正規(guī)化坐標,是一種相對坐標,且所有坐標均為整數(shù)。
2. NODE (結(jié)點)
導(dǎo)航地圖中用于表示道路連通網(wǎng)絡(luò),虛擬出來的節(jié)點對象??梢越频睦斫鉃楝F(xiàn)實道路 的一個路口。在MESH邊界上的NODE稱為邊界NODE,邊界NODE用于關(guān)聯(lián)不同MESH的道路數(shù) 據(jù)的接續(xù)關(guān)系。本發(fā)明認為,邊界NODE接續(xù)且只接續(xù)兩條不同MESH的LINK。
3丄工NK (路段)
導(dǎo)航地圖中用于表示NODE與NODE之間通路的曲線型對象,由兩個NODE和若干形狀點組 成??梢越频睦斫鉃楝F(xiàn)實道路連接兩個路口的一段道路。
4. 形點壓縮
為了在道路形狀和數(shù)據(jù)容量之間取得一個平衡,需要用形點壓縮算法去除不必要的形狀 點?,F(xiàn)在常用的形點壓縮算法有道格拉斯形點壓縮算法和距離限差形點壓縮算法。
5. LINK反轉(zhuǎn)
由于坐標系統(tǒng)差異和轉(zhuǎn)換方法誤差,造成目標數(shù)據(jù)的道路相位關(guān)系與原始數(shù)據(jù)相比發(fā)生 重疊或逆轉(zhuǎn)問題。如圖1所示,左圖為原始數(shù)據(jù);中圖為按直接截斷方式轉(zhuǎn)換得到的目標數(shù) 據(jù),發(fā)生了LINK反轉(zhuǎn)。中圖目標數(shù)據(jù)中L1和L2出現(xiàn)了逆轉(zhuǎn),L3和L4出現(xiàn)了重疊。
發(fā)明內(nèi)容
本發(fā)明所要解決的問題是提供一種基于形狀保真的地圖坐標轉(zhuǎn)換方法,使用該方法在 導(dǎo)航電子地圖坐標系統(tǒng)轉(zhuǎn)換,特別是高精度坐標系統(tǒng)向低精度坐標系統(tǒng)轉(zhuǎn)換的過程中,能在
避免產(chǎn)生LINK反轉(zhuǎn)問題的基礎(chǔ)上,最大限度地減小道路網(wǎng)絡(luò)的形狀失真。
本發(fā)明所采用的技術(shù)方案的步驟包括
1) 坐標換算,即建立一個高精度的虛擬坐標系統(tǒng),使原始坐標系和目標坐標系在該坐標 系下同時可見;
2) 坐標移動,即在保持道路網(wǎng)形狀的基礎(chǔ)上,將所有坐標從原始坐標系移動到目標坐標
系;
3) 坐標正規(guī)化,即通過坐標縮放,將虛擬坐標系統(tǒng)轉(zhuǎn)換為目標坐標系統(tǒng);
4) 形點壓縮,即在保持道路基本形狀和不引起新的LINK反轉(zhuǎn)的基礎(chǔ)上,去掉不必要的 形狀點。
5) LINK反轉(zhuǎn)處理,即通過移動目標坐標,解決既存的LINK反轉(zhuǎn)問題。 本發(fā)明的優(yōu)點是當(dāng)原始坐標系統(tǒng)精度高于目標坐標系統(tǒng)或兩個坐標系統(tǒng)不成比例時,
可以避免產(chǎn)生LINK反轉(zhuǎn)問題,最大限度地保持道路網(wǎng)的整體形狀。
圖1是本發(fā)明和現(xiàn)有技術(shù)在避免產(chǎn)生LINK反轉(zhuǎn)問題上的對比例子。
圖2是必須恢復(fù)被道格拉斯形點壓縮算法刪除掉的必要形狀點的例子。
圖3是必須處理LINK反轉(zhuǎn)的例子。
圖4是實施流程圖。
圖5是實際效果對比圖。
具體實施例方式
如圖4所示,本發(fā)明的實現(xiàn)方式,在開始之后包括以下步驟-
1) 坐標換算
坐標換算的目的是在原始坐標基礎(chǔ)上乘以一定的系數(shù),得到一個高精度的虛擬坐標系, 使原始坐標系和目標坐標系的網(wǎng)格線都可以在該虛擬坐標系下找到對應(yīng)的坐標,這樣坐標移 動時只需要將原始坐標移動到附近的最合適的目標坐標,不存在舍入誤差問題。這是坐標移 動和坐標正規(guī)化的必要準備。
系數(shù)的確定方法如下
將虛擬坐標系的坐標系大小定義為原始坐標系大小和目標坐標系大小的最小公倍數(shù)原始
坐標系統(tǒng)寬長比(X方向大小為長度,Y方向大小為寬度)以及目標坐標系統(tǒng)長寬比的乘積。 比如原始坐標系的MESH大小為2750乘以2250 (寬長比為9:11),目標坐標系的MESH大 小為2047乘以2047(長寬比為1:1),則虛擬坐標系的MESH大小需要定義為2750*2047*9乘 以2250*2047*11。將原始坐標系換算為虛擬坐標系時,只需要對坐標(x, y)進行(2047*9*x, 2047*11* )換算即可。
2) 坐標移動坐標移動的目的是在虛擬坐標系下,根據(jù)周圍接續(xù)的所有LINK的形狀,在保持道路網(wǎng)形 狀的基礎(chǔ)上,將所有坐標從原始坐標系的網(wǎng)格移動到最合適的目標坐標系的網(wǎng)格上。 根據(jù)坐標類型的不同,坐標移動分為以下兩個步驟分別進行
a) 邊界NODE坐標移動
由于道路數(shù)據(jù)一般是海量數(shù)據(jù),所以從設(shè)計上就不能考慮將數(shù)據(jù)一次性讀取到內(nèi)存來處 理,而必須設(shè)計為按MESH分批處理。
但是,這樣就必然產(chǎn)生一個問題如何保證不在同一個批次處理的相鄰MESH的相同邊界 NODE坐標在處理后也是一致的?我們的做法是對邊界NODE坐標采用以下規(guī)則處理
由于邊界NODE都是只接續(xù)了兩條L頂K的簡單NODE,且坐標也只能在同一個邊界上移動, 所以只需要保證移動前后邊界NODE坐標的大小關(guān)系不發(fā)生改變,就能保證與邊界NODE接續(xù) 的LINK不會發(fā)生LINK反轉(zhuǎn)問題;另外,只要保證同一個邊界上的NODE的處理順序是一定的, 就能保證相鄰MESH的同一個邊界上的NODE處理后的坐標也是一致的,從而不會發(fā)生跨MESH 的NODE坐標不一致的問題??傊?,該步驟就是對所有的邊界NODE以MESH和坐標為順序,依 次移動到距離最近的目標坐標系的邊界坐標上。
具體做法是對在本批次處理的所有邊界NODE按MESH CODE、邊界方向、坐標大小排序依 次處理。對一個邊界NODE坐標進行處理時,先根據(jù)該NODE的當(dāng)前坐標計算出距離最近的合 法目標坐標,得到該NODE的坐標偏移值,如果當(dāng)前坐標和目標坐標之間還有其他NODE,則 將這些NODE也做相同偏移值的移動操作。這樣,就將問題僅僅局限在MESH內(nèi),不用考慮全 局一致性問題,而且成功避免了邊界上的LINK反轉(zhuǎn)問題。
如圖1所示,左圖為原始數(shù)據(jù),中圖為按直接截斷方式轉(zhuǎn)換得到的目標數(shù)據(jù),右圖為通; 過本方法轉(zhuǎn)換得到的目標數(shù)據(jù)。L3和L4的下端NODE均為邊界NODE,坐標移動方法按照上面 的步驟進行。與中圖相比,由于原始數(shù)據(jù)中L3下端NODE X坐標小于L4下端NODE X坐標, 因此目標數(shù)據(jù)里面也必須保證這一點,因此L4的下端N0DE被移動到了最合適的位置,從而 成功的避免了邊界上的LINK重疊的反轉(zhuǎn)問題。
b) MESH內(nèi)NODE及形狀點坐標移動
MESH內(nèi)坐標的移動處理方法是保持LINK形狀的關(guān)鍵。
MESH內(nèi)的所有的坐標可以分為NODE坐標和形狀點坐標兩種,兩者在保持LINK形狀上的 地位是一樣的。唯一的區(qū)別是NODE是LINK的骨架,無論進行何種操作,該坐標都不允許被 刪除,而形狀點坐標在必要的情況下,是允許被刪除或添加的。
有了上面的認識,就可以將形狀點也當(dāng)作NODE坐標來看待,那么,問題就可以轉(zhuǎn)化為對 一個由若干節(jié)點和連接節(jié)點與節(jié)點的無向邊組成的無向網(wǎng)絡(luò)的所有節(jié)點進行形狀保真移動的 問題。因此,對每個坐標進行移動時,可以按照移動到不同目標位置后該節(jié)點上接續(xù)的所有 邊的角度變化平均值從小到大進行排序,來評估各個目標位置對道路形狀的改變的大小。
每個坐標原則上都有4個目標位置可以移動,按照上面的方法確定各個目標位置的優(yōu)先 順序后,再按順序找出一個不會產(chǎn)生LINK反轉(zhuǎn)的位置(如果都會產(chǎn)生LINK反轉(zhuǎn)問題,直接 選取第一個目標位置)作為該坐標的最終位置,就可以實現(xiàn)所有的坐標移動了??傊摬襟E就是對所有MESH的內(nèi)部NODE和形狀點坐標,在不引起不必要的LINK反轉(zhuǎn) 問題的基礎(chǔ)上,移動到使連接在該坐標上的所有線段角度變化的平均值最小的目標坐標上。
由于坐標移動過程中同時考慮了道路形變和LINK反轉(zhuǎn)問題,目標數(shù)據(jù)在兼顧道路形狀的 同時,可以避免最常見的LINK反轉(zhuǎn)問題。
如圖1所示,左圖為原始數(shù)據(jù),中圖為按直接截斷方式轉(zhuǎn)換得到的目標數(shù)據(jù),右圖為按 照本方法得到的目標數(shù)據(jù)。右圖中Ll, L2的所有坐標按照上述方法移動。其中Ll的上端NODE 的移動過程如下對L1的上端NODE的四個可選目標位置按對LINK形狀改變的大小排序,依 次為"右上","右下","左上","左下"(參考左圖),而形狀改變最小的"右上"位置正好 也不會產(chǎn)生LINK反轉(zhuǎn),因此移動L1的上端N0DE到"右上"位置。與中圖相比,通過以上方 法為Ll的上端NODE找到了一個既能保持LINK形狀又不產(chǎn)生LINK反轉(zhuǎn)問題的最佳的位置, 從而成功避免了 LINK反轉(zhuǎn)問題,并且保證了形狀變化最小。
3) 坐標正規(guī)化
坐標正規(guī)化的目的是對在虛擬坐標系下移動后的坐標進行比例縮放,將虛擬坐標系轉(zhuǎn)換 為目標坐標系。如在步驟l)中所舉例子的情況下,這里只需要對所有坐標(x, y)進行 (x/(2750*9), y/(2250*1 l))換算。
由于進行過步驟2)的處理后,所有的坐標己經(jīng)在目標網(wǎng)格線上,進行縮放操作都將是 整除運算,這里將不存在舍入誤差引起的LINK角度變化問題。
4) 形點壓縮
普通的形點壓縮算法的目的是在保持LINK基本形狀的基礎(chǔ)上,盡量刪除不必要的形狀 點,從而達到削減數(shù)據(jù)容量的目的。由于刪除形點操作會引起LINK角度變化,就可能產(chǎn)生新 的LINK反轉(zhuǎn)問題。因此,這里需要在普通形點壓縮算法的基礎(chǔ)上進行改進,如果發(fā)現(xiàn)產(chǎn)生了 新的LIM反轉(zhuǎn)問題,需要保留引起反轉(zhuǎn)問題的形狀點。本發(fā)明采用改進的道格拉斯形點壓縮 算法,即a)利用道格拉斯形點壓縮算法去掉不必要的形狀點;b)判斷起始NODE處是否因形 點壓縮產(chǎn)生LINK反轉(zhuǎn),若是,則恢復(fù)從起始NODE開始的第二個形狀點;c)判斷終止NODE處 是否因形點壓縮產(chǎn)生LINK反轉(zhuǎn),若是,則恢復(fù)從終止NODE開始的第二個形狀點。
如圖2所示,左圖為經(jīng)過步驟3)處理后的圖形,中圖為經(jīng)過道格拉斯形點壓縮算法處 理后的圖形,右圖為經(jīng)過本步驟處理后的圖形。由于經(jīng)過道格拉斯形點壓縮算法處理后,Ll 的中間形狀點Pl被刪除,這樣就導(dǎo)致了 Ll和L2發(fā)生LINK反轉(zhuǎn),因此Pl不能被刪除,所以, 經(jīng)過本步驟處理后,Pl被恢復(fù)。
5) LiNK反轉(zhuǎn)處理
由于步驟2)中已經(jīng)在允許的條件下考慮了避免產(chǎn)生LINK反轉(zhuǎn)問題,所以在這里需要處 理的只是少數(shù)的形狀比較特殊的情況。
如圖3所示,左圖為原始數(shù)據(jù),中圖為坐標移動后的數(shù)據(jù),右圖為經(jīng)過LINK反轉(zhuǎn)處理后 的目標數(shù)據(jù)。由于L2無論往哪里移動,都會發(fā)生LINK反轉(zhuǎn)問題,因此需要在目標坐標系中 再次移動,以解決既存的LINK反轉(zhuǎn)問題。
如圖3中圖所示,L2和L3發(fā)生L1NK反轉(zhuǎn),由于L2較短,移動較小的距離就可以得到更大的角度變化值,因此優(yōu)先考慮移動L2。這里由于LINK反轉(zhuǎn)問題發(fā)生在下端NODE處,所 以移動從下端NODE開始的第二個坐標點(即L2的上端N0DE)。由于只有將L2往逆時針方向 旋轉(zhuǎn)才能有效的解決此處的LINK反轉(zhuǎn)問題,所以將L2以下端NODE為圓心進行逆時針旋轉(zhuǎn)依 次探測可行的解決方案(在被移動坐標的移動位移允許的情況下。本方案實現(xiàn)時,最多允許 目標坐標被移動2個坐標單位),發(fā)現(xiàn)將L2的上端點往上移動一個單位就可以解決此處的LINK 反轉(zhuǎn)問題,因此最終解決LINK反轉(zhuǎn)問題后的圖形如圖3右圖所示。
6)檢查是否還有未處理數(shù)據(jù)。若為"是",轉(zhuǎn)至步驟l);若為"否"則結(jié)束。 如圖5所示,左圖為原始數(shù)據(jù),中圖為通過本方法轉(zhuǎn)換出來的目標數(shù)據(jù),右圖為通過四 舍五入方式轉(zhuǎn)換出來的目標數(shù)據(jù)??梢钥闯觯景l(fā)明在保持道路網(wǎng)的形狀上有相當(dāng)明顯的效 果。
權(quán)利要求
1.一種基于形狀保真的地圖坐標轉(zhuǎn)換方法,其特征在于其步驟包括1)坐標換算,即建立一個高精度的虛擬坐標系統(tǒng),使原始坐標系和目標坐標系在該坐標系下同時可見;2)坐標移動,即在保持道路網(wǎng)形狀的基礎(chǔ)上,將所有坐標從原始坐標系移動到目標坐標系;3)坐標正規(guī)化,即通過坐標縮放,將虛擬坐標系統(tǒng)轉(zhuǎn)換為目標坐標系統(tǒng);4)形點壓縮,即在保持道路基本形狀和不引起新的LINK反轉(zhuǎn)的基礎(chǔ)上,去掉不必要的形狀點。5)LINK反轉(zhuǎn)處理,即通過移動目標坐標,解決既存的LINK反轉(zhuǎn)問題。
2. 如權(quán)利要求O所述的轉(zhuǎn)換方法,其特征在于,步驟l)具體包括11) 根據(jù)原始坐標系統(tǒng)大小M,目標坐標系統(tǒng)大小N,確定虛擬坐標系統(tǒng)的大小為M和N 的最小公倍數(shù)與原始坐標系統(tǒng)寬長比以及目標坐標系統(tǒng)長寬比的乘積;12) 將原始坐標系統(tǒng)中的所有坐標進行比例變換,換算為虛擬坐標系統(tǒng)下的坐標。
3. 如權(quán)利要求O所述的轉(zhuǎn)換方法,其特征在于,步驟2)具體包括21) 移動所有的邊界NODE坐標,即對所有的邊界NODE以MESH和坐標為順序,依次移動 到距離最近的目標坐標系的邊界坐標上;22) 移動所有的MESH內(nèi)部坐標,即對所有MESH的內(nèi)部NODE和形狀點坐標,在不引起不 必要的LINK反轉(zhuǎn)問題的基礎(chǔ)上,移動到使連接在該坐標上的所有線段角度變化的平均值最小 的目標坐標上。
4. 如權(quán)利要求1所述的轉(zhuǎn)換方法,其特征在于,步驟4)采用改進的道格拉斯形點壓縮算法,即41) 利用道格拉斯形點壓縮算法去掉不必要的形狀點;42) 判斷起始NODE處是否因形點壓縮產(chǎn)生LINK反轉(zhuǎn),若是,則恢復(fù)從起始NODE開始的 第二個形狀點;43) 判斷終止NODE處是否因形點壓縮產(chǎn)生LINK反轉(zhuǎn),若是,則恢復(fù)從終止NODE開始的 第二個形狀點。
全文摘要
本發(fā)明提供一種基于形狀保真的地圖坐標轉(zhuǎn)換方法,其步驟包括1)坐標換算,即建立一個高精度的虛擬坐標系統(tǒng),使原始坐標系和目標坐標系在該坐標系下同時可見;2)坐標移動,即在保持道路網(wǎng)形狀的基礎(chǔ)上,將所有坐標從原始坐標系移動到目標坐標系;3)坐標正規(guī)化,即通過坐標縮放,將虛擬坐標系統(tǒng)轉(zhuǎn)換為目標坐標系統(tǒng);4)形點壓縮,即在保持道路基本形狀和不引起新的LINK反轉(zhuǎn)的基礎(chǔ)上,去掉不必要的形狀點;5)LINK反轉(zhuǎn)處理,即通過移動目標坐標,解決既存的LINK反轉(zhuǎn)問題。通過該方法,在地圖坐標系統(tǒng)轉(zhuǎn)換過程中,可以在避免產(chǎn)生LINK反轉(zhuǎn)問題的基礎(chǔ)上,最大限度的保持道路網(wǎng)的形狀。
文檔編號G01C21/28GK101586963SQ20091006298
公開日2009年11月25日 申請日期2009年7月3日 優(yōu)先權(quán)日2009年7月3日
發(fā)明者穎 馮, 丹 夏, 宋向勃, 戴澤軍, 朱敦堯, 鵬 王 申請人:光庭導(dǎo)航數(shù)據(jù)(武漢)有限公司