ArcStrabo10.ArcStraboObject.symbolFindRasterLayerPath C# (CSharp) Метод

symbolFindRasterLayerPath() публичный Метод

public symbolFindRasterLayerPath ( RasterMapInfo rasterInfo ) : void
rasterInfo RasterMapInfo
Результат void
        public void symbolFindRasterLayerPath(RasterMapInfo rasterInfo)
        {
            IMap map = ArcMap.Document.FocusMap;

            try
            {
                IEnumLayer enumLayer = map.get_Layers(null, true);
                ILayer layer = enumLayer.Next();
                while (layer != null)
                {
                    IRasterLayer rasterLayer;
                    try
                    {
                        rasterLayer = (IRasterLayer)layer;
                        if (rasterLayer.Name != "SymbolPositiveLabel" && rasterLayer.Name != "TextPositiveLabel" && rasterLayer.Name != "TextNegativeLabel" && rasterLayer.Name != ArcStrabo10Extension.TextLayerOCRShapefile)
                        {
                            string dir = rasterInfo.rasterPath = rasterLayer.FilePath;
                            rasterInfo.rasterType = rasterLayer.VisibleExtent.SpatialReference.Name;
                            rasterInfo.rasterTopLeftX = rasterLayer.AreaOfInterest.UpperLeft.X;
                            rasterInfo.rasterTopLeftY = rasterLayer.AreaOfInterest.UpperLeft.Y;
                            rasterInfo.rasterDownRightX = rasterLayer.AreaOfInterest.LowerRight.X;
                            rasterInfo.rasterDownRightY = rasterLayer.AreaOfInterest.LowerRight.Y;

                            string sourceImageDir = CreateDirectory(dir, "Data");
                            rasterInfo.rasterData = sourceImageDir;
                            sourceImageDir = sourceImageDir + "//in";
                            rasterInfo.rasterIn = sourceImageDir;
                            if (!System.IO.Directory.Exists(sourceImageDir))
                                System.IO.Directory.CreateDirectory(sourceImageDir);
                            Image<Bgr, Byte> srcImage = new Image<Bgr, byte>(dir);
                            Bitmap srcimg = new Bitmap(dir);

                            if (rasterInfo.rasterType == "Unknown")
                            {
                                rasterInfo.rasterWidth = int.Parse(Math.Round(rasterLayer.AreaOfInterest.Width).ToString());
                                rasterInfo.rasterHeight = int.Parse(Math.Round(rasterLayer.AreaOfInterest.Height).ToString());

                                rasterInfo.ratserImgPath = rasterLayer.FilePath;
                            }
                            else
                            {
                                rasterInfo.rasterWidth = srcimg.Width;
                                rasterInfo.rasterHeight = srcimg.Height;
                                srcimg.Save(sourceImageDir + "//test.png");
                                rasterInfo.ratserImgPath = sourceImageDir + "//test.png";
                            }

                            _rasterInfo = rasterInfo;

                        }

                    }
                    catch (Exception e)
                    {
                        Log.WriteLine(e.Message);
                        // throw;
                    }
                    layer = enumLayer.Next();
                }
            }
            catch (Exception e)
            {
                Log.WriteLine(e.Message);
            }
        }

Usage Example

        protected override void OnClick()
        {
            #region Symbel Recognition
            ArcStrabo10.ArcStraboObject.RasterMapInfo rasterInfo = new ArcStrabo10.ArcStraboObject.RasterMapInfo();
            string dir = "";
            ArcStraboObject arcStraboObject = new ArcStraboObject();
            arcStraboObject.symbolFindRasterLayerPath(rasterInfo);

            string logPath = arcStraboObject.CreateDirectory(rasterInfo.rasterPath, "Log");

            Log.SetLogDir(System.IO.Path.GetTempPath());
            Log.SetOutputDir(System.IO.Path.GetTempPath());
            Log.SetStartTime();
            Log.WriteLine("Start");
            Log.WriteLine("MakingGeoJsonFile Mathod Start  SIMA");
            IMap map = ArcMap.Document.FocusMap;
            arcStraboObject.MakingSymbolGeoJsonFile();
            Log.WriteLine("MakingGeoJsonFile Mathod Finish");

            ////run TextExtraction Layer from Strao.core and load raster Layer
            Log.WriteLine("textLayerExtract Mathod Start SIMA");

            dir =rasterInfo.ratserImgPath;
            arcStraboObject.SymbolExtraction();
            Log.WriteLine("textLayerExtract Mathod Finish");

            /////Add Polygon of OCR Layer
            Log.WriteLine("CreateFeatureClassWithFields Mathod Start SIMA");
            IWorkspace workspace = arcStraboObject.symbolCreateShapefileWorkspace();
            IFeatureWorkspace featureworkspace = (IFeatureWorkspace)workspace;

            IFeatureClass featureClass = arcStraboObject.CreateFeatureClassWithFieldsGeoRef(ArcStrabo10Extension.TextLayerOCRShapefile, featureworkspace);
            IFeatureLayer featureLayer = arcStraboObject.CreateFeatureLayer(featureClass);
            Log.WriteLine("CreateFeatureClassWithFields Mathod Finish");

            Log.WriteLine("AddPolygon Mathod Start");
            arcStraboObject.addPoligonGeorefrenced(featureLayer, featureworkspace);
            Log.WriteLine("AddPolygon Mathod Finish");

            #endregion
        }