對於經常做信息化的開發人員來說,如果第一次開發地圖應用可能要走很多的彎路:
1.購買地圖, 因為現在的谷歌和百度地圖API,都是基於Javascript的,如果要開發C/S架構的桌面地圖應用非常不方便。
2.可能會去找想Mapinfo、ArcGis這些地圖軟件進行二次開發,這個弊端太多了,開發資源少,周期長,發布時更加麻煩,都是基於桌面License的,收費很高,非常黑,看到Mapinfo和ArcGis論壇一堆堆的開發者浪費時間在這個上面,太痛心了。
現在Codeplex上有一個好地圖開源程序GMap.NET,不是基於Google Map API的,封裝了各種網絡地圖引擎如Google Map, Bing Map等,統一了操作,而且非常靈活,通過信息化功能的集成和改造,可以快速開發出一個很酷的桌面地圖應用,一分錢不用花:
GMap.NET的教程,網上有很多,可以參考:http://www.jt808.com/?tag=gmap-net
但是這個程序也存在以下問題:
1)雖然解決了最底層的地圖獲取、投影和瓦片展現的問題,但是可擴展性不好;
2)圖層、圖元、文字標注的關系比較弱,需要重新封裝,按照傳統GIS引擎如ArcGis和Mapinfo的方式來改造;
3)業務信息的集成、業務數據的展現和操作沒有考慮,如圖元和業務信息的關聯和信息的傳遞和事件觸發、數據交換,需要提供一個粒度更大的開發包,才能非常方便的操作;
4)只能本地持久化,無法滿足網絡版的軟件需要考慮將地圖同步到各個客戶端的要求。
要解決在實際開發地圖應用、GPS應用、地理信息系統中的比較繁瑣的部分,對常規、公用的功能進行了抽取、強化,在架構、接口和事件處理的設計上更加富有可擴展性,對與需要進行擴展的業務邏輯、數據交換、協議等以插件的形式進行了重新的設計。
1.對GMap.NET在進行更加友好的封裝,未來能夠達到拿來即用的效果,使用者可以更加方便的集成到自己的業務系統當中,如物流運輸、地理信息管理等。
2.解決天朝GPS加偏處理造成的地圖偏移問題;
3.在版本穩定后,推出GPS開發包, 計划在年底公布源碼, 開發者可以在此基礎上進行更加有創意的開發工作;
4.對於地圖、圖層、圖元、標注、事件、業務信息交互、算法等進行了重新的設計。
5.不僅可用於GIS,也可用於數據的可視化表現,如市場占有、區域等級划分等等;
6.所有的圖層、圖元都直接持久化在服務器端,保證了網絡版軟件的地圖信息同步的要求。
地圖應用程序的界面設計規范如下:
- 工作區要盡可能大,能夠全屏設置,並且能夠調整區域大小,同時用戶需要看的信息要盡量組合分區集中在一屏當中,避免左右上下拖動;
- 盡量使用鼠標事件來代替按鈕,如鼠標移動到某一對象時,顯示對象的詳細數據,雙擊對象或記錄顯示信息等;
- 當數據信息多時,盡量使用標簽頁,而不是彈出窗口,避免窗口雜亂或信息重復加載;
- 分區: 頂部工具欄,左側導航區,底部數據信息顯示區,中間是監控工作區,右下是報警信息區。
- 監控軟件的特點是長時間對着電腦屏幕監控,也就是看的多,所以界面風格要追求保守、簡潔,清晰,避免使用3D突起、漸變、五顏六色等風格,造成視覺疲勞,過度追求炫酷界面,則用戶體驗不持久,時間長了容易審美疲勞。大家可以參考下chrome瀏覽器的界面,再對比下Firefox和IE的界面,就應該清楚了。
- 好的地圖圖標也是很重要的,當地理標志密集顯示的時候,需要選擇不引起疲勞的談色調圖標,
可以參考我寫的軟件,讓你很快又一個思路, 需要購買源碼的可以聯系我。
GMap.NET 主要的設計規划如下:
1.百度地圖支持
在谷歌地圖的基礎上,增加了對百度地圖的支持,如果將來Google地圖萬一被牆,也沒有關系。
2.圖層
增強圖層對圖元的約束,將圖元的風格定義轉移到圖層上面來,對圖層的定義變化將更新到該圖層的所有圖元,保證了同一個圖層的圖元風格必然是同一的,添加標注的時候,不需要對圖元的風格進行個性化定義。
2.1.圖層定義持久化到遠端服務器,不在本地持久化,這樣可以保證將變化同步到到所有的客戶端,解決地圖更新的同步問題;
2.2.增加圖層圖標定義、名稱、標注可見范圍, 圖層和文字標注可以根據Zoom的大小而動態調整可見不可見,這樣可以減小地圖的數據加載量,提高地圖的美觀和性能;
2.3.圖層增加、刪除、修改、編輯功能,所有的更新將會同步到其他的客戶端上;
2.4.增加動畫圖層,使得該圖層的圖元可以是GIF格式的動畫展示在地圖上,如交通燈、報警信號等。
2.5. 增加多種圖層類型,如PNG圖片、GIF動畫、圓、矩形、區域、路線軌跡圖層等;
3.地標
3.1.支持在線標注並持久化,反映到所有的客戶端;
3.2.可以設置地標所在業務部門歸屬,並形成樹狀架構顯示;
3.3.設置所在圖層,風格自動遵循圖層定義;
3.4.在線移動、增加、修改、刪除地標;
3.5.自動設置地標的圍欄,形成圍欄報警;
3.6.增加了角度的參數,地標可以以不同的角度展示。
4.軌跡
4.1.軌跡增加了箭頭來指示方向;
4.2.小車移動時,自動根據方向來調整車輛圖標的角度;
4.3.自動計算軌跡的里程;
5.火星坐標、偏移、加偏和糾偏處理
5.1在地圖上對坐標處理,無偏差顯示;
6.地理位置解析
6.1.對於無意義的經緯度坐標,轉換成可讀性強的地理位置.