阅读:1501回复:4
一个临时图层怎么为它增加属性字段啊?
向各位请教了
|
|
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> |
|
2楼#
发布于:2004-12-15 09:45
生成temp.tab的 map info 就是看的到 属性
|
|
3楼#
发布于:2004-12-15 12:56
<P>你的通过layerinfo变量实现啊!</P><P>可以看看MAPX相关的帮助,</P><P>论坛内应该也有相关的事例!</P>
|
|
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" /> |
|