ArcObjects與ArcGIS Engine
1、ArcObjects在ArcGIS係列產品中,ArcGIS Desktop、ArcGIS Engine和ArcGIS Server都是基於核心組件庫ArcObjects搭建的。
所謂ArcObjects,現在一般都是指ArcGIS Desktop版本的組件開發集,即需要安裝ArcGIS桌麵版軟件後才能安裝這些組件開發集,它是所有版本中組件最全的版本。
ArcObjects組件庫有3000多個對象可供開發人員調用,為開發人員集成了大量的GIS功能,可以快速的幫助開發人員進行GIS項目的開發。由於ArcGIS Desktop、ArcGIS Engine和ArcGIS Server三個產品都是基於ArcObjects搭建的應用,那麼對於開發人員來說ArcObjects的開發經驗在這三個產品中是通用的。開發人員可以通過ArcObjects來擴展ArcGIS Desktop,定製ArcGIS Engine應用,使用ArcGIS Server實現企業級的GIS應用。ArcGIS可以在多種編程環境中進行開發,其中包括:C++、支持COM的編程語言、.NET、Java等。
2、ArcObjects二次開發
(1)ArcGIS Desktop SDK(Software Development Kit,即軟件開發工具包)(即1中的ArcObjects)
ArcGIS Desktop SDK包含在ArcView、ArcEditor和ArcInfo中,支持COM和.NET開發。用戶可以應用ArcGIS Desktop SDK來擴展ArcGIS Desktop的功能,例如添加一些新的工具,定製用戶界麵,增加新的擴展模塊等。
(2)ArcGIS Server SDK
ArcGIS Server實現了一套標準的Web GIS服務(例如:製圖,訪問數據,地理編碼等),支持企業級應用。ArcGIS Server SDK使得開發人員可以建立集中式的GIS服務器來實現GIS功能,發布基於Web的GIS應用,執行分布式GIS運算等。
(3)ArcGIS Engine
2004年,美國ESRI發布ArcGIS Engine,ArcGIS Engine開發包提供了一係列可以在ArcGIS Desktop框架之外使用的GIS組件,ArcGIS Engine的出現對於需要使用ArcObjects的開發人員來說是個福音,因為ArcGIS Engine發布之前,基於ArcObjects的開發隻能在龐大的ArcGIS Desktop框架下進行。
ArcGIS Engine 是對ArcObjects的再封裝,有兩種產品:
ArcGIS Engine SKD—包括開發者建立解決方案所需的組件和工具集。
ArcGIS Engine Runtime—運行定製的ArcGIS Engine應用程序所需的基礎設施。
由於使用ArcObjects開發的程序必須安裝桌麵版軟件,這使得它的開發成本大大增加。處於產品策略上的考慮,ESRI將ArcObjects中的某些組件集單獨封裝出來,起名為ArcGIS Engine,使用ArcGIS Engine開發的軟件需要在一個Runtime下運行,而不需要安裝ArcGIS軟件。
因此,ArcGIS Engine隻是ArcObjects的一個子集,使用ArcGIS Engine開發的軟件,在ArcObjects環境中使用沒有問題,但是ArcObjects開發的程序,如果使用的組件庫不被包含在ArcGIS Engine中,就無法使用,比如IIdentifyDialog對象,就是隻有在ArcObjects中才能使用。除此以外,ArcObjects版本的控件隻有MapControl和PageLayoutControl兩個,而ArcGIS Engine的控件就豐富的多。
3、ArcObjects與ArcGIS Engine的聯係與區別
(1)聯係:
ArcGIS Engine包括核心ArcObjects的功能,是對ArcObjects中的大部分接口、類等進行封裝所構成的嵌入式組件;ArcGIS Engine中的組件接口、方法、屬性與ArcObjects是相同的。
(2)區別
開發環境:ArcObjects必須依賴ArcGIS Desktop桌麵平台,即購買安裝了ArcGIS Desktop的同時,安裝ArcObjects,才能利用ArcObjects進行開發;ArcGIS Engine是獨立的嵌入式組件,不依賴ArcGIS Desktop桌麵平台,直接安裝ArcGIS Engine SKD和Runtime後,即可利用其在不同開發語言環境下開發和應用;
功能強弱:ArcObjects的功能更強大,ArcGIS Engine的功能相對弱些,ArcGIS Engine不具備ArcObjects的少部分功能。
4、ArcGIS10和ArcGIS9中ArcObjects和ArcEngine之間關係有所改變
最後更新:2017-04-03 07:57:12