快速业务通道

使用.net Remoting和SuperMap Object设计WebGIS系统

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
用。

测试Map Service服务

我们可以创建一个WinForm程序来测试此Map Service服务,首先,添加MapRender接口IMapRender的引 用,对在Form Load事件里初始化远程对象MapService:

Dim chan As TcpChannel

chan = New TcpChannel

ChannelServices.RegisterChannel(chan)

_map = CType(Activator.GetObject(GetType(IMapRender.MarsWebGIS.IMapRender), 

"tcp://localhost:8085/MapService"), IMapRender.MarsWebGIS.IMapRender)

这样,我们就可以使用 _map 对象获取Map Service服务,返回需要的数据。

Dim strFileName As String
Dim img As Bitmap
Dim l, t, r, b As Double
l = CDbl(500000 * Rnd() - 2000000)
t = CDbl(500000 * Rnd() - 2000000)
r = CDbl(l + Rnd() * 10000000)
b = CDbl(t + Rnd() * 10000000)
strFileName = _path & _map.GetMap(t, l, r, b, _path)
Me.lblImg.Text = strFileName
img = New Bitmap(strFileName)
Me.picMap.Image = CType(img, Image)

运行结果如图 6所示:

使用.net Remoting和SuperMap Object设计WebGIS系统

图 6 GIS服务器测试运行

下面,我们就可以在使用ASP.net创建使用此远程服务的控件,在Web上使用GIS地图服务,实现WebGIS 。

4.2. Map Control的创建和测试

现在,我们已经可以在ASP.net开发中直接使用上面实现的Map Service,我们可以通过控制GetMap的 参数,来实现移动、大小缩放等基本功能。

为了文章的完整性,我们来封装一个简单的Map Control控件。

使用.net Remoting和SuperMap Object设计WebGIS系统

图 7 MapControl类

该控件在New事件内初始化 _map 调用远程的Remoting服务(Map Service),和前面的测试一样,可 以使用如下方法初始化:

_map = CType(Activator.GetObject(GetType(IMapRender.MarsWebGIS.IMapRender), "tcp://localhost:8085/MapService"), IMapRender.MarsWebGIS.IMapRender)

然后在Render事件内调用GetMap。我们可以在此控件内通过GetMap参数封装移动、大小缩放等基本功 能。

下面我们测试一下此控件。新建一个ASP.net页,增加以下引用:

<%@ Register Assembly="MapControlLibrary" Namespace="MapControlLibrary" TagPrefix="MapControlLibrary" %>

然后就可以使用控件:

<MapControlLibrary:MapControl id="Map1" runat="server">

</MapControlLibrary:MapControl>

运行结果如图 8所示:

使用.net Remoting和SuperMap Object设计WebGIS系统

图 8 IE中的运行结果示意

这样,我们就完成了一个简单的WebGIS框架。

5. 总结

该框架可以算作WebGIS的一个简单的纵剖面,由此我们可以明白WebGIS系统的架构,需要的技术,框 架设计和设计模式的应用。

由于笔者对于Remoting和ASP.net控件技术不太熟悉,文中难免有所疏漏,存在不少错误和问题,还欢 迎大家一起讨论。最后希望所有做GIS的同行可以更多关注架构和模式,提高我们的设计能力。

本文的开发测试环境为:

Windows XP

Microsoft Visual Studio 2005 Beta 2

SuperMap Object 3.2

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号