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 = ""1.0" encoding="UTF-8"?>"1.1">";
sAXLText = sAXLText + "
sAXLText = sAXLText + "
sAXLText = sAXLText + "
sAXLText = sAXLText + "
0% (0)
0% (0)
