验证纬度和经度

发布于 2024-11-18 01:09:10 字数 777 浏览 2 评论 0原文

我想验证纬度和经度。现在,我只是检查该值是否不为空,但我想要进行验证以检查它是否是有效的纬度或经度。

我该怎么做?

我的财产是这样的:

public string Lat
{
    get {
        return this._lat; 
    }
    set 
    {
        base.ValidationErrors.Remove("Lat");

        if (String.IsNullOrWhiteSpace(value))
        {
            this.ValidationErrors.Add("Lat", strings.Positions_Lat_Empty);
        }

        this._lat = value != null ? value.Trim() : null;
    }
}

public string Lng
{
    get { 
        return this._lng; 
    }
    set {

        base.ValidationErrors.Remove("Lng");

        if (String.IsNullOrWhiteSpace(value))
        {
            this.ValidationErrors.Add("Lng", strings.Positions_Lng_Empty);
        }

        this._lng = value != null ? value.Trim() : null; 
    }
}

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.

How do I do that?

My property looks like this:

public string Lat
{
    get {
        return this._lat; 
    }
    set 
    {
        base.ValidationErrors.Remove("Lat");

        if (String.IsNullOrWhiteSpace(value))
        {
            this.ValidationErrors.Add("Lat", strings.Positions_Lat_Empty);
        }

        this._lat = value != null ? value.Trim() : null;
    }
}

public string Lng
{
    get { 
        return this._lng; 
    }
    set {

        base.ValidationErrors.Remove("Lng");

        if (String.IsNullOrWhiteSpace(value))
        {
            this.ValidationErrors.Add("Lng", strings.Positions_Lng_Empty);
        }

        this._lng = value != null ? value.Trim() : null; 
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

開玄 2024-11-25 01:09:10

来自 MSDN

http://msdn.microsoft.com/en-us/library/aa578799 .aspx

纬度测量向北或向北的距离
赤道以南的一个地方是
位于。赤道位于
0°,北极位于北纬 90°(或
90°,因为正纬度
意味着北),南极点在
南纬 90°(或 –90°)。纬度
测量范围从 0° 到
(+/-)90°。

经度测量东边或东边的距离
本初子午线以西有一个地方是
位于。本初子午线运行
途经英国格林威治。经度
测量范围从 0° 到
(+/-)180°。

在此处输入图像描述

在纬度设置器中,检查设置的值是否在 -90 到 90 度之间。如果没有,则抛出异常。对于您的经度,检查值是否在 -180 到 180 度之间。如果没有,则抛出异常。

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°.

enter image description here

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.

醉态萌生 2024-11-25 01:09:10

或者,您可以使用构建的 GeoCooperative 类进入.NET 4(参考System.Device.dll)。它的构造函数抛出无效的经度和纬度:

纬度

类型:System.Double

位置的纬度。范围可能从 -90.0 到 90.0。

经度

类型:System.Double

位置的经度。范围可能为 -180.0 到 180.0。

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.

初见你 2024-11-25 01:09:10

使用双精度数,而不是字符串。如果您需要允许字符串输入,请使用 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;
        }
    }

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;
        }
    }
梦里南柯 2024-11-25 01:09:10

通常纬度/经度是小数,而不是字符串。

十进制度可以替代
使用度、分和秒
(DMS)。与纬度和经度一样,
这些值的范围为 ±90°,并且
分别为±180°。正纬度
位于赤道以北,为负值
纬度位于赤道以南。
正经度位于 Prime 以东
子午线,负经度为西
本初子午线。纬度和
经度通常表示为
该序列,之前的纬度
经度。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文