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]));
}
}