ArcGISWindowsPhoneSDK.SOEElevationData.wc_OpenReadCompleted C# (CSharp) Метод

wc_OpenReadCompleted() приватный Метод

private wc_OpenReadCompleted ( object sender, OpenReadCompletedEventArgs e ) : void
sender object
e System.Net.OpenReadCompletedEventArgs
Результат void
        void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            JObject jsonObjectData = (JObject)JObject.Load(new JsonTextReader(new StreamReader(e.Result)));
            e.Result.Close();

            if (jsonObjectData["error"] != null)
            {
                MessageBox.Show((int)jsonObjectData["error"]["code"] + ": " + jsonObjectData["error"]["message"]);
                myDrawObject.IsEnabled = true;
                return;
            }

            JArray elevData = (JArray)jsonObjectData["data"];

            int thematicMin, thematicMax;
            thematicMin = thematicMax = elevData[0].Value<int>();

            foreach (int elevValue in elevData)
            {
                if (elevValue < thematicMin) thematicMin = elevValue;
                if (elevValue > thematicMax) thematicMax = elevValue;
            }

            int totalRange = thematicMax - thematicMin;
            int portion = totalRange / 5;

            List<Color> cellColor = new List<Color>();

            foreach (int elevValue in elevData)
            {
                int startValue = thematicMin;
                for (int i = 0; i < 5; i++)
                {
                    if (Enumerable.Range(startValue, portion).Contains(elevValue))
                    {
                        cellColor.Add(colorRanges[i]);
                        break;
                    }
                    else if (i == 4)
                        cellColor.Add(colorRanges.Last());

                    startValue = startValue + portion;
                }
            }

            int rows = Convert.ToInt32(HeightTextBox.Text);
            int cols = Convert.ToInt32(WidthTextBox.Text);
            WriteableBitmap writeableBitmapElevation = new WriteableBitmap(rows, cols);

            int cell = 0;

            for (int x = 0; x < rows; x++)
            {
                for (int y = 0; y < cols; y++)
                {
                    SetPixel(writeableBitmapElevation, x, y, 255, cellColor[cell].R, cellColor[cell].G, cellColor[cell].B);
                    cell++;
                }
            }

            ESRI.ArcGIS.Client.ElementLayer elementLayer = MyMap.Layers["MyElementLayer"] as ESRI.ArcGIS.Client.ElementLayer;
            Image MyOutputImage = elementLayer.Children[0] as Image;
            MyOutputImage.Source = writeableBitmapElevation;
            MyOutputImage.SetValue(ESRI.ArcGIS.Client.ElementLayer.EnvelopeProperty,
                e.UserState as ESRI.ArcGIS.Client.Geometry.Envelope);
        }