版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)基于互聯(lián)網(wǎng)的地圖標(biāo)注系統(tǒng)設(shè)計與實現(xiàn)段克敏1 李宏利1 邰曉峰2北京長地萬方科技有限公司,北京 ;2. 廣東融訊信息科技有限公司,廣州 )摘要:基于互聯(lián)網(wǎng)的地圖標(biāo)注系統(tǒng)涉及到點、線和面的標(biāo)注,對解決地圖數(shù)據(jù)生產(chǎn)所面臨的現(xiàn)勢性、完備性、正確性以及準(zhǔn)確性問題具有積極的意義。系統(tǒng)是在Oracle數(shù)據(jù)庫、POI搜索引擎和瓦片地圖數(shù)據(jù)服務(wù)的基礎(chǔ)上,采用Ajax技術(shù)、NHibernate技術(shù)設(shè)計開發(fā)而成的,文章給出了系統(tǒng)的設(shè)計和實現(xiàn)。關(guān)鍵詞:地圖標(biāo)注; Ajax; NHibernateDesign a
2、nd Implementation of Map LabelSystem Based on InternetAbstract:Map Label System Based on Internet involves label point、label line and label polygon, which is positive to deal with the problems of untimely、incomplete、incorrect and inaccurate that is come across in the process of electronic map data p
3、roduction. The development of this system is based on the Oracle Database、the Search Engine of POI and Tilt Map, and using the technology of Ajax and NHibernate. This paper mainly discusses the design and the application.Key words: Map Label; Ajax; NHibernate作者簡介:段克敏 (1976 ) ,男,陜西咸陽人,高級工程師,學(xué)士,1999年畢
4、業(yè)于浙江大學(xué)地球科學(xué)專業(yè),主要從事海量空間數(shù)據(jù)處理、GIS系統(tǒng)集成方面的工作。0 引言隨著基礎(chǔ)設(shè)施建設(shè)以及城鎮(zhèn)化的快速發(fā)展,地理信息也隨之在不斷變化,地物的形態(tài)和功能都在不斷地發(fā)生著變化。從而使地圖的現(xiàn)勢性、完備性、正確性以及準(zhǔn)確性受到了極大的影響,引起人們衣食住行的不便,傳統(tǒng)的地圖更新方式已很難滿足人們的需要,并且在人力、物力、財力以及社會資源等方面的消耗也是非常巨大的?;ヂ?lián)網(wǎng)給人們的生活帶來了無法估量的便利,而且已非常普及,利用互聯(lián)網(wǎng)機制,讓合格的用戶在互聯(lián)網(wǎng)地圖上標(biāo)注身邊所發(fā)生的地理變化是一種快捷有效的地理數(shù)據(jù)采集方式。本文結(jié)合Ajax和Nhibernate技術(shù),將互聯(lián)網(wǎng)地圖以及地理數(shù)據(jù)
5、采集結(jié)合在一起,設(shè)計和實現(xiàn)了該系統(tǒng)。1 Ajax+Nhibernate與網(wǎng)絡(luò)地圖Ajax是Asynchronous JavaScript + CSS + DOM + XML HttpRequest的略稱1,是多種技術(shù)的綜合,它使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn),使用DOM實現(xiàn)動態(tài)顯示和交互,使用XML和XSTL進(jìn)行數(shù)據(jù)交換與處理,使用XMLHttpRequest對象進(jìn)行異步數(shù)據(jù)讀取,使用Javascript綁定和處理所有數(shù)據(jù)。介于瀏覽器和服務(wù)器之間,瀏覽器的用戶接口與服務(wù)器之間的交換全部是通過Ajax進(jìn)行的。NHibernate是類似于Hibernate的一個面向.NET環(huán)境的對象/關(guān)系數(shù)據(jù)庫映
6、射工具。對象/關(guān)系數(shù)據(jù)庫映射(object/relational mapping (ORM)技術(shù)用來把對象模型表示的對象映射到基于SQL的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中去。NHibernate不僅僅管理.NET類到數(shù)據(jù)庫表的映射(包括.NET數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時人工使用SQL和ADO.NET處理數(shù)據(jù)的時間2?;诨ヂ?lián)網(wǎng)的地圖也稱為網(wǎng)絡(luò)地圖。從廣義上來說,網(wǎng)絡(luò)地圖也是一種電子地圖,是在計算機屏幕上顯示、閱讀和使用的,因此具有電子地圖的一般特點,即動態(tài)性、交互性等特點3。在網(wǎng)絡(luò)地圖上,普通用戶可以創(chuàng)建地圖,標(biāo)注個性化的地標(biāo),讓被動的“地圖用戶”
7、轉(zhuǎn)變?yōu)橹鲃拥摹皟?nèi)容提供者”,不但提高了地圖網(wǎng)站的用戶黏度,還把地圖網(wǎng)站變成了一個社會化網(wǎng)絡(luò)平臺。使用Ajax和NHibernate技術(shù)進(jìn)行基于互聯(lián)網(wǎng)地圖的標(biāo)注系統(tǒng)開發(fā),綜合Ajax的異步數(shù)據(jù)請求以及NHibernate的對象的持久化以及方便的數(shù)據(jù)獲取功能,使得用戶可以方便的瀏覽地圖,同時也可以容易便捷的在客戶端地圖瀏覽過程中標(biāo)注和保存自己關(guān)注的POI或者道路等等地理信息。兩種技術(shù)的信息請求響應(yīng)機制如圖1。圖1 Ajax & NHibernate技請求響應(yīng)機制2系統(tǒng)的設(shè)計2.1系統(tǒng)的體系結(jié)構(gòu)設(shè)計地圖標(biāo)注系統(tǒng)采用層次架構(gòu),體系結(jié)構(gòu)如圖2,分別是(1)系統(tǒng)的表示層即Web頁面表示層。(2)系統(tǒng)的業(yè)務(wù)
8、邏輯層(BLL)即系統(tǒng)的業(yè)務(wù)邏輯分析。(3)數(shù)據(jù)服務(wù)層(DAL)。三個部分,具體為“瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器” 4。表示層,是地圖標(biāo)注系統(tǒng)的用戶接口部分,擔(dān)負(fù)著用戶與系統(tǒng)之間的對話功能。它用于檢查用戶從鍵盤等輸入的數(shù)據(jù),檢查的內(nèi)容只限于數(shù)據(jù)的形式類型和取值范圍,不包括有關(guān)業(yè)務(wù)本身的處理邏輯,顯示輸出的查詢、處理結(jié)果。業(yè)務(wù)邏輯層,是根據(jù)表示層發(fā)送來的請求條件,根據(jù)地圖標(biāo)注系統(tǒng)本身的業(yè)務(wù)流程邏輯進(jìn)行分析、檢索以及處理從數(shù)據(jù)層獲取的必要的業(yè)務(wù)數(shù)據(jù),然后把相應(yīng)的業(yè)務(wù)處理結(jié)果分別存入后臺數(shù)據(jù)庫以及反饋到客戶請求端。數(shù)據(jù)訪問層在本系統(tǒng)中是利用Nhibernate提供的對象關(guān)系映射框架ORM將內(nèi)存
9、對象和關(guān)系數(shù)據(jù)進(jìn)行相互映射,進(jìn)行對象的持久化。另外就是POI數(shù)據(jù)的搜索引擎技術(shù)可以使POI數(shù)據(jù)的查詢迅速高效且準(zhǔn)確;柵格引擎使背景地圖瓦片數(shù)據(jù)能夠快速顯示和瀏覽,操作便捷。圖2 地圖標(biāo)注系統(tǒng)體系結(jié)構(gòu)圖 系統(tǒng)后臺數(shù)據(jù)主要有:空間數(shù)據(jù)、屬性數(shù)據(jù)、瓦片數(shù)據(jù)和系統(tǒng)數(shù)據(jù)。2.2模塊設(shè)計圖3 標(biāo)注系統(tǒng)軟件包模塊圖系統(tǒng)的模塊結(jié)構(gòu)是根據(jù)系統(tǒng)的體系結(jié)構(gòu)設(shè)計而來的,總的模塊結(jié)構(gòu)如圖3。大體為客戶端UI模塊;業(yè)務(wù)邏輯層模塊;數(shù)據(jù)訪問層模塊;數(shù)據(jù)持久層模塊。地圖標(biāo)注系統(tǒng)的層次架構(gòu)具體為“瀏覽器/Web服務(wù)器/數(shù)據(jù)服務(wù)器”。其中的數(shù)據(jù)存儲和傳遞使用的是Model類,Model類中定義了一個實體(例如POI、道路、用戶、
10、POI統(tǒng)計、道路統(tǒng)計等等)的所有屬性變量,這些都是用來傳遞信息,并不對信息進(jìn)行處理和操作。部分實體是通過NHibernate對象關(guān)系映射框架(ORM),把業(yè)務(wù)實體在內(nèi)存中的對象持久化到關(guān)系數(shù)據(jù)庫中。ORM機制的核心是一個XML文件,命名為后綴為.hbm.xml的文件,這個文件描述了數(shù)據(jù)庫模式和Model類的具體綁定。2.3系統(tǒng)功能設(shè)計地圖標(biāo)注系統(tǒng)的用戶在標(biāo)注POI或者道路的時候,首先通過POI搜索引擎檢索,看數(shù)據(jù)庫中有沒有自己所關(guān)心的POI數(shù)據(jù)或者道路數(shù)據(jù),如果檢索沒有,那么就在瀏覽器地圖上找相應(yīng)的位置,進(jìn)行標(biāo)注和屬性信息的錄入,最后保存標(biāo)注結(jié)果。對于標(biāo)注的數(shù)據(jù),有專人要對每天所標(biāo)注的數(shù)據(jù)進(jìn)行
11、涉密點的檢查,然后進(jìn)行質(zhì)量檢查和審核,最后進(jìn)行確認(rèn)(一方面是資料確認(rèn),一方面可以提供給外業(yè)團(tuán)隊去現(xiàn)場實際確認(rèn)),將新的經(jīng)過確認(rèn)的有效數(shù)據(jù)和原有的母庫數(shù)據(jù)進(jìn)行融合,作為新的母庫數(shù)據(jù)。標(biāo)注系統(tǒng)的功能主要有:系統(tǒng)表示層功能主要有:系統(tǒng)的地圖顯示、用戶的POI標(biāo)注界面、用戶的道路標(biāo)注界面、用戶的建筑物標(biāo)注界面、POI數(shù)據(jù)的質(zhì)量檢查以及審核界面、道路數(shù)據(jù)的質(zhì)量檢查以及審核界面、POI數(shù)據(jù)的編輯修改界面、道路數(shù)據(jù)的編輯修改界面、任務(wù)分配界面、系統(tǒng)的用戶管理界面、系統(tǒng)的權(quán)限管理界面、數(shù)據(jù)的導(dǎo)出界面等等。系統(tǒng)業(yè)務(wù)邏輯層功能主要有:POI搜索引擎、柵格數(shù)據(jù)引擎、周圍區(qū)域檢索、POI數(shù)據(jù)的增加修改刪除、道路數(shù)據(jù)的
12、增加修改刪除、地理坐標(biāo)和顯示屏幕及相應(yīng)圖片像素之間關(guān)系和轉(zhuǎn)換、系統(tǒng)用戶管理、系統(tǒng)權(quán)限管理、系統(tǒng)的任務(wù)分配管理、用戶的作業(yè)區(qū)域管理、系統(tǒng)的數(shù)據(jù)管理等等。系統(tǒng)數(shù)據(jù)訪問層功能主要有:根據(jù)業(yè)務(wù)邏輯層的要求組織聲稱響應(yīng)的HQL語句,檢索并返回業(yè)務(wù)邏輯層所需要的數(shù)據(jù)。另外對數(shù)據(jù)進(jìn)行插入、更新、刪除等操作。數(shù)據(jù)庫中數(shù)據(jù)的導(dǎo)入導(dǎo)出功能。2.4系統(tǒng)數(shù)據(jù)庫設(shè)計2.4.1系統(tǒng)數(shù)據(jù)組成系統(tǒng)數(shù)據(jù)主要由瓦片數(shù)據(jù)、地理數(shù)據(jù)(屬性數(shù)據(jù)和空間數(shù)據(jù))以及系統(tǒng)的管理數(shù)據(jù)三部分構(gòu)成,分別如下:瓦片數(shù)據(jù)是地圖顯示的背景圖片,每片數(shù)據(jù)大小是256*256個像素,分十五個顯示等級,主要表示內(nèi)容是行政區(qū)劃水系綠地鐵路道路居民地信息點地名店等
13、。不同等級的瓦片數(shù)據(jù)表示的內(nèi)容依顯示比例尺而定,符合國家基本比例尺地圖要素的選取和綜合規(guī)則。地理數(shù)據(jù)是系統(tǒng)用的矢量型檢索數(shù)據(jù),主要包括POI信息點數(shù)據(jù)、道路數(shù)據(jù)、行政區(qū)劃數(shù)據(jù)等。系統(tǒng)數(shù)據(jù):主要有用戶管理、用戶詳細(xì)信息、角色信息、權(quán)限信息、菜單管理信息、權(quán)限管理信息、質(zhì)量審核、任務(wù)分配、上傳圖片管理信息等。2.4.2數(shù)據(jù)的物理組織和邏輯設(shè)計瓦片數(shù)據(jù)是柵格圖片數(shù)據(jù),根據(jù)比例尺的不同設(shè)定了15個等級,每個等級根據(jù)需要選用不同的矢量數(shù)據(jù)圖層進(jìn)行組合。瓦片數(shù)據(jù)是以柵格圖片的文件形式存放的,以文件夾的方式組織數(shù)據(jù)的,文件夾的命名方式是根據(jù)等級級別、圖片左下角的經(jīng)緯度等方式來命名的,圖片文件的命名方式是根據(jù)
14、圖片的經(jīng)緯度來計算命名的。地理數(shù)據(jù)和系統(tǒng)數(shù)據(jù)是存放在Oracle 10gR2數(shù)據(jù)庫中的。地理數(shù)據(jù)中的空間數(shù)據(jù)在數(shù)據(jù)庫中是利用OracleSpatial的SDO_Geometry數(shù)據(jù)類型存放的,這樣便于空間數(shù)據(jù)和屬性數(shù)據(jù)存放在同一條記錄中也避免了利用BLOB數(shù)據(jù)類型存放坐標(biāo)序列。同時也可以利用OracleSpatial提供的空間數(shù)據(jù)操作函數(shù)快捷地完成所需的空間操作。系統(tǒng)數(shù)據(jù)是以關(guān)系表的形式存儲。圖4 系統(tǒng)數(shù)據(jù)庫的部分邏輯結(jié)構(gòu)圖3系統(tǒng)的實現(xiàn)3.1開發(fā)平臺與運行環(huán)境開發(fā)語言:C#.Net、JavaScript、PL/SQL。編程工具:VisualStudio2005、PLSQL Developer。
15、服務(wù)器環(huán)境:64位Windows 2003 Server、64位Oracle10gR2。3.2客戶端的實現(xiàn)在客戶端的開發(fā)主要是Web UI頁面的開發(fā)。使用HTML語言設(shè)計和構(gòu)建網(wǎng)頁布局,設(shè)計用戶使用的方式以及返回內(nèi)容如何展現(xiàn)給終端用戶。利用JavaScript腳本語言編寫函數(shù)check(),動態(tài)檢查用戶輸入的規(guī)范性檢查,以及局部的動態(tài)調(diào)用和請求。利用CSS定義網(wǎng)頁的布局、字體、顏色背景等等,使網(wǎng)頁的內(nèi)容和表現(xiàn)分開,減少代碼量,使網(wǎng)頁簡練豐富,增加網(wǎng)頁的瀏覽速度。標(biāo)注系統(tǒng)中主要的功能就是POI點數(shù)據(jù)的增加、修改和刪除,以及道路數(shù)據(jù)的增加、修改和刪除,這些功能的實現(xiàn)都是依靠背景地圖作為參照的,所以
16、背景地圖是顯示客戶端開發(fā)的重要部分,背景地圖是顯示在DIV容器中的。function init(type) Maplet = new RMap(0,0,800,450,latt,lonn,9,IMG_SERVER+/rt/mapdb/);document.getElementById(mapdiv).appendChild(Maplet.get();toolbox=Maplet.getToolBox(JS_SERVER+/rapi/rwidget/rmap/toolbox/);toolbox.addCross();toolbox.addZoomBar();toolbox.addPan();to
17、olbox.addScale();Maplet.show();Init()函數(shù)初始化地圖,RMap()函數(shù)是柵格引擎中重要的一個地圖函數(shù),柵格引擎是使用JavaScript開發(fā)而成的調(diào)用和操作瓦片數(shù)據(jù)的js文件模塊。增加POI點的JavaScript代碼:Maplet.clearMarkers();poiPointMarker=Maplet.addBalloonMarker(new parent.RLatLng(poiLat,poiLng), 1001, /img/mapMarker.gif, poi,null,null);Maplet.refreshMarkers();刪除瀏覽器中地圖上的P
18、OI點代碼:Maplet.clearMarkers();document.getElementById(txtLat).value =0;document.getElementById(txtLng).value = 0;document.getElementById(control_ddlProvince).value=-1;document.getElementById(control_ddlCity).style.display=none; document.getElementById(control_ddlCode).style.display=none; poiPointMarke
19、r=null; 道路數(shù)據(jù)的操作實現(xiàn)代碼也是使用JavaScript調(diào)用柵格引擎中相應(yīng)的函數(shù)實現(xiàn)的。系統(tǒng)的主要界面如下圖5 系統(tǒng)界面圖其它的頁面POI變更標(biāo)注、POI編輯、道路變更標(biāo)注、道路編輯、POI審核、道路審核、信息安全審核、數(shù)據(jù)導(dǎo)出(Excel格式和mdb格式)、用戶管理、任務(wù)管理、密碼管理、日志管理等頁面的開發(fā)方式都是采用JavaScript、HTML和CSS技術(shù)開發(fā)而成的。頁面開發(fā)中很多功能使用了Ajax技術(shù),例如顯示周圍POI功能,在AddPOI.aspx頁面中的代碼為:function searchAroundPoi() /此處省略代碼/Ajax技術(shù)listScript1.src
20、=/AjaxServer/GetPagePoislistByAround.aspx?districtId=+districtId+&start=+start+&count=+count+&LLat=+Maplet.lat+&LLng=+Maplet.lng; /此處省略代碼 在Ajax服務(wù)的GetPagePoislistByAround.aspx頁面中調(diào)用BLL模塊中的GetPoisByAround()函數(shù)返回檢索周圍信息點的字符類型的結(jié)果,然后再返回給AddPOI.aspx頁面,并顯示相應(yīng)結(jié)果。3.3服務(wù)器端的實現(xiàn)服務(wù)器端的開發(fā)主要是BLL、DAL以及Nhibernate持久化三方面的開發(fā)。
21、BLL層接收來自WebUI的信息,并對信息或者狀態(tài)進(jìn)行判斷,然后做出相應(yīng)的策略和操作。例如顯示周圍信息點功能在BLL中調(diào)用的函數(shù)如下:public string GetPoisByAround() /此處代碼省略 Com.Ritu.POI.BLL.PoiManager poiManager=new pm.Ritu.POI.BLL.PoiManager(); IList pois = null; pois= poiManager.GetBasicListByAround(lat,lng,start,count); /此處代碼省略BLL模塊中的代碼:public IList GetBasicLis
22、tByAround(double lat, double lng, int start, int count) Return mDal.GetBasicListByAround(); DAL模塊中和數(shù)據(jù)庫相關(guān)的基本采用Nhibernate技術(shù),所以相應(yīng)的調(diào)用代碼:public int GetCountBasicByAround(double Lat, double Lng) /Nhibernate技術(shù) ISession session = SessionFactory.GetSession(); StringBuilder sbHql = new StringBuilder(); sbHql.Append(select count(*) from PoiEntity poi where 1=1 ); /此處代碼省略 double TmpFloat = 50 / .71; sbHql.Append(and poi.Latitude = :MaxLat ); /此處代碼省略 IQuery query = session.CreateQuery(sbHql.ToString(); query.SetDouble(MaxLat, MMaxLat);/此處代碼省略ILis
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版智慧城市建設(shè)擔(dān)保承諾書-城市智能化發(fā)展保障2篇
- 二零二五年度美發(fā)設(shè)備租賃合同4篇
- 二零二五年度供應(yīng)鏈金融擔(dān)保合同協(xié)議4篇
- 舊路面銑刨施工方案
- 2025年度土地整治工程承建工程合同協(xié)議模板4篇
- 2025年度辦公室裝修環(huán)保驗收服務(wù)合同3篇
- 2025便利店品牌形象使用權(quán)授權(quán)合同3篇
- 2025年度住宅小區(qū)停車設(shè)施承包合同范文4篇
- 古建彩繪施工方案
- 二零二五年度門窗行業(yè)環(huán)保門窗產(chǎn)品檢測與認(rèn)證合同模板4篇
- 山東省濰坊市2023-2024學(xué)年高一上學(xué)期1月期末考試英語試題 含解析
- 空調(diào)基礎(chǔ)知識題庫單選題100道及答案解析
- 生物人教版七年級(上冊)第一章第一節(jié) 生物的特征 (共28張)2024版新教材
- 2025屆安徽省皖南八校高三上學(xué)期8月摸底考試英語試題+
- 工會資金采購管理辦法
- 玩具活動方案設(shè)計
- Q∕GDW 516-2010 500kV~1000kV 輸電線路劣化懸式絕緣子檢測規(guī)程
- 2024年湖南汽車工程職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 家長心理健康教育知識講座
- GB/T 292-2023滾動軸承角接觸球軸承外形尺寸
- 軍人結(jié)婚函調(diào)報告表
評論
0/150
提交評論