コード例 #1
0
        /// <summary>
        /// 设置要素图片填充
        /// </summary>
        /// <param name="featureLayer"></param>
        /// <param name="pictureName"></param>
        public static void SetFeaturePictureFillSymbol(IFeatureLayer featureLayer, string pictureName)
        {
            IGeoFeatureLayer   geoLayer    = featureLayer as IGeoFeatureLayer;
            IPictureFillSymbol pFillSymbol = new PictureFillSymbolClass();

            pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, pictureName);
            ISimpleRenderer simpleRender = geoLayer.Renderer as ISimpleRenderer;

            if (simpleRender == null)
            {
                simpleRender = new SimpleRendererClass();
            }
            simpleRender.Symbol = pFillSymbol as ISymbol;
            geoLayer.Renderer   = simpleRender as IFeatureRenderer;
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: XYT1033/csdn_download
        //PictureFillSymbol
        private void button16_Click(object sender, EventArgs e)
        {
            IPictureFillSymbol pictureFillSymbol = new PictureFillSymbolClass();
            //创建图片符号
            //string fileName = @"E:\vs2005\第五章\lesson2\lesson2\data\qq.bmp";
            string path     = Directory.GetCurrentDirectory();
            string fileName = path + @"\qq.bmp";

            pictureFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPictureBitmap, fileName);
            pictureFillSymbol.Color = getRGB(0, 255, 0);

            ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass();

            simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDashDotDot;
            simpleLineSymbol.Color = getRGB(255, 0, 0);
            ISymbol symbol = pictureFillSymbol as ISymbol;

            symbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen;

            pictureFillSymbol.Outline = simpleLineSymbol;
            pictureFillSymbol.Angle   = 45;

            object           Missing         = Type.Missing;
            IPolygon         polygon         = new PolygonClass();
            IPointCollection pointCollection = polygon as IPointCollection;
            IPoint           point           = new PointClass();

            point.PutCoords(5, 5);
            pointCollection.AddPoint(point, ref Missing, ref Missing);
            point.PutCoords(5, 10);
            pointCollection.AddPoint(point, ref Missing, ref Missing);
            point.PutCoords(10, 10);
            pointCollection.AddPoint(point, ref Missing, ref Missing);
            point.PutCoords(10, 5);
            pointCollection.AddPoint(point, ref Missing, ref Missing);
            polygon.SimplifyPreserveFromTo();
            IActiveView activeView = this.axMapControl1.ActiveView;

            activeView.ScreenDisplay.StartDrawing(activeView.ScreenDisplay.hDC, (short)esriScreenCache.esriNoScreenCache);
            activeView.ScreenDisplay.SetSymbol(pictureFillSymbol as ISymbol);
            activeView.ScreenDisplay.DrawPolygon(polygon as IGeometry);
            activeView.ScreenDisplay.FinishDrawing();
        }
コード例 #3
0
        /// <summary>
        /// 岩性图层单值渲染
        /// </summary>
        /// <param name="R_pFeatureLayer"></param>
        /// <param name="sFieldName"></param>
        public static void UniqueValueRendererLithology(IFeatureLayer R_pFeatureLayer, string sFieldName)
        {
            IGeoFeatureLayer geoLayer = R_pFeatureLayer as IGeoFeatureLayer;
            ITable           pTable   = geoLayer.FeatureClass as ITable;
            ICursor          pCursor;
            IQueryFilter     pQueryFilter = new QueryFilter();

            pQueryFilter.AddField(sFieldName);              //以唯一值作为条件
            pCursor = pTable.Search(pQueryFilter, true);
            IUniqueValueRenderer pUniqueValueR = new UniqueValueRendererClass();

            pUniqueValueR.FieldCount = 1;                   //单值渲染
            pUniqueValueR.set_Field(0, sFieldName);         //渲染字段
            IFeatureCursor pFeatureCursor = R_pFeatureLayer.Search(pQueryFilter, false);
            IFeature       pFeature       = pFeatureCursor.NextFeature();
            int            index          = R_pFeatureLayer.FeatureClass.FindField(sFieldName);

            int i = 20;

            while (pFeature != null)
            {
                string value = pFeature.get_Value(index).ToString();
                pFeature = pFeatureCursor.NextFeature();
                IPictureFillSymbol pFillSymbol = new PictureFillSymbolClass();
                pFillSymbol.Outline.Width = 1;
                if (value.Equals("上三叠统"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("上三叠统"));
                }
                else if (value.Equals("上古生界"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("上古生界"));
                }
                else if (value.Equals("上白垩统"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("上白垩统"));
                }
                else if (value.Equals("上震旦统"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("上震旦统"));
                }
                else if (value.Equals("下三叠统"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("下三叠统"));
                }
                else if (value.Equals("下白垩统"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("下白垩统"));
                }
                else if (value.Equals("下第三系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("下第三系"));
                }
                else if (value.Equals("下远古界"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("下远古界"));
                }
                else if (value.Equals("下震旦统"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("下震旦统"));
                }
                else if (value.Equals("中远古界"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("中远古界"));
                }
                else if (value.Equals("二叠系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("二叠系"));
                }
                else if (value.Equals("二叠系  三叠系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("二叠系  三叠系"));
                }
                else if (value.Equals("二叠系上统"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("二叠系上统"));
                }
                else if (value.Equals("侏罗纪"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("侏罗纪"));
                }
                else if (value.Equals("奥陶系  志留系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("奥陶系  志留系"));
                }
                else if (value.Equals("志留系 泥盆系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("志留系 泥盆系"));
                }
                else if (value.Equals("新近系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("新近系"));
                }
                else if (value.Equals("泥盆系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("泥盆系"));
                }
                else if (value.Equals("石炭系  二叠系"))
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("石炭系  二叠系"));
                }
                else
                {
                    pFillSymbol.CreateFillSymbolFromFile(esriIPictureType.esriIPicturePNG, LithologyImageUtils.getImagePath("其他岩性")); //i后移一位,以便于对应name字段
                    i++;
                }
                pUniqueValueR.AddValue(value, "", pFillSymbol as ISymbol);
            }
            geoLayer.Renderer = pUniqueValueR as IFeatureRenderer;
            MainFrom.m_mapControl.Refresh();
        }