用Data source-specific APIs 编程

系统 1774 0

ArcGIS Server APIs
SOAP
1)XML-structured 语言。
2)
server objects server object extensions 可用。
3)
设计用作 stateless 交互。
4)Catalog
请求由 IServerCatalogAdmin 接口处理。
5)Service
请求由 IRequestHandler 接口处理。
ArcObjects
1)
远程与 GIS Server 上的 ArcObjects 交互。
2)
使用客户端的 Primary Interop Assemblies (PIA) object libraries
3)
通过 SOM 访问获得 ArcGIS Server services
4)
设计用作 stateless stateful 交互。

ArcGIS Server MapResource 类型

A MapResourceInternet – 连接到 Web service endpoint

B MapResourceLocal – 连接到 Server Object Manager

1) 访问 ServerContext

2) 使用 ArcObjects

 

ArcGIS Server Internet: SOAP 编程

1)MapResourceInternet

MapServerProxy, 访问 value objects

2) 通讯是 stateless

3) 使用 pooled objects

Dim mapRes as ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceInternet

mapRes = gisFunc.Resource

Dim mapsProxy as ArcGISServer.MapServerProxy = mapRes.MapServerProxy

Dim mapInfo as ArcGISServer.MapServerInfo =

mapsProxy.GetServerInfo(mapsProxy.GetDefaultMapName())

Dim mapDesc as ArcGISServer.MapDescription = mapInfo.DefaultMapDescription

Dim mLayerInfo as ArcGIServer.MapLayerInfo()

mLayerInfo = mapRes.MapServerInfo.MapLayerInfos

Dim layerDescs as ArcGISServer.LayerDescription()

layerDescs = mapDesc.LayerDescriptions

 

ArcGIS Server Local: ArcObjects 编程

1) 远程访问 ArcObjects

2)MapServerLocal

MapServer > IMapServer (COM) >IMapServerObjects (COM)

3) 通过 .NET 部件访问高级的 functionality

 

Dim mapFunc as IMapFunctionality = Map1.GetFunctionality(0)

Dim ags_mr as ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal

ags_mr =

CType(mapFunc.Resource,ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal)

' Access the ArcObjects COM ServerObject directly

Dim mapServer as ESRI.ArcGIS.Carto. IMapServer = CType(ags_mr.MapServer,IMapServer)

Dim mapServerObjs as ESRI.ArcGIS.Carto.IMapServerObjects

mapServerObjs = CType(mapServer,IMapServerObjects)

Dim map as ESRI.ArcGIS.Carto.IMap = mapServerObjs.Map

' Now perform more ArcObjects operations

Dim featClass as IFeatureClass = CType(map.Layers(0)).FeatureClass,

 

 

深入 ArcGIS Server Local API

1)MapResourceLocal

通过 DCOM 访问 server 上的 ArcObjects

ServerContext

2) 所有的过程在远程完成

 

 

用Data source-specific APIs 编程

 

ArcObjects 远程编程

1) 能在服务器上创建新的对象

2)MapServerLocal

ServerContextInfo

ServerContext

3) 不需要 release servercontext

Dim ags_mr as ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal

ags_mr =

CType(qfunc.Resource,ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal)

' Create a new ArcObjects COM objects

Dim context as ESRI.ArcGIS.Server.IServerContext = ags_mr.ServerContextInfo.ServerContext

Dim pnt as ESRI.ArcGIS.Geometry.IPoint = context.CreateObject("esriGeometry.Point")

pnt.X = 60

pnt.Y = 100

Dim topo as ESRI.ArcGIS.Geometry.ITopologicalOperator = CType(pnt, Itopological)

 

常用开发模式

    --首先建立连接

Identity identity = new Identity("username", "pwd", "domain");
AGSServerConnection connection = new AGSServerConnection("fmc-pca187", identity);
connection.Connect();

--获得服务器对象

IServerObjectManager m_pSOM = connection. ServerObjectManager ;
IServerContext m_pServerContext = m_pSOM. CreateServerContext (" testMap" , "MapServer" ) ;
IMapServer pMapServer = m_pServerContext . ServerObject  as IMapServer ;

--使用服务器对象

IMapServerObject s pMapServerObject s = ( IMapServerObject s) pMapServer ;
IMap pMap = pMapServerObject s. get_Map (pMapServer .DefaultMapName) ;
IFeatureLayer p FLayer = ( IFeatureLayer) pMap. get_Layer(0) ;
IFeatureClass p FeatureClass = p FLayer . FeatureClass ;
int i = p FeatureClass. FeatureCount (null) ; 

--释放服务器对象

m_pServerContext . ReleaseContext () ;


  

  

 

 

用Data source-specific APIs 编程


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论