次に示すのは、度、分、秒から 10 進表記の度単位へ変換するための簡単な数式です。
DD = (秒/3600) + (分/60) + 度
度の値が負の場合は、変換を別の方法で処理する必要があります。 次に 1 つの方法を示します。
DD = (秒/3600) - (分/60) + 度
次の手順は、フィールド演算を使用して、テーブルのフィールドにある度、分、秒で表された緯度または経度の値を 10 進表記の度単位に変換する方法を示しています。 コードは VBScript で書かれていますが、他のプログラミング言語にも簡単に変換できます。 度、分、秒が文字列 (テキスト) として格納され、数値がスペースで区切られ、シンボルが含まれていないことを前提とします。 たとえば、データは次のように格納されています。
25 35 22.3
25 は度、35 は分、22.3 は秒を表します。
出力は数値フィールドに格納されます。
- ArcMap にテーブルを追加します。
- コンテンツ ウィンドウのテーブルを右クリックして [開く] をクリックします。
- [オプション] ボタンをクリックし、[フィールドの追加] をクリックします。
- [名前] フィールドに「Lat2」と入力します。
- [タイプ] ドロップダウン矢印をクリックし、リストから [Double] をクリックします。
Lat2 がすでにフィールド名として使用されている場合は、未使用の名前を選択してください。
- [OK] をクリックします。
- [Lat2] フィールドを右クリックし、[フィールド演算] をクリックします。
- メッセージ ボックスが表示されたら、[はい] をクリックします。
- [コードブロックを表示] チェックボックスをオンにします。
- 以下のコードを [事前に作成したスクリプト コード] ボックスに貼り付けます。
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 緯度値を保持する (テーブル内の) フィールドの名前と置き換えてください。
- ダイアログ ボックス下部の [Lat2 =] ボックスに、以下のコードを貼り付けます。
CDbl(DD)
- [OK] をクリックします。
- 経度値に対して、ステップ 3 ~ 12 を繰り返します。