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