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