趙立正 吳國春
【摘 ?要】地圖和通訊在人們的生活中有不可替代的作用,一款好的地圖APP應(yīng)不僅限于基礎(chǔ)地圖操作,還需增加便捷的通訊手段。本軟件在百度地圖的基礎(chǔ)上,實現(xiàn)了地圖的基本功能,如定位,搜索,導(dǎo)航等;使用環(huán)信即時通訊云SDK實現(xiàn)個人賬號登錄,用戶間即時通訊(文字/語音)的功能,并且可一鍵位置分享,路線規(guī)劃。同時軟件加入地址收藏功能,分享收藏點給好友。
【關(guān)鍵詞】地圖;即時通訊;手機(jī)軟件
1.系統(tǒng)特點
(1)個人賬號登錄功能。添加好友,好友之間可進(jìn)行文字聊天或語音通話,實現(xiàn)同時聊天和操作地圖;一鍵分享當(dāng)前位置,并且進(jìn)行路線規(guī)劃。
(2)地址收藏功能??蓪Φ刂穫渥⒚Q,分享地址給QQ、微信好友,也可一鍵規(guī)劃路線。
(3)基礎(chǔ)地圖功能。衛(wèi)星定位,衛(wèi)星地圖和3D地圖的切換,POI信息點的搜索,交通信息狀況的查看,兩地之間路線的導(dǎo)航(步行、騎行、駕車、綜合)。
2.設(shè)計方案
2.1需求分析
2.2概要設(shè)計
針對需求分析階段的功能需求,可將系統(tǒng)分為四個模塊,即主界面,登錄界面,收藏夾,路線規(guī)劃界面,每個界面所實現(xiàn)的基本功能如下圖所示:
主界面是用戶打開軟件首先看到的界面,該界面可實現(xiàn)一些基本的地圖操作及搜索功能。聊天功能則需先登錄賬號后才能使用,若沒有賬號可在用戶登錄界面注冊一個。
用戶登錄界面主要是實現(xiàn)本地用戶賬號信息管理,實現(xiàn)賬號的登錄、注冊和存儲;同時管理好友信息,添加/刪除好友,只有添加好友后才能進(jìn)行通訊;最后是聊天功能,聊天分為文字聊天和IP電話,并且用戶間的聊天記錄會存儲在云端,每次用戶打開聊天界面會自動加載之前的聊天記錄。
收藏夾界面則是對地圖上感興趣的點進(jìn)行收藏,通過長按屏幕,手機(jī)自動獲取觸點經(jīng)緯度,然后將經(jīng)緯度和用戶編輯的附加信息一并存儲于云端;同時用戶可分享自己的收藏點給好友;還可規(guī)劃從當(dāng)前位置到收藏點的路線。
路線規(guī)劃界面則是綜合的路線規(guī)劃功能,可設(shè)置起點終點,然后選擇步行,騎行,駕車,綜合等出行方式進(jìn)行路線規(guī)劃。
2.3詳細(xì)設(shè)計
2.3.1數(shù)據(jù)庫設(shè)計
(1)數(shù)據(jù)需求
①好友信息的錄入,包括好友id,當(dāng)前用戶id
②好友信息的刪除,包括好友id,當(dāng)前用戶id
(2)功能需求
①添加好友功能,將當(dāng)前用戶id和好友id作為一條記錄的兩個字段存儲于android機(jī)的數(shù)據(jù)庫中
②刪除好友功能,將當(dāng)前用戶id和好友id對應(yīng)的記錄從數(shù)據(jù)庫中刪除
根據(jù)需求分析的結(jié)果,抽象出實體及實體之間的關(guān)系,設(shè)計數(shù)據(jù)庫的概念模型即E-R模型如下圖所示:
2.3.2公共類設(shè)計
根據(jù)概要設(shè)計中劃分的模塊功能,將實現(xiàn)不同功能的代碼抽象封裝在不同的類內(nèi),以實現(xiàn)模塊獨立。為提高模塊的內(nèi)聚程度并降低模塊間的耦合程度,各模塊基本只使用本模塊內(nèi)的元素及其他模塊提供的接口來實現(xiàn)自己特定的功能,并將功能代碼封裝起來,向外提供函數(shù)接口。其他模塊無需關(guān)心功能是如何實現(xiàn)的,只需調(diào)用相應(yīng)函數(shù)即可。例如,在主界面MainActivity內(nèi)實現(xiàn)語音通話、路線規(guī)劃等功能,只需調(diào)用CallActivity類和RoutePlan類內(nèi)的相關(guān)函數(shù)即可,無需在MainActivity內(nèi)重新編寫相應(yīng)功能代碼,從而簡化程序,提高可讀性和可維護(hù)性。
2.4實現(xiàn)
本系統(tǒng)是基于百度地圖開放平臺和環(huán)信即時通訊云v3.0構(gòu)建起來的。
一些基礎(chǔ)地圖操作是通過調(diào)用百度地圖API實現(xiàn)的,如實時定位功能,需創(chuàng)建一個service并在其中新開一個線程,將定位功能放入線程之中,與主線程并行,從而實現(xiàn)實時效果;另一些復(fù)雜操作,則需對輸入輸出作相應(yīng)格式化處理,然后調(diào)用百度地圖的搜索引擎,如路線規(guī)劃,通過文本框或長按地圖上的點輸入起點/終點,將數(shù)據(jù)發(fā)送給百度地圖搜索引擎,然后將反饋的多個結(jié)果以復(fù)選框的方式呈現(xiàn)給用戶,當(dāng)用戶選擇中一個選項時,則將該選項所對應(yīng)的路線以覆蓋物的方式顯示在地圖上。
一些基礎(chǔ)的通訊功能是通過環(huán)信即時通信云v3.0實現(xiàn)的,如賬號信息和聊天記錄的存儲則是使用的環(huán)信云的云端數(shù)據(jù)庫,但好友信息則是存儲在本地數(shù)據(jù)庫中。文字通信和語音通信則是通過調(diào)用集成在環(huán)信云中的UDP/TCP協(xié)議實現(xiàn)的。
3.總結(jié)
本系統(tǒng)將聊天功能和地圖功能集成于一個界面內(nèi),改變了聊天界面和地圖界面之間來回切換的繁瑣操作。聊天功能分為文字聊天和語音聊天,同時加入賬號管理;地圖功能則包括基礎(chǔ)地圖功能(如定位,地圖模式切換等)和復(fù)雜地圖操作(如POI搜索,路線規(guī)劃等);同時該系統(tǒng)還加入點收藏功能,用戶可收藏自己的興趣點。本系統(tǒng)采用的圖標(biāo)通俗易懂,操作簡單,用戶可輕松掌握,從而節(jié)省用戶時間,提高工作效率。
作者簡介:
趙立正,男,1997.12,青島理工大學(xué)信息與控制工程學(xué)院
吳國春,男,1999.02,青島理工大學(xué)信息與控制工程學(xué)院
參考文獻(xiàn):
[1]傅由甲,等.Android移動網(wǎng)絡(luò)程序設(shè)計案例教程.北京:清華大學(xué)出版社.2019
[2]張海藩,等.軟件工程導(dǎo)論.北京:清華大學(xué)出版社.2017
(作者單位:青島理工大學(xué)信息與控制工程學(xué)院)