/// <summary>
    /// Constructor
    /// </summary>
    /// <param name="node">XML Node</param>
    /// <param name="isReverse">Indicates reverse geocoding result.</param>
    public OnlineMapsOSMNominatimResult(OnlineMapsXML node, bool isReverse)
    {
        this.node = node;

        place_id     = node.A <long>("place_id");
        osm_type     = node.A("osm_type");
        osm_id       = node.A <long>("osm_id");
        place_rank   = node.A <int>("place_rank");
        latitude     = node.A <double>("lat");
        longitude    = node.A <double>("lon");
        location     = new Vector2((float)longitude, (float)latitude);
        display_name = isReverse? node.Value(): node.A("display_name");
        type         = node.A("type");
        importance   = node.A <double>("importance");

        string bb = node.A("boundingbox");

        if (!string.IsNullOrEmpty(bb))
        {
            string[] bbParts = bb.Split(',');
            double   w       = Double.Parse(bbParts[0]);
            double   e       = Double.Parse(bbParts[1]);
            double   s       = Double.Parse(bbParts[2]);
            double   n       = Double.Parse(bbParts[3]);
            boundingbox = new Rect((float)w, (float)n, (float)(e - w), (float)(s - n));
        }

        addressdetails = new Dictionary <string, string>();
    }
    /// <summary>
    /// Constructor
    /// </summary>
    /// <param name="node">XML Node</param>
    /// <param name="isReverse">Indicates reverse geocoding result.</param>
    public OnlineMapsOSMNominatimResult(OnlineMapsXML node, bool isReverse)
    {
        this.node = node;

        place_id = node.A<int>("place_id");
        osm_type = node.A("osm_type");
        osm_id = node.A<int>("osm_id");
        place_rank = node.A<int>("place_rank");
        latitude = node.A<double>("lat");
        longitude = node.A<double>("lon");
        location = new Vector2((float)longitude, (float)latitude);
        display_name = isReverse? node.Value(): node.A("display_name");
        type = node.A("type");
        importance = node.A<double>("importance");

        string bb = node.A("boundingbox");
        if (!string.IsNullOrEmpty(bb))
        {
            string[] bbParts = bb.Split(',');
            double w = Double.Parse(bbParts[0]);
            double e = Double.Parse(bbParts[1]);
            double s = Double.Parse(bbParts[2]);
            double n = Double.Parse(bbParts[3]);
            boundingbox = new Rect((float)w, (float)n, (float)(e - w), (float)(s - n));
        }

        addressdetails = new Dictionary<string, string>();
    }