GIS資料的查詢,插入,刪除,更新(ArcEngine)
1 、 查詢資料
1 )、利用FeaturCursor 進行空間查詢
// 利用構造的Envelope (矩形框),查詢和Envelope 相交的FeatureClass 的要素集
// 結果資料利用迴圈FeatureCursor.nextFeature 獲得
IEnvelope envelope = new EnvelopeClass();
envelope.PutCoords(508786, 681196, 513033, 684341);
// 空間查詢
ISpatialFilter spatialFilter = new SpatialFilterClass();
spatialFilter.Geometry = envelope;
String shpFld = featureClass.ShapeFieldName;
spatialFilter.GeometryField = shpFld;
spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;// 相交
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter = (IQueryFilter)spatialFilter;
IFeatureCursor searchCursor = featureClass.Search(queryFilter, true);
IFeature feature = searchCursor.NextFeature();
int n = 0;
while (feature != null){
n++;
feature = baseCursor.NextFeature();
}
2 )、利用FeatureCursor 在選擇集中進行查詢
IFeatureSelection pFeatureSelectio = pFeatureLayer as IFeatureSelection;
ICursor ppCursor;
pFeatureSelectio.SelectionSet.Search(null, false, out ppCursor);
IFeatureCursor pFeatureCursor = ppCursor as IFeatureCursor;
IFeature pFeature = pFeatureCursor.NextFeature();
3 )、利用FeatureCursor 進行屬性查詢
IQueryFilter pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = "PROJECTCODE = '" + this.ProjectNumTextBox.Text.Trim() + "'";
IFeatureCursor pFeatureCursor = LineFeaClass.Search(pQueryFilter, false);
IFeature pFeatureIfExit = pFeatureCursor.NextFeature();
2 、 插入資料
1 )、利用 Insert Cursors 和 featureBuffer
IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer();
IFeatureCursor featureCursor = featureClass.Insert( true);
object featureOID;
featureBuffer.set_Value(featureBuffer.Fields.FindField("InstBy"), "B Pierce");
for ( int ic = 0; ic < 99; ic++)
{
featureBuffer.Shape = geometry;
featureOID = featureCursor.InsertFeature(featureBuffer);
}
featureBuffer.set_Value(featureBuffer.Fields.FindField("InstBy"), "K Johnston");
for ( int ic = 0; ic < 99; ic++)
{
featureBuffer.Shape = geometry
featureOID = featureCursor.InsertFeature(featureBuffer);
}
featureCursor.Flush();
2 )、直接進行資料插入(Feature.Store 方法)
IFeature newLineFeature = LineFeaClass.CreateFeature();
newLineFeature.Shape = pFeature.Shape;
int ii = newLineFeature.Fields.FindField(AreaZonalName);
if (ii > 0)
{
newLineFeature.set_Value(ii,
this.AnalysAreaComboBox.Text.Trim());
}
newLineFeature.Store();
3 、 資料刪除 delete
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("Parcels");
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "ZONING_S = 'R'";
IFeatureCursor updateCursor = featureClass.Update(queryFilter, false);
IFeature feature = updateCursor.NextFeature();
int m = 0;
while (feature != null)
{
m++;
updateCursor.DeleteFeature(feature);
feature = updateCursor.NextFeature();
}
4 、 資料更新 update
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("Parcels");
// 屬性查詢
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "ZONING_S = 'U'";
// 利用FeatureCursor 進行資料更新
IFeatureCursor updateCursor = featureClass.Update(queryFilter, false);
int fieldindex = featureClass.FindField("ZONING_S");
IFeature feature = updateCursor.NextFeature();
int m = 0;
while (feature != null)
{
m++;
feature.set_Value(fieldindex, "X");
updateCursor.UpdateFeature(feature);
feature = updateCursor.NextFeature();
}
相關文章
- .NET 資料庫大資料 方案(插入、更新、刪除、查詢 、插入或更新)資料庫大資料
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- 二叉查詢樹的插入刪除查詢
- Yii 1.0資料庫操作 查詢、增加、更新、刪除資料庫
- kettle 實時同步資料(插入/更新/刪除資料)
- AVL樹(查詢、插入、刪除)——C語言C語言
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- mysql 資料插入和更新及刪除詳情FSSHMySql
- mysql 跨表查詢、更新、刪除示例MySql
- 雙向連結串列————查詢、刪除、插入結點
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- 查詢陣列裡資料刪除和增加的方法陣列
- mysql根據查詢結果批量更新多條資料(插入或更新)MySql
- mysql刪除查詢MySql
- CnosDB的資料更新和刪除
- 單向迴圈連結串列——查詢、刪除、插入結點
- 面經手冊 · 第4篇《HashMap資料插入、查詢、刪除、遍歷,原始碼分析》HashMap原始碼
- DML(Data Manipulation Language、資料操作語言),用於新增、刪除、更新和查詢資料庫記資料庫
- Laravel 批量插入(如果資料存在刪除原資料)Laravel
- 單向加頭連結串列的[構建、插入、刪除、查詢、輸出]
- Unfolder使用教程:如何插入,刪除和更新物件物件
- 【typeorm】typeorm官方文件querybuilder插入更新刪除部分ORMUI
- flowable的查詢操作和刪除操作
- MongoDB資料庫中更新與刪除資料MongoDB資料庫
- Mysql 插入中文及中文查詢 (修改+除錯)MySql除錯
- MYSQL查詢和插入資料的流程是怎樣的MySql
- [轉]C++ STL list的初始化、新增、遍歷、插入、刪除、查詢、排序、釋放C++排序
- PG資料庫更新刪除卡死現象資料庫
- MySQL 批量更新、刪除資料shell指令碼MySql指令碼
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- whk我【資料刪除】你個【資料刪除】的
- 資料結構__連結串列_單連結串列的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- 短影片app程式碼,如何實現聯表資料查詢和刪除?APP
- 2.1趣說什麼是陣列,以及資料的讀取、更新、插入、刪除等操作程式碼(1)陣列
- 2.1趣說什麼是陣列,以及資料的讀取、更新、插入、刪除等操作程式碼(2)陣列
- hive將查詢資料插入表中某欄位無資料Hive
- Django查詢特定條件的資料並插入其他表格模型Django模型
- 資料結構:單迴圈連結串列的建立插入與刪除資料結構
- flowable 查詢、完成、作廢、刪除 任務