zuilang
路人甲
路人甲
  • 注册日期2004-09-29
  • 发帖数78
  • QQ
  • 铜币356枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1501回复:4

一个临时图层怎么为它增加属性字段啊?

楼主#
更多 发布于:2004-12-03 18:48
向各位请教了
喜欢0 评分0
kla
kla
路人甲
路人甲
  • 注册日期2004-11-29
  • 发帖数20
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-12-15 09:44
<P>我也想知道啊 气死我了  弄了几天就不知道错哪里了</P><P>procedure TMainFrm.Button15Click(Sender: TObject);</P><P>var
    i:integer  ;
    lyr : layer;//层
    ft : feature;//特征
    fts:variant;
    ftrCombined:feature ;
    styCombined:variant;
    pt : Point;//点
    mstyle : style;//样式
  str: string;//特征标注</P><P>   inFtrCount: integer;</P><P>
 NewStyle: Style ;
 ds  :Dataset ;
 Flds: Fields  ;</P><P>
begin
      lyr := Map1.Layers.CreateLayer('temp', EmptyParam,1,EmptyParam, EmptyParam);
      //在Map1中创建一个Layer
      lyr.Editable := true;//可编辑</P><P>      inFtrCount  :=Map1.Layers.Item(edit1.Text +'_地理').Selection.Count;</P><P>
    if  inFtrCount>1 then</P><P>      begin</P><P>
      fts:= Map1.Layers.Item(edit1.Text +'_地理').Selection;
      //danwmc:=Map1.Layers.Item(edit1.Text +'_地理').Selection.fields['danwmc'].asstring;</P><P>            for i:=1 to fts.Count do
         begin
        
       Map1.Layers.Item('temp').AddFeature(fts.Item(i),emptyparam);
         end;
               // 就是下面的问题    </P><P>                     for i:=1 to Flds.Count do
                     begin
                     ds:=Lyr.Datasets.Item(1);
                     Flds:=ds.Fields;
                     lyr.KeyField:=Flds.Item(i).Name ;
                     ft.KeyValue:='danwmc' ;
                     fts.Update;
                          end;
      end;
        opermapxin.createtab('temp',getcurrentdir);//这个是个生成。tab的函数</P><P>end;
</P>
举报 回复(0) 喜欢(0)     评分
kla
kla
路人甲
路人甲
  • 注册日期2004-11-29
  • 发帖数20
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-12-15 09:45
生成temp.tab的 map info 就是看的到 属性  
举报 回复(0) 喜欢(0)     评分
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
3楼#
发布于:2004-12-15 12:56
<P>你的通过layerinfo变量实现啊!</P><P>可以看看MAPX相关的帮助,</P><P>论坛内应该也有相关的事例!</P>
举报 回复(0) 喜欢(0)     评分
kla
kla
路人甲
路人甲
  • 注册日期2004-11-29
  • 发帖数20
  • QQ
  • 铜币146枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-12-15 14:48
<P>废话多 终于弄出来了啊 下面是部分代码:</P><P>   lyr := Map1.Layers.CreateLayer('temp', EmptyParam,1,EmptyParam, EmptyParam);
      //在Map1中创建一个Layer
      lyr.Editable := true;//可编辑</P><P>      inFtrCount  :=Map1.Layers.Item(edit1.Text +'_地理').Selection.Count;</P><P>
    if  inFtrCount>1 then</P><P>      begin
     fts:= Map1.Layers.Item(edit1.Text +'_地理').Selection;
     for i:=1 to fts.Count do
                 begin</P><P>                      ft:=fts.Item(i);
                      ft.keyvalue:=fts.Item(i).keyvalue;
                      //ft.update;
                      Map1.Layers.Item('temp').AddFeature(ft,emptyparam);
                       end;</P><P>                  end;</P><P>// mm没的啊 e-mail:lovestwlj@163.com</P><img src="images/post/smile/dvbbs/em08.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部