GPS.NET 地圖應(yīng)用程序架構(gòu)設(shè)計
轉(zhuǎn)自:http://www.jt808.com/?tag=gmap-net
GMap.NET是一個好的開源地圖程序,封裝了各種網(wǎng)絡(luò)地圖引擎,統(tǒng)一了操作,但要把它用于實際的工作中,還需要在基礎(chǔ)之上進行大量的開發(fā)工作。
1)雖然解決了最底層的地圖獲取、投影和瓦片展現(xiàn)的問題,但是可擴展性不好;
2)圖層、圖元、文字標(biāo)注的關(guān)系比較弱,需要重新封裝,按照傳統(tǒng)GIS引擎如ArcGis和Mapinfo的方式來改造;
3)業(yè)務(wù)信息的集成、業(yè)務(wù)數(shù)據(jù)的展現(xiàn)和操作沒有考慮,如圖元和業(yè)務(wù)信息的關(guān)聯(lián)和信息的傳遞和事件觸發(fā)、數(shù)據(jù)交換,需要提供一個粒度更大的開發(fā)包,才能非常方便的操作;
4)只能本地持久化,無法滿足網(wǎng)絡(luò)版的軟件需要考慮將地圖同步到各個客戶端的要求。
為此我們開發(fā)了GPS.NET, 目標(biāo)是要解決在實際開發(fā)地圖應(yīng)用、GPS應(yīng)用、地理信息系統(tǒng)中的比較繁瑣的部分,對常規(guī)、公用的功能進行了抽取、強化,在架構(gòu)、接口和事件處理的設(shè)計上更加富有可擴展性,對與需要進行擴展的業(yè)務(wù)邏輯、數(shù)據(jù)交換、協(xié)議等以插件的形式進行了重新的設(shè)計。
1.對GMap.NET在進行更加友好的封裝,未來能夠達到拿來即用的效果,使用者可以更加方便的集成到自己的業(yè)務(wù)系統(tǒng)當(dāng)中,如物流運輸、地理信息管理等。
2.解決天朝GPS加偏處理造成的地圖偏移問題;
3.在版本穩(wěn)定后,推出GPS開發(fā)包, 計劃在年底公布源碼, 開發(fā)者可以在此基礎(chǔ)上進行更加有創(chuàng)意的開發(fā)工作;
4.對于地圖、圖層、圖元、標(biāo)注、事件、業(yè)務(wù)信息交互、算法等進行了重新的設(shè)計。
5.不僅可用于GIS,也可用于數(shù)據(jù)的可視化表現(xiàn),如市場占有、區(qū)域等級劃分等等;
6.所有的圖層、圖元都直接持久化在服務(wù)器端,保證了網(wǎng)絡(luò)版軟件的地圖信息同步的要求。
地圖應(yīng)用程序的界面設(shè)計規(guī)范如下:
- 工作區(qū)要盡可能大,能夠全屏設(shè)置,并且能夠調(diào)整區(qū)域大小,同時用戶需要看的信息要盡量組合分區(qū)集中在一屏當(dāng)中,避免左右上下拖動;
- 盡量使用鼠標(biāo)事件來代替按鈕,如鼠標(biāo)移動到某一對象時,顯示對象的詳細(xì)數(shù)據(jù),雙擊對象或記錄顯示信息等;
- 當(dāng)數(shù)據(jù)信息多時,盡量使用標(biāo)簽頁,而不是彈出窗口,避免窗口雜亂或信息重復(fù)加載;
- 分區(qū): 頂部工具欄,左側(cè)導(dǎo)航區(qū),底部數(shù)據(jù)信息顯示區(qū),中間是監(jiān)控工作區(qū),右下是報警信息區(qū)。
- 監(jiān)控軟件的特點是長時間對著電腦屏幕監(jiān)控,也就是看的多,所以界面風(fēng)格要追求保守、簡潔,清晰,避免使用3D突起、漸變、五顏六色等風(fēng)格,造成視覺疲勞,過度追求炫酷界面,則用戶體驗不持久,時間長了容易審美疲勞。大家可以參考下chrome瀏覽器的界面,再對比下Firefox和IE的界面,就應(yīng)該清楚了。
- 好的地圖圖標(biāo)也是很重要的,當(dāng)?shù)乩順?biāo)志密集顯示的時候,需要選擇不引起疲勞的談色調(diào)圖標(biāo),在這里下載我收集的地圖圖標(biāo):
地圖圖標(biāo)大全 已下載 26 次
開發(fā)者可以下載我開發(fā)的商用地圖應(yīng)用程序來規(guī)劃自己的地圖應(yīng)用程序的設(shè)計:

GPS.NET V1.0版主要的設(shè)計規(guī)劃如下:
1.百度地圖支持
在谷歌地圖的基礎(chǔ)上,增加了對百度地圖的支持,如果將來Google地圖萬一被墻,也沒有關(guān)系。
2.圖層
增強圖層對圖元的約束,將圖元的風(fēng)格定義轉(zhuǎn)移到圖層上面來,對圖層的定義變化將更新到該圖層的所有圖元,保證了同一個圖層的圖元風(fēng)格必然是同一的,添加標(biāo)注的時候,不需要對圖元的風(fēng)格進行個性化定義。
2.1.圖層定義持久化到遠(yuǎn)端服務(wù)器,不在本地持久化,這樣可以保證將變化同步到到所有的客戶端,解決地圖更新的同步問題;
2.2.增加圖層圖標(biāo)定義、名稱、標(biāo)注可見范圍, 圖層和文字標(biāo)注可以根據(jù)Zoom的大小而動態(tài)調(diào)整可見不可見,這樣可以減小地圖的數(shù)據(jù)加載量,提高地圖的美觀和性能;
2.3.圖層增加、刪除、修改、編輯功能,所有的更新將會同步到其他的客戶端上;
2.4.增加動畫圖層,使得該圖層的圖元可以是GIF格式的動畫展示在地圖上,如交通燈、報警信號等。
2.5. 增加多種圖層類型,如PNG圖片、GIF動畫、圓、矩形、區(qū)域、路線軌跡圖層等;
3.地標(biāo)
3.1.支持在線標(biāo)注并持久化,反映到所有的客戶端;
3.2.可以設(shè)置地標(biāo)所在業(yè)務(wù)部門歸屬,并形成樹狀架構(gòu)顯示;
3.3.設(shè)置所在圖層,風(fēng)格自動遵循圖層定義;
3.4.在線移動、增加、修改、刪除地標(biāo);
3.5.自動設(shè)置地標(biāo)的圍欄,形成圍欄報警;
3.6.增加了角度的參數(shù),地標(biāo)可以以不同的角度展示。
4.軌跡
4.1.軌跡增加了箭頭來指示方向;
4.2.小車移動時,自動根據(jù)方向來調(diào)整車輛圖標(biāo)的角度;
4.3.自動計算軌跡的里程;
5.火星坐標(biāo)、偏移、加偏和糾偏處理
5.1在地圖上對坐標(biāo)處理,無偏差顯示;
6.地理位置解析
6.1.對于無意義的經(jīng)緯度坐標(biāo),轉(zhuǎn)換成可讀性強的地理位置.