Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();



            ;
        }
Esempio n. 3
0
        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;
                }
            });
        }