度、分、秒から 10 進表記の度単位の値への変換

次に示すのは、度、分、秒から 10 進表記の度単位へ変換するための簡単な数式です。

10 進度 = (秒 / 3600) + (分 / 60) + 度

度の値が負の場合は、変換を別の方法で処理する必要があります。次に 1 つの方法を示します。

10 進度 = - (秒 / 3600) - (分 / 60) + 度

次の手順は、[フィールド演算] を使用して、テーブルのフィールドにある度、分、秒で表された緯度または経度の値を 10 進表記の度単位に変換する方法を示しています。コードは VBA で書かれていますが、他のプログラミング言語にも簡単に変換できます。度、分、秒が文字列(テキスト)として格納され、数値がスペースで区切られ、シンボルが含まれていないことを前提とします。たとえば、データは次のように格納されています。

25 35 22.3

25 は度、35 は分、22.3 は秒を表します。

出力は数値フィールドに格納されます。

手順:
  1. ArcMap にテーブルを追加します。
  2. コンテンツ ウィンドウのテーブルを右クリックして [開く] をクリックします。
  3. [オプション] ボタンをクリックし、[フィールドの追加] をクリックします。
  4. フィールドの [名前] として、「Lat2」と入力します。
  5. [タイプ] ドロップダウン リストから [Double] を選択します。

    「Lat2」がすでにフィールド名として使用されている場合は、未使用の名前を選択してください。

  6. [OK] をクリックする。
  7. Lat2 フィールドを右クリックし、[フィールド演算] をクリックします。
  8. メッセージ ボックスが表示されたら、[はい] をクリックします。
  9. [コードブロックを表示] チェックボックスをオンにします。
  10. 以下のコードを条件式のボックスに貼り付けます。
    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))
    If Degrees < 0 Then
       DD = -(Seconds/3600) - (Minutes/60) + Degrees
    Else
       DD = (Seconds/3600) + (Minutes/60) + Degrees
    End If

    'DMS. . .' で始まる 6 行目では、角かっこ [ ] 内のテキストは、緯度値を含んだフィールドの名前になります。コード内の「Latitude」を、テーブルにおいて DMS 緯度値を保持するフィールドの名前と置き換えてください。

  11. ダイアログ ボックス下部の 'Lat2 =' ボックスに、以下のコードを貼り付けます。
    CDbl(DD)
  12. [OK] をクリックする。
  13. 経度値に対して、ステップ 3 ~ 12 を繰り返します。

7/10/2012