netface
路人甲
路人甲
  • 注册日期2007-11-11
  • 发帖数2
  • QQ
  • 铜币110枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2049回复:3

[求助]vb+mapx设置动态图层的问题!

楼主#
更多 发布于:2007-12-01 16:07
<P>小弟初接触mapx ,关于创建动态图层很不明了。书上的例子如下</P>
<P>' 创建新的临时图层,包含 USA 图层中选择的所有<BR>' 图元<BR>Dim li as New MapXLib.LayerInfo<BR>Dim ftrs as MapXLib.Features<BR>Dim flds as MapXLib.Fields<BR>Dim ds as MapXLib.Dataset<BR>' 新表和 USA 图层具有相同的列结构<BR>Set ds = Map1.Datasets.Add (miDatasetLayer, Map1.Layers("USA"))<BR>Set flds = ds.Fields<BR>' 新表将包括 USA 图层中当前所选的全部<BR>' 图元<BR>Set ftrs = Map1.Layers.Item("USA").Selection.Clone<BR>li.Type = miLayerInfoTypeTemp<BR>li.AddParameter "Name", "USA Selections"<BR>li.AddParameter "Fields", flds<BR>li.AddParameter "Features", ftrs<BR>' 该图层在添加到图层集合时创建<BR>Map1.Layers.Add li<BR></P>
<P>1。Dim li as New MapXLib.LayerInfo是创建一个新的图层,那个“new”是起什么作用,因为有些时候看到没有new?</P>
<P>2。Dim ftrs as MapXLib.Features ,Dim flds as MapXLib.Fields,Dim ds as MapXLib.Dataset这几个定义的是什么东西,具体是什么意思?</P>
<P>3。Set ds = Map1.Datasets.Add (miDatasetLayer, Map1.Layers("USA"))<BR>Set flds = ds.Fields 这个说为了让新表具有和usa一样的列结构,什么是列结构?我如果不要跟usa一样的列结构,又要怎么办?</P>
<P>4。我只是打算新建一个动态图层,并在上面显示接收到的点并连成一条线,以上建立动态图层的每一步都是必须的吗?</P>

<P>谢谢各位!<BR></P>
喜欢0 评分0
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
1楼#
发布于:2007-12-02 23:17
<P>1.Dim li as New MapXLib.LayerInfo 是定义并初始化变量li,</P>
<P>等价于:Dim li as MapXLib.LayerInfo '定义变量li</P>
<P>     set li= new MapXLib.LayerInfo  '初始化变量li</P>
<P>2.Dim ftrs as MapXLib.Features ,'定义图元集合</P>
<P>Dim flds as MapXLib.Fields,'定义字段集合</P>
<P>Dim ds as MapXLib.Dataset    '定义数据集</P>
<P>3.用记事本打开usa.tab文件看看就知道是什么结构了,建议看看mapx的FIELDS的帮助</P>
<P>4.设置动态图层 <BR>Set   Map1.Layers.AnimationLayer   =   Map1.Layers(图层名) <BR>  该属性可用于确定当前哪一图层是动态图层(如有): <BR>  for   each   lyr   in   Map1.Layers <BR>  if   Map1.Layers.AnimationLayer   =   lyr   then   ... <BR>  end   if <BR>  next <BR>  要关闭动画图层,可以将该图层指定为空: <BR>  Set   Map1.Layers.AnimationLayer   =   nothing <BR></P>
举报 回复(0) 喜欢(0)     评分
netface
路人甲
路人甲
  • 注册日期2007-11-11
  • 发帖数2
  • QQ
  • 铜币110枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-12-03 20:11
<P>谢谢楼上的!</P>
<P>看到用layerinfo创建图层上说,如果是创建miLayerInfoTypeTemp临时图层的话,Name,TableStorageType参数不是必须的,Fields和Features参数其一是必须的,</P>
<P>1、是不是我可以不用定义数据集?就是不用写Dim ds as MapXLib.Dataset 这句?</P>
<P>2、如果我定义了图元集合,这一句“Dim flds as MapXLib.Fields”是不是也可以不要?</P>
<P>3、这样建立的临时图层对我后面在画点再连成一条线(会有一个小图标来指示)会不会有什么影响?</P>
<P>4、书上说可以用CreateLayer来创建一个层,但又说不推荐这种方法,为什么?</P>
<P>问题比较多,麻烦了!</P>
举报 回复(0) 喜欢(0)     评分
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
3楼#
发布于:2007-12-05 12:33
<P>1.如果你需要表结构,就需要定义dataset</P>
<P>2.fields 跟dataset是关联的,图元集合跟fields没有关系</P>
<P>3.应该不会有影响</P>
<P>4.mapx老版本用CreateLayer,新版本  layerinfo</P>
<P>4.</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部