连接ArcGIS Server服务器,连接Map Service服务,列出其中图层名。

讲过了如何搭建开发环境,我们来 构建第一个项目,当然前提是已发布了一个Map Service。我们将连接 ArcGIS Server服务器,连接Map Service服务,列出其中图层名。
1. 建立一个eclipse的java project;

2. 将\Program Files\ArcGIS\java\lib\arcobjects.jar添加到项目的Libraries;
3. 输入如下代码:
None.gif [Copy to clipboard] [  -  ]CODE:
ExpandedBlockStart.gifContractedBlock.gif
/**/ /**************************************************************
InBlock.gif*例程:连接ArcGIS Server服务器,连接Map Service服务,列出其中图层名
ExpandedBlockEnd.gif*************************************************************
*/

None.gifpackage com.brsc;
None.gif
None.gifimport java.io.IOException;
None.gifimport java.net.UnknownHostException;
None.gif
None.gifimport com.esri.arcgis.carto.
* ;
None.gifimport com.esri.arcgis.interop.AutomationException;
None.gifimport com.esri.arcgis.server.
* ;
None.gifimport com.esri.arcgis.system.
* ;
None.gif
ExpandedBlockStart.gifContractedBlock.gif
public   class  MyServer  dot.gif {
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif   
public static void main(String[] args) dot.gif{
InBlock.gif       
// 1。初始化服务器
InBlock.gif
com.esri.arcgis.system.EngineInitializer.InitializeEngine();
InBlock.gif
new ServerInitializer().initializeServer("california","administrator","server");
InBlock.gif       
//2。定义上下文
InBlock.gif
       IServerContext cxt=null;
ExpandedSubBlockStart.gifContractedSubBlock.gif       
try dot.gif{
InBlock.gif          
//3。建立连接
InBlock.gif
          ServerConnection conn= new ServerConnection();
InBlock.gif          conn.connect(
"california");
InBlock.gif          
//4。得到SOM
InBlock.gif
          IServerObjectManager som =conn.getServerObjectManager();
InBlock.gif          
//5。创建上下文
InBlock.gif
          cxt=som.createServerContext("coal12""MapServer");
InBlock.gif          
//6.得到coal12中的地图服务
InBlock.gif
          MapServer mapserver=(MapServer)cxt.getServerObject();
InBlock.gif          
//
InBlock.gif
          IMap maps=mapserver.getMap("");
InBlock.gif          
int layercount=maps.getLayerCount();
ExpandedSubBlockStart.gifContractedSubBlock.gif          
for(int i=0;i<layercount;i++)dot.gif{
InBlock.gif              ILayer ilayer
=maps.getLayer(i);
InBlock.gif              
//if(){}
InBlock.gif              
//FeatureLayer layer=(FeatureLayer)maps.getLayer(i);
InBlock.gif
              System.out.println("Layer name is "+ilayer.getName());
ExpandedSubBlockEnd.gif          }

InBlock.gif          
//
InBlock.gif
int fc=
InBlock.gifmapserver.queryFeatureCount(mapserver.getDefaultMapName(), 
1null);
InBlock.gif          System.
out.println("count is "+fc);
InBlock.gif          System.
out.println("name is "+mapserver.getDefaultMapName());
ExpandedSubBlockStart.gifContractedSubBlock.gif       }
 catch (UnknownHostException e) dot.gif{
InBlock.gif          
// TODO Auto-generated catch block
InBlock.gif
          e.printStackTrace();
ExpandedSubBlockStart.gifContractedSubBlock.gif       }
 catch (IOException e) dot.gif{
InBlock.gif          
// TODO Auto-generated catch block
InBlock.gif
          e.printStackTrace();
ExpandedSubBlockStart.gifContractedSubBlock.gif       }
finallydot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif          
try dot.gif{
InBlock.gif              cxt.releaseContext();
ExpandedSubBlockStart.gifContractedSubBlock.gif          }
 catch (AutomationException e) dot.gif{
InBlock.gif              e.printStackTrace();
ExpandedSubBlockStart.gifContractedSubBlock.gif          }
 catch (IOException e) dot.gif{
InBlock.gif              e.printStackTrace();
ExpandedSubBlockEnd.gif          }
          
ExpandedSubBlockEnd.gif       }

ExpandedSubBlockEnd.gif   }

ExpandedBlockEnd.gif}

1.解释:
1>   首先要初始化环境,初始化Engine 和 Server
com.esri.arcgis.system.EngineInitializer
com.esri.arcgis.system.ServerInitializer
EngineInitializer用静态函数static void InitializeEngine()
ServerInitializer用
void InitializeServer(”domainName”,”userName”,”password”)
由于AO是基于COM技术的,首先是需要初始化COM环境

2>   建立和Server的连接,com.esri.arcgis.server.ServerConnection

ServerConnection connection = new ServerConnection();
connection.connect(”serverName”);

3>   得到Server Object Manager(SOM),
com.esri.arcgis.server.ServerObjectManager

IServerObjectManager som =
connection. getServerObjectManager();
1,2,3步,可以理解为先初始化环境,再连接Server,再连接 Server中的SOM服务
   
4>   创建上下文,
IServerContext context =
som.createServerContext("serviceName", "MapServer/其他");
Server Context是为在服务器上运行的对象保留的一份空间,GIS Server对象也运行在这里,开发中AO对象的创建、运行也在这里。

5>   创建 MapServer对象 ,

MapServer mapserver=(MapServer)cxt.getServerObject();

MapServer是粗粒度的Server Object(服务器对象),提供对地图文件的访问,并提供查询与画出地图的方法(函数)。Map Web Control 就用于显示一个 MapServer对象;MapServer coclass实现了用于Display的接口:IMapServer 与 IMapServerLayout;也实现了用于Query ArcGIS map document (mxd,pmf)的接口:IMapServer 与 IMapServerData ;

6>   列出地图名称

转载于:https://www.cnblogs.com/gentlewolf/articles/821161.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值