『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

将度-分-秒值转换为十进制度值

将度-分-秒值转换为十进制度值
以下说明讲解了使用字段计算器,将表中字段里以度分秒表示的经度或纬度值转换为十进制度数的方法。代码使用 VBScript 编写,但能够轻松转化为其他编程语言。它假定度分秒是以字符串(文本)的形式存储的,数字间留有空格且不带任何符号。

    下面是将度分秒转换为十进制度的简单等式:

    DD = (Seconds/3600) + (Minutes/60) + Degrees

    如果角度值是负数,则转换方法不同。其中一种方法是:

    DD = - (Seconds/3600) - (Minutes/60) + Degrees

    以下说明讲解了使用字段计算器,将表中字段里以度分秒表示的经度或纬度值转换为十进制度数的方法。代码使用 VBScript 编写,但能够轻松转化为其他编程语言。它假定度分秒是以字符串(文本)的形式存储的,数字间留有空格且不带任何符号。例如,数据将被存储为:

    25 35 22.3

    其中 25 是度,35 是分,22.3 是秒。

    输出结果将被存储到数值字段中。

    步骤:

    将表添加至 ArcMap

    在内容列表中右键单击该表,并单击打开。

    单击选项按钮,然后单击添加字段。

    在名称字段中输入 Lat2

    单击类型下拉箭头,然后在列表中单击双精度。

    如果 Lat2 已被用作字段名,则另选择一个尚未使用的名称。

    单击确定。

    右键单击 Lat2 字段然后单击字段计算器。

    若弹出消息框则单击是。

    选中高级复选框。

    将以下代码粘贴到表达式框:

    Dim Degrees

    Dim Minutes

    Dim Seconds

    Dim DMS

    Dim DD 

    DMS = Split([Latitude])

    Degrees = CDbl(DMS(0))

    Minutes = CDbl(DMS(1))

    Seconds = CDbl(DMS(2))

    If Degrees < 0 Then

       DD = -(Seconds/3600) - (Minutes/60) + Degrees

    Else

       DD = (Seconds/3600) + (Minutes/60) + Degrees

    End If

    在以 DMS = 开头的第六行中,括号 [ ] 中的文字应当是保存纬度值字段的名称。将代码中的 Latitude 替换为在您的表中存储 DMS 纬度值字段的名称。

    将以下代码粘贴到对话框底部的 Lat2 = 框中:

    CDbl(DD)

    单击确定。

    对于经度值的转换,重复步骤 3 到步骤 12 的过程。

      京ICP备08100627号-22 京公网安备 11010802030428号