面朝大海,春暖华开

focus on scientific computue, 3dgis, spatial database
专注于科学计算、GIS空间分析

 

地图投影-将度-分-秒值转换为十进制度值

地图投影-将度-分-秒值转换为十进制度值

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

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

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

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

以下说明讲解了使用字段计算器,将表中字段里以度分秒表示的经度或纬度值转换为十进制度数的方法。

代码使用 VBScript 编写,但能够轻松转化为其他编程语言。

它假定度分秒是以字符串(文本)的形式存储的,数字间留有空格且不带任何符号。例如,数据将被存储为:

25 35 22.3

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

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

步骤:

  1. 将表添加至 ArcMap。
  2. 在内容列表中右键单击该表,然后单击打开。
  3. 单击选项按钮,然后单击添加字段。
  4. 在名称字段中输入 Lat2。
  5. 单击类型下拉箭头,然后在列表中单击双精度。

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

  6. 单击确定。
  7. 右键单击 Lat2 字段,然后单击字段计算器。
  8. 若弹出消息框则单击是。
  9. 选中高级复选框。
  10. 将以下代码粘贴到表达式框:
  11. Dim Degrees
  12. Dim Minutes
  13. Dim Seconds
  14. Dim DMS
  15. Dim DD
  16. DMS = Split([Latitude])
  17. Degrees = CDbl(DMS(0))
  18. Minutes = CDbl(DMS(1))
  19. Seconds = CDbl(DMS(2))
  20. If Degrees < 0 Then
  21. DD = -(Seconds/3600) - (Minutes/60) + Degrees
  22. Else
  23. DD = (Seconds/3600) + (Minutes/60) + Degrees
  24. End If

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

  25. 将以下代码粘贴到对话框底部的 Lat2 = 框中:
  26. CDbl(DD)
  27. 单击确定。
  28. 对于经度值的转换,重复步骤 3 到步骤 12 的过程。

 

posted on   风过 无痕  阅读(756)  评论(0编辑  收藏  举报

(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-08-13 ArcGIS案例学习笔记3_2
2011-08-13 三大牛人看外国文献的方法
2006-08-13 MapXtreme2004鹰眼程序

导航

统计

向日葵支付宝收钱码
点击右上角即可分享
微信分享提示