/// <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()); }
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; }