private void CreateAreas(XDocument doc, Canvas canvas) { string[] areaStrings = { "area", "leisure" }; foreach (var way in doc.Root.Elements("way")) { bool isArea = false; foreach (var tag in way.Elements("tag")) { if (areaStrings.Contains(tag.Attribute("k").Value)) { isArea = true; } } if (isArea) { List <Point> points = new List <Point>(); foreach (var nd in way.Elements("nd")) { Point point = NodePosition(long.Parse(nd.Attribute("ref").Value)); point = new Point(canvas.Width * 0.5 - point.X, canvas.Height * 0.5 + point.Y); points.Add(point); } var area = OsmUIElements.CreateArea(points, way); canvas.Children.Add(area); } } }