標籤:
arcengine 空間分析:
目前我知道的有:
1、Geoprocessor 利用ESRI.ARCGIS.AnalysisTools中的相關工具進行clip,interset,identity操作:
以clip為例如下:
string ioutPath = mlstr + xzshpstr;
Geoprocessor g = new Geoprocessor();
g.OverwriteOutput = true;
ESRI.ArcGIS.AnalysisTools.Clip clip = new ESRI.ArcGIS.AnalysisTools.Clip();
clip.in_features = ifeatureClassXZ;
clip.clip_features = ifeatureClassTB;
clip.out_feature_class = ioutPath;
IGeoProcessorResult igresult = new GeoProcessorResultClass();
igresult = g.Execute(clip, null) as IGeoProcessorResult;
需要注意:在arcengine中的檔案路徑,如果不存在會出錯,檔案被佔用也會出錯,一般對於已路徑操作的檔案,使用System中的相關類得到準確的路徑字串再在arcengine中使用。
以上方法是經過測試可以用的。
2、使用IBasicGeoprocessor
3、使用ITopologyOperator
都沒有用過。
arcengine中修改要素集的空間參考:
1、在sde資料庫中的要素類要是屬於一個要素集,就只能修改要素集的空間參考。(現在想想純粹是廢話,但是就這個問題還是困擾了我好一陣兒)
2、一個樣本:
IGeoDataset ifeatureclassds = ifeatureclass as IGeoDataset;
IGeoDatasetSchemaEdit igeoEdit = ifeatureclassds as IGeoDatasetSchemaEdit;
if (igeoEdit.CanAlterSpatialReference)
{
ISpatialReferenceFactory ispReferenceFactory = new SpatialReferenceEnvironmentClass();
IProjectedCoordinateSystem ipCoorSys = ispReferenceFactory.CreateProjectedCoordinateSystem(2383);//2362xian 80 38度帶 2383 xian 114
igeoEdit.AlterSpatialReference(ipCoorSys);
}
對於座標系的編號可以在一個網站上找到:
http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/esriSRProjCS3Type_Constants/002m0000003n000000/
esriSRProjCS_WGS1984WebMercatorMajorAuxSphere , 3857 , WGS 1984 Web Mercator Major Auxilliary Sphere
C#進行arcEngine開發 2