代碼很簡單,如下
private void barButtonItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
// Initialize the geoprocessor.
Geoprocessor GP = new Geoprocessor();
//創建一個tool
FeatureToPolygon featureToPolygon = new FeatureToPolygon();
//給與必須屬性
featureToPolygon.in_features = @"D:\win7我的文檔-桌面-收藏夾\Desktop\test\roadsBuffer.shp";
featureToPolygon.out_feature_class = @"D:\win7我的文檔-桌面-收藏夾\Desktop\test\roads4.shp";
GP.Execute(featureToPolygon, null);
MessageBox.Show("OK");
}
需要注意的問題:
1權限問題。我給與的是最高權限:
#region 初始化許可
esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
IAoInitialize m_AoInitialize = new AoInitialize();
licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
//檢查擴展模塊功能
licenseStatus = m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeRuntimeAdvanced);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
#endregion
2其實上面給了最高權限之后還算不行。關鍵還看下面的:
在arcmap打開Extension所有項,並且把你的功能在工具箱里跑一遍。嗯,不知道為啥。就可以了
---------------------------------------------------------------------------------------------------------------------------------------------------------------
線轉面的時候傳參數的時候,命名必須用英文名:
string fromPath = @"D:\win7我的文檔-桌面-收藏夾\Desktop\東庄.mdb\JZX";
string ToPath = @"D:\win7我的文檔-桌面-收藏夾\Desktop\東庄.mdb\xxx";
數字是不可以的:
string ToPath = @"D:\win7我的文檔-桌面-收藏夾\Desktop\東庄.mdb\2015";
另外覆蓋源數據也是不可以的
