gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1027回复:0

使用Geomedia WebMap生成和显示一幅地图

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

返回顶部