專利名稱:電子地圖線狀流動注記的配置方法及裝置的制作方法
技術領域:
本發(fā)明涉及計算機制圖技術領域,特別涉及一種電子地圖中線狀流動注記 的配置方法及裝置。
背景技術:
地圖注記是電子地圖中的重要組成部分,如何快速、合理、清晰地布局地 圖要素的注記,是計算機制圖領域長期探索的關鍵技術。在現(xiàn)有技術中,雖然
也提供一些電子地圖配置注記的方案,如中國專利申請?zhí)枮?9108249.2的專 利文獻揭露的地圖印刷所需高質(zhì)量彩色出版原圖制作工藝,但其主要集中在地 圖印刷時人工配制注記的方法,沒有涉及計算機自動化的方法;又如中國專 利申請?zhí)枮?00710168359.X揭露的一種計算機制圖中的面狀要素配置方法, 及申請?zhí)枮?00810066337.7的專利文獻所揭露的一種電子地圖興趣點注記方 法、系統(tǒng)及設備,都僅涉及地圖點狀和面狀要素的注記方法,而沒有線狀地圖 要素的快速注記方法。
在以往對于電子地圖線狀注記的研究中,主要有以求線段平行線為代表的 解方程法和矩形求交加權的搜索檢測方法,它們雖然都有可取之處,注記定位 也可比較準確,但無法滿足電子地圖動態(tài)實時顯示的需求。并存在以下問題-
(1) 在大數(shù)據(jù)量的數(shù)字化地圖中,上萬條弧段是常有的,對每條弧段的每 個節(jié)點進行多次三角函數(shù)運算來求線段的平行線在速度上沒有優(yōu)勢。
(2) 求出的平行線只是平移出去的節(jié)點的序列,而線段的節(jié)點大多數(shù)情況 下不是注記的點位。要求注記的點位還得解方程,如果要考慮線段一部分在屏 幕外的情況就需要裁剪,更增加了運算量。
(3) 搜索檢測法中計算機無法判斷哪些注記矩形有可能相交,要進行搜索, 即使建立索引,也無法保證索引塊內(nèi)的圖形元素足夠少。如果有100個注記要 檢測,每個注記有4個位置供選擇,則有4100種可能性,可能會帶來組合爆 炸問題。
發(fā)明內(nèi)容
發(fā)明所要解決的技術問題在于,提供一種電子地圖中線狀流動注記的配 置方法及裝置,主要時通過對河流、道路等線狀要素注記的快速、自動化配置, 實現(xiàn)地圖注記的完整和均勻分布顯示。
為達到上述目的,本發(fā)明提供的電子地圖線狀流動注記的配置方法,應用 于電子地圖系統(tǒng)中對線狀流動注記自動配置,其特征在于,包括
線狀要素掃描步驟,用于逐點掃描整條線在用戶顯示窗口內(nèi)可見部分的像 素,并統(tǒng)計出總像素個數(shù);
注記位置計算步驟,用于計算所述線狀要素注記點的位置,以根據(jù)需要注 記的文字的個數(shù),把每個字均勻分布在掃描線上;
注記調(diào)整步驟,用于當用戶進行地圖縮小、放大或漫游時,線狀流動注記 隨比例尺和在屏幕中的位置實時動態(tài)調(diào)整。
上述電子地圖線狀流動注記的配置方法,其特征在于,所述線狀要素掃描 步驟利用數(shù)值微分法對需要注記的線狀要素進行掃描,并在掃描過程中保存沿 線每個像素點的坐標。
上述電子地圖線狀流動注記的配置方法,其特征在于,所述線狀要素掃描 步驟中,還包括
一檢測步驟,用于檢測沿線的每個像素點是否落入屏幕中的線段可見區(qū), 并將落入屏幕中的線段可見區(qū)的像素點加入線段點序列中。
上述電子地圖線狀流動注記的配置方法,其特征在于,所述注記位置計算 步驟是通過將落入屏幕中可見區(qū)線段根據(jù)要注記的文字的個數(shù)進行等分,獲取 其中每個要注記的文字的坐標。
上述電子地圖線狀流動注記的配置方法,其特征在于,所述注記位置計算 步驟還進一步包括
一點序列順序調(diào)整步驟,用于在所述線狀要素數(shù)字化的順序與注記順序不 一致時,對所述點序列進行調(diào)整。
上述電子地圖線狀流動注記的配置方法,其特征在于,所述注記位置計算 步驟進一步包括
一檢測步驟,用于檢查所述屏幕中可見區(qū)線段能否注記下正常字體的注記 文字,如能則正常注記,如不能,則需要計算所需字體的大小,舍去小于設定像素的文字。
上述電子地圖線狀流動注記的配置方法,其特征在于,所述注記調(diào)整步驟 中,系統(tǒng)采用局部刷新機制,將地圖背景作為靜態(tài)步驟,將地圖線狀注記最為 動態(tài)部分實時刷新。
進一步的,本發(fā)明還提供了一種實現(xiàn)上述電子地圖線狀流動注記的配置方 法的裝置,應用于電子地圖系統(tǒng)中對線狀流動注記自動配置,其特征在于,包 括
線狀要素掃描模塊,用于逐點掃描整條線在用戶顯示窗口內(nèi)可見部分的像 素,并統(tǒng)計出總像素個數(shù);
注記位置計算模塊,用于計算所述線狀要素注記點的位置,以根據(jù)需要注 記的文字的個數(shù),把每個字均勻分布在掃描線上;
注記調(diào)整模塊,用于當用戶進行地圖縮小、放大或漫游時,線狀流動注記 隨比例尺和在屏幕中的位置實時動態(tài)調(diào)整。
上述電子地圖線狀流動注記的配置裝置,其特征在于, 所述線狀要素掃描模塊進一步包括
一檢測模塊,用于檢測沿線的每個像素點是否落入屏幕中的線段可見區(qū), 并將落入屏幕中的線段可見區(qū)的像素點加入線段點序列中。
上述電子地圖線狀流動注記的配置裝置,其特征在于,所述注記位置計算模 塊進一步包括
一點序列順序調(diào)整模塊,用于在所述線狀要素數(shù)字化的順序與注記順序不 一致時,對所述點序列進行調(diào)整;
一檢測模塊,用于檢査所述屏幕中可見區(qū)線段能否注記下正常字體的注記 文字,如能,則正常注記,如不能,則需要計算所需字體的大小,舍去小于設 定像素的文字。
與現(xiàn)有技術相比,本發(fā)明提供的電子地圖中線狀流動注記的配置方法及裝 置,為解決注記的準確顯示與速度的矛盾,采用線段掃描方法來快速求得注記 的點位,在線狀注記上采用沿線均勻注記的方式,實現(xiàn)了電子地圖線狀地物注 記的快速流動配置,使道路、河流等注記動態(tài)、均勻顯示在線狀要素的屏幕 可見部分,保持了地圖的完整和界面的整潔,達到了實用效果。
圖1為本發(fā)明電子地圖中線狀流動注記的配置方法的流程圖
圖2為本發(fā)明中數(shù)值微分直線掃描算法示意圖3為本發(fā)明中線狀要素與點序列坐標對應示意圖4為本發(fā)明中線狀流動注記定位示意圖5為本發(fā)明中地圖顯示和注記調(diào)整流程;
圖6為本發(fā)明電子地圖中線狀流動注記的配置裝置的示意框圖; 圖7 9為應用本發(fā)明系統(tǒng)運行的流動注記效果示意圖。
具體實施例方式
下面結合附圖對本發(fā)明進行詳細的描述,所提供的附圖和實施例只為進 一步說明本發(fā)明之目的、方案及功效,并非作為對本發(fā)明所附權利要求保護范 圍的限制。
圖1為本發(fā)明電子地圖中線狀流動注記的配置方法的流程圖,如圖1所示, 本發(fā)明的電子地圖線狀流動注記的配置方法,應用于電子地圖系統(tǒng)中對線狀流 動注記自動配置,該配置方法主要包括以下步驟
步驟S10:線狀要素掃描步驟,用于逐點掃描整條線在用戶顯示窗口內(nèi)可 見部分的像素,并統(tǒng)計出總像素個數(shù)。在該步驟中,利用數(shù)值微分法對需要注 記的線狀要素進行掃描,并在掃描過程中保存沿線每個像素點的坐標。
步驟S20:注記位置計算步驟,用于計算所述線狀要素注記點的位置,以 根據(jù)需要注記的文字的個數(shù),把每個字均勻分布在掃描線上。在該步驟中,是 通過將落入屏幕中可見區(qū)線段根據(jù)要注記的文字的個數(shù)進行等分,獲取其中每 個要注記的文字的坐標。
步驟S30:注記調(diào)整步驟,用于當用戶進行地圖縮小、放大或漫游時,線 狀流動注記隨比例尺和在屏幕中的位置實時動態(tài)調(diào)整。在該步驟中,系統(tǒng)采用 局部刷新機制,將地圖背景作為靜態(tài)步驟,將地圖線狀注記最為動態(tài)部分實時 刷新。
在上述所述線狀要素掃描步驟S10中,還進一步包括 一檢測步驟SIOI, 用于檢測沿線的每個像素點是否落入屏幕中的線段可見區(qū),并將落入屏幕中的 線段可見區(qū)的像素點加入線段點序列中。在上述注記位置計算步驟S20中,還進一步包括 一點序列順序調(diào)整步驟 S201,用于在所述線狀要素數(shù)字化的順序與注記順序不一致時,對所述點序列
進行調(diào)整。 一檢測步驟S202,用于檢査所述屏幕中可見區(qū)線段能否注記下正 常字體的注記文字,如能則正常注記,如不能,則需要計算所需字體的大小, 舍去小于設定像素的文字。
下面結合實施例對本發(fā)明方法做進一步描述
(1) 上述線狀要素掃描步驟利用數(shù)值微分法掃描一遍要注記的線狀要素,
掃描過程中保存沿線每個像素點的坐標,參考圖2,給出了數(shù)值微分直線掃描 算法示意該方法是通過對坐標x和y各增加一個小增量,計算下一步的x、 y值。最后得出組成直線的所有像素的坐標數(shù)組。 已知直線起點坐標(Xo, Y。)和終點坐標(X,, Y,)
先求出直線斜率k- Ay/ Ax其中,Ax:Y,-Yo, Ay-X,-X。,
當lk卜-l時,Yi+1 = Yi + kAx,因x遞增l個像素,Ax=l,所以Yw-Yi+k,并取四舍五入,點坐標為(Xj+1,Round(Yi + k))(如圖2中示意)
當閣> 1時,Xw = Xj + (1/k)Ay,因y遞增1個像素,Ay = 1 ,所以Xi+1 = Xi + l/k,并取四舍五入,點坐標為(Round(Xi + l/k),Yi+l)
對求出的點要進行檢測,只有落入屏幕中的點才能加入點序列中,也就是 說剪掉屏幕外不顯示的線段,注記的點位只與線段的可顯示區(qū)有關。這樣,當 用戶在漫游地圖時,隨時會檢測落入屏幕中的線段可見區(qū),實時調(diào)整注記位置, 并刷新屏幕,注記便呈現(xiàn)動態(tài)流動狀態(tài)。
由于數(shù)值微分法使用的是增量算法,所以掃描一遍線段的時間非常短,實 驗表明在500條總共20萬個節(jié)點的線段的情況下,調(diào)整注記的時間在1秒 鐘以下,人眼基本分辨不出延遲。
(2) 上述注記位置計算步驟主要用于計算線狀要素注記點位置 以上一步中求出的點序列為P[O...N]為例,則可知
落入屏幕中的線段長度為N,把線段m等分,則等分點的坐標為P[N/m *i],i= 1,2…m陽l
如圖3和圖4示意,要注記m個漢字,則把N個點分成m+l等分,第i 個字的坐標就可以方便的求得 Xi = P[N/(m+ 1) * i].xYi = P[N/(m+ l)*i〗.y
由于線狀要素數(shù)字化的順序并不一定與注記順序一致,所以點序列需要調(diào) 整順序。計算線段起始點和終止點間的斜率,設定|K| = I (P[N].y -P[O].y) / (P[N].x-P
.x)i,定義一個布爾值blnverse,初始為FALSE。
① IKI〉1為下行線,注記應從上往下注,但如果起始點在終止點的下方, 就把blnverse置為TRUE 。
② |K| <= 1為右行線,注記應從左往右注,但如果起始點在終止點的右方, 就把blnverse置為TRUE。
在顯示注記的文字時,可以檢測blnverse的值,如blnverse為FALSE, 則從第一到最后一個字順序顯示;如blnverse為TRUE,則從最后一個字到第 一個字倒著顯示。這樣就可以保證下行線注記從上往下注,右行線注記從左往 右注。
③ 檢查線段的可見長度是否能注記下正常字體的注記文字,如不能則求 出所需字體大小,小于5個像素的漢字因無法分辨可舍去。
選定注記字體,如FontWidth為指定注記字體的寬度 如N/(m + 1) >= FontWidth,注記使用指定FontWidth寬度的字體; 如5 <=N/(m+ l)<FontWidth,注記使用寬度為N/(m+ l)的字體; 如N/(m+l)〈5,線段可見區(qū)太短,無法注記;
3)注記調(diào)整步驟在地圖的放大、縮小、漫游等操作下,線狀注記隨比 例尺和在屏幕中的位置動態(tài)調(diào)整,并實時刷新,保持了地圖的整潔和注記的完 整。
在地圖實時刷新時,系統(tǒng)采用了局部刷新機制,地圖背景作為靜態(tài)部分, 將保持部分緩存,當?shù)貓D移動時,地圖可見部分已經(jīng)在計算機緩存中,可以直 接獲得而不用更新,屏幕邊緣的不可見部分由于地圖移動而需要顯示,則更新 生成地圖背景。這種方法使屏幕大部分區(qū)域可以直接來自緩存,不用重新生成, 可以大大縮短地圖刷新的時間。地圖線狀注記作為動態(tài)部分,需要實時刷新, 而地圖背景快速刷新的機制,為線狀注記的實時刷新提供了條件。如圖5所示, 隨著地圖屏幕的變化,注記將進行調(diào)整,觸發(fā)線狀要素的重新掃描和布局,顯 示流動注記的效果。
本發(fā)明還提供了一種實現(xiàn)上述方法的裝置,圖6示出了本發(fā)明電子地圖中線狀流動注記的配置裝置的示意框圖。
電子地圖線狀流動注記的配置方法的裝置10,應用于電子地圖系統(tǒng)中對 線狀流動注記自動配置,該裝置包括線狀要素掃描模塊101、注記位置計算 模塊102及注記調(diào)整模塊103,其中
線狀要素掃描模塊101,用于逐點掃描整條線在用戶顯示窗口內(nèi)可見部分
的像素,并統(tǒng)計出總像素個數(shù)。上述線狀要素掃描模塊101進一步包括 一檢
測模塊lll,用于檢測沿線的每個像素點是否落入屏幕中的線段可見區(qū),并將 落入屏幕中的線段可見區(qū)的像素點加入線段點序列中。
注記位置計算模塊102,用于計算所述線狀要素注記點的位置,以根據(jù)需 要注記的文字的個數(shù),把每個字均勻分布在掃描線上。上述注記位置計算模塊 102進一步包括 一點序列順序調(diào)整模塊121,用于在所述線狀要素數(shù)字化的 順序與注記順序不一致時,對所述點序列進行調(diào)整; 一檢測模塊122,用于檢
査所述屏幕中可見區(qū)線段能否注記下正常字體的注記文字,如能,則正常注記, 如不能,則需要計算所需字體的大小,舍去小于設定像素的文字。
注記調(diào)整模塊103,用于當用戶進行地圖縮小、放大或漫游時,線狀流動 注記隨比例尺和在屏幕中的位置實時動態(tài)調(diào)整。
本發(fā)明提供的電子地圖中線狀流動注記的配置方法及裝置,實現(xiàn)當用戶操 作電子地圖時,地圖中線狀要素的注記實時計算、布局和調(diào)整,達到線狀注記 沿線流動的效果。參考圖7 9,示出了應用本發(fā)明的電子地圖在放大前、放 大及漫游狀態(tài)下流動注記效果。圖7為放大前的地圖,顯示一級道路,在小比 例尺下只顯示主干路注記,次要道路注記不顯示,圖7為放大后的大比例尺圖, 級別低的道路開始逐級注記并逐級均勻顯示,顯示一級至四級道路。圖8與圖 9對比表明,地圖在漫游前后,兩幅圖的注記都隨時調(diào)整,始終位于線段可見 區(qū)內(nèi)均勻分布,不會出現(xiàn)注記不完整的情況。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,在不 背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作 出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權 利要求的保護范圍。
權利要求
1、一種電子地圖線狀流動注記的配置方法,應用于電子地圖系統(tǒng)中對線狀流動注記自動配置,其特征在于,包括線狀要素掃描步驟,用于逐點掃描整條線在用戶顯示窗口內(nèi)可見部分的像素,并統(tǒng)計出總像素個數(shù);注記位置計算步驟,用于計算所述線狀要素注記點的位置,以根據(jù)需要注記的文字的個數(shù),把每個字均勻分布在掃描線上;注記調(diào)整步驟,用于當用戶進行地圖縮小、放大或漫游時,線狀流動注記隨比例尺和在屏幕中的位置實時動態(tài)調(diào)整。
2、 根據(jù)權利要求1所述的電子地圖線狀流動注記的配置方法,其特征在 于,所述線狀要素掃描步驟利用數(shù)值微分法對需要注記的線狀要素進行掃描, 并在掃描過程中保存沿線每個像素點的坐標。
3、 根據(jù)權利要求1所述的電子地圖線狀流動注記的配置方法,其特征在 于,所述線狀要素掃描步驟中,還包括一檢測步驟,用于檢測沿線的每個像素點是否落入屏幕中的線段可見區(qū), 并將落入屏幕中的線段可見區(qū)的像素點加入線段點序列中。
4、 根據(jù)權利要求l所述的電子地圖線狀流動注記的配置方法,其特征在 于,所述注記位置計算步驟是通過將落入屏幕中可見區(qū)線段根據(jù)要注記的文字 的個數(shù)進行等分,獲取其中每個要注記的文字的坐標。
5、 根據(jù)權利要求1所述的電子地圖線狀流動注記的配置方法,其特征在 于,所述注記位置計算步驟還進一步包括一點序列順序調(diào)整步驟,用于在所述線狀要素數(shù)字化的順序與注記順序不 一致時,對所述點序列進行調(diào)整。
6、 根據(jù)權利要求1所述的電子地圖線狀流動注記的配置方法,其特征在于,所述注記位置計算步驟進一步包括一檢測步驟,用于檢查所述屏幕中可見區(qū)線段能否注記下正常字體的注記 文字,如能則正常注記,如不能,則需要計算所需字體的大小,舍去小于設定 像素的文字。
7、 根據(jù)權利要求1所述的電子地圖線狀流動注記的配置方法,其特征在于,所述注記調(diào)整步驟中,系統(tǒng)采用局部刷新機制,將地圖背景作為靜態(tài)步驟, 將地圖線狀注記最為動態(tài)部分實時刷新。
8、 一種實現(xiàn)上述權利要求1 7中任一項所述電子地圖線狀流動注記的配 置方法的裝置,應用于電子地圖系統(tǒng)中對線狀流動注記自動配置,其特征在于, 包括線狀要素掃描模塊,用于逐點掃描整條線在用戶顯示窗口內(nèi)可見部分的像 素,并統(tǒng)計出總像素個數(shù);注記位置計算模塊,用于計算所述線狀要素注記點的位置,以根據(jù)需要注 記的文字的個數(shù),把每個字均勻分布在掃描線上;注記調(diào)整模塊,用于當用戶進行地圖縮小、放大或漫游時,線狀流動注記 隨比例尺和在屏幕中的位置實時動態(tài)調(diào)整。
9、 根據(jù)權利要求8所述的電子地圖線狀流動注記的配置裝置,其特征在于,所述線狀要素掃描模塊進一步包括一檢測模塊,用于檢測沿線的每個像素點是否落入屏幕中的線段可見區(qū), 并將落入屏幕中的線段可見區(qū)的像素點加入線段點序列中。
10、根據(jù)權利要求8所述的電子地圖線狀流動注記的配置裝置,其特征在于,所述注記位置計算模塊進一步包括一點序列順序調(diào)整模塊,用于在所述線狀要素數(shù)字化的順序與注記順序不 一致時,對所述點序列進行調(diào)整;一檢測模塊,用于檢查所述屏幕中可見區(qū)線段能否注記下正常字體的注記 文字,如能,則正常注記,如不能,則需要計算所需字體的大小,舍去小于設 定像素的文字。
全文摘要
本發(fā)明公開了一種電子地圖線狀流動注記的配置方法及裝置,應用于電子地圖系統(tǒng)中對線狀流動注記自動配置,該配置方法包括線狀要素掃描步驟,用于逐點掃描整條線在用戶顯示窗口內(nèi)可見部分的像素,并統(tǒng)計出總像素個數(shù);注記位置計算步驟,用于計算所述線狀要素注記點的位置,以根據(jù)需要注記的文字的個數(shù),把每個字均勻分布在掃描線上;注記調(diào)整步驟,用于當用戶進行地圖縮小、放大或漫游時,線狀流動注記隨比例尺和在屏幕中的位置實時動態(tài)調(diào)整。
文檔編號G09B29/00GK101593455SQ200910151860
公開日2009年12月2日 申請日期2009年7月1日 優(yōu)先權日2008年10月23日
發(fā)明者余卓淵, 李洪省, 王英杰 申請人:中國科學院地理科學與資源研究所