1

DMS latlong (例: 37°55'43.6"S, 145°11'26.1"E) を小数形式 (例: -37.928778,145.190583) に変換するには、FileMaker の「計算」スクリプトが必要です。

4

3 に答える 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 に答える