DMS latlong (例: 37°55'43.6"S, 145°11'26.1"E
) を小数形式 (例: -37.928778,145.190583
) に変換するには、FileMaker の「計算」スクリプトが必要です。
質問する
412 次
3 に答える
2
これを行う楽しい方法は次のとおりです。FileMakerの計算に変換して呼び出しますEvaluate()
。
Evaluate(
"Round( (" &
Substitute (
dms ;
[" ";""] ;
["°";" + "] ;
["'";"/60 + "] ;
["\"";"/3600"] ;
["S";") *-1"] ;
["W";") *-1"] ;
["N";")"] ;
["E";")"] ;
[","; " ; 6 ) & \",\" & Round( ("]
) &
" ; 6 )"
)
上記は、入力を次のような計算に変換します。
Round( (37 + 55/60 + 43.6/3600) *-1 ; 6 ) & "," & Round( (145 + 11/60 + 26.1/3600) ; 6 )
次にそれをEvaluate
に渡します。-37.928778,145.190583
于 2012-12-19T18:16:50.007 に答える
0
split()
これは、 David Snyder によるカスタム関数を使用するものです。
If ( IsEmpty(DMSLatlong);"";
"-" &
Truncate(
(
Trim(split(
Trim(split( DMSLatlong; 1; "," ))
; 1; "°" ))
) +
(
(
Trim(split(
Trim(split(
Trim(split( DMSLatlong; 1; "," ))
; 1; "'" ))
; 2; "°" ))
) / 60
) +
(
(
Trim(split(
Trim(split(
Trim(split( DMSLatlong; 1; "," ))
; 2; "'" ))
; 1; "\"" ))
) / 3600
)
;7)
& "," &
Truncate(
(
Trim(split(
Trim(split( DMSLatlong; 2; "," ))
; 1; "°" ))
) +
(
(
Trim(split(
Trim(split(
Trim(split( DMSLatlong; 2; "," ))
; 1; "'" ))
; 2; "°" ))
) / 60
) +
(
(
Trim(split(
Trim(split(
Trim(split( DMSLatlong; 2; "," ))
; 2; "'" ))
; 1; "\"" ))
) / 3600
)
;7)
)
注: このスクリプトは防弾ではありません。DMS 値が S または W の場合-
、前に記号を配置するように微調整する必要がある場合があります (上記で行ったように)。参照:ウィキペディア: 10 進数から DMS への変換。
于 2012-12-19T05:38:25.453 に答える