|
|
產品概述 |
|
|
JLKEngine中間件平臺是采用ArcEngine+C#開發完成,其目的是為GIS應用提供一個快速開發構建平臺,縮短GIS業務應用系統開發周期,降低GIS應用集成的開發門檻。其特點是通過可視化的構件協同建模,提供基于事件驅動和構件化的GIS應用集成框架,采用可視化拖放構件進行組裝、采用動態插件加載配置的方式來完成GIS應用集成,從而大大簡化了應用集成的復雜性,有效提高了GIS應用系統的易用性和可操作性。因此,JLKEngine中間件平臺不僅是解決企業綜合GIS應用系統的信息互通、數據高度共享和應用快速整合的中間件產品,更是能夠滿足GIS各種應用需求的集成的、可伸縮的、全面的中間件產品。
JLKEngine中間件平臺是一個易學易用、所見即所得的二次開發工具,具有高開發效率、統一的編程模型、高度集成的框架核心,支持VB、VC和.NET所支持的各種開發語言。該產品是按照AO接口規范,在AE下重寫AO部分底層類庫,并按照統一的編程接口進行歸類分組,以DLL動態鏈接庫的方式提供二次開發接口。另外,平臺還增加了圖層樹管理控件、符號庫管理控件等更多具有定制靈活、擴展性強的可視化用戶控件,輸入輸出接口結合了對象結構的優點,使開發者更易于理解,并進一步簡化了編程工作量。JLKEngine中間件平臺提供的JLKEngine Framework框架類庫為基于AE標準接口ICommand及ITool接口開發出的行業應用插件有機集成提供了一個統一框架運行時,通過平臺提供的應用插件配置管理工具有機地整合到應用框架中,從而可快速搭建出不同行業的綜合GIS應用系統。

基于ArcGis的桌面應用系統框架主界面
|
|
產品組成 |
|
|
中間件二次開發平臺:基于ArcEngine的中間件(簡稱JLKEngine)采用VS2005(VS2008)+C#+ArcEngine9.1(9.2及9.3)進行開發,是按AE對象的處理為目的進行的AO底層類庫的二次封裝,JLKEngine中間件平臺是以快速進行GIS應用系統開發為出發點進行設計開發的,他是一個易學易用的二次開發工具、支持多元化語種、高開發效率、具有統一編程模型,統一中間件運行庫。該平臺提供的JLKEngine Framework為基于ArcGIS Engine的桌面GIS應用程序提供了統一的開發規范和標準,框架中封裝了從工具欄菜單到工具條按鈕的動態創建操作、插件窗體的浮動及??靠刂?、提供了圖層樹、鷹眼視圖、符號庫等標準的UI界面定制控件。此外,還設計了基于Service架構的服務器容器,提供了通用的插件命令池容器,使得應用系統開發人員只需要少量代碼,并利用已有的命令和工具插件可快速構建起一個應用系統。
數據采集與建庫平臺:數據采集是GIS應用系統的基礎,可進行絕大多數的ArcGIS格式和CAD格式的導入/導出,可以自定義數據集(圖層)、數據字典,支持多人協作工作,通過數據合并功能將不同小組和人的工作合并的數字化工作、可進行導入數據的影像幾何糾正、柵格數據矢量化、坐標系轉化、投影轉換、可以通過直接定點或GPS定點輸入數據點信息,通過表格和圖形方式輸入地圖要素信息點,還可以進行圖形拼接。數據建庫是對前端數據采集工作獲得的矢量數據,完成入庫前的數據編輯、拓撲檢查以及提供各種常用GIS數據格式的轉換處理功能;另外,提供空間數據的投影轉換及坐標轉換功能以及符號庫的制作管理。
數據管理平臺:數據管理模塊采用多數據源,多比例尺度,多格式數據“一庫集成”數據管理模式,實現了4D(DLG,DRG,DEM,DOM)與屬性文本數據的一體化集成管理。該模塊提供對矢量數據和柵格數據的圖文一體化管理,具有屬性數據以及數據字典管理表的編輯維護功能。數據管理提供類似ArcCatalog一樣的數據組織、管理工具,可以實現SDE數據庫、個人數據庫等的綜合管理。包括:要素集的管理,SDE圖層的管理(表字段新增、刪除功能)、版本注冊管理、投影管理,數據導入導出管理、提供圖層的檢查規則功能、提供元數據管理功能,提供整個數據庫的全量或增量式備份恢復、各種數據格式相互轉換以及提供SDE空間數據庫的分布式部署和管理。
后臺支撐服務平臺:后臺服務模塊是基于ArcEngine的中間件的核心,具有較高的開放性和二次開發能力。后臺服務模塊具有地圖服務、屬性服務、空間分析服務、元數據服務和專題圖服務等,還提供強大的開發組件庫,為ArcServer及ArcIMS Web應用提供強大的二次開發接口。
應用框架平臺(應用系統集成框架):JLKEngine中間件提供基于ArcEngine開發應用系統所必需的基礎應用模塊。該應用框架主要包括地圖瀏覽、地圖編輯、信息查詢、空間分析、專題圖制作和數據共享等應用模塊。該應用框架平臺通過XML配置文件來動態生成系統菜單及工具欄,任何應用插件只要滿足AE的標準接口ICommand或ITool接口就能自動集成到該應用擴展框架,引用平臺提供的框架類JLKEngine FrameWork就能完成應用插件與框架地圖的交互操作、數據信息的傳遞。另外提供應用系統運行參數配置工具以及系統菜單、工具欄配置管理工具以及數據上載到SDE數據庫的初始化管理工具。

基于ArcGis的土地利用規劃修編及實施管理系統主界面
|
|
技術特點 |
|
|
先進的技術構架----基于C#+ArcEngine+ArcSDE開發,以構件化為目標,組件式開發技術,插件式動態調用技術實現相對自由的用戶定制功能;
良好的可擴展能力----提供對多數據源的統一管理以及支持多應用的多文檔管理;
良好的應用集成能力----提供了與工作流平臺交互、ArcIMS信息發布等擴展方式;
良好的開放性及嵌入能力---- 除基于ArcEngine的二次開發外,也適用ArcMap的二次開發應用;
很好的可重構性----具有“分解再重裝”的顯著特點,能夠反復重用,多次重用,為平臺提供可靠穩定的保障;
界面的友好性--------可定制更加個性化,更加靈活的界面,采用模板方式動態配置管理;

基于GIS的工作流協同辦公系統框架主界面
|
|
開發特性 |
|
|
JLKEngine中間件平臺在二次開發方面除具備在ArcEngine環境進行組件化應用開發以及提供的插件開發機制以外,還具有以下二次開發特點:
采用類IE瀏覽器的多地圖文檔處理;
提供*.Style文件在AE環境的應用支持;
提供多SDE空間圖層樹配置及應用管理;
提供空間圖層專題渲染方案存儲及應用管理;
采用類AutoCAD的數字化編輯模式進行地圖處理;
提供與工作流平臺進行用戶權限管理的應用接口;
提供多數據源多SDE服務器分布式管理;
提供了符號庫制作管理構件 ;
提供了類ArcCatalog的數據管理構件;
提供了類ArcMap的數據采集及建庫構件;
提供了快速構建GIS應用系統的開發框架;

基于ArcGis開發的空間數據管理平臺框架界面
|
|
產品價值 |
|
|
縮短應用的開發周期;
節約應用的開發成本;
減少系統初期的建設成本;
降低應用開發的失敗率;
保護已有的投資;
簡化應用集成;
減少維護費用;
提高應用的開發質量;
保證技術進步的連續性;
增強應用的生命力。

制圖模板設計及輸出系統主界面
|
|
框架設計 |
|
|

總體框架設計
|
|
運行邏輯設計 |
|
|

運行邏輯設計
|
|
插件運行解析 |
|
|

插件運行解析
|
|
與SuperFlow接口 |
|
|

與SuperFlow接口
|
|
二次開發介紹 |
|
|
在JLKEngine中間件平臺中提供了一個應用程序框架類Framework,該框架類主要的用于管理和維護主應用程序中的界面元素,如菜單、工具欄、地圖控件、命令行窗體等,通過在主程序中使用Framework,只需要將界面元素傳遞到系統中定義的包裝類后再傳送到Framework中,并調用Framework方法后,對界面上元素的基本操作所產生的事件將由Framework來實現處理和轉化。
平臺總體上劃分為如下幾個層次:
JLKEngine核心庫:它是JLKEnigne的運行基礎,定義了框架運行模型、框架擴展模式、并對ArcGIS Engine中可用的操作進行了封裝,提供了一組函數實現對空間數據的快速處理,以便于在基于ArcGIS Engine的應用系統開發中應用以簡化開發工作難度。
GIS基礎功能庫:它是在ArcGIS Engine基礎上按地圖制圖、數據編輯、網絡分析、三維分析等對數據處理劃分的一組類庫。在這組類庫中實現了對數據分析處理所需要的各種用戶操作界面以及一些快捷的處理函數。
應用擴展(菜單及工具欄)插件包:該包是在上面2層基礎上,封裝的一組可直接集成到應用系統中的命令和工具,它們都派生于ArcGIS Engine的BaseCommand和BaseTool類。插件包是根據GIS應用系統開發特點進行劃分的,包括基礎工具包、制圖工具包、數據管理工具包、網絡分析工具包、三維分析工具包、Scence工具包、Globe工具包等。
|
|
框架加載的序列 |
|
|

框架加載的序列
|
|
JLKEngine核心庫 |
|
|

JLKEngine核心庫類依賴關系圖
|
|
JLK.Utility包 |
|
|
該包是整個框架的基礎包,其中封裝了ArcGIS Engine的基礎函數庫。主要有如下功能:1,顯示控制類:顏色管理,要素閃爍,創建線面對象以及要素旋轉的顯示回饋。2,數據訪問類:包括數據的導入導出、數據格式轉換(提供shp、sde和個人數據庫要素類和dxf、mapinfo數據格式的相互轉換),可支持南方cass數據的導入等。3,屬性查詢類:提供了屬性查詢對話框以一組查詢函數。4,Style符號庫類:提供了對ArcGIS Desktop的style符號庫的讀取類庫,使得在ArcGIS Engine中也可以直接使用style類型的符號庫數據,而不需要把style符號庫文件轉換為serverstyle符號庫文件。5,地圖輸出類。
|
|
JLK.Framework |
|
|
該包是構建應用程序運行框架的核心包,其中包括了框架的基本接口定義,如框架接口、應用程序的菜單工具欄管理接口、??抗芾斫涌?、右鍵菜單接口等的定義。
菜單工具欄管理接口、??抗芾斫涌?、右鍵菜單接口等由于采用不同的用戶界面,其實現方式有很大差異,在本系統中基于.net中的菜單工具欄控件提供了一種標準框架的實現,同時也基于第三方菜單工具欄控件另外的一種框架實現方式。
在該包中提供了一個應用程序框架類,提供應用系統中菜單工具欄的事件處理以及地圖控件的事件處理,并實現了一種插件的動態加載機制,使得派生于BaseCommand和BaseTool的插件,可以方便的配置到應用系統中,而不需要對應用系統框架作任何修改。
|
|
JLK.Catalog數據管理包

|
|
|
JLK.Catalog數據管理包提供了對空間數據的管理維護目錄結構的實現。類庫包含數據管理目錄樹的定義和實現??捎糜诰S護計算機上的目錄層次結構及系統所能支持的文件和數據類型。此外還包括了新建空間數據庫連接界面、要素類和表的新建和維護界面、數據庫屬性界面,數據轉換界面等;空間數據投影變換公共類定義以及空間投影信息維護的用戶界面。
|
|
JLK.Symbol符號包 |
|
|
該包提供了對符號庫的管理維護操作的用戶界面,使得在ArcGIS Engine中可以對符號庫進行管理和維護,系統中所提供的符號庫管理界面即能用于的style符號庫的管理和維護,也能支持對serverstyle符號庫的管理和維護。
提供了對ArcGIS Engine所支持的樣式的繪制實現類。同時在該包里提供了一組符號控件,如符號按鈕控件、符號組合框控件等。同時系統實現了對style符號庫的管理編輯界面,包括符號庫管理器、符號選擇器、點、線、面、文本符號編輯器等。

|
|
JLK.DDDBaseTool |
|
|
三維基礎工具包,提供了對三維模式下對數據顯示、處理、分析等的一組基本的類和函數庫,包括三維模式下編輯操作支持類、三維文檔管理類等類。
|
|
JLK.ControlExtend |
|
|
控件擴展包。結合具體應用系統的開發需要,在該包中提供了一組基于.net控件和其他第三方控件的一些擴展,以滿足本框架開發的需要,同時這些控件,也可以滿足用戶在進行系統開發時,其他方面的一些使用要求。
|
|
GIS基礎功能庫 |
|
|
該部分主要包括地圖制圖、地圖編輯、地圖輸出、網絡分析、三維分析等類庫,類庫依賴關系如下圖所示:

|
|
JLK.Carto制圖處理類庫 |
|
|
JLK.Carto提供了層操作、層管理、圖形裁剪等處理類,包含了對圖層操作和形裁剪處理的函數,以及圖例、格網、圖層屬性、比例尺和比例尺文本設置的一組用戶界面。提供了專題渲染所需的一組用戶界面,包含唯一值渲染、唯一值多字段渲染、匹配符號庫、點密度、比例符號渲染、分級符號渲染、餅圖/直方圖渲染等。
|
|
JLK.DDDAnalyst三維分析類庫 |
該模塊提供了創建Tin、等高線、要素到柵格、各種插值等用戶界面。
|
|
|
|
JLK.Editor |
數據編輯類庫。JLK.Editor提供了對幾何對象編輯處理的函數以及要素屬性編輯、幾何數據編輯和注記編輯等一組用戶界面。
|
|
|
|
JLK.NetworkLib |
網絡分析類庫,提供對網絡分析支持。
|
|
|
|
JLK.Controls |
|
|
主要為本框架運行所提供的對ArcGIS控件的在包裝,以滿足本框架運行的要求,如地圖控件和頁面控件組合窗體控件、圖層樹控件等。
|
|
應用擴展(菜單工具欄)插件包 |
|
|
該部分主要是在以上類庫基礎上開發的可以直接在應用系統中應用的一組命令和工具。命令和工具類的實現分別派生于ArcGIS Engine所提供的BaseCommand或BaseTool。
|
|
PlugManage.BaseTools |
|
|
該類庫包中主要包含了GIS應用系統所具有的基礎工具,如放大、縮小、查詢選擇等基本工具。
|
|
PlugManage.CartoLib |
|
|
該類庫包含了和地圖制圖相關的一組工具包。
|
|
PlugManage.DataMangement |
該類庫提供了數據管理相對應的一組工具包,它主要是用于數據管理應用系統,用于實現對數據管理系統中各種數據庫操作的需要,如新建要素類等命令。
|
|
|
|
PlugManage.EditorLib |
編輯插件提供了GIS應用系統的編輯工具插件,如草圖工具、要素圖形編輯、要素屬性編輯、刪除要素等一組工具,它可以滿足基于ArcGIS Engine的應用系統構建中基本編輯功能的需要。
|
|
|
|
PlugManage.NetworkAnalystTools |
網絡分析工具插件包提供了一組基本的網絡分析工具,可以用于處理最短路徑等基本網絡分析功能。
|
|
|
|
PlugManage.DDDAnalyst |
三維分析插件提供了一組三維分析插件,用于進行數據的三維分析處理。
|
|
|
|
sceneTools |
Scence插件提供基于Scence開發所需要的一組基本工具,包括視圖控制、基于Scene的要素編輯工具、動畫制作、基本的三維建模工具等。
|
|
|
|
GlobeTools |
該插件提供基于Globe控件開發所需要的一組基本工具,包括視圖控制、基于Globe的編輯工具等。
|
|
|
|