嵌入式電子地圖數(shù)據(jù)分塊組織研究
可以看出,P2和P3的點(diǎn)之間的連線消失了。因?yàn)椋诰W(wǎng)格00的數(shù)據(jù)里并沒有P3點(diǎn)的信息,Line在網(wǎng)格00中顯示的只是P1到P2的連接線。同樣,如果顯示網(wǎng)格10的數(shù)據(jù),而不顯示網(wǎng)格00的數(shù)據(jù)和網(wǎng)格11的數(shù)據(jù),在網(wǎng)格10中,Line只有一個(gè)點(diǎn)P3,而P3到P2、P4的連接線消失了。此時(shí)需要添加節(jié)點(diǎn)并且斷開原來的線段重建拓?fù)鋪硖幚磉B接線消失的情況。斷開線段p2p3,并求得p2p3與網(wǎng)格00、網(wǎng)格10邊界的交點(diǎn)p,此時(shí)p2p屬于網(wǎng)格00中,pp3屬于網(wǎng)格10。如圖4所示。實(shí)際上,路段是不規(guī)則的,可能出現(xiàn)如圖5所示的情況。本文引用地址:http://butianyuan.cn/article/148187.htm
從圖5可以看出,一條線從網(wǎng)格射出后,然后再次穿過該網(wǎng)格。并與網(wǎng)格有4個(gè)交點(diǎn)。在重建拓?fù)潢P(guān)系的時(shí)候,兩次穿過格網(wǎng)中的線要被分成兩部分重新建立拓?fù)洌驗(yàn)榫€是由按照一定順序的節(jié)點(diǎn)以及節(jié)點(diǎn)之間的連線組成。當(dāng)一條線從一網(wǎng)格射出時(shí),如果不斷開該線重建拓?fù)?,則會(huì)出現(xiàn)如圖6所示的情況,出現(xiàn)了拓?fù)溴e(cuò)誤。圖6中的線段pp1實(shí)際上是不存在的。
2 拓?fù)渲貥?gòu)算法
有時(shí)路網(wǎng)結(jié)構(gòu)很復(fù)雜,一條線可能多次穿過同一網(wǎng)格,即一條線與網(wǎng)格的交點(diǎn)可能不只4個(gè),如果不重建拓?fù)洌赡軙?huì)造成電子地圖畫面更加混亂。所以在每次求得線與網(wǎng)格邊界交點(diǎn)的時(shí)候,判斷該線是否從網(wǎng)格中射出,如果線從網(wǎng)格中射出則斷開該線,并求得交點(diǎn)后重新建立拓?fù)潢P(guān)系。求得線與網(wǎng)格邊界交點(diǎn)的算法如下:
(1)假設(shè)當(dāng)前網(wǎng)格的編碼為mn。
(2)如果線L上的一個(gè)節(jié)點(diǎn)P1屬于當(dāng)前網(wǎng)格mn,判斷線L上p1的前一個(gè)節(jié)點(diǎn)P0是否屬于當(dāng)前網(wǎng)格mn,如果p1不屬于當(dāng)前網(wǎng)格mn則轉(zhuǎn)到(3);如果p0屬于當(dāng)前網(wǎng)格mn,則轉(zhuǎn)到(4):如節(jié)點(diǎn)p0不屬于當(dāng)前網(wǎng)格mn,如果p1在格網(wǎng)邊界轉(zhuǎn)到(4);如果p1不在網(wǎng)格邊界上則求P0和p1的連線與網(wǎng)格邊界的交點(diǎn)p,并把p的信息保存到網(wǎng)格mn中,轉(zhuǎn)到(4)。此時(shí)p節(jié)點(diǎn)屬于網(wǎng)格mn。
(3)如果線L上的一個(gè)節(jié)點(diǎn)P1不屬于當(dāng)前網(wǎng)格,判斷p1在線L上的前一個(gè)點(diǎn)P0是否屬于網(wǎng)格mn,如果p0不屬于網(wǎng)格mn,則轉(zhuǎn)到(4)。如果節(jié)點(diǎn)p0屬于當(dāng)前網(wǎng)格mn,此時(shí)線L從網(wǎng)格mn射出,如果p0在網(wǎng)格邊界,轉(zhuǎn)到(4);如果p0不在網(wǎng)格邊界則求P0和P1的連線與網(wǎng)格mn邊界的交點(diǎn)p,把線L斷開重建拓?fù)潢P(guān)系。并把p的信息保存到網(wǎng)格mn中,轉(zhuǎn)到(4)。此時(shí)節(jié)點(diǎn)p屬于網(wǎng)格mn。
(4)如果線L上的點(diǎn)處理完畢則返回,否則繼續(xù)(2),直到線L上的所有點(diǎn)處理判斷完畢。
流程圖如圖7所示。
3 數(shù)據(jù)分級(jí)組織
導(dǎo)航系統(tǒng)在使用過程中,用戶的興趣點(diǎn)不同,會(huì)放大電子地圖查看某個(gè)區(qū)域更詳細(xì)的信息。把電子地圖數(shù)據(jù)分級(jí)適合地圖縮放功能的實(shí)現(xiàn)。假如電子地圖最初顯示的地圖為x級(jí),放大一次就是顯示x+1級(jí)地圖,縮小一次就顯示x-1級(jí)地圖。
如圖8所示,瀏覽x級(jí)地圖,假設(shè)x級(jí)地圖顯示m(m=4)塊格網(wǎng)的數(shù)據(jù);此時(shí)地圖放大一級(jí)變成x+1級(jí)地圖,如果地圖放大了s倍(s=2),此時(shí)重新讀取地圖數(shù)據(jù),只需讀取m/s2塊網(wǎng)格即可。相反,如果地圖縮小一級(jí),x-1級(jí)地圖需讀取的網(wǎng)格數(shù)為m×s2(16塊)。
不同級(jí)別的地圖數(shù)據(jù)顯示的內(nèi)容不同。在縮放最小一級(jí)地圖時(shí),只顯示地圖的區(qū)界和背景。假如把地圖放大到某一級(jí)別,此時(shí)電子地圖顯示地區(qū)名稱、高速公路以及名稱、鐵路等地圖信息;再次把該電子地圖放大一級(jí)則顯示當(dāng)前城市的主要地區(qū)名稱和主要路段。放縮的級(jí)別劃分根據(jù)不同的地理情況處理。可以認(rèn)為,高級(jí)別的地圖是對(duì)低級(jí)別地圖的補(bǔ)充。
評(píng)論