Exemplo n.º 1
0
    /// <summary>
    ///  <member type="way" ref="50905280" role=""/>
    /// </summary>
    /// <param name="node"></param>
    /// <returns></returns>
    public static OSMMember ParseRelationMember(XmlNode node)
    {
        OSMMember osmRelationMember = new OSMMember();

        // parse node-attributes
        foreach (XmlAttribute attribute in node.Attributes)
        {
            string name = attribute.Name;
            switch (name)
            {
            case "type":
                osmRelationMember.Type = (OSMMemberType)int.Parse(attribute.Value);
                break;

            case "ref":
                osmRelationMember.Reference = long.Parse(attribute.Value);
                break;

            case "role":
                osmRelationMember.Role = attribute.Value;
                break;

            default:
                break;
            }
        }



        return(osmRelationMember);
    }
Exemplo n.º 2
0
    //<relation id="448540" user="******" uid="172947" visible="true" version="21" changeset="4699466" timestamp="2010-05-14T20:09:09Z">
    public static OSMRelation ParseRelation(XmlNode node, ref OSMMap map)
    {
        OSMRelation osmRelation = new OSMRelation();

        //HashDictionary<int, OSMNode> tmpNodesDict = new HashDictionary<int, OSMNode>();
        //bool keep = false;

        // parse node-attributes
        foreach (XmlAttribute attribute in node.Attributes)
        {
            string name = attribute.Name;
            switch (name)
            {
            case "id":
                osmRelation.Id = int.Parse(attribute.Value);
                break;

            case "visible":
                osmRelation.Visible = bool.Parse(attribute.Value);
                break;

            case "version":
                osmRelation.version = int.Parse(attribute.Value);
                break;

            default:
                break;
            }
        }

        // parse <nd /> Nodes
        foreach (XmlNode childnode in node.ChildNodes)
        {
            switch (childnode.Name)
            {
            case "member":
                //osmRelation.AddMember(OSMRelationMember.ParseRelationMember(childnode));
                osmRelation.Members.Add(OSMMember.ParseRelationMember(childnode));
                break;

            case "tag":
                //osmRelation.AddTag(OSMParser.ReadKeyValue(childnode));
                osmRelation.AddTag(childnode.Attributes[0].Value, childnode.Attributes[0].Value);
                //KeyValuePair<string, string> tag = OSMParser.ReadKeyValue(childnode);
                break;

            default:
                break;
            }
        }

        return(osmRelation);
    }