HOW TO

Ändern der Füllfarbe und Umrissfarbe von Features in einem ArcGIS-Server-Feature-Service mit einem ArcMap-Add-in

Last Published: October 1, 2025

Zusammenfassung

In diesem Codebeispiel wird gezeigt, wie mit einem ArcMap-Add-in die Füllfarbe und Umrissfarbe von Features in einem ArcGIS-Server-Feature-Service geändert werden. Die Änderungen können durch Speichern des ArcMap-Dokuments in ArcMap beibehalten werden.

Vorgehensweise

Mit dem folgenden Code wird gezeigt, wie die Füllfarbe und Umrissfarbe von Polygon-Features in einem ArcGIS-Server-Feature-Service geändert werden.

Beispielcode (C#)
 using System;
 using System.Collections.Generic;
 using System.Text;
 using System.IO;
 using ESRI.ArcGIS.esriSystem;
 using ESRI.ArcGIS.ArcMapUI;
 using ESRI.ArcGIS.Geodatabase;
 using ESRI.ArcGIS.Carto;
 using ESRI.ArcGIS.Geometry;
 using ESRI.ArcGIS.Display;

 namespace Add_FeatureService_to_ArcMap
 {
     public class Add_FeatureService_to_ArcMap : ESRI.ArcGIS.Desktop.AddIns.Button
     {
         public Add_FeatureService_to_ArcMap()
         {
         }

         protected override void OnClick()
         {
             IMxDocument pMx = ArcMap.Application.Document as IMxDocument;
             //Sie können diese URL durch eine eigene Feature-Service-URL ersetzen. Ich selbst habe einen ArcGIS-Server-Feature-Service, der Polygon-Features unter der folgenden URL enthält:
             string url = "http://localhost:6080/arcgis/rest/services/FC1_Polygons/FeatureServer";
             IPropertySet pFeatServProp = new PropertySet();
             pFeatServProp.SetProperty("DATABASE", url);
             IWorkspaceFactory pFeatWorkspaceFact = new FeatureServiceWorkspaceFactory() as IWorkspaceFactory;
             IFeatureWorkspace pFeatureWorkspace = pFeatWorkspaceFact.Open(pFeatServProp, 0) as IFeatureWorkspace;
             IFeatureClass pfeatClass = pFeatureWorkspace.OpenFeatureClass("0") as IFeatureClass;
             // "0" entspricht dem ersten Layer mit dem/der Index/ID 0. Entsprechend referenzieren "1", "2" die Layer-ID 1
             // und die Layer-ID 2. Sie sollten den REST-Endpunkt des Dienstes überprüfen, damit die "OpenFeatureClass" einen gültigen Parameter enthält.

             IFeatureLayer pfeatLayer = new FeatureLayer();
             pfeatLayer.FeatureClass = pfeatClass;
             pfeatLayer.Name = "Sami_FC1";
             IGroupLayer pGroupLayer = new GroupLayer();
             pGroupLayer.Name = "GroupLayerName";

             // -------------------------------- RENDERER ---------------------------------------------------  
             // Erstellen von RGB-Farben durch den Abruf von Werten aus einem Color-Objekt von Microsoft
             System.Drawing.Color c = System.Drawing.Color.FromName("SlateBlue");
             IRgbColor rgbColor_Fill = CreateRgbColor(c);

             System.Drawing.Color c2 = System.Drawing.Color.FromName("Red");
             IRgbColor rgbColor_Outline = CreateRgbColor(c2);

             ISimpleLineSymbol simpleLineSymbol_Outline = new SimpleLineSymbol();
             simpleLineSymbol_Outline.Color = rgbColor_Outline;
             simpleLineSymbol_Outline.Width = 3.0;

             ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol();
             simpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
             simpleFillSymbol.Color = rgbColor_Fill;
             simpleFillSymbol.Outline = simpleLineSymbol_Outline;

             ISimpleRenderer simpleRenderer = new SimpleRenderer();
             simpleRenderer.Label = "Simple Renderer";
             simpleRenderer.Symbol = simpleFillSymbol as ISymbol;
             IFeatureRenderer featureRenderer = simpleRenderer as IFeatureRenderer;

             IGeoFeatureLayer geoFeatureLayer = pfeatLayer as IGeoFeatureLayer;
             geoFeatureLayer.Renderer = featureRenderer;

             //--------------------------------  RENDERER BEENDEN---------------------------------------------------

             pGroupLayer.Add(pfeatLayer);
             pMx.FocusMap.AddLayer(pGroupLayer);

             ArcMap.Application.CurrentTool = null;
         }
         // Methode zum Extrahieren von RGB-Komponenten aus dem Color-Objekt (einer Struktur) von Microsoft
         protected static IRgbColor CreateRgbColor(System.Drawing.Color c)
         {
             // "c" ist ein Color-Objekt von Microsoft mit vier Komponenten: alpha, R, G, B
             // Die Komponenten R, G und B des System.Drawing.Color-Objekts werden dem ArcObjects-IRgbColor-Objekt zugewiesen
             IRgbColor rgb = new RgbColorClass();
             rgb.Red = c.R; rgb.Green = c.G; rgb.Blue = c.B;
             rgb.UseWindowsDithering = false;
             return rgb;
         }
     }
}

Artikel-ID: 000013843

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln