mapx的数据绑定。
项目要求:将一些数据,用专题图的方式在地图上显示出来。
1、首先创建一个临时图层(根据项目需求,没必要创建永久图层)
开始用creatLayer方法建的,
A、用MainMap.Layers.CreateLayer方法创建临时表。但这个临时表只有一个字段:GeoName(
Char 24)。程序运行过程中该表存放位置为系统临时文件夹下
B、使用LayerInfo对象创建临时表,可以指定字段。示例:
2、将要显示的数据添加到新建的图层上。
网上找到的资料都是和数据库进行绑定,然后吧啦吧啦就ok了,但我addData时报:Invalid Field specified. Name not found, or index out of range. 错误。
原因:因为我是用A方法创建的图层,这时只有一个默认的字段,Geoname
Add时传进去的参数是fields,当然就报这个错误了,应该换用B方法创建图层。
假设MapX已经打开一个图层,图层名为"a",手头还有一个Access数据库a.mdb,数据库里面
有个表X想和a图层绑定。我们保证a层属性里面有一个字段ID1与表X的一个字段ID2是匹配
的!!
问题一:数据库中的某一字段要和表中的某一字段匹配,这句话什么意思?是字段名要一致,还是该列的数据完全一致?
问题二:我们用的数据不是从数据库取出来的,是随便设的一些数据,根据上面的意思,好像是指a层的一个字段名及类型,要和表
x的一个字段名和类型,完全一致。
//添加新的点
x = 100;
y = 100;
str = "节点";
pt.Set(x, y);
mystyle = lyr.AllFeatures[1].Style;
fts = axMap1.FeatureFactory.CreateSymbol(pt, mystyle);
fts.KeyValue = str;
lyr.AddFeature(fts, null);
lyr.Refresh();
我想把新的点添加到图层上,但是AddFeature()的第二个参数不能为空,呼唤哪位高手帮忙解决一下。
在线等啊!!!
第二个参数是RowValues:表示一行数据的属性数据的新值,RowValues集合中的每个值都相应于属性数据的一列,此参数只适用于miDatesetLayer类型的layer!
它是一个可选参数,C#却强制使用,没有办法的。要不你就声明一个Rowvalues的变量,然后放在第二个参数上!你试试看吧!
祝你好运!