新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式電子地圖數據分塊組織研究

        嵌入式電子地圖數據分塊組織研究

        作者: 時間:2012-12-14 來源:網絡 收藏

        可以看出,P2和P3的點之間的連線消失了。因為,在網格00的數據里并沒有P3點的信息,Line在網格00中顯示的只是P1到P2的連接線。同樣,如果顯示網格10的數據,而不顯示網格00的數據和網格11的數據,在網格10中,Line只有一個點P3,而P3到P2、P4的連接線消失了。此時需要添加節點并且斷開原來的線段重建拓撲來處理連接線消失的情況。斷開線段p2p3,并求得p2p3與網格00、網格10邊界的交點p,此時p2p屬于網格00中,pp3屬于網格10。如圖4所示。實際上,路段是不規則的,可能出現如圖5所示的情況。

        本文引用地址:http://www.104case.com/article/148187.htm

        e.JPG


        從圖5可以看出,一條線從網格射出后,然后再次穿過該網格。并與網格有4個交點。在重建拓撲關系的時候,兩次穿過格網中的線要被分成兩部分重新建立拓撲,因為線是由按照一定順序的節點以及節點之間的連線組成。當一條線從一網格射出時,如果不斷開該線重建拓撲,則會出現如圖6所示的情況,出現了拓撲錯誤。圖6中的線段pp1實際上是不存在的。

        2 拓撲重構算法
        有時路網結構很復雜,一條線可能多次穿過同一網格,即一條線與網格的交點可能不只4個,如果不重建拓撲,可能會造成電子地圖畫面更加混亂。所以在每次求得線與網格邊界交點的時候,判斷該線是否從網格中射出,如果線從網格中射出則斷開該線,并求得交點后重新建立拓撲關系。求得線與網格邊界交點的算法如下:
        (1)假設當前網格的編碼為mn。
        (2)如果線L上的一個節點P1屬于當前網格mn,判斷線L上p1的前一個節點P0是否屬于當前網格mn,如果p1不屬于當前網格mn則轉到(3);如果p0屬于當前網格mn,則轉到(4):如節點p0不屬于當前網格mn,如果p1在格網邊界轉到(4);如果p1不在網格邊界上則求P0和p1的連線與網格邊界的交點p,并把p的信息保存到網格mn中,轉到(4)。此時p節點屬于網格mn。
        (3)如果線L上的一個節點P1不屬于當前網格,判斷p1在線L上的前一個點P0是否屬于網格mn,如果p0不屬于網格mn,則轉到(4)。如果節點p0屬于當前網格mn,此時線L從網格mn射出,如果p0在網格邊界,轉到(4);如果p0不在網格邊界則求P0和P1的連線與網格mn邊界的交點p,把線L斷開重建拓撲關系。并把p的信息保存到網格mn中,轉到(4)。此時節點p屬于網格mn。
        (4)如果線L上的點處理完畢則返回,否則繼續(2),直到線L上的所有點處理判斷完畢。
        流程圖如圖7所示。

        f.JPG



        3 數據分級組織
        導航系統在使用過程中,用戶的興趣點不同,會放大電子地圖查看某個區域更詳細的信息。把電子地圖數據分級適合地圖縮放功能的實現。假如電子地圖最初顯示的地圖為x級,放大一次就是顯示x+1級地圖,縮小一次就顯示x-1級地圖。
        如圖8所示,瀏覽x級地圖,假設x級地圖顯示m(m=4)塊格網的數據;此時地圖放大一級變成x+1級地圖,如果地圖放大了s倍(s=2),此時重新讀取地圖數據,只需讀取m/s2塊網格即可。相反,如果地圖縮小一級,x-1級地圖需讀取的網格數為m×s2(16塊)。

        g.JPG


        不同級別的地圖數據顯示的內容不同。在縮放最小一級地圖時,只顯示地圖的區界和背景。假如把地圖放大到某一級別,此時電子地圖顯示地區名稱、高速公路以及名稱、鐵路等地圖信息;再次把該電子地圖放大一級則顯示當前城市的主要地區名稱和主要路段。放縮的級別劃分根據不同的地理情況處理。可以認為,高級別的地圖是對低級別地圖的補充。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 精河县| 西畴县| 卢氏县| 屯门区| 巩义市| 石城县| 绥江县| 娄烦县| 明水县| 平和县| 诸暨市| 白山市| 京山县| 抚顺县| 如皋市| 罗甸县| 枞阳县| 汶川县| 凌源市| 拉萨市| 彩票| 莱阳市| 西安市| 寿阳县| 将乐县| 云安县| 吴堡县| 北宁市| 九台市| 永州市| 乐至县| 犍为县| 南木林县| 静安区| 朔州市| 神木县| 大荔县| 嘉鱼县| 瑞昌市| 长阳| 西昌市|