中文

操作方法:使用字段计算器将度分秒值转换为十进制度值

摘要

警告:
以下过程适用于 ArcGIS 9.3.1 或更早版本。 从 ArcGIS 10.0 开始,仅使用 VBScript 或标准 Python 格式创建计算器中的表达式。

所提供的说明将介绍如何使用字段计算器将存储在字符串字段中的度分秒转换为存储在数字字段中的十进制度数。 这些值必须以没有符号的度分秒形式存储在表格的字段中。 例如:

25 35 22.3

在此例中,25 是度,35 是分,22.3 是秒。

过程

请执行以下步骤。

注:
首先针对正数执行以下步骤。 转换完成后,将任何需要为负的字段乘以 -1。
注:
度/分/秒字段内的记录格式必须为 DD MM SS。 任何空记录或带有额外空格或字符(如单引号或双引号)的记录都可能导致用户中断错误。
  1. 将表添加至 ArcMap。
  2. 在内容列表中右键单击该表,然后单击“打开”。
  3. 验证“编辑”模式是否未启用。 单击“选项”按钮,然后选择“添加字段”。
  4. 在“名称”字段中输入 Lat2,然后从“类型”下拉列表中选择“双精度”。 如果 Lat2 已被用作字段名,则另选择一个尚未使用的名称。
  5. 验证“小数位数”和“精度”是否已设置为 0,然后单击“确定”。
  6. 右键单击 Lat2 字段,然后选择“计算值”。
  7. 若弹出消息框则单击“是”。
  8. 选中“高级”复选框。
  9. 将以下代码复制到预逻辑 VBA 框中:
代码:
Dim Degrees as Double
Dim Minutes as Double
Dim Seconds as Double
Dim DMS as Variant
Dim DD as Double

DMS =  Split([Latitude])
Degrees = CDbl(DMS(0))
Minutes = CDbl(DMS(1))
Seconds = CDbl(DMS(2))
DD = (Seconds/3600) + (Minutes/60)+ Degrees
  1. 找到以“DMS. . .”开头的行 括号 [ ] 中的文本应当是保存纬度值的字段的名称。 将代码中的“Latitude”一词替换为表中存储纬度值的字段的名称。
  2. 将以下代码粘贴到对话框底部的“Lat2 =”框中。
代码:
CDbl(DD)
[O-Image]
  1. 单击“确定”。
  2. 对于经度值的转换,重复步骤 3 到步骤 12 的过程。
注:
在字段计算器中运行 VBA 代码时,DMS 字段中的空值将导致错误。

上次修改时间: 3/5/2020

文章 ID: 000005319