public void ShapeInWhereTest3() { //new ArcEngineLicense(); RuntimeManager.BindLicense(ProductCode.EngineOrDesktop); //ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop); var sdeWs = DataActions.GetSdeWorkspace(new Dictionary <string, object>() { { "INSTANCE", "sde:oracle11g:192.168.0.2/orcl" }, { "USER", "dzgisdata" }, { "PASSWORD", "dzgisdata" }, }); var outFcname = $@"C:/test/i{DateTime.Now.ToBinary()}.shp"; var feaWs = (IFeatureWorkspace)sdeWs; var xzqh = feaWs.OpenFeatureClass("DZGISDATA.XZQH"); //var ydhx = feaWs.OpenFeatureClass("DZGISDATA.YDHX_SP"); IVariantArray arr = new VarArrayClass(); //arr.Add(@"C:\test\dzgisdata02.sde\DZGISDATA.XZQH\DZGISDATA.XZQH"); arr.Add(outFcname); //IGeoProcessor gp2 = new GeoProcessorClass(); //IGeoProcessorResult result = gp2.Execute("Select", arr, null); var gp = new Geoprocessor(); var result = gp.Execute(new Select() { in_features = @"C:\test\continents.shp", out_feature_class = outFcname, }, null); ; //Select sel = new Select() //{ // in_features = xzqh, // out_feature_class = outFcname //}; //var result = new Geoprocessor().Execute(sel, null); //var gpResult = (IGeoProcessorResult)result; //var gpms = gpResult.GetResultMessages(); }
public void ShapeInWhereTest2() { new ArcEngineLicense(); var sdeWs = DataActions.GetSdeWorkspace(new Dictionary <string, object>() { { "INSTANCE", "sde:oracle11g:192.168.0.2/orcl" }, { "USER", "dzgisdata" }, { "PASSWORD", "dzgisdata" }, }); var feaWs = (IFeatureWorkspace)sdeWs; var xzqh = feaWs.OpenFeatureClass("DZGISDATA.XZQH"); var ydhx = feaWs.OpenFeatureClass("DZGISDATA.YDHX_SP"); IGpValueTableObject gpvt = new GpValueTableObjectClass(); gpvt.AddRow(xzqh); gpvt.AddRow(ydhx); var outFcname = $@"C:/test/i{DateTime.Now.ToBinary()}.shp"; Intersect intersect = new Intersect() { //in_features = @"C:\test\dzgisdata02.sde\DZGISDATA.XZQH\DZGISDATA.XZQH;C:\test\dzgisdata02.sde\DZGISDATA.YWHX\DZGISDATA.YDHX_SP", in_features = gpvt, out_feature_class = outFcname, join_attributes = "ONLY_FID", output_type = "INPUT" }; //gpfeatureclass var result = new Geoprocessor().Execute(intersect, null); var gpResult = (IGeoProcessorResult)result; var gpms = gpResult.GetResultMessages(); ; }
public void ShapeInWhereTest() { new ArcEngineLicense(); var sdeWs = DataActions.GetSdeWorkspace(new Dictionary <string, object>() { { "INSTANCE", "sde:oracle11g:192.168.0.2/orcl" }, { "USER", "dzgisdata" }, { "PASSWORD", "dzgisdata" }, }); var feaWs = (IFeatureWorkspace)sdeWs; IFeatureClass xzqh = null; IFeatureClass ydhx = null; try { xzqh = feaWs.OpenFeatureClass("DZGISDATA.XZQH"); ydhx = feaWs.OpenFeatureClass("DZGISDATA.YDHX_SP"); } catch (Exception ex) { throw new Exception("尝试打开图层失败,名字或许不存在"); } var chartMap = new Dictionary <string, int>(); ydhx.Features().ToList().ForEach((feature) => { Dictionary <string, double> interectAreasDic = new Dictionary <string, double>(); xzqh.Features().ToList().ForEach((xz) => { var copy = xz.ShapeCopy; copy.SpatialReference = feature.Shape.SpatialReference; var intersect = ((ITopologicalOperator)(feature.Shape)).Intersect(copy, esriGeometryDimension.esriGeometry2Dimension); var area = ((IArea)intersect).Area; var row = (IRow)xz; var fieldIndex = row.Fields.FindField("NAME"); string name = String.Empty; try { name = (string)xz.Value[fieldIndex]; } catch (Exception) { } double storedArea; if (interectAreasDic.TryGetValue(name, out storedArea)) { if (area > storedArea) { interectAreasDic[name] = area; } } else { interectAreasDic[name] = area; } }); var descendOrder = interectAreasDic.OrderByDescending(kvp => kvp.Value); var finalRegionName = descendOrder.First().Key; var preCount = 0; if (chartMap.TryGetValue(finalRegionName, out preCount)) { chartMap[finalRegionName] += 1; } else { chartMap[finalRegionName] = 0; } }); }