gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
阅读:1120回复:0

数据字典在ArcView GIS中的实现与应用

楼主#
更多 发布于:2004-04-20 14:36
<P ><FONT size=3><B >摘<FONT face="Times New Roman">  </FONT></B><B >要:</B>数据字典保存了有关数据库结构的重要信息,对于数据库系统的开发、维护有重要的意义。<FONT face="Times New Roman">ArcView GIS</FONT>是一款地理信息系统软件,具有对属性数据的操作功能,本文就数据字典在基于<FONT face="Times New Roman">ArcView GIS</FONT>的地理信息系统开发中的应用进行了探讨,通过数据字典技术管理<FONT face="Times New Roman">ArcView</FONT>中的图层,实现程序代码与数据模型的分离,从而提高程序的适应性。</FONT></P>
<P ><FONT size=3><B >关键词:数据字典<FONT face="Times New Roman"> ArcView GIS   </FONT></B><B >图层<p></p></B></FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3>数据字典是数据库系统中用来保存非数据信息的数据库,它承担着管理数据资源、数据标准化等功能,以其重要性被称为“数据库的数据库”<SUP><FONT face="Times New Roman">[1][2]</FONT></SUP>。<FONT face="Times New Roman">ArcView GIS</FONT>是<FONT face="Times New Roman">ESRI</FONT>(环境系统研究所)开发的桌面地理信息系统软件,采用了一种无拓扑关系的矢量数据格式<FONT face="Times New Roman">shapefile</FONT>,同时具有管理、处理属性数据表的能力<SUP><FONT face="Times New Roman">[3][4]</FONT></SUP>。</FONT></P>
<P ><FONT size=3>在“计算机辅助区域地质调查实习系统”的开发过程中,我们尝试了将数据字典技术应用到<FONT face="Times New Roman">GIS</FONT>图层的管理中。该系统涉及到地质观察点图层、<FONT face="Times New Roman">GPS</FONT>点图层、地质路线图层、地质界线图层、断层线图层、地质体图层等多类图层,而建立各类图层的关键在于建立图层的属性数据表,传统的编程开发都是将数据与代码紧紧绑在一起,这种方法的缺陷在于程序代码严重依赖数据模型,不利于系统的维护、升级,开发过程中一旦图层的属性表的结构发生了更改,开发者将不得不更改大量的代码段。</FONT></P>
<P ><FONT size=3>鉴于<FONT face="Times New Roman">ArcView GIS</FONT>中的图层同数据库系统中的数据表存在相似性,在<FONT face="Times New Roman">ArcView GIS</FONT>中可以借鉴数据库系统中的数据字典来管理图层。简单地说,该数据字典主要包括以下几个数据表:<FONT face="Times New Roman"> </FONT></FONT></P>
<P ><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:path connecttype="rect" gradientshapeok="t"></v:path></v:shapetype><v:shape><v:textbox style="mso-next-textbox: #_x0000_s1026"><FONT face="Times New Roman" size=3></FONT></v:textbox></v:shape>
<TABLE cellSpacing=0 cellPadding=0 width="100%">

<TR>
<TD >
<DIV class=shape  v:shape="_x0000_s1026">
<TABLE  cellSpacing=0 cellPadding=0 border=1>

<TR >
<TD  vAlign=top width=77>
<P  align=center><B >图层编号<p></p></B></P></TD>
<TD  vAlign=top width=121>
<P  align=center><B >图层说明<p></p></B></P></TD>
<TD  vAlign=top width=76>
<P  align=center><B >图层类型<p></p></B></P></TD>
<TD  vAlign=top width=91>
<P  align=center><B >图例文件<p></p></B></P></TD></TR>
<TR >
<TD  vAlign=top width=77>
<P  align=center><FONT face="Times New Roman">001</FONT></P></TD>
<TD  vAlign=top width=121>
<P >地质观察点图层</P></TD>
<TD  vAlign=top width=76>
<P ><FONT face="Times New Roman">Point</FONT></P></TD>
<TD  vAlign=top width=91>
<P  align=center><FONT face="Times New Roman">Legend1.avl</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=77>
<P  align=center><FONT face="Times New Roman">002</FONT></P></TD>
<TD  vAlign=top width=121>
<P >地质路线图层</P></TD>
<TD  vAlign=top width=76>
<P ><FONT face="Times New Roman">PolyLine</FONT></P></TD>
<TD  vAlign=top width=91>
<P  align=center><FONT face="Times New Roman">Legend2.avl</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=77>
<P  align=center><FONT face="Times New Roman">003</FONT></P></TD>
<TD  vAlign=top width=121>
<P >地质体图层</P></TD>
<TD  vAlign=top width=76>
<P ><FONT face="Times New Roman">PolyGon</FONT></P></TD>
<TD  vAlign=top width=91>
<P  align=center><FONT face="Times New Roman">Legend3.avl</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=77>
<P  align=center>……</P></TD>
<TD  vAlign=top width=121>
<P  align=center>……</P></TD>
<TD  vAlign=top width=76>
<P  align=center>……</P></TD>
<TD  vAlign=top width=91>
<P  align=center>……</P></TD></TR></TABLE>
<P  align=center>表<FONT face="Times New Roman">1</FONT>:图层信息表</P>
<P  align=center><p><FONT face="Times New Roman"> </FONT></p></P>
<P  align=center><p><FONT face="Times New Roman"> </FONT></p></P>
<TABLE  cellSpacing=0 cellPadding=0 border=1>

<TR >
<TD  vAlign=top width=88>
<P  align=center><B >字段代号<p></p></B></P></TD>
<TD  vAlign=top width=112>
<P  align=center><B >字段名称<p></p></B></P></TD>
<TD  vAlign=top width=88>
<P  align=center><B >字段类型<p></p></B></P></TD>
<TD  vAlign=top width=88>
<P  align=center><B >字段宽度<p></p></B></P></TD>
<TD  vAlign=top width=88>
<P  align=center><B >小数宽度<p></p></B></P></TD></TR>
<TR >
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">QDEBGA</FONT></P></TD>
<TD  vAlign=top width=112>
<P  align=center>地质点编号</P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">CHAR</FONT></P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">8</FONT></P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">0</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">QDETYP</FONT></P></TD>
<TD  vAlign=top width=112>
<P  align=center>地质点类型</P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">CHAR</FONT></P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">1</FONT></P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">0</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">PADTHP</FONT></P></TD>
<TD  vAlign=top width=112>
<P  align=center>地质路线编号</P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">CHAR</FONT></P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">6</FONT></P></TD>
<TD  vAlign=top width=88>
<P  align=center><FONT face="Times New Roman">0</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=88>
<P  align=center>……</P></TD>
<TD  vAlign=top width=112>
<P  align=center>……</P></TD>
<TD  vAlign=top width=88>
<P  align=center>……</P></TD>
<TD  vAlign=top width=88>
<P  align=center>……</P></TD>
<TD  vAlign=top width=88>
<P  align=center>……</P></TD></TR></TABLE>
<P  align=center>表<FONT face="Times New Roman">2</FONT>:字段属性表</P>
<P  align=center><p><FONT face="Times New Roman"> </FONT></p></P></DIV></TD></TR></TABLE><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P><BR  clear=all>
<P ><FONT size=3>其中,表<FONT face="Times New Roman">1</FONT>是关于图层信息的数据表,主要保存系统中所存在的各图层的基本信息,其中[图层编号]字段中的值对于各个图层来说是唯一的,此编号由系统开发者编制,而非系统运行过程中随机生成。[图层类型]字段保存了各图层中空间对象的类型,[图例文件]字段中保存了缺省状态下系统为该图层配置的图例文件;表<FONT face="Times New Roman">2</FONT>是字段属性表,描述所有图层的属性表中包含的所有字段的信息,由于不同的图层可能包含同一字段,因此另有专门的数据表在图层与字段间建立链接。表2中各条记录(即各个字段)以<FONT face="Times New Roman">”</FONT>字段代号<FONT face="Times New Roman">”</FONT>相区别;表<FONT face="Times New Roman">3</FONT>表示了图层包含字段的关系。</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><v:shape><FONT face="Times New Roman" size=3></FONT></v:shape>
<TABLE cellSpacing=0 cellPadding=0 width="100%">

<TR>
<TD >
<DIV class=shape  v:shape="_x0000_s1027">
<TABLE  cellSpacing=0 cellPadding=0 border=1>

<TR >
<TD  vAlign=top width=95>
<P  align=center><B >图层编号<p></p></B></P></TD>
<TD  vAlign=top width=95>
<P  align=center><B >字段代号<p></p></B></P></TD></TR>
<TR >
<TD  vAlign=top width=95>
<P  align=center><FONT face="Times New Roman">001</FONT></P></TD>
<TD  vAlign=top width=95>
<P  align=center><FONT face="Times New Roman">QDEBGA</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=95>
<P  align=center><FONT face="Times New Roman">001</FONT></P></TD>
<TD  vAlign=top width=95>
<P  align=center><FONT face="Times New Roman">QDETYP</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=95>
<P  align=center><FONT face="Times New Roman">002</FONT></P></TD>
<TD  vAlign=top width=95>
<P  align=center><FONT face="Times New Roman">PATHID</FONT></P></TD></TR>
<TR >
<TD  vAlign=top width=95>
<P  align=center>……</P></TD>
<TD  vAlign=top width=95>
<P  align=center>……</P></TD></TR></TABLE>
<P  align=center>表<FONT face="Times New Roman">3</FONT>:图层与字段间的联系</P>
<P  align=center><p><FONT face="Times New Roman"> </FONT></p></P>
<P ><p><FONT face="Times New Roman"> </FONT></p></P></DIV></TD></TR></TABLE><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P><BR  clear=all>
<P ><FONT size=3>通过建立数据字典,就可以编写一个公用的程序文件,实现数据模型与代码文件的分离。在实际应用中,还要考虑以下情况:</FONT></P>
<P ><FONT face="Times New Roman"><FONT size=3>(1)</FONT>       </FONT><FONT size=3><B >建立数据表的索引</B>:给数据表建立索引能较迅速地获取目标记录。这里表1的索引是建立在[图层编号]字段上,表2的索引建立在字段[字段代号]上,表3的索引则建立在[图层编号]字段上。</FONT></P>
<P ><FONT face="Times New Roman"><FONT size=3>(2)</FONT>       </FONT><FONT size=3><B >数据表的链接</B>:这里在表<FONT face="Times New Roman">1</FONT>和表<FONT face="Times New Roman">3</FONT>间根据[图层代号]字段建立了链接,在表3和表2间根据[字段代号]建立链接。为数据表建立链接可以提高系统的运作效率,具体地说,当表<FONT face="Times New Roman">1</FONT>中选中“图层代号”为“<FONT face="Times New Roman">001</FONT>”的记录时,表<FONT face="Times New Roman">3</FONT>中所有满足“[图层代号]<FONT face="Times New Roman">= </FONT><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="”"><FONT face="Times New Roman">001</FONT>”</st1:chmetcnv>的记录将自动被选中,同时保存在表<FONT face="Times New Roman">2</FONT>中的、与表<FONT face="Times New Roman">3</FONT>[字段代号]取值一致的记录也被自动选中。</FONT></P>
<P ><FONT face="Times New Roman"><FONT size=3>(3)</FONT>       </FONT><FONT size=3><B >数据字典的存在形式</B>:数据字典在系统的工作期间应该始终处于打开状态。为了隐匿数据字典,避免用户的认为破坏,可以利用全局变量来表示数据表。</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3>下面所示的代码即通过操作数据字典建立一个空的新图层,并添加到当前的<FONT face="Times New Roman">View</FONT>文档中。其中共涉及到三个代码文件:<FONT face="Times New Roman">System.GlobalVariables</FONT>,<FONT face="Times New Roman">View.NewTheme</FONT>和<FONT face="Times New Roman">Program.MakeTheme</FONT>。第一个文件负责打开数据字典,建立表与表间的链接,定义全局变量,此文件是针对整个系统的,因此应在系统启动时执行;第二个文件进行与用户的通话,获取新图层的路径、名称等,并调用建立新图层的程序文件;文件三──<FONT face="Times New Roman">Program.MakeTheme</FONT>──是一个子程序,根据主调用程序传递的参数,从数据字典中提取相干数据,建立新图层并返回之。</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3>文件<FONT face="Times New Roman">System.GlobalVariables</FONT>:<FONT face="Times New Roman"> </FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_theme = Vtab . Make ( "$AVHome\data_dict\dd_theme.dbf".asfilename, false, false )</FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_fields = Vtab . Make( "$AVHome\data_dict\dd_fields.dbf".asfilename, false, false )</FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_connect = Vtab . Make( "$AVHome\data_dict\dd_connect.dbf".asfilename, false, false )</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">‘</FONT>建立数据表间的链接</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">fld_thmid1 = _dd_theme . FindField("</FONT>图层编号<FONT face="Times New Roman">")</FONT></FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">fld_thmid2 = _dd_connect . FindField("</FONT>图层编号<FONT face="Times New Roman">")</FONT></FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">fld_fldid1=_dd_connect . FindField("</FONT>字段代号<FONT face="Times New Roman">")</FONT></FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">fld_fldid2=_dd_fields . FindField("</FONT>字段代号<FONT face="Times New Roman">")</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_theme . Link( fld_thmid1, _dd_connect, fld_thmid2 )</FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_connect . Link(fld_fldid1, _dd_fields, fld_fldid2 )</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3>文件<FONT face="Times New Roman">View.MakeTheme</FONT>:</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">alst={“</FONT>地质点图层<FONT face="Times New Roman">”, “</FONT>地质路线图层<FONT face="Times New Roman">”, “</FONT>地质体图层<FONT face="Times New Roman">”}</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>blst={“<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="”">001”</st1:chmetcnv>, “<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2" UnitName="”">002”</st1:chmetcnv>, “<st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="”">003”</st1:chmetcnv>}</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">thmid = msgbox.listasstring(alst, “</FONT>要建的图层为<FONT face="Times New Roman">”, “</FONT>新图层<FONT face="Times New Roman">”)</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>if (thmid = nil ) then</FONT></P>
<P ><FONT face="Times New Roman"><FONT size=3>  return nil</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>end </FONT></P>
<P ><FONT face="Times New Roman" size=3>thmid = blst.get(alst.findbyvalue(thmid))</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">thmname = filedialog.put(“NewThm.shp”.asfilename, “*.shp”, “</FONT>图层保存为<FONT face="Times New Roman">”)</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>if (thmname = nil) then</FONT></P>
<P ><FONT face="Times New Roman"><FONT size=3>  return nil</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>end</FONT></P>
<P ><FONT face="Times New Roman" size=3>newthm=av.run(“Program.MakeTheme”, {thmid,thmname})</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">‘</FONT>添加新图层到<FONT face="Times New Roman">View</FONT>中</FONT></P>
<P ><FONT face="Times New Roman" size=3>aview=av.getactivedoc</FONT></P>
<P ><FONT face="Times New Roman" size=3>aview.addtheme(newthm)</FONT></P>
<P ><FONT face="Times New Roman" size=3>newthm.setvisible(true)</FONT></P>
<P ><FONT face="Times New Roman" size=3>aview.invalidate</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3>文件<FONT face="Times New Roman">Program.MakeTheme</FONT>:<FONT face="Times New Roman"> </FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>thm_id = self.get(0)</FONT></P>
<P ><FONT face="Times New Roman" size=3>fl_name = Self . get(1)</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">querystr1 = "[</FONT>图层编号<FONT face="Times New Roman">]=" + thm_id . Quote</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>selbit = Bitmap . Make ( _dd_theme . GetNumRecords )</FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_theme . Query (querystr1, selbit, #VTAB_SELTYPE_NEW)</FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_theme.setselection(selbit)</FONT></P>
<P ><FONT face="Times New Roman" size=3>for each sel in selbit</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">  thm_type = _dd_theme . ReturnValue ( _dd_theme.FindField("</FONT>图层类型<FONT face="Times New Roman">"), sel )</FONT></FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">  thm_legend = _dd_theme . ReturnValue ( _dd_theme.FindField("</FONT>图例文件<FONT face="Times New Roman">"), sel )</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>end</FONT></P>
<P ><FONT face="Times New Roman" size=3>typlst = { "point", "polyline", "polygon" }</FONT></P>
<P ><FONT face="Times New Roman" size=3>classlst = { point, polyline, polygon }</FONT></P>
<P ><FONT face="Times New Roman" size=3>thmclass = classlst.Get( typlst.FindByValue( thm_type.lcase ) )</FONT></P>
<P ><FONT face="Times New Roman" size=3>fldtyplst={"#field_char","#field_decimal","#field_logic"}</FONT></P>
<P ><FONT face="Times New Roman" size=3>fldtyp_lst={"char","decimal","logical"}</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3><FONT face="Times New Roman">'</FONT>建立新图层,设置新图层的图例</FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_connect.updateselection</FONT></P>
<P ><FONT face="Times New Roman" size=3>_dd_fields.updateselection</FONT></P>
<P ><FONT face="Times New Roman" size=3>selbit2 = _dd_fields . GetSelection</FONT></P>
<P ><FONT face="Times New Roman" size=3>fld_lst={ }</FONT></P>
<P ><FONT face="Times New Roman" size=3>for each sel in selbit2</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">  fld_name = _dd_fields . returnvalue( _dd_fields.FindField("</FONT>字段代号<FONT face="Times New Roman">"),sel )</FONT></FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">  fld_type = _dd_fields . returnvalue( _dd_fields.FindField("</FONT>字段类型<FONT face="Times New Roman">"),sel )</FONT></FONT></P>
<P ><FONT face="Times New Roman"><FONT size=3>  fld_type = fldtyplst . get(fldtyp_lst.findbyvalue(fld_type.lcase)).asenum</FONT></FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">  fld_width =  _dd_fields . returnvalue( _dd_fields.FindField("</FONT>字段宽度<FONT face="Times New Roman">"),sel )</FONT></FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">  fld_decimal = _dd_fields . returnvalue( _dd_fields.FindField("</FONT>小数宽度<FONT face="Times New Roman">"),sel )</FONT></FONT></P>
<P ><FONT face="Times New Roman"><FONT size=3>  fld_lst.add( Field . Make( fld_name,fld_type,fld_width,fld_decimal) )</FONT></FONT></P>
<P ><FONT face="Times New Roman" size=3>end</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">‘ </FONT>建立新图层</FONT></P>
<P ><FONT face="Times New Roman" size=3>newFtab = Ftab . MakeNew( fl_name, thmclass)</FONT></P>
<P ><FONT face="Times New Roman" size=3>newFtab . AddFields( fld_lst )</FONT></P>
<P ><FONT face="Times New Roman" size=3>newthm = Ftheme . Make ( newFtab )</FONT></P>
<P ><FONT face="Times New Roman" size=3>newthm.updatelegend</FONT></P>
<P ><FONT size=3><FONT face="Times New Roman">‘ </FONT>返回新建的图层</FONT></P>
<P ><FONT face="Times New Roman" size=3>return newthm</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><FONT size=3>通过建立数据字典把具体的图层抽象概括为数据字典中的记录,使得数据结构与程序代码分离,从而通过一个代码文件对数据字典的操作,就可以实现对所有图层的操作,而且更改图层的结构将不影响既有代码的执行效果,不仅可以提高程序代码在系统开发过程中的适应性,而且有助于系统的升级和再应用。</FONT></P>
<P ><p><FONT face="Times New Roman" size=3> </FONT></p></P>
<P ><B ><FONT size=3>参考资料<p></p></FONT></B></P>
<P ><FONT face="Times New Roman"><FONT size=3>1.</FONT>         </FONT><FONT size=3><b>《地质矿产术语分类代码在地矿点源信息系统中的应用》</b><b>.</b>汪新庆,刘刚,袁艳斌,韩志军.<FONT face="Times New Roman"> </FONT>《地球科学》.</FONT></P>
<P ><FONT size=3>2.</FONT>       <FONT size=3><b>《野外数据采集系统数据字典的研制》</b><b>.</b>韩志军,汪新庆,吴冲龙.《地球科学》.<p></p></FONT></P>
<P ><FONT size=3>3.</FONT>       <FONT size=3>《Using ArcView》. ESRI. <st1:country-region w:st="on"><st1:place w:st="on">US</st1:place></st1:country-region> ESRI. 1990<p></p></FONT></P>
<P ><FONT face="Times New Roman">4.          </FONT><FONT size=3>《Using AVENUE》. ESRI. <st1:country-region w:st="on"><st1:place w:st="on">US</st1:place></st1:country-region> ESRI. 1990<p></p></FONT></P>
<P ><p><FONT size=3> </FONT></p></P>
喜欢0 评分0
游客

返回顶部