MapX创建临时图层

mandy087 2011-02-19 10:32:36
用layerinfo方式怎样创建临时图层?
我知道可以指定
mlayerInfo.Type = MapXLib.LayerInfoTypeConstants.miLayerInfoTypeTemp;
但那个FileSpec属性如何写?
mlayerInfo.AddParameter("FileSpec", ??);//文件路径

填为null时报错 ,指定具体路径时创建的表不是临时的
...全文
229 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mandy087 2011-02-21
  • 打赏
  • 举报
回复
我搞清楚了。。
原来设置为临时图层后就不须指定存储路径。
代码:
[code=C]
public bool NewTemLayer(string layerName)//新建临时图层
{
MapXLib.Layer mlayer;//定义图层

MapXLib.Fields flds = new MapXLib.FieldsClass();//定义tab表字段
flds.AddIntegerField("FID",true);//AddStringField代表添加字符型字段,false是指定是否为索引字段,若存在查询时 必须有索引字段
flds.AddStringField("FName", 50, false);
flds.AddIntegerField("FType",false);
flds.AddFloatField("FLength",false);

MapXLib.LayerInfo mlayerInfo = new MapXLib.LayerInfoClass();
mlayerInfo.Type = MapXLib.LayerInfoTypeConstants.miLayerInfoTypeTemp;
mlayerInfo.AddParameter("Name", layerName);//文件名称
mlayerInfo.AddParameter("Fields", flds);//添加字段
//创建数据集DataSet
mlayerInfo.AddParameter("AutoCreateDataset", 1);//如为1,那么在添加图层后添加类型为miDatasetLayer的数据集。如为0(默认值),不添加数据集。
mlayerInfo.AddParameter("DatasetName", "ds" + layerName);//如果AutoCreateDataset参数为1,那么它成为新的数据集名称。如果没有指定,则使用默认名称.

mlayerInfo.Type = MapXLib.LayerInfoTypeConstants.miLayerInfoTypeTemp;//指定图层为临时图层,只存在于内存之中

try
{
mlayer = axMap1.Layers.Add(mlayerInfo, 1);
mlayer.Editable = true;//图层为可编辑
mlayer.KeyField = "FName";//设置或返回的字段值由图元所在的Layer的KeyField属性值确定

axMap1.Layers.InsertionLayer = mlayer;
// axMap1.Refresh();
userLayer = mlayer;

return true;
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return false;
}
}

[/code]
gnimgnot 2011-02-19
  • 打赏
  • 举报
回复
FilePath + LayerName + ".TAB"

2,154

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧