度分秒の値から 10 進度の値への変換

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

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

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

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

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

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

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