${REST_ThemeRange_Title}

${REST_ThemeRange_Description}

Inheritance: Theme
Ejemplo n.º 1
0
        internal static string ToJson(ThemeRange themeRange)
        {
            string json = "{";
            List<string> list = new List<string>();

            if (themeRange.Items != null && themeRange.Items.Count >= 1)
            {
                List<string> tempTUI = new List<string>();
                foreach (var item in themeRange.Items)
                {
                    tempTUI.Add(ThemeRangeItem.ToJson(item));
                }

                list.Add(string.Format("\"items\":[{0}]", String.Join(",", tempTUI.ToArray())));
            }
            else
            {
                list.Add("\"items\":[]");
            }

            list.Add(string.Format("\"rangeParameter\":\"{0}\"", themeRange.RangeParameter.ToString()));

            list.Add(string.Format("\"rangeMode\":\"{0}\"", themeRange.RangeMode));
            list.Add(string.Format("\"colorGradientType\":\"{0}\"", themeRange.ColorGradientType.ToString()));
            if (!string.IsNullOrEmpty(themeRange.RangeExpression))
            {
                list.Add(string.Format("\"rangeExpression\":\"{0}\"", themeRange.RangeExpression));
            }
            else
            {
                list.Add("\"rangeExpression\":\"\"");
            }

            if (themeRange.MemoryData != null)
            {
                list.Add("\"memoryData\":" + themeRange.ToJson(themeRange.MemoryData));
            }
            else
            {
                list.Add("\"memoryData\":null");
            }
            list.Add("\"type\":\"RANGE\"");

            json += string.Join(",", list.ToArray());
            json += "}";

            return json;
        }
        //点击生成专题图触发事件
        private async void commit_Click(object sender, RoutedEventArgs e)
        {
            //设置专题图子项
            List<ThemeRangeItem> themeRangeItems = new List<ThemeRangeItem>
            {
                new ThemeRangeItem
                {
                    Start = 0.0,
                    End = 59973,
                    Visible = true,
                    Style = new ServerStyle 
                    {
                        FillForeColor = new Color {R=216,G=244,B=254},
                        LineWidth = 0.1,
                    }
                },
                
                new ThemeRangeItem
                {
                    Start = 59973,
                    End = 1097234,
                    Visible = true ,
                    Style = new ServerStyle 
                    {
                         FillForeColor = new Color {R=131,G=232,B=252},
                         LineWidth = 0.1 ,
                    }
                },

                new ThemeRangeItem
                {
                    Start = 1097234,
                    End = 5245515,
                    Visible = true ,
                    Style = new ServerStyle 
                    {
                        FillForeColor = new Color {R=112,G=212,B=243},
                        LineWidth = 0.1,
                    }
                },
                 
                new ThemeRangeItem
                {
                    Start = 5245515,
                    End = 17250390,
                    Visible = true,
                    Style = new ServerStyle 
                    {
                        FillForeColor = new Color {R=23,G=198,B=238},
                        LineWidth = 0.1,
                    }
                },

                new ThemeRangeItem
                {
                    Start = 17250390,
                    End = 894608700,
                    Visible = true,
                    Style = new ServerStyle 
                    {
                        FillForeColor = new Color {R=0,G=187,B=236},
                        LineWidth = 0.1 ,
                    }
                },

                new ThemeRangeItem
                {
                    Start = 894608700,
                    End =  12E+8,
                    Visible = true ,
                    Style = new ServerStyle 
                    {
                        FillForeColor = new Color {R=0,G=133,B=236},
                        LineWidth = 0.1 ,
                    }
                }
            };
            //设置范围分段专题图字段、分段模式、分段参数和子项数组
            ThemeRange themeRange = new ThemeRange
            {
                RangeExpression = "Pop_1994",
                RangeMode = RangeMode.EQUALINTERVAL,
                RangeParameter = 6,
                Items = themeRangeItems
            };
            //设置专题图参数
            ThemeParameters themeRangeParams = new ThemeParameters
            {
                //数据集名称
                DatasetName = "Countries",
                //数据源名称
                DataSourceName = "World",
                Themes = new List<Theme> { themeRange }
            };
            //与服务器交互
            try
            {
                ThemeService themeRangeServie = new ThemeService(url);
                var result = await themeRangeServie.ProcessAsync(themeRangeParams);
                //显示专题图。专题图在服务端为一个资源,每个资源都有一个 ID 号和一个 url
                //要显示专题图即将资源结果的 ID 号赋值给图层的 layersID 属性即可
                themeLayer.LayersID = result.ResourceInfo.NewResourceID;
                if (!this.MyMap.Layers.Contains(themeLayer))
                {
                    //加载专题图图层
                    this.MyMap.Layers.Add(themeLayer);
                }
                if (!themeLayer.IsVisible)
                {
                    themeLayer.IsVisible = true;
                }
            }
            //与服务器交互失败
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Ejemplo n.º 3
0
        internal static ThemeRange FromJson(JsonObject json)
        {
            if (json == null) return null;
            ThemeRange themeRange = new ThemeRange();

            if (json["items"].ValueType != JsonValueType.Null && json["items"].GetObjectEx().Count > 0)
            {
                List<ThemeRangeItem> itemsList = new List<ThemeRangeItem>();
                foreach (JsonObject item in json["items"].GetArray())
                {
                    itemsList.Add(ThemeRangeItem.FromJson(item));
                }

                themeRange.Items = itemsList;
            }

            if (json["colorGradientType"].ValueType != JsonValueType.Null)
            {
                themeRange.ColorGradientType = (ColorGradientType)Enum.Parse(typeof(ColorGradientType), json["colorGradientType"].GetStringEx(), true);
            }
            else
            {
                //这里不处理为空时的情况
            }

            themeRange.RangeExpression = json["rangeExpression"].GetStringEx();
            if (json["rangeMode"].ValueType!= JsonValueType.Null)
            {
                themeRange.RangeMode = (RangeMode)Enum.Parse(typeof(RangeMode), json["rangeMode"].GetStringEx(), true);
            }
            else
            {
                //不处理Null的情况
            }
            themeRange.RangeParameter = json["rangeParameter"].GetNumberEx();
            return themeRange;
        }