ArcGISMobile+WM6环境下,FeatureLayer图层的图元添加和删除操作
2011-01-15 17:47
656 查看
近日,在做一个Mobile项目过程中,由于用户要求有个点图层的数据要动态添加和删除,于是就开始进行一系列实验,最后形成如下的解决办法。
要实现FeatureLayer图层对象的添加,要确保其AllowNew属性为true才行,这是一个GET访问器,可以获得图层是否允许保存编辑(添加)。如果你在调试程序的时候AllowNew是false,那么可能有以下两个原因:
1、图层不是SDE图层。可以将shp文件导入到SDE数据库中完成创建即可。
2、图层没有创建Global ID(这是ArcGIS Mobile9.3版本后的一个特殊地方)。给图层创建Global ID的方法很简单,在ArcCatalog中右击图层点击Add Globl IDs...即可)
现将实现后的部分代码粘贴如下:
//将点图元添加到指定图层中
FeatureLayer gjdLayer = mobileService1.Layers["aaa"] as FeatureLayer;
if (gjdLayer.AllowNew)
{
FeatureDataTable featureDataTable = gjdLayer.GetDataTable();
FeatureDataRow editedFeature = featureDataTable.NewRow();
ESRI.ArcGIS.Mobile.Geometries.Point point = new ESRI.ArcGIS.Mobile.Geometries.Point(new Coordinate(195629705.794, 8108212.368));
editedFeature[gjdLayer.GeometryColumnIndex] = point as Geometry;
editedFeature["Name"] = "测试1";
featureDataTable.Rows.Add(editedFeature);
//保存
int count = featureDataTable.SaveInFeatureLayer();
}
//删除操作
FeatureLayer gjdLayer = mobileService1.Layers["aaa"] as FeatureLayer;
QueryFilter queryFilter = new QueryFilter("Name like '%'", true);
FeatureDataTable featureDataTable = gjdLayer.GetDataTable(queryFilter, null);
foreach (FeatureDataRow row in featureDataTable.Rows)
row.Delete();
// Updates the feature layer data table
featureDataTable.SaveInFeatureLayer();
要实现FeatureLayer图层对象的添加,要确保其AllowNew属性为true才行,这是一个GET访问器,可以获得图层是否允许保存编辑(添加)。如果你在调试程序的时候AllowNew是false,那么可能有以下两个原因:
1、图层不是SDE图层。可以将shp文件导入到SDE数据库中完成创建即可。
2、图层没有创建Global ID(这是ArcGIS Mobile9.3版本后的一个特殊地方)。给图层创建Global ID的方法很简单,在ArcCatalog中右击图层点击Add Globl IDs...即可)
现将实现后的部分代码粘贴如下:
//将点图元添加到指定图层中
FeatureLayer gjdLayer = mobileService1.Layers["aaa"] as FeatureLayer;
if (gjdLayer.AllowNew)
{
FeatureDataTable featureDataTable = gjdLayer.GetDataTable();
FeatureDataRow editedFeature = featureDataTable.NewRow();
ESRI.ArcGIS.Mobile.Geometries.Point point = new ESRI.ArcGIS.Mobile.Geometries.Point(new Coordinate(195629705.794, 8108212.368));
editedFeature[gjdLayer.GeometryColumnIndex] = point as Geometry;
editedFeature["Name"] = "测试1";
featureDataTable.Rows.Add(editedFeature);
//保存
int count = featureDataTable.SaveInFeatureLayer();
}
//删除操作
FeatureLayer gjdLayer = mobileService1.Layers["aaa"] as FeatureLayer;
QueryFilter queryFilter = new QueryFilter("Name like '%'", true);
FeatureDataTable featureDataTable = gjdLayer.GetDataTable(queryFilter, null);
foreach (FeatureDataRow row in featureDataTable.Rows)
row.Delete();
// Updates the feature layer data table
featureDataTable.SaveInFeatureLayer();
相关文章推荐
- ArcGIS Server9.2 for .net 添加和删除shp图层操作源码
- MapXtreme 图层操作 创建临时图层-添加图元-加图层标注-清除图元
- C#环境datagidview添加删除操作
- VC环境中MapX一次删除图层所有图元
- ArcGIS Server9.2 for .net 添加和删除shp图层操作源码
- 修改某图层内容使其立即反映到地图上(添加、删除图元)
- VC环境中MapX一次删除图层所有图元
- 手动添加删除Linux系统中的一个用户(2)--全手动操作
- Ubuntu环境变量——添加与删除
- 简单数据库操作代码(添加删除修改读取)
- GridView分页后进行添加,删除操作后,仍返回到当前页码
- VC++6.0 环境下删除自己添加的类
- asp.net读写添加修改删除操作xml文件 代码如下(C#)
- Qt树形控件QTreeView使用1——节点的添加删除操作 复选框的设置
- 通过触发器通过一个表的添加删除操作另一个表里的信息添加删除
- asp.net 对xml文件的读写,添加,修改,删除操作
- WinCE中,环境变量的添加,删除和查询
- Python3列表元素的修改,添加( append(),inset() )和删除( del,pop(),remove() )操作
- GridView分页后进行添加,删除操作后,仍返回到当前页码
- C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据