張紫甜+古麗米拉·克孜爾別克
摘 要: 以大學(xué)的空間信息為基礎(chǔ),采集學(xué)校的地理信息,利用高德地圖免費接口,實現(xiàn)了基于高德地圖API的高精細(xì)校園地圖導(dǎo)航APP。開發(fā)中充分利用了高德地圖 API 接口,實現(xiàn)了自身定位、地圖加載、校園內(nèi)地點搜索和路線導(dǎo)航等功能。該APP方便學(xué)校師生及外來人員找尋在校園內(nèi)的任何地點, 能有效緩解新生入校找不到各個報名點而造成的校園擁擠的情況。
關(guān)鍵詞: 校園導(dǎo)航; 自身定位; GPS; 高德地圖API; 路徑規(guī)劃
中圖分類號:TP302 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2018)02-55-03
Abstract: Based on the spatial information of the University, to collect the geographic information of the school and make use of the free interface of Amap API, an APP of high-precision campus map navigation is realized. In the development, the API interface is fully utilized to realize the functions of self positioning, map loading, campus location search and route navigation. The APP facilitates school teachers, students and the external personnel, to find anywhere in campus, which can effectively alleviate the situation of campus congestion caused by the new students who cannot find their registration points.
Key words: campus navigation; self positioning; GPS; Amap API; path planning
0 引言
國內(nèi)各大高??焖侔l(fā)展,校園內(nèi)部的教學(xué)樓、宿舍樓、大小食堂、各學(xué)院樓、實驗樓等地理位置錯綜復(fù)雜,即使在學(xué)校工作生活多年的教職工以及進(jìn)校多年的學(xué)生,也未必能清楚的對學(xué)校各地方清楚的了解, 對于剛?cè)雽W(xué)的大一新生或者來訪的外來人員更是有許多不便之處。為了給廣大師生帶來便利,本系統(tǒng)是在高德地圖開放平臺的基礎(chǔ)上進(jìn)行了二次開發(fā),實現(xiàn)一個簡單操作但富有極強實用性的校園地圖。
1 API接口
現(xiàn)如今,有越來越多的地圖應(yīng)用程序在市場上出現(xiàn),人們熟悉的有搜狗地圖、高德地圖、百度地圖、谷歌地圖、騰訊地圖等等。成熟的地圖API接口也被各行各業(yè)廣泛使用,例如福建省農(nóng)業(yè)科學(xué)院農(nóng)業(yè)生物資源研究所研究的土壤標(biāo)本地理分布信息系統(tǒng)[1] ,而我們開發(fā)的系統(tǒng)就是采用的高德地圖API接口。高德地圖API可以為開發(fā)者免費提供基于高德地圖的應(yīng)用程序接口。我們只需申請密鑰,然后填寫開發(fā)者信息,即可利用高德平臺上的資源進(jìn)行開發(fā)。
2 系統(tǒng)的需求分析總體設(shè)計
本系統(tǒng)是以新疆農(nóng)業(yè)大學(xué)為例,研究校園內(nèi)部分師生用戶對校園地圖導(dǎo)航系統(tǒng)的需求,并根據(jù)其需求提供了相應(yīng)的功能。主要包括:校園內(nèi)詳細(xì)地圖的顯示,能有效的幫助學(xué)校內(nèi)部的師生了解校園內(nèi)的各個設(shè)施[2]。當(dāng)然用戶也不只是本學(xué)校的師生們,對于初次來新疆農(nóng)業(yè)大學(xué)參觀、找朋友,或者是剛進(jìn)大學(xué)的大一新生來說,本系統(tǒng)都能為其提供有效的幫助,為其提供校園內(nèi)各地方的詳細(xì)位置,并為其導(dǎo)航。
2.1 功能設(shè)計
根據(jù)校園內(nèi)廣大師生的需求,系統(tǒng)提出以下功能:自身實時定位、地圖加載、路線導(dǎo)航、校內(nèi)搜索等功能。系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。
[校園高精細(xì)地圖] [自身實時定位][地圖加載][路線導(dǎo)航][校內(nèi)搜索]
⑴ 自身定位功能
用戶一打開軟件,就可以得到當(dāng)前自身所在的位置,如校園內(nèi)的道路名稱位置等。并且在地圖上你能看到自己的所在位置,地圖也會實時的根據(jù)你位置的改變而相應(yīng)的發(fā)生改變。為用戶提供準(zhǔn)確的位置信息。
⑵ 地圖加載功能
基于高德地圖的校內(nèi)導(dǎo)航系統(tǒng),相應(yīng)的需要獲取高德地圖的使用權(quán)限和開發(fā)權(quán)限。高德地圖提供的是相對較大的區(qū)域地圖,雖然校內(nèi)很多建筑物在高德地圖上都有體現(xiàn),但精確度不夠,還有很多我們農(nóng)大師生熟悉的有別名的小地方,地圖中沒有標(biāo)識。所以,系統(tǒng)在加載高德地圖時,也必須顯示出我們自定義添加的校園內(nèi)部更為精確的詳細(xì)標(biāo)注,使用戶有更好的體驗。
⑶ 路線導(dǎo)航
路線導(dǎo)航功能是現(xiàn)在所有地圖的基本功能,系統(tǒng)提供的路線導(dǎo)航功能是從自身出發(fā),搜索目的地后,系統(tǒng)自動給出可行路線,并提供實時導(dǎo)航。
⑷ 校內(nèi)搜索
系統(tǒng)界面中提供了搜索框,用戶可以通過搜索框查詢校園內(nèi)的各個設(shè)施的具體位置,并為其導(dǎo)航路線。例如你在宿舍想要去計算機學(xué)院,只需在搜索框點擊計算機學(xué)院,系統(tǒng)就會為你導(dǎo)航。
2.2 性能需求
⑴ 系統(tǒng)安全性設(shè)計
由于系統(tǒng)涉及到定位服務(wù),為了確保用戶信息的安全性,本系統(tǒng)是基于GPS定位,在用戶安裝和使用軟件前,系統(tǒng)會提示用戶是否打開手機GPS定位功能,以確保用戶的信息不回泄露。
⑵ 時間特性設(shè)計
系統(tǒng)響應(yīng)時間應(yīng)在人的感覺和視覺事件范圍內(nèi),例如在用戶輸入目的地名稱后,系統(tǒng)應(yīng)在5秒內(nèi)給出導(dǎo)航路線。為用戶帶來好的用戶體驗。
⑶ 可維護(hù)性
在系統(tǒng)的設(shè)計與實現(xiàn)中,系統(tǒng)分析階段的可維護(hù)性設(shè)計是精髓所在[3],系統(tǒng)在運行中發(fā)現(xiàn)軟件錯誤和設(shè)計缺陷,這些錯誤和缺陷在測試階段未能發(fā)現(xiàn),改進(jìn)應(yīng)用程序的設(shè)計,以便于增強軟件的基本功能,系統(tǒng)擁有的良好的可維護(hù)性,也便于后期的系統(tǒng)維護(hù)。endprint
3 實現(xiàn)方案
本系統(tǒng)主要是以新疆農(nóng)業(yè)大學(xué)為例,實現(xiàn)校園內(nèi)部的高精細(xì)地圖。前期工作主要為信息的收集,之后再進(jìn)行程序的開發(fā)。
3.1 信息收集
由于本系統(tǒng)是要高精細(xì)的導(dǎo)航校園內(nèi)的所有地點,所以高德地圖原有的一些地點信息并不能滿足我們的需求,還有一些校內(nèi)師生自己慣用的名稱地點,高德地圖都無法滿足于用戶,所以我們需要收集校內(nèi)各個地點的信息,例如:行政樓、ATM取款機、小商店、洗衣房等等。
3.2 關(guān)鍵技術(shù)
⑴ 數(shù)據(jù)存儲的方式也有多種,傳統(tǒng)的方法是將地圖的數(shù)據(jù)放置到自己的服務(wù)器上,然后通過專業(yè)的復(fù)雜的空間檢索算法,并且結(jié)合地圖SDK/API完成一個地圖應(yīng)用的開發(fā)[4]。
⑵ 本系統(tǒng)使用較為簡便的方法,開發(fā)人員直接將校園內(nèi)部的詳細(xì)地理信息數(shù)據(jù)存儲在高德云圖上,可以一步搞定地圖展現(xiàn)、索引等。高德云圖數(shù)據(jù)管理臺是一個可視化數(shù)據(jù)管理工具,開發(fā)者可以自主開發(fā)自己需要的地圖。將前期收集的信息地點,在云地圖中一個一個地標(biāo)記出來,就可以直接生成我們想要的高精細(xì)地圖了。
⑶ 坐標(biāo)系轉(zhuǎn)換。地球坐標(biāo)系按照其坐標(biāo)原點的位置可分為參心坐標(biāo)系和地心坐標(biāo)系[5],本系統(tǒng)采用火星坐標(biāo)系統(tǒng),火星坐標(biāo)系統(tǒng)是一種國家保密插件,其實就是對真實坐標(biāo)系統(tǒng)進(jìn)行人為的加偏處理,而這個加偏并不是線性的加偏,所以各地的偏移情況都會有所不同。
本系統(tǒng)就是這樣一個加密算法,從手機GPS獲得的精確的經(jīng)緯度,經(jīng)過一系列的加減乘除運算,轉(zhuǎn)換為一種火星坐標(biāo),以用來保密。通過transformLat和transformLon函數(shù),在精確地經(jīng)緯度上經(jīng)過相應(yīng)的計算轉(zhuǎn)換得到一定的偏移量的經(jīng)緯度。再通過gpsLatLng.getLatitude()函數(shù)將其轉(zhuǎn)換為弧度制,代碼如圖2所示。
private NaviLatLng gpsLatLngToAMapLatLng
(NaviLatLng gpsLatLng) {
double a=6378245.0;
double ee=0.00669342162296594323;
double dLat=transformLat(gpsLatLng.getLongitude()-105.0,
gpsLatLng.getLatitude()-35.0);
double dLon=transformLon(gpsLatLng.getLongitude()-105.0,
gpsLatLng.getLatitude()-35.0);
double radLat=gpsLatLng.getLatitude()/180.0*Math.PI;
double magic=Math.sin(radLat);
magic=1-ee*magic*magic;
double sqrtMagic=Math.sqrt(magic);
dLat=(dLat*180.0)/((a*(1-ee))/(magic*sqrtMagic)*Math.PI);
dLon=(dLon*180.0)/(a/sqrtMagic*Math.cos(radLat)
*Math.PI);
return new NaviLatLng(gpsLatLng.getLatitude()
+dLat, gpsLatLng.getLongitude()+dLon);
}
private static double transformLat(double x, double y) {
double ret=-100.0+2.0*x+3.0*y+0.2*y*y+0.1*x*y
+0.2*Math.sqrt(x>0?x:-x);
ret+=(20.0*Math.sin(6.0*x*Math.PI)+20.0*Math.sin
(2.0*x*Math.PI))*2.0/3.0;
ret+=(20.0*Math.sin(y*Math.PI)+40.0*Math
.sin(y/3.0*Math.PI))*2.0/3.0;
ret+=(160.0*Math.sin(y/12.0*Math.PI)+320*Math
.sin(y*Math.PI/30.0))*2.0/3.0;
return ret;
}
private static double transformLon(double x,double y) {
double ret=300.0+x+2.0*y+0.1*x*x+0.1*x*y+0.1*Math
.sqrt(x>0?x:-x);
ret+=(20.0*Math.sin(6.0*x*Math.PI)+20.0*Math
.sin(2.0*x*Math.PI))*2.0/3.0;
ret+=(20.0*Math.sin(x*Math.PI)+40.0*Math
.sin(x/3.0*Math.PI))*2.0/3.0;
ret+=(150.0*Math.sin(x/12.0*Math.PI)+300.0*Math
.sin(x/30.0*Math.PI))*2.0/3.0;
return ret;
}
3.3 系統(tǒng)主界面實現(xiàn)
系統(tǒng)主界面的整體布局簡潔明了,打開軟件就是地圖界面。頂端是一個Spinner下拉框控件,這里有校園里各個精細(xì)的地點,用戶可以在這里選擇導(dǎo)航的終點。頂端右邊是一個Button按鈕,上,上面的TextView 控件用于顯示文本信息“開始導(dǎo)航”,系統(tǒng)主界面如圖3所示。
4 結(jié)束語
目前市場上成熟的地圖有很多,百度高德谷歌等都相當(dāng)成熟,但校園地圖相對較少,所以校園地圖的前景較為不錯。相應(yīng)的,校園地圖也需要更為精確的定位以及地點坐標(biāo)。本系統(tǒng)是基于Android平臺的新疆農(nóng)業(yè)大學(xué)校園高精細(xì)導(dǎo)航系統(tǒng)是為了給校園內(nèi)地師生以及外來人員來訪時帶來了實用價值,能夠讓大家更加迅速的了解熟悉新疆農(nóng)業(yè)大學(xué),方便大家尋找目的地,更快的熟悉校園。特別對于每年大一入學(xué)的新生來說,本系統(tǒng)能夠帶來極大的便利,除了其功能可以解決用戶的問題,還能提高用戶的辦事效率、為用戶節(jié)約時間。
參考文獻(xiàn)(References):
[1] 林營志,蘇明星,劉丹瑩,劉波.基于51Ditu公用API接口的土壤標(biāo)本地理分布信息系統(tǒng)[J].中國農(nóng)學(xué)通報,2008.24(12):490-494
[2] 孫杰,秦健勇,樊春年.基于Android的校園導(dǎo)航系統(tǒng)的設(shè)計與實現(xiàn)[J].智能計算機與應(yīng)用,2016.6(3):90-92
[3] 伍華健,洪月華,劉力.遠(yuǎn)程教育支持系統(tǒng)中的可維護(hù)性設(shè)計[J].微電子學(xué)與計算機,2006.6:65-67
[4] 謝黨恩,頓貝貝,張志立.基于百度地圖API的校內(nèi)路徑導(dǎo)航系統(tǒng)的實現(xiàn)[J].許昌學(xué)院學(xué)報,2014.33(2):78-81
[5] 馬家瓊,楊曉英,崔文剛,陳濤,胡君.WGS-84與西安80坐標(biāo)轉(zhuǎn)換研究[J].測繪與空間地理信息,2013.36(4):158-160
[6] Naresh Kumar Agarwal, Harrison Lawrence. Office Location Map of Individuals in the Library and Other College Campus Buildings: A Proof-of-Concept Wayfinding System[J]. Journal of Web Librarianship,2014.8(3).endprint