`
flyingis
  • 浏览: 297729 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ArcIMS 连接器--.NET Link 使用方法

阅读更多
    作者:Flyingis    

    前几天马维峰写了一篇关于ArcIMS文章——《浅析ArcIMS》,主要分析了ArcIMS的基本体系结构和几种二次开发模式的简单对比,比笔者之前的《ArcIMS体系结构》分析的透彻许多。

    ArcIMS二次开发,关注最多的无非是它的连接器(connector)和ArcXML。在这些连接器中,Servlet Connector通过纯粹的ArcXML文件来传输请求和响应,ColdFusion Connector在其自身的运行环境中使用自定义tags来产生ArcXML请求和响应,Java Connector和ActiveX Connector比较类似,通过一组API(Java Connector还有标签库)来产生ArcXML请求和响应,它们是面向对象的开发方式,比较符合一般程序员的思维习惯。.NET Link比较特殊,最初我认为它和Java Connector、ActiveX Connector一样,通过一系列API来定义、生成ArcXML文件中的节点与属性,但事实上并非如此,简单来说,它仅仅是对XML文件的一种搭配与组装,使用.NET Framework中对XML文件的操纵方式拼装出所需的ArcXML请求,并接受ArcIMS应用服务器的响应,其参考手册中只有服务连接和AxlRequest相关的几个类的说明,也难怪ESRI为什么要给它要取名为.NET Link,而不是.NET Connector。

    离ArcGIS 9.2正式发布已经没有多长时间,.NET Link能否得到改进至少像它的前辈ArctiveX Connector一样还不清楚。.NET Link的这种开发方式使得开发人员需要更多的关注ArcXML_reference,下面将简单说明.NET Link的使用方法。

    首先,需要将.NET Link的程序集引用到开发环境中,我使用的是Visual Studio 2005,需要说明的是ArcIMS 9/9.1 的.NET Link在VS2003和VS2005中都能工作的很好,兼容性不错。这样ESRI.ArcIMS.Server.dll就加入了项目中。
  
    第二步,建立到ArcIMS应用服务器的连接。

using ESRI.ArcIMS.Server
……
ServerConnection connection 
= new ServerConnection();
connection.Host
= "localhost";
connection.AppServerPort 
= 5300;
connection.Scheme 
= Scheme.TCP;

    如果需要建立一个HTTP连接,端口为80,可以将以上语句改为

connection.Scheme = Scheme.HTTP; 
connection.Host 
= "http://www.yourdomain.com";
connection.URIPort 
= 80;

    第三步,发送一个ArcXML请求。在.NET Link中发送ArcXML请求,其实质就是对ArcXML文件的一种拼装。
  
// 获取默认的地图服务
connection.ServiceName = "ServerSample";
// 建立一个 XML String,即 axl
string sAXLText;
// 在 sAXLText 中写入定制的 axl 文件
sAXLText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ARCXML version=\"1.1\">";
sAXLText 
= sAXLText + "<REQUEST><GET_IMAGE><PROPERTIES>";
sAXLText 
= sAXLText + "<IMAGESIZE width=\"300\" height=\"250\"/>";
sAXLText 
= sAXLText + "<ENVELOPE minx=\"-132.0\" miny=\"25.0\" maxx=\"-57.0\" maxy=\"50.0\" />";
sAXLText 
= sAXLText + "<LEGEND display=\"false\" />";
sAXLText 
= sAXLText + "</PROPERTIES></GET_IMAGE></REQUEST></ARCXML>";
string response = conArcIMS.Send(sAXLText);

    最后,需要处理ArcXML响应。

System.Xml.XmlDocument axlResponse = new System.Xml.XmlDocument();
axlResponse.LoadXml(response); 
if (axlResponse.GetElementsByTagName("OUTPUT").Count == 1)

    
// 从 ArcIMS 应用服务器响应中获取 "OUTPUT" XmlNode 节点的集合,并且节点只有一个
    System.Xml.XmlNodeList nodeOutput = axlResponse.GetElementsByTagName("OUTPUT");
    
// 获取这个节点的 url 属性值
    imageURL = nodeOutput[0].Attributes["url"].Value;
}

    最后获得的imageURL就是之前客户端用户发送请求需要服务器返回的图片地址,用户每次对地图操作后看到的结果,其本质就是一张张图片。

    现在思路比较清晰了,ArcIMS地图服务发布后,其展现的内容主要是由开发中所定制的ArcXML文件的内容所决定,开发人员需要面对大量ArcXML中的子元素及其属性设置,对于面向对象的开发而言显然是笨了一些,但从原理上来说,还是比较简单的,关键就是要看开发人员对ArcXML文档的熟悉程度了。
  
    使用.NET Link进行ArcIMS二次开发的过程中,对ArcXML的子元素和属性进行操纵与设置不是一件令人愉快的事,但其中真正的困难还要数客户端大量javascript脚本的应用和数据传递,有机会拿一两个简单例子讨论一下。
分享到:
评论

相关推荐

    ARCIMS配置中文-7

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    ArcIMS .net ADF

    在描述中提到的"ArcIMS .net ADF DEMO",很可能是包含了一些示例代码或应用程序,展示如何使用.NET ADF与ArcIMS进行集成。这些演示可能涵盖了地图服务的发布、查询、图层管理、空间分析等功能,帮助开发者快速理解和...

    ArcIMS和ASP.NET代码实例

    ArcIMS是由Esri公司开发的一款用于构建地图服务和地理空间Web应用程序的工具,而ASP.NET是微软公司推出的Web应用程序框架,它允许开发者使用.NET Framework创建动态网站、Web应用程序和服务。 本实例提供了C#语言...

    arcims二次开发

    .Net 开发是利用arcims应用连接器.Net Link 来实现的.Net Link 主要是适用于在.Net 平台开发基于arcims的webgis应用,与其它连接器不同在于.Net Link 需要在开发的应用程序中建立创建和解析arcxml的机制。...

    ArcIMS开发

    4. **Dotnet_tutorial.pdf**:这是一个详细的.NET教程文档,可能包含了ArcIMS开发的步骤、最佳实践、API使用方法等内容,是学习ArcIMS .NET开发的重要参考资料。 5. **readme.txt**:这是标准的项目说明文件,通常...

    ARCIMS配置-11

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    850552ArcIMS .NET 开发示例

    【标题】"850552ArcIMS .NET 开发示例" 是一个与地理信息系统(GIS)相关的开发资源包,特别针对Esri公司的ArcIMS产品,利用.NET框架进行开发。ArcIMS是Esri早期提供的一项服务,用于构建和发布网络GIS应用程序。 ...

    arcims安装方法

    了解 ArcIMS 是如何通过连接器、ArcIMS 应用服务器和 ArcIMS 空间服务器来处理请求的,能够了解 ArcIMS 的运行机制,从而可以对 ArcIMS 进行性能分析。 此外,还需要熟悉 ArcSDE 和 ArcSDE API。在一个 ArcIMS 的...

    ARCIMS配置-10

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    Open ArcIMS ActiveX Template-开源

    Open ArcIMS ActiveX模板是预构建的,模块化的,通用的,可重用的代码库,可与ESRI的ArcIMS版本3+ Internet映射服务器的ActiveX连接器配合使用,并使用dhtml,ASP 3和vbscript创建以在Microsoft IIS上使用。

    arcims安装部署手册

    - **步骤**:修改Tomcat安装目录下的`conf/server.xml`文件,将HTTP连接器的端口由默认的8080改为80。 - **验证**:在浏览器中输入`http://localhost/`,确认能够显示Tomcat欢迎页面。 ##### 4. 安装ArcIMS 9.3 - *...

    ArcIMS轻松入门

    - 通过本书的学习,读者将能了解ArcIMS的定位及其体系结构,掌握一种安装方法,并学会使用Author、Administrator和Designer进行简单的网络地图发布。 - 此外,还将了解如何获取更多深入学习的资源。 #### 二、...

    arcims

    例如,文章提到了使用jython进行快速开发或原型化的方法,这表明除了传统的开发平台如ASP、Java、.NET和ColdFusion,Python编程语言(尤其是jython,即Java平台上运行的Python解释器)也成为了ArcIMS二次开发的一种...

    ARCIMS配置-8

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    ARCIMS配置-3

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    ARCIMS配置-5

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    ARCIMS配置-6

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    ARCIMS配置-9

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    ARCIMS配置-4

    ARCIMS配置中文文档,入门级的中文教程,介绍比较详细.

    基于J2EE和ArcIMS的地籍管理WebGIS-----南京地税地理信息系统

    ### 基于J2EE和ArcIMS的地籍管理WebGIS关键知识点解析 #### 一、引言 本文探讨了一种新型的地籍管理WebGIS(Web Geographic Information System)开发模式,该模式结合了J2EE(Java 2 Platform, Enterprise ...

Global site tag (gtag.js) - Google Analytics