コード例 #1
0
        /// <summary>
        /// Create unique valueClasses based on the weather url's
        /// </summary>
        /// <param name="imagevalues"></param>
        /// <returns></returns>
        private static CIMUniqueValueClass[] CreateUniqueValueClasses(List <string> imagevalues)
        {
            List <CIMUniqueValueClass> cimclasses = new List <CIMUniqueValueClass>();

            foreach (string imageUrl in imagevalues)
            {
                CIMPictureMarker marker = new CIMPictureMarker()
                {
                    Size = 30,
                    URL  = BuildPictureMarkerURL(new Uri(imageUrl))
                };

                CIMUniqueValue uniqueValue = new CIMUniqueValue
                {
                    FieldValues = new string[] { imageUrl }
                };

                CIMUniqueValueClass uniqueValueClass = new CIMUniqueValueClass
                {
                    Symbol = SymbolFactory.Instance.ConstructPointSymbol(marker).MakeSymbolReference(),
                    Values = new CIMUniqueValue[] { uniqueValue }
                };

                cimclasses.Add(uniqueValueClass);
            }

            return(cimclasses.ToArray());
        }
コード例 #2
0
ファイル: CommonMethod.cs プロジェクト: Yu-Wenb/GPProgram
        public static void SetShipAngle()
        {
            var task = QueuedTask.Run(() =>
            {
                //Create a list of the above two CIMUniqueValueClasses
                List <CIMUniqueValueClass> listUniqueValueClasses = new List <CIMUniqueValueClass>();
                for (int i = 0; i < 360; i++)
                {
                    List <CIMUniqueValue> listUniqueValues = new List <CIMUniqueValue>();
                    CIMUniqueValue cuv = new CIMUniqueValue {
                        FieldValues = new string[] { i.ToString() }
                    };
                    //CIMMarker cm = SymbolFactory.Instance.ConstructMarker(ColorFactory.Instance.BlackRGB, GetShipSymbolSize(5,8,i), SetShipRotate(i));
                    CIMMarker cm = SymbolFactory.Instance.ConstructMarker(ColorFactory.Instance.BlackRGB, GetShipSymbolSize2(10, i), SetShipRotate(i));
                    listUniqueValues.Add(cuv);
                    CIMUniqueValueClass UniqueValueClass = new CIMUniqueValueClass
                    {
                        Editable = true,
                        Patch    = PatchShape.Default,
                        Symbol   = SymbolFactory.Instance.ConstructPointSymbol(cm).MakeSymbolReference(),
                        Visible  = true,
                        Values   = listUniqueValues.ToArray()
                    };
                    listUniqueValueClasses.Add(UniqueValueClass);
                }

                //Create a list of CIMUniqueValueGroup
                CIMUniqueValueGroup uvg = new CIMUniqueValueGroup
                {
                    Classes = listUniqueValueClasses.ToArray(),
                };
                List <CIMUniqueValueGroup> listUniqueValueGroups = new List <CIMUniqueValueGroup> {
                    uvg
                };
                CIMMarker cm1 = SymbolFactory.Instance.ConstructMarker(ColorFactory.Instance.BlackRGB, 8, SetShipRotate(0));
                //Create the CIMUniqueValueRenderer
                CIMUniqueValueRenderer uvr = new CIMUniqueValueRenderer
                {
                    UseDefaultSymbol = true,
                    DefaultSymbol    = SymbolFactory.Instance.ConstructPointSymbol(cm1).MakeSymbolReference(),
                    Groups           = listUniqueValueGroups.ToArray(),
                    Fields           = new string[] { ConstDefintion.ConstFieldName_cog }
                };
                //Set the feature layer's renderer.
                FeatureLayer featureLayer = MapView.Active.Map.GetLayersAsFlattenedList().First() as FeatureLayer;
                featureLayer.SetRenderer(uvr);
            });
        }
        /// <summary>
        /// Warning! You must call this method on the MCT!
        /// </summary>
        /// <returns></returns>
        private CIMRenderer CreateUniqueValueRendererForUSStates()
        {
            //All of these methods have to be called on the MCT
            if (Module1.OnUIThread)
            {
                throw new CalledOnWrongThreadException();
            }

            //Create the Unique Value Renderer
            CIMUniqueValueRenderer uniqueValueRenderer = new CIMUniqueValueRenderer()
            {
                // set the value field
                Fields = new string[] { "STATE_NAME" }
            };

            //Construct the list of UniqueValueClasses
            List <CIMUniqueValueClass> classes = new List <CIMUniqueValueClass>();

            // Alabama
            List <CIMUniqueValue> alabamaValues = new List <CIMUniqueValue>();
            CIMUniqueValue        alabamaValue  = new CIMUniqueValue()
            {
                FieldValues = new string[] { "Alabama" }
            };

            alabamaValues.Add(alabamaValue);

            var alabamaColor = CIMColor.CreateRGBColor(255, 170, 0);

            var alabama = new CIMUniqueValueClass()
            {
                Values   = alabamaValues.ToArray(),
                Label    = "Alabama",
                Visible  = true,
                Editable = true,
                Symbol   = new CIMSymbolReference()
                {
                    Symbol = SymbolFactory.Instance.ConstructPolygonSymbol(alabamaColor)
                }
            };

            classes.Add(alabama);

            // Alaska
            List <CIMUniqueValue> alaskaValues = new List <CIMUniqueValue>();
            CIMUniqueValue        alaskaValue  = new CIMUniqueValue()
            {
                FieldValues = new string[] { "Alaska" }
            };

            alaskaValues.Add(alaskaValue);

            var alaskaColor = CIMColor.CreateRGBColor(255, 0, 0);

            var alaska = new CIMUniqueValueClass()
            {
                Values   = alaskaValues.ToArray(),
                Label    = "Alaska",
                Visible  = true,
                Editable = true,
                Symbol   = new CIMSymbolReference()
                {
                    Symbol = SymbolFactory.Instance.ConstructPolygonSymbol(alaskaColor)
                }
            };

            classes.Add(alaska);

            // California
            List <CIMUniqueValue> californiaValues = new List <CIMUniqueValue>();
            CIMUniqueValue        californiaValue  = new CIMUniqueValue()
            {
                FieldValues = new string[] { "California" }
            };

            californiaValues.Add(californiaValue);

            var californiaColor = CIMColor.CreateRGBColor(85, 255, 0);

            var california = new CIMUniqueValueClass()
            {
                Values   = californiaValues.ToArray(),
                Label    = "California",
                Visible  = true,
                Editable = true,
                Symbol   = new CIMSymbolReference()
                {
                    Symbol = SymbolFactory.Instance.ConstructPolygonSymbol(californiaColor)
                }
            };

            classes.Add(california);

            // Colorado
            List <CIMUniqueValue> coloradoValues = new List <CIMUniqueValue>();
            CIMUniqueValue        coloradoValue  = new CIMUniqueValue()
            {
                FieldValues = new string[] { "Colorado" }
            };

            coloradoValues.Add(coloradoValue);

            var coloradoColor = CIMColor.CreateRGBColor(0, 92, 230);

            var colorado = new CIMUniqueValueClass()
            {
                Values   = coloradoValues.ToArray(),
                Label    = "Colorado",
                Visible  = true,
                Editable = true,
                Symbol   = new CIMSymbolReference()
                {
                    Symbol = SymbolFactory.Instance.ConstructPolygonSymbol(coloradoColor)
                }
            };

            classes.Add(colorado);

            // so on and so forth for all the 51.
            //....

            //Add the classes to a group (by default there is only one group or "symbol level")
            // Unique value groups
            CIMUniqueValueGroup groupOne = new CIMUniqueValueGroup()
            {
                Heading = "State Names",
                Classes = classes.ToArray()
            };

            uniqueValueRenderer.Groups = new CIMUniqueValueGroup[] { groupOne };

            //Draw the rest with the default symbol
            uniqueValueRenderer.UseDefaultSymbol = true;
            uniqueValueRenderer.DefaultLabel     = "All other values";

            var defaultColor = CIMColor.CreateRGBColor(215, 215, 215);

            uniqueValueRenderer.DefaultSymbol = new CIMSymbolReference()
            {
                Symbol = SymbolFactory.Instance.ConstructPolygonSymbol(defaultColor)
            };

            return(uniqueValueRenderer as CIMRenderer);
        }
        /// <summary>
        /// Warning! You must call this method on the MCT!
        /// </summary>
        /// <returns></returns>
        private CIMRenderer CreateUniqueValueRendererForUSStates() {
            //All of these methods have to be called on the MCT
            if (Module1.OnUIThread)
                throw new CalledOnWrongThreadException();

            //Create the Unique Value Renderer
            CIMUniqueValueRenderer uniqueValueRenderer = new CIMUniqueValueRenderer();

            // set the value field
            uniqueValueRenderer.Fields = new string[] { "STATE_NAME" };

            //Construct the list of UniqueValueClasses
            List<CIMUniqueValueClass> classes = new List<CIMUniqueValueClass>();

            // Alabama
            List<CIMUniqueValue> alabamaValues = new List<CIMUniqueValue>();
            CIMUniqueValue alabamaValue = new CIMUniqueValue();
            alabamaValue.FieldValues = new string[] { "Alabama" };
            alabamaValues.Add(alabamaValue);

            var alabamaColor = CIMColor.CreateRGBColor(255, 170, 0);

            var alabama = new CIMUniqueValueClass() {
                Values = alabamaValues.ToArray(),
                Label = "Alabama",
                Visible = true,
                Editable = true,
                Symbol = new CIMSymbolReference() {Symbol = SymbolFactory.ConstructPolygonSymbol(alabamaColor)}
            };

            classes.Add(alabama);

            // Alaska
            List<CIMUniqueValue> alaskaValues = new List<CIMUniqueValue>();
            CIMUniqueValue alaskaValue = new CIMUniqueValue();
            alaskaValue.FieldValues = new string[] { "Alaska" };
            alaskaValues.Add(alaskaValue);

            var alaskaColor = CIMColor.CreateRGBColor(255, 0, 0);

            var alaska = new CIMUniqueValueClass() {
                Values = alaskaValues.ToArray(),
                Label = "Alaska",
                Visible = true,
                Editable = true,
                Symbol = new CIMSymbolReference() { Symbol = SymbolFactory.ConstructPolygonSymbol(alaskaColor) }
            };

            classes.Add(alaska);

            // California
            List<CIMUniqueValue> californiaValues = new List<CIMUniqueValue>();
            CIMUniqueValue californiaValue = new CIMUniqueValue();
            californiaValue.FieldValues = new string[] { "California" };
            californiaValues.Add(californiaValue);

            var californiaColor = CIMColor.CreateRGBColor(85, 255, 0);

            var california = new CIMUniqueValueClass() {
                Values = californiaValues.ToArray(),
                Label = "California",
                Visible = true,
                Editable = true,
                Symbol = new CIMSymbolReference() { Symbol = SymbolFactory.ConstructPolygonSymbol(californiaColor) }
            };

            classes.Add(california);

            // Colorado
            List<CIMUniqueValue> coloradoValues = new List<CIMUniqueValue>();
            CIMUniqueValue coloradoValue = new CIMUniqueValue();
            coloradoValue.FieldValues = new string[] { "Colorado" };
            coloradoValues.Add(coloradoValue);

            var coloradoColor = CIMColor.CreateRGBColor(0, 92, 230);

            var colorado = new CIMUniqueValueClass() {
                Values = coloradoValues.ToArray(),
                Label = "Colorado",
                Visible = true,
                Editable = true,
                Symbol = new CIMSymbolReference() { Symbol = SymbolFactory.ConstructPolygonSymbol(coloradoColor) }
            };

            classes.Add(colorado);

            // so on and so forth for all the 51.
            //....

            //Add the classes to a group (by default there is only one group or "symbol level")
            // Unique value groups
            CIMUniqueValueGroup groupOne = new CIMUniqueValueGroup();
            groupOne.Heading = "State Names";
            groupOne.Classes = classes.ToArray();

            uniqueValueRenderer.Groups = new CIMUniqueValueGroup[] { groupOne };

            //Draw the rest with the default symbol
            uniqueValueRenderer.UseDefaultSymbol = true;
            uniqueValueRenderer.DefaultLabel = "All other values";

            var defaultColor = CIMColor.CreateRGBColor(215, 215, 215);
            uniqueValueRenderer.DefaultSymbol = new CIMSymbolReference() {
                Symbol = SymbolFactory.ConstructPolygonSymbol(defaultColor)
            };
            
            return uniqueValueRenderer as CIMRenderer;
        }