您的位置:GIS门户网 WebGIS 正文
GIS网内容搜索
GIS网热门内容
GIS网推荐内容
GIS网最新内容
提出意见和建议

WebGIS系统的设计与实现(2)

GIS门户网提示:本文章共4017字,分3页,当前第2页,快速翻页:
 

在运行于不同进程中的对象之间建立通信(无论是在同一台计算机上,还是在相距数千公里的计算机上)是常见的开发目标。通过 .NET 远程处理,客户端应用程序可以使用同一台计算机(或其网络中其他任何可用的计算机)上的其他进程中的对象。可以从 Web 应用程序、控制台应用程序、Windows 服务进行通信。因此我们将基于.net Remoting技术实现GIS服务器。

MapRender接口
3.jpg
 

我们首先设计如下的一个MapRender接口,在服务器端实现之,客户端则通过Remoting远程调用,使用Server端的服务。



MapService类
4.jpg 



MapService实现了MapRender接口,提供Map服务,返回生成的Map的文件名。其实现是通过bridge模式,调用 _mapEngine 来完成具体的操作。在构造函数(New)内,使用Factory模式初始化  _mapEngine,打开数据(如下代码),在Dispose中关闭数据。

 

 1Dim strMapEngine As String
 2strMapEngine = "Simple"
 3
 4Select Case strMapEngine
 5    Case "Simple"
 6        _mapEngine = New SimpleMapEngine
 7    Case "Mo"
 8        _mapEngine = New MoMapEngine
 9    Case "Supermap"
10        _mapEngine = New SupermapMapEngine
11    Case Else
12End Select
13
14_mapEngine = New SimpleMapEngine
15_mapEngine.OpenMapDB("")
16

实际的程序可以从配置文件里读入需要的数据,然后初始化MapEngine,这里直接初始化为SimpleMapEngine。

MapEngine(具体的地图引擎)

5.jpg  

 


地图引擎首先实现了一个基类,然后在此基础上继承不同的引擎。对于使用MO和SuperMap的引擎,可以使用Adapter模式来实现。本文实现了一个“假的”Simple引擎只是返回一个已有的图片地址(Server Stub模式)。

[本来准备使用SuperMap Object实现一个Map引擎,但有些COM互操作的问题解决不了,暂时作罢,这样也有一个好处,即任何人都可以测试此程序]

启动Map Service服务

我们在Main函数内启动MapService服务:

1Dim chan1 As TcpChannel
2chan1 = New TcpChannel(8085)
3
4ChannelServices.RegisterChannel(chan1)
5RemotingConfiguration.RegisterWellKnownServiceType(GetType(MapService), "MapService", WellKnownObjectMode.Singleton)
6
7System.Console.WriteLine("Hit <enter> to exit")
8System.Console.ReadLine()
9


实际的实现,可以使用类似代码和配置文件,启动多个Map Service服务,供不同的地图程序调用。

测试Map Service服务

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

1Dim chan As TcpChannel
2chan = New TcpChannel
3ChannelServices.RegisterChannel(chan)
4_map = CType(Activator.GetObject(GetType(IMapRender.MarsWebGIS.IMapRender), "tcp://localhost:8085/MapService"), IMapRender.MarsWebGIS.IMapRender)
5
6

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

收藏本页:

点这里复制本页地址发送给您QQ/MSN上的好友

相关文章

奥运金牌榜-webgis平台应用开发
2008ESRI全球用户大户技术热点快递
WebGIS发布前GIS工程规划设计
gis webgis开发在农业gis中应用
java抗旱GIS开发实例
webgis二次开发在城市管网规化的应用案例
WebGIS学习
WebLogic Server 管理最佳实践
WebLogic域配置策略--手动和模板选项
在weblogic上配置SSL
转载:如何构建REST风格的WEB地图服务
Web2.0时代,百问不如一试
web服务器安全配置的五个小常识
FreeBSD是什么?FreeBSD的优缺点分析

相关评论


GIS门户网提示:本文章所属分类:首页 WebGIS
GIS

GIS