18

Javaユーティリティを探しています。geotoolsライブラリを使用してそれを行う方法を教えていただければさらに良いです。

4

3 に答える 3

23

「10進座標」とは、緯度と経度(10進角とも呼ばれます)を意味しますか?もしそうなら、あなたがやろうとしていることは非常に簡単です:

W87°43'41''などのDMS(Degrees、Minutes、Seconds)座標が与えられた場合、次の方法を使用して小数度に変換するのは簡単です。秒、43′41″ = (43*60 + 41) = 2621秒の合計数を計算します。小数部は、合計秒数を3600で割ったものです。2621/ 3600 =〜0.728056小数度を全度に加算して、最終結果を生成します:87 + 0.728056 = 87.728056

西経座標なので、結果を否定します。最終結果は-87.728056です。

ウィキペディアから。これが同じことをするJavascriptウィジェットです。

于 2011-11-25T01:20:57.787 に答える
23

ソースフォーマットによって異なります。すでに度(d)、分(m)、秒(s)に分割されている場合、アルゴリズムは次のようになります。

(dが正または負であると仮定)

dd = Math.signum(d) * (Math.abs(d) + (m / 60.0) + (s / 3600.0));

文字列にまとめる場合、通常の形式は次のとおりです。

「ddd.mmss」

したがって、正規表現またはString.substring()を使用して解析し、mとsを取得します。

逆変換は次のとおりです。

d = (int)dd;  // Truncate the decimals
t1 = (dd - d) * 60;
m = (int)t1;
s = (t1 - m) * 60;
于 2011-11-25T01:23:24.467 に答える
10
**begin  23°26’49”**
degrees = 23
minutes = 26
seconds = 49
decimal = ((minutes * 60)+seconds) / (60*60))
answer = degrees + decimal
**finish  23.44694444**
于 2013-04-20T08:34:04.417 に答える