private void AddLineGraphics()
{
string geoRSSLine = @"<?xml version='1.0' encoding='utf-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:georss='http://www.georss.org/georss'>
<georss:line>-118.169, 34.016, -104.941, 39.7072, -96.724, 32.732</georss:line>
<georss:line>-28.69, 14.16, -14.91, 23.702, -1.74, 13.72</georss:line>
</feed>";
List<ESRI.ArcGIS.Client.Geometry.Polyline> polylineList = new List<ESRI.ArcGIS.Client.Geometry.Polyline>();
using (System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(new System.IO.StringReader(geoRSSLine)))
{
while (xmlReader.Read())
{
switch (xmlReader.NodeType)
{
case System.Xml.XmlNodeType.Element:
string nodeName = xmlReader.Name;
if (nodeName == "georss:line")
{
string lineString = xmlReader.ReadElementContentAsString();
string[] lineCoords = lineString.Split(',');
ESRI.ArcGIS.Client.Geometry.PointCollection pointCollection = new ESRI.ArcGIS.Client.Geometry.PointCollection();
for (int i = 0; i < lineCoords.Length; i += 2)
{
MapPoint mp = new MapPoint(Convert.ToDouble(lineCoords[i]), Convert.ToDouble(lineCoords[i + 1]));
MapPoint conv_mp = wm.FromGeographic(mp) as MapPoint;
pointCollection.Add(conv_mp);
}
ESRI.ArcGIS.Client.Geometry.Polyline polyline = new ESRI.ArcGIS.Client.Geometry.Polyline();
polyline.Paths.Add(pointCollection);
polylineList.Add(polyline);
}
break;
}
}
}
GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;
foreach (ESRI.ArcGIS.Client.Geometry.Polyline polyline in polylineList)
{
Graphic graphic = new Graphic()
{
Symbol = DefaultLineSymbol,
Geometry = polyline
};
graphicsLayer.Graphics.Add(graphic);
}
}