zoukankan      html  css  js  c++  java
  • 地图投影-将度-分-秒值转换为十进制度值

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

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

    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 的过程。

     

  • 相关阅读:
    MVC3、如何应用EntityFramework 连接MySql 数据库 Kevin
    DEV EXPRESS Summary Footer 不显示 Kevin
    装饰模式 Kevin
    Dev 控件 GridControl 控件 二次绑定数据源的问题。 Kevin
    System.InvalidOperationException 异常 Kevin
    LINQ to XML Kevin
    代理模式——代码版“吊丝的故事” Kevin
    VS2012 中的设备 面板 Kevin
    maven 学习笔记(三)创建一个较复杂的 eclipse+android+maven 工程
    maven 学习笔记(一)eclipse+android+maven
  • 原文地址:https://www.cnblogs.com/xiexiaokui/p/13496794.html
Copyright © 2011-2022 走看看