李鳳祥
(遼寧軌道交通職業(yè)學(xué)院,遼寧 沈陽 110023)
本應(yīng)用旨在幫助學(xué)生更好地熟悉校園環(huán)境,解決生活中遇到的問題。其主要功能為:通過對(duì)服務(wù)器發(fā)出請(qǐng)求,經(jīng)網(wǎng)絡(luò)連接在手機(jī)中加載出校園地圖,并顯示出當(dāng)前使用者的實(shí)時(shí)位置。通過對(duì)校園周邊熱點(diǎn)信息數(shù)據(jù)的處理存入本地?cái)?shù)據(jù)庫中,之后通過本地?cái)?shù)據(jù)庫提取需要的數(shù)據(jù),整理再顯示到界面中。本應(yīng)用的具體功能如下:
(1)在應(yīng)用中加載地圖。高德是中國(guó)領(lǐng)先的數(shù)字地圖內(nèi)容、導(dǎo)航和位置服務(wù)解決方案提供商。高德地圖是國(guó)內(nèi)一流的免費(fèi)地圖導(dǎo)航產(chǎn)品,也是基于位置的生活服務(wù)功能最全面、信息最豐富的手機(jī)地圖,由國(guó)內(nèi)最大的電子地圖、導(dǎo)航和LBS服務(wù)解決方案提供商高德軟件提供。高德地圖Android SDK是一套地圖開發(fā)調(diào)用接口,為開發(fā)者提供免費(fèi)的地圖解決方案,供開發(fā)者在自己的Android應(yīng)用中加入地圖相關(guān)的功能。
(2)實(shí)現(xiàn)使用者在地圖中實(shí)時(shí)位置。通過高德LBS開放平臺(tái)提供的地圖相關(guān)功能,調(diào)用“我的位置”這一功能,從而實(shí)現(xiàn)在地圖上顯示用戶位置,也可以自定義定位圖標(biāo)。
(3)將校園熱點(diǎn)加載到地圖中。將校園熱點(diǎn)存放在數(shù)據(jù)庫中,通過查詢ID調(diào)用數(shù)據(jù)庫信息,從而加載校園熱點(diǎn)。
本系統(tǒng)功能設(shè)計(jì)目標(biāo)如下:
(1)加載地圖:通過點(diǎn)擊手機(jī)桌面“校園熱點(diǎn)”圖標(biāo),運(yùn)行本系統(tǒng),通過網(wǎng)絡(luò)連接,加載出遼寧軌道交通職業(yè)學(xué)院校園地圖。
(2)定位:通過GPS技術(shù),確定用戶自身的校園位置,并進(jìn)行實(shí)時(shí)監(jiān)測(cè)。
(3)加載校園周邊熱點(diǎn)[1]:根據(jù)用戶的不同需要,可分類加載出不同的校園熱點(diǎn)。如:宿舍樓、綜合樓、教務(wù)處、行政辦公樓、食堂等。
(4)加載校園熱點(diǎn)信息:通過點(diǎn)擊熱點(diǎn)圖標(biāo),加載出對(duì)應(yīng)信息供用戶參考。
(1)安裝Java jdk,最新版本,下載成功后,安裝。
(2)安裝Eclipse。Eclipse是一款開源的集成開發(fā)環(huán)境,它能夠極大的提高開發(fā)應(yīng)用效率,最重要的是,它提供了豐富的Android相關(guān)插件。
(3)安裝ADT插件。
高德地圖[2]Android SDK是一套地圖開發(fā)調(diào)用接口,供開發(fā)者在自己的Android應(yīng)用中加入地圖相關(guān)的功能。開發(fā)者可以輕松地開發(fā)出地圖顯示與操作、興趣點(diǎn)搜索、地理編碼、離線地圖等功能。
創(chuàng)建頁面如圖1所示。
圖1 創(chuàng)建頁面
本應(yīng)用是使用高德地圖來實(shí)現(xiàn)地圖的加載。在高德LBS平臺(tái),為開發(fā)者提供免費(fèi)的地圖解決方案。包括:地圖顯示、定位、關(guān)鍵字搜索等功能。首先,在平臺(tái)申請(qǐng)賬號(hào),下載地圖支持文件并安裝到系統(tǒng)中。然后,在Android Manifest文件中注冊(cè)開發(fā)者賬號(hào),之后在布局文件中劃定地圖位置并引用外部類,最后在Main Activity中指定遼寧軌道交通職業(yè)學(xué)院為地圖中心,完成對(duì)地圖的初始化。
首先設(shè)置定位圖標(biāo)的樣式,在地圖中加入定位圖層,并開啟定位[3]。
private void setUpMap(){
MyLocationStyle myLocationStyle = new MyLocationStyle();
myLocationStyle.myLocationIcon(BitmapDescriptorFactory
.fromResource(R.drawable.location_marker));
myLocationStyle.strokeColor(Color.TRANSPARENT);
myLocationStyle.radiusFillColor(Color.argb(0, 0, 0, 0)); myLocationStyle.strokeWidth(0.0f);
amap.setMyLocationStyle(myLocationStyle);
amap.setLocationSource(this);
amap.getUiSettings().setMyLocationButtonEnabled(true); amap.setMyLocationEnabled(true);
}
首先定義熱點(diǎn)坐標(biāo)常量,以便使用,之后自定義熱點(diǎn)圖標(biāo),構(gòu)建模型。然后,在主程序中將調(diào)查的熱點(diǎn)詳情寫入SQLite數(shù)據(jù)庫。
用戶通過熱點(diǎn)分類,選擇想加載的熱點(diǎn),系統(tǒng)首先通過判斷“choice”的值,然后在數(shù)據(jù)庫中調(diào)用相應(yīng)的圖標(biāo)信息,加載到地圖中。
public void onClick(View v){
switch(v.getId()){
case R.id.tv_choice1:
amap.clear();
amap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f)
.position(Constants.F1).title(“1號(hào)樓”).icon(marker_1)
.draggable(true));
amap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f)
.position(Constants.F2).title(“2號(hào)樓”).icon(marker_2)
.draggable(true));
......}
在Android系統(tǒng)中,用戶所看到的和能夠操作的界面都是一個(gè)個(gè)獨(dú)立的Activity。在本校園熱點(diǎn)手機(jī)應(yīng)用中,用戶通過點(diǎn)擊熱點(diǎn)詳情,就能通過查詢熱點(diǎn)的id,從數(shù)據(jù)庫中調(diào)用數(shù)據(jù),從而跳轉(zhuǎn)到熱點(diǎn)信息界面中。
public void onInfoWindowClick(Marker marker){
Intent.intent=new.Intent(GroundOverlayActivity.this,CampusDetail.class);
String str=marker.getTitle();
if(str.equals(“食堂”)){
Bundle bundle=new Bundle();
bundle.putString(“choice”, “食堂”);
intent.putExtras(bundle);
startActivity(intent);
}else if(str.equals(“綜合樓”)){
Bundle bundle=new Bundle();
bundle.putString(“choice”, “綜合樓”);
intent.putExtras(bundle);
startActivity(intent);
......}
本系統(tǒng)是基于Android平臺(tái)的校園熱點(diǎn)手機(jī)應(yīng)用,設(shè)計(jì)此應(yīng)用的目的是為了服務(wù)于遼寧軌道交通職業(yè)學(xué)院的學(xué)生,尤其是新同學(xué),使他們能夠更快地熟悉校園,更好地適應(yīng)大學(xué)生活。