I want to validate the latitude and longitude. Right now, I check just so that the value is not empty, but I want a validation to check that it is a valid latidue or longitude.<
Alternatively you can use GeoCoordinate class that is built into .NET 4 (reference System.Device.dll). Its constructor throws on invalid longitude and latitude:
latitude
Type: System.Double
The latitude of the location. May range from -90.0 to 90.0.
longitude
Type: System.Double
The longitude of the location. May range from -180.0 to 180.0.
typically latitude/longitude are decimals, not a strings.
Decimal degrees are an alternative to using degrees, minutes, and seconds (DMS). As with latitude and longitude, the values are bounded by ±90° and ±180° respectively. Positive latitudes are north of the equator, negative latitudes are south of the equator. Positive longitudes are east of Prime Meridian, negative longitudes are west of the Prime Meridian. Latitude and longitude are usually expressed in that sequence, latitude before longitude.
From MSDN
http://msdn.microsoft.com/en-us/library/aa578799.aspx
Latitude measures how far north or south of the equator a place is located. The equator is situated at 0°, the North Pole at 90° north (or 90°, because a positive latitude implies north), and the South Pole at 90° south (or –90°). Latitude measurements range from 0° to (+/–)90°.
Longitude measures how far east or west of the prime meridian a place is located. The prime meridian runs through Greenwich, England. Longitude measurements range from 0° to (+/–)180°.
In your setter for latitude, check if the value being set falls between -90 and 90 degrees. If it doesn't, throw an exception. For your longitude, check to see if the value falls between -180 and 180 degrees. If it doesn't, throw an exception.
Use Doubles, rather than Strings. If you need to allow String input then use Double.TryParse(string)
public Double Lat
{
get
{
return this._lat;
}
set
{
if (value < -90 || value > 90)
{
throw new ArgumentOutOfRangeException("Latitude must be between -90 and 90 degrees inclusive.");
}
this._lat= value;
}
}
public Double Lng
{
get
{
return this._lng;
}
set
{
if (value < -180 || value > 180)
{
throw new ArgumentOutOfRangeException("Longitude must be between -180 and 180 degrees inclusive.");
}
this._lng= value;
}
}