基于安卓操作系統(tǒng)的地圖標(biāo)繪方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及地圖標(biāo)繪領(lǐng)域,特別是涉及一種基于Android(安卓)操作系統(tǒng)的地圖 標(biāo)繪方法及系統(tǒng)。
【背景技術(shù)】
[0002] 上世紀(jì)90年代中后期以來,無線網(wǎng)絡(luò)通信技術(shù)及互聯(lián)網(wǎng)技術(shù)得到了飛速發(fā)展,促 使移動通信設(shè)備功能的不斷增強、越來越智能化。人們急切要求走出固定網(wǎng)絡(luò)、有線互聯(lián)的 束縛,業(yè)務(wù)應(yīng)用的可移動、可隨時隨地接入等特性越來越受到重視。隨著移動互聯(lián)的廣泛應(yīng) 用,在移動設(shè)備上查看地圖、進行地圖標(biāo)繪已成為地圖標(biāo)繪技術(shù)發(fā)展的必然趨勢。
[0003] 在Windows平臺上,目前已經(jīng)有很多成型的地圖標(biāo)繪工具包、開發(fā)包,例如超圖動 態(tài)指揮標(biāo)繪開發(fā)軟件(.NET版)(SuperMap DGO.NET)是基于.NET開發(fā)語言實現(xiàn),并配合 SuperMap Objects.NET6R產(chǎn)品使用的圖形開發(fā)工具包,主要用于在Windows平臺上快速 開發(fā)、定制面向行業(yè)領(lǐng)域的C/S架構(gòu)的二三維應(yīng)用系統(tǒng),提供面向特定行業(yè)的符號模型。而 在移動設(shè)備上,目前還沒有成型的地圖標(biāo)繪技術(shù)。由于Android操作系統(tǒng)底層繪圖機制與 Windows不同,Windows上的地圖標(biāo)繪工具無法直接應(yīng)用到Android平臺上。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決的技術(shù)問題是提供一種基于安卓操作系統(tǒng)的地圖標(biāo)繪方法及系統(tǒng), 用以解決現(xiàn)有技術(shù)在Android操作系統(tǒng)沒有成型的地圖標(biāo)繪技術(shù)的問題。
[0005] 為解決上述技術(shù)問題,本發(fā)明提供一種基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,所述 方法包括以下步驟:
[0006] 基本圖元繪制,所述基本圖元包括線段、折線、圓、圓弧、橢圓和文字,圖元屬性包 括顏色、填充樣式和線型;
[0007] 規(guī)則標(biāo)號繪制,以遞歸的方式分別繪制組成所述標(biāo)號的所有圖元;
[0008] 非規(guī)則標(biāo)號繪制,所述非規(guī)則標(biāo)號包括閉曲線、開曲線、法線、箭頭、填充;
[0009] 標(biāo)號控制,通過移動標(biāo)號控制點對標(biāo)號進行平移、縮放和旋轉(zhuǎn)、形狀變換。
[0010] 進一步,所述基本圖元繪制的過程具體包括:
[0011] 根據(jù)決定基本圖元形狀的操作數(shù)計算基本圖元的上下左右邊界;
[0012] 根據(jù)所述操作數(shù)計算繪圖軌跡,并將繪圖軌跡存儲到安卓繪圖接口提供的 android,graphics.Path類中;
[0013] 在繪圖方法中根據(jù)所述圖元屬性創(chuàng)建畫筆,并將繪圖軌跡繪制到畫布上。
[0014] 進一步,所述操作數(shù)和圖元屬性在數(shù)據(jù)庫中的存儲結(jié)構(gòu)如下表:
[0015]
【主權(quán)項】
1. 一種基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,所述方法包括以下步驟: 基本圖元繪制,所述基本圖元包括線段、折線、圓、圓弧、橢圓和文字,圖元屬性包括顏 色、填充樣式和線型; 規(guī)則標(biāo)號繪制,以遞歸的方式分別繪制組成所述標(biāo)號的所有圖元; 非規(guī)則標(biāo)號繪制,所述非規(guī)則標(biāo)號包括閉曲線、開曲線、法線、箭頭、填充; 標(biāo)號控制,通過移動標(biāo)號控制點對標(biāo)號進行平移、縮放和旋轉(zhuǎn)、形狀變換。
2. 如權(quán)利要求1所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,所述基本圖 元繪制的過程具體包括: 根據(jù)決定基本圖元形狀的操作數(shù)計算基本圖元的上下左右邊界; 根據(jù)所述操作數(shù)計算繪圖軌跡,并將繪圖軌跡存儲到安卓繪圖接口提供的android, graphics. Path 類中; 在繪圖方法中根據(jù)所述圖元屬性創(chuàng)建畫筆,并將繪圖軌跡繪制到畫布上。
3. 如權(quán)利要求2所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,所述操作數(shù) 和圖元屬性在數(shù)據(jù)庫中的存儲結(jié)構(gòu)如下表:
4. 如權(quán)利要求1所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,所述規(guī)則標(biāo) 號繪制的過程包括: 當(dāng)所述規(guī)則標(biāo)號由多個子圖元構(gòu)成時,分別遞歸調(diào)用子圖元的繪圖方法; 當(dāng)所述規(guī)則標(biāo)號是基本圖元時,進行基本圖元繪制。
5. 如權(quán)利要求1所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,所述非規(guī)則 標(biāo)號繪制具體為: 利用B樣條函數(shù)、曲線等間距分割算法、求曲線上某點法線斜率算法、箭頭畫法和/或 閉域內(nèi)填充平行線段算法對非規(guī)則標(biāo)號進行繪制。
6. 如權(quán)利要求1所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,所述規(guī)則標(biāo) 號的控制點包括平移控制點、縮放控制點和旋轉(zhuǎn)控制點;所述非規(guī)則標(biāo)號的控制點包括平 移控制點、縮放控制點、旋轉(zhuǎn)控制點、形狀控制點和定位點。
7. 如權(quán)利要求6所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,所述標(biāo)號控 制的過程包括: 通過安卓系統(tǒng)提供的OnTouchDown回調(diào)函數(shù)捕獲屏幕上的觸摸事件,并記錄事件發(fā)生 的屏幕坐標(biāo); 觸摸動作發(fā)生后,調(diào)用Marking類的hitTest方法遍歷標(biāo)號的所有控制點,當(dāng)存在某個 控制點,使得觸屏位置在所述控制點的有效區(qū)域內(nèi)時,通過回調(diào)函數(shù)返回所述控制點; 在監(jiān)聽器的回調(diào)函數(shù)中緩存當(dāng)前選中的控制點對象; 通過安卓系統(tǒng)提供的OnTouchMove回調(diào)函數(shù)捕獲屏幕滑動事件,記錄滑動事件發(fā)生位 置的屏幕坐標(biāo); 調(diào)用控制點的moveTo方法將屏幕滑動事件傳遞給當(dāng)前選中的控制點對象; 所述控制點對象將屏幕滑動事件傳遞給標(biāo)號對象; 標(biāo)號對象接收到控制點移動事件后,根據(jù)被移動控制點的類型對本標(biāo)號進行平移、縮 放、旋轉(zhuǎn)和/或形狀變換操作,并將操作后的標(biāo)號重新繪制到畫布上。
8. 如權(quán)利要求7所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,其特征在于,通過安卓繪 圖接口提供的android graphics. Region類的contains方法判斷觸屏位置是否在控制點 有效區(qū)域內(nèi)。
9. 一種基于安卓操作系統(tǒng)的地圖標(biāo)繪系統(tǒng),其特征在于,所述系統(tǒng)包括基本圖元繪制 模塊、規(guī)則標(biāo)號繪制模塊、非規(guī)則標(biāo)號繪制模塊和標(biāo)號控制模塊; 所述基本圖元繪制模塊由繼承至AbstractDrawItem基類的繪圖類組成,用于繪制線 段、折線、圓、圓弧、橢圓和文字; 所述規(guī)則標(biāo)號繪制模塊統(tǒng)一封裝在Marking類中,在Marking類中采用組合模式將各 個圖元組合成完整的規(guī)則標(biāo)號,并提供修改標(biāo)號屬性的接口; 所述非規(guī)則標(biāo)號繪制模塊由繼承至AbstractIrregularMark基類的繪圖類組成,用于 提供非規(guī)則標(biāo)號的繪制算法; 所述標(biāo)號控制模塊由繼承至AbstractAdjustHandle基類的控制類組成,用于旋轉(zhuǎn)、平 移、縮放控制點繪制和觸控事件監(jiān)聽。
10. 如權(quán)利要求9所述的基于安卓操作系統(tǒng)的地圖標(biāo)繪系統(tǒng),其特征在于,所述修改標(biāo) 號屬性的接口包括放大倍率接口、控制點接口、位置坐標(biāo)接口、標(biāo)簽接口、旋轉(zhuǎn)角度接口。
【專利摘要】本發(fā)明公開了一種基于安卓操作系統(tǒng)的地圖標(biāo)繪方法,包括:基本圖元繪制,基本圖元包括線段、折線、圓、圓弧、橢圓和文字,圖元屬性包括顏色、填充樣式和線型;規(guī)則標(biāo)號繪制,以遞歸的方式分別繪制組成標(biāo)號的所有圖元;非規(guī)則標(biāo)號繪制,非規(guī)則標(biāo)號包括閉曲線、開曲線、法線、箭頭、填充;標(biāo)號控制,通過移動標(biāo)號控制點對標(biāo)號進行平移、縮放和旋轉(zhuǎn)、形狀變換。本發(fā)明還公開了一種基于安卓操作系統(tǒng)的地圖標(biāo)繪系統(tǒng)。采用本發(fā)明,開發(fā)人員無須關(guān)心安卓操作系統(tǒng)底層繪圖機制就可以方便、高效地在安卓移動終端上進行地圖標(biāo)繪系統(tǒng)開發(fā),不僅節(jié)約了開發(fā)成本,也降低了地圖與地圖標(biāo)繪之間的耦合度,提高了軟件的可維護性。
【IPC分類】G06F9-44
【公開號】CN104536743
【申請?zhí)枴緾N201410802652
【發(fā)明人】劉偉, 雷鳴, 張鵬飛, 其他發(fā)明人請求不公開姓名
【申請人】中國電子科技集團公司第十五研究所
【公開日】2015年4月22日
【申請日】2014年12月19日