ArcGISMobile+WM6环境下,FeatureLayer图层的图元添加和删除操作

      近日,在做一个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();

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值