ASP.NET - getting Zero as logitude and latitude with every address in .net

Asked By Reena Jain on 18-Mar-13 04:02 AM

In my asp.net application I was using Geocode to find latitude and longitude for given address and was saving these in database. Its very strange that, its was working perfectly from last 8 month but suddenly from 2 days its returning Zero for every address we are providing even i had tried with old addresses for which it was working but now for that also its returning zero as logitude and latitude.

Please let me know how to fix this problem

Here is the code i am using, which was working before, I have not changed anything


public decimal Longitude
    {
        get
        {
            return _longitude;
        }
        set
        {
            this._longitude = value;
        }
    }

    #endregion
}

public class Geocode
{

    private const string _googleUri = "https://maps.google.com/maps/geo?q=";
    private const string _outputType = "csv"; // Available options: csv, xml, kml, json
    //
    private const string _googleKey = ""; //here i am giving my key

    /// <summary>
    /// Returns a Uri of the Google code Geocoding Uri.
    /// </summary>
    /// <param name="address">The address to get the geocode for.</param>
    /// <returns>A new Uri</returns>
    private static Uri GetGeocodeUri(string address)
    {
       // string googleKey = ConfigurationManager.AppSettings["googleApiKey"].ToString();
        address = HttpUtility.UrlEncode(address);
        return new Uri(String.Format("{0}{1}&output={2}&key={3}", _googleUri, address, _outputType, _googleKey));
    }

    /// <summary>
    /// Gets a Coordinate from a address.
    /// </summary>
    /// <param name="address">An address.
    ///     <remarks>
    ///         <example>
    ///         3276 Westchester Ave, Bronx, NY 10461
    /// 
    ///         or 
    /// 
    ///         New York, NY 
    /// 
    ///         or
    /// 
    ///         10461  (just a zipcode)
    ///         </example>
    ///     </remarks>
    /// </param>
    /// <returns>A spatial coordinate that contains the latitude and longitude of the address.</returns>
    public static Coordinate GetCoordinates(string address)
    {
        WebClient client = new WebClient();
        Uri uri = GetGeocodeUri(address);

        /*  The first number is the status code, 
         * the second is the accuracy, 
         * the third is the latitude, 
         * the fourth one is the longitude.
         */
        string[] geocodeInfo = client.DownloadString(uri).Split(',');

        return new Coordinate(Convert.ToDecimal(geocodeInfo[2]), Convert.ToDecimal(geocodeInfo[3]));
    }

}

Robbe Morris replied to Reena Jain on 18-Mar-13 08:34 AM
Your developer key has probably reached the maximum allowed hits.  You might try getting a new developer key and seeing if this code works.  Otherwise, they may have changed their API.
Reena Jain replied to Robbe Morris on 21-Mar-13 01:49 AM
Hi,

Actually I had checked and apply new key but its not working at all. So i have used a new key generated with yahoo and it worked for me.

Thanks for your help