Smrf.NodeXL.GraphMLLib.TwitterGraphMLUtil.GetLatitudeAndLongitudeFromStatusValueDictionary C# (CSharp) Method

GetLatitudeAndLongitudeFromStatusValueDictionary() public static method

public static GetLatitudeAndLongitudeFromStatusValueDictionary ( Object>.Dictionary statusValueDictionary, String &latitude, String &longitude ) : void
statusValueDictionary Object>.Dictionary
latitude String
longitude String
return void
    GetLatitudeAndLongitudeFromStatusValueDictionary
    (
        Dictionary<String, Object> statusValueDictionary,
        out String latitude,
        out String longitude
    )
    {
        Debug.Assert(statusValueDictionary != null);

        Object geoAsObject;

        if (
            statusValueDictionary.TryGetValue("geo", out geoAsObject)
            &&
            geoAsObject is Dictionary<String, Object>
            )
        {
            Dictionary<String, Object> geoValueDictionary =
                ( Dictionary<String, Object> )geoAsObject;

            Object coordinatesAsObject;

            if (
                geoValueDictionary.TryGetValue("coordinates",
                    out coordinatesAsObject)
                &&
                coordinatesAsObject is Object[]
                )
            {
                Object [] coordinates = ( Object[] )coordinatesAsObject;

                if (coordinates.Length == 2)
                {
                    TwitterJsonUtil.TryConvertJsonValueToString(
                        coordinates[0], out latitude);

                    TwitterJsonUtil.TryConvertJsonValueToString(
                        coordinates[1], out longitude);

                    return;
                }
            }
        }

        latitude = longitude = null;
    }

Usage Example

Example #1
0
        TryFromStatusValueDictionary
        (
            Dictionary <String, Object> statusValueDictionary,
            Boolean expandStatusUrls,
            out TwitterStatus twitterStatus
        )
        {
            Debug.Assert(statusValueDictionary != null);

            twitterStatus = null;

            // Get the status information.

            String statusID, statusText;

            if (
                !TwitterJsonUtil.TryGetJsonValueFromDictionary(
                    statusValueDictionary, "id_str", out statusID)
                ||
                !TwitterJsonUtil.TryGetJsonValueFromDictionary(
                    statusValueDictionary, "text", out statusText)
                )
            {
                return(false);
            }

            String statusDateUtc;

            if (TwitterJsonUtil.TryGetJsonValueFromDictionary(
                    statusValueDictionary, "created_at", out statusDateUtc))
            {
                statusDateUtc = TwitterDateParser.ParseTwitterDate(statusDateUtc);
            }

            String latitude, longitude;

            TwitterGraphMLUtil.GetLatitudeAndLongitudeFromStatusValueDictionary(
                statusValueDictionary, out latitude, out longitude);

            String statusUrls, statusHashtags;

            TwitterGraphMLUtil.GetUrlsAndHashtagsFromStatusValueDictionary(
                statusValueDictionary, expandStatusUrls, out statusUrls,
                out statusHashtags);

            String inReplyToStatusID;

            TwitterJsonUtil.TryGetJsonValueFromDictionary(
                statusValueDictionary, "in_reply_to_status_id_str",
                out inReplyToStatusID);

            // Note that null date, coordinates, URLs hashtags, and in-reply-to-ID
            // are acceptable here.

            twitterStatus = new TwitterStatus(
                statusID, statusText, statusDateUtc, latitude, longitude,
                statusUrls, statusHashtags, inReplyToStatusID);

            return(true);
        }