使用Geomedia WebMap生成和显示幅地图的方法与实现:
1.概述
Geomedia WebMap是美国Intergraph公司开发的运行于Windows平台下的WebGis(Geographic Information System地理信息系统)服务端产品,能使你很方便地通过Internet或Intranet发布你的Gis数据。 字串4
2.系统需求
服务端需要是Intel芯片的服务器,因为Geomedia WebMap是基于Intel芯片GPS设计的。操作系统可以选择WindowsNT4.0(Service Pack6)以上的Windows操作系统,然后需要安装解释客户请求的WebServer软件,数据库可以用能够被32位ODBC驱动访问的任何数据库软件。
3.实现
要写Geomedia WebMap脚本,你需要理解Asp(Active Server Page),加上Visual Basic Script,Java Script,Perl或者其他的脚本工具。由于Geomedia WebMap是组件式开发的,所以你也必须了解面向对象开发技术。
下面介绍生成和显示一幅地图的基本流程:
1)返回一个MapServer。该MapServer是主要的Geomedia WebMap对象,所有的通讯都通过这个对象。可以用下列语句来得到一个MapServer对象:
<%Set objSesMgr = Server.CreateObject("GMWebMap.MapServerManager")Set objMS = objSesMgr.MapServer("")
字串1
objMS.Clear%>Clear方法删除所有当前被MapServer定义的实体信息。
2)赋一个坐标系
objMS.SetCoordinateSystem "C:\Program Files\GeoMedia Web Map\Cfg\USA.csf"3)连接数据源,Geomedia WebMap可以支持许多不同的数据源,如:Access、Arc/Info、ArcView、CAD、MapInfo、ODBC、MGE、Oracle、SqlServer、Text File等。每一个成功的连接建立一个DataSource对象,所有DataSource被加到MapServer对象的DataSources集合中,你可以用MapServer.DataSources.item(“DataSourceName”)来访问每一个DataSource对象。
连接到Access数据源:
objMS.Connect "Access.GDatabase", _"C:\Warehouses:\USSampleData.mdb", _ 字串3 "", "USA"4)定义Feature Sets,有三种方法建立实体集-通过Query对象、QueryScript对象、Marker对象。
下面介绍如何生成Query对象,其他的可类似创建。
Set objQuery = MapServer.AddQuery("Name","Connection","Table")5)定义Feature Sets的Display Rule,可用
Set objDisplayRule=objQuery.NewDisplayRule
建立DisplayRule还需要以下工作流:
ü为实体数据建立和配置FeatureSymbology,然后将其赋给DisplayRule对象的DisplaySymbology属性。
Set objSym = objMapSvr.CreateObject("GMWebMap.GWMFeatureSymbology")'设置objSym的属性objSym.Color = RGB(0,0,255)objSym.Weight = 1objSym.Style = 0objDisplayRule.DisplaySymbology = objSymü为热区symbology建立和配置FeatureSymbology(可选)
ü设置显示范围过滤(可选)
ü赋提示信息和动作(可选)
ü赋一个图层名(可选)
ü赋优先级(可选)
6)定义输出地图的显示范围
Rng = objQuery.Range7)生成一幅地图
Set AS1=objMs.AddRangeAutoScale("AS1") 字串2
AS1.multiplier=1objMS.CreateMapByRange Rng(0), Rng(1), Rng(2), Rng(3), 500, 300, "AS1"根据用户的需求,Geomedia WebMap可以在服务端生成三种不同形式地图:ActiveCGM(Active Computer Graphics Metafile)矢量文件、Jpeg(Joint Photographic Experts Group)或Png(Portable Network Graphics)栅格文件,这些文件被存储在IIS的Intepub下的Cache目录下(该目录需要用户自己建立,是用来暂存生成的地图文件的,可以用Geomedia WebMap Administrator来设置多长时间清理一次所GIS存储的地图文件)。
8)显示生成的地图,这一步需要一个ActiveCGM控件来显示地图
该步的Html语言描述如下:
<CENTER><OBJECT classid="clsid:F5D98C43-DB16-11CF-8ECA-0000C0FD59C7" _WIDTH=500 HEIGHT=300 ><param name=FileName value="<%=objMS.OutputFile%>"></OBJECT></CENTER>到现在为止,一幅地图的生成和显示就完成了。客户端可以用标准的浏览器如Internet Explorer或Netscape Navigator来查看Geomedia WebMap的输出。
如果输出ActiveCGM地图,客户端浏览器需要下载一个免费的ActiveCGM控件。
如果用的是Internet Explorer浏览器,那么该控件是一个ActiveX控件,它被上载到客户端,然后自动探测并安装最新版本。如果用的是Netscape Navigator浏览器,那么该控件是一个插件,它可以自解压安装。或者你可以选择大多数浏览器都支持的Java Applet,它可以通过标准Java协议被自动下载到客户端。如果你的浏览器不支持ActiveCGM,可以选择生成不需下载控件就可以被大多数浏览器支持的Jpeg或Png文件。
另外,你也可以选择用Geomedia WebMap Administrator来生成地图,这样你可以省掉2-5步,只需调用Geomedia WebMap Administrator生成的地图。用下面的语句
objMs.LoadMss(FileName)
其中FileName是Geomedia WebMap Administrator生成的文件。
Geomedia WebMap还提供了Geomedia Web Application Generator辅助程序,这可以帮助你按向导一步步生成你所希望的完整的网站。
以上只是Geomedia WebMap的一些最基本的功能,Geomedia WebMap是一个功能很强大的WebGis产品,它提供了许多对象,灵活的运用它可以做出非常专业的网站来
浙公网安备 33010602011771号