private void ResetBBoxes() { foreach (var way in osmData.osmWays.Values) { SpatialUtilities.SetBboxFor(way); way.SetCenter(); } }
//<way id = "4526699" version="9" timestamp="2016-09-15T08:28:48Z" uid="1745400" user="******" changeset="42167009"> // <nd ref="28099395"/> // <nd ref="1583440533"/> // <nd ref="299356652"/> // <nd ref="28099387"/> // <nd ref="1583440406"/> // <nd ref="28099388"/> // <nd ref="28099389"/> // <nd ref="28099390"/> // <tag k = "highway" v="primary_link"/> // <tag k = "oneway" v="yes"/> //</way> private void HandleWayRead(XmlReader reader) { var osmWay = new OSMWay(); osmWay.ID = Convert.ToInt64(reader.GetAttribute("id")); var doc = new System.Xml.XmlDocument(); XmlNode node = doc.ReadNode(reader); foreach (XmlAttribute attr in node.Attributes) { osmWay.InnerAttributes.Add(attr.Name, attr.Value); } if (node.HasChildNodes) { var nodeRefs = node.SelectNodes("nd"); foreach (XmlNode osmNode in nodeRefs) { var id = Convert.ToInt64(osmNode.Attributes["ref"].Value); if (osmNodes.ContainsKey(id)) { osmWay.NodeList.Add(osmNodes[id]); } } var tags = node.SelectNodes("tag"); foreach (XmlNode tag in tags) { var key = tag.Attributes["k"].Value; var val = tag.Attributes["v"].Value; osmWay.Tags.Add(key, val); } } SpatialUtilities.SetBboxFor(osmWay); osmWay.SetCenter(); osmWays.Add(osmWay.ID, osmWay); }