摘 要:本文通過OpenStreetMap(OSM)的實(shí)驗(yàn)項(xiàng)目開發(fā),簡(jiǎn)述了OpenStreetMap的基本功能和優(yōu)勢(shì),并根據(jù)實(shí)驗(yàn)項(xiàng)目的格式通過六個(gè)實(shí)驗(yàn)子步驟構(gòu)建了一種基于OpenStreetMap的實(shí)驗(yàn)項(xiàng)目。
關(guān)鍵詞:OSM 開放 實(shí)驗(yàn)項(xiàng)目
中圖分類號(hào):TN206 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2013)07(b)-0014-02
OpenStreetMap(簡(jiǎn)稱OSM)是一個(gè)網(wǎng)上地圖協(xié)作計(jì)劃,目標(biāo)是創(chuàng)造一個(gè)內(nèi)容自由且能讓所有人編輯的世界地圖。OpenStreetMap允許您查看,編輯或者使用世界各地的地理數(shù)據(jù)來(lái)幫助您。
OSM的地圖由用戶根據(jù)手提GPS裝置、航空攝影照片、其他自由內(nèi)容甚至單靠地方智慧繪制。網(wǎng)站里的地圖圖像及向量數(shù)據(jù)皆以共享創(chuàng)意姓名標(biāo)示-相同方式分享2.0授權(quán)。
OSM網(wǎng)站的靈感來(lái)自維基百科等網(wǎng)站。這可從該網(wǎng)地圖頁(yè)的“編輯”按鈕及其完整修訂歷史獲知。經(jīng)注冊(cè)的用戶可上載GPS路徑及使用內(nèi)置的編輯程式編輯數(shù)據(jù)。
1 OpenStreetMap的基本功能
從OpenStreetMap的主界面可以看到,包含了查看、編輯、歷史、輸出、GPS軌跡及用戶日志幾項(xiàng)內(nèi)容。查看,用來(lái)查看地圖,大概瀏覽一下,就能看到好多縣城級(jí)別的地圖數(shù)據(jù)仍為一片空白,大城市,如北京,地理要素還是比較詳細(xì)的。編輯,注冊(cè)的用戶登陸后才能對(duì)所在視野范圍的地圖數(shù)據(jù)進(jìn)行編輯。歷史,包含了改視野范圍內(nèi)地圖的更新歷史記錄。輸出,可將當(dāng)前視野的地圖數(shù)據(jù)導(dǎo)出,支持輸出的格式有:OpenStreetMap XML數(shù)據(jù) :OpenStreetMap的xml格式(擴(kuò)展名.osm)
Mapnik圖像:圖片格式
包含:JEPG、PNG、SVG、PDF、Postscript
Osmarender圖像:圖片格式(png)
嵌入HTML:嵌入到網(wǎng)頁(yè)的html,同時(shí)可以自定義添加標(biāo)記。
2 OpenStreetMap的優(yōu)勢(shì)
在導(dǎo)航器市場(chǎng),OpenStreetMap擁有很大的優(yōu)勢(shì):商業(yè)供應(yīng)者提供的數(shù)字地圖售價(jià)往往達(dá)幾百歐元,而OpenStreetMap卻是免費(fèi)的。互聯(lián)網(wǎng)上的情況就困難一些,因?yàn)镺penStreetMap要和其他免費(fèi)地圖供應(yīng)者如GoogleMaps競(jìng)爭(zhēng),從中期角度來(lái)看,OpenStreetMap勝過GoogleMaps的機(jī)會(huì)還是很不錯(cuò)的,因?yàn)樗虶oogleMaps不同,不光可以免費(fèi)使用,而且它的數(shù)據(jù)是自由開放的,任何人想怎么用就可以怎么用。
3 基于OSM的實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)與應(yīng)用
本實(shí)驗(yàn)項(xiàng)目類型:設(shè)計(jì)性。
本實(shí)驗(yàn)項(xiàng)目共分為六個(gè)步驟,每個(gè)步驟包括主要實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)?zāi)繕?biāo)、實(shí)驗(yàn)學(xué)時(shí)數(shù)、實(shí)驗(yàn)人數(shù)和實(shí)驗(yàn)人時(shí)數(shù)。具體如下。
3.1 主要實(shí)驗(yàn)內(nèi)容
程序?qū)崿F(xiàn)自動(dòng)解壓的批處理文件,能夠?qū)W(wǎng)站的下載的數(shù)據(jù)進(jìn)行自動(dòng)解壓
實(shí)驗(yàn)?zāi)繕?biāo):批處理文件的自動(dòng)生成
實(shí)驗(yàn)學(xué)時(shí):6學(xué)時(shí)
實(shí)驗(yàn)人數(shù):20人
實(shí)驗(yàn)人時(shí)數(shù):120學(xué)時(shí)·人
3.2 主要實(shí)驗(yàn)內(nèi)容
對(duì)解壓后的數(shù)據(jù)進(jìn)行自動(dòng)拆分,拆分主要完成如下功能。
(1)對(duì)于boundaries.shp、buildings.shp、coastline.shp、railwaystations.shp未進(jìn)行拆分,只是復(fù)制到新文件夾。
(2)對(duì)于place.shp等文件采用根據(jù)dbf表中fClass的不同進(jìn)行拆分。
(3)對(duì)于roads.shp和railways.shp根據(jù)fClass和bridge、tunnel三列信息進(jìn)行拆分。
(4)對(duì)于roads.shp中fClass=pedestrian的數(shù)據(jù)進(jìn)行單獨(dú)處理,將首尾相同的點(diǎn)處理為多邊形。
實(shí)驗(yàn)?zāi)繕?biāo):C#實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)處理
實(shí)驗(yàn)學(xué)時(shí):16學(xué)時(shí)
實(shí)驗(yàn)人數(shù):20人
實(shí)驗(yàn)人時(shí)數(shù):320學(xué)時(shí)·人
3.3 主要實(shí)驗(yàn)內(nèi)容
對(duì)拆分后的所有地圖數(shù)據(jù)建立投影,實(shí)現(xiàn)DecimalDegrees到GoogleMap的投影方式
實(shí)驗(yàn)?zāi)繕?biāo):C#完成地圖的投影變換
實(shí)驗(yàn)學(xué)時(shí):4學(xué)時(shí)
實(shí)驗(yàn)人數(shù):20人
實(shí)驗(yàn)人時(shí)數(shù):80學(xué)時(shí)·人
3.4 主要實(shí)驗(yàn)內(nèi)容
對(duì)所有地圖數(shù)據(jù)建立空間索引Rtree文件,為后面實(shí)現(xiàn)地圖的快速瀏覽
實(shí)驗(yàn)?zāi)繕?biāo):C#構(gòu)建空間索引樹
實(shí)驗(yàn)學(xué)時(shí):4學(xué)時(shí)
實(shí)驗(yàn)人數(shù):20人
實(shí)驗(yàn)人時(shí)數(shù):80學(xué)時(shí)·人
3.5 主要實(shí)驗(yàn)內(nèi)容
對(duì)處理好的數(shù)據(jù)實(shí)施正確渲染,完成Desktop版本
實(shí)驗(yàn)?zāi)繕?biāo):C#實(shí)現(xiàn)桌面地圖顯示
實(shí)驗(yàn)學(xué)時(shí):10學(xué)時(shí)
實(shí)驗(yàn)人數(shù):20人
實(shí)驗(yàn)人時(shí)數(shù):200學(xué)時(shí)·人
3.6 主要實(shí)驗(yàn)內(nèi)容
對(duì)處理好的數(shù)據(jù)實(shí)施正確渲染,完成Web版本
實(shí)驗(yàn)?zāi)繕?biāo):C#實(shí)現(xiàn)網(wǎng)頁(yè)地圖顯示
實(shí)驗(yàn)學(xué)時(shí):8學(xué)時(shí)
實(shí)驗(yàn)人數(shù):20人
實(shí)驗(yàn)人時(shí)數(shù):160學(xué)時(shí)·人
本項(xiàng)目總實(shí)驗(yàn)人時(shí)數(shù):48學(xué)時(shí)×20人=960學(xué)時(shí)·人
通過本項(xiàng)目,讓學(xué)生從理論回到了實(shí)際應(yīng)用,揭開了諸如百度、谷歌地圖顯示的神秘面紗,了解了地圖顯示的基本原理和技術(shù),同時(shí)讓學(xué)生對(duì)于一些經(jīng)典算法,如:Rtree算法進(jìn)行深入的學(xué)習(xí)和了解,掌握了課堂以外更深入的專業(yè)知識(shí),同時(shí)強(qiáng)化他們面向?qū)ο蟮木幊趟枷?,提高編程的?shí)踐技能,讓學(xué)生所學(xué)的計(jì)算機(jī)知識(shí)充分的應(yīng)用到Gis這個(gè)領(lǐng)域,把他們自學(xué)能力發(fā)揮到了極致。同時(shí),由于該實(shí)驗(yàn)室為公司和學(xué)院共建聯(lián)合實(shí)驗(yàn)室,已經(jīng)有不少動(dòng)手能力較強(qiáng)的同學(xué)最后都選擇了思宙公司實(shí)習(xí)或工作,還有部分優(yōu)秀的同學(xué)推薦到了美國(guó)總公司工作。
通過本項(xiàng)目的實(shí)施,首先彌補(bǔ)了一般學(xué)校沒有Gis相關(guān)課程的缺憾,將GIS這門前沿的技術(shù)應(yīng)用到我們的實(shí)踐當(dāng)中,增加了學(xué)生的知識(shí)面,培養(yǎng)學(xué)生的動(dòng)手能力及擴(kuò)大了將來(lái)的就業(yè)范圍,并能為將來(lái)學(xué)院開展Gis的相關(guān)應(yīng)用奠定一定的理論與實(shí)踐基礎(chǔ),項(xiàng)目的成果也將也將作為公司實(shí)際應(yīng)用的一部分。
本項(xiàng)目的目的是為學(xué)生將來(lái)就業(yè)提供必要培訓(xùn),提前讓學(xué)生掌握一些就業(yè)的技能,為公司輸送高素質(zhì)的人才。此項(xiàng)目的特色是完全按照公司培養(yǎng)計(jì)劃來(lái)執(zhí)行和管理,通過該項(xiàng)目的實(shí)施,能夠讓參與實(shí)驗(yàn)的同學(xué)體驗(yàn)公司化的管理制度,高效的溝通技能和管理方法,提高他們的編程理念和規(guī)范他們的編程規(guī)則,建立起軟件產(chǎn)品的構(gòu)建思想,為學(xué)生將來(lái)的就業(yè)起到了積極的培訓(xùn)作用。
4 結(jié)語(yǔ)
通過本實(shí)驗(yàn)項(xiàng)目的實(shí)施使學(xué)生了解了地圖顯示的基本原理和技術(shù),同時(shí)讓學(xué)生對(duì)于一些經(jīng)典算法有了深入的學(xué)習(xí)和了解,增加了學(xué)生的知識(shí)面,培養(yǎng)了學(xué)生的動(dòng)手能力及擴(kuò)大了將來(lái)的就業(yè)范圍。
參考文獻(xiàn)
[1]王瑾.基于Flash技術(shù)的交互式測(cè)試系統(tǒng)的設(shè)計(jì)[J].蘇州市職業(yè)大學(xué)學(xué)報(bào),2012(2):59-61.
[2]高昂.新授權(quán)協(xié)議提升OpenStreetMap應(yīng)用價(jià)值[J].程序員,2012(8):16.