これらの数値から計算する方法:
51.501690392607,-0.1263427734375
緯度と経度に?
そのはず
ロンドン、イングランド 51° 32' N 0° 5' W
これらの数値から計算する方法:
51.501690392607,-0.1263427734375
緯度と経度に?
そのはず
ロンドン、イングランド 51° 32' N 0° 5' W
http://geography.about.com/library/howto/htdegrees.htm
これはうまくいくようです。
51.501690392607 を変換するには、まず 51 度の整数部分を取得します。正の値は北です。ネガは南です。
次に小数部分を取ります: 0.501690392607
60 を掛ける: 60 * 0.501690392607 = 30.10142355642
整数部分を 30 分間服用します。
次に小数部分を取ります: 0.10142355642
60 を掛ける: 6.0854133852
秒は最も近い 1 に丸めます。
出てきます: 北緯 51 度 30 分 6 秒。
東/西方向については、東を正、西を負にして繰り返します。
都市を見つけるには、データベースか何かを使用する必要があります...
あなたの変換が一致していないように見える理由がわかりません。
2 つの表現間の基本的な変換は、次のように行うことができます。
// to decimal
decimal = degree + minutes/60 + seconds/3600;
// from decimal
degree = int(decimal)
remaining = decimal - degree
minutes = int(remaining*60)
remaining = remaining - minutes/60
seconds = remaining*3600
度の分数を度と分に変換するには、擬似コードで次のようにします。
degrees = int(frac)
minutes = int((frac - degrees) * 60)
「負の」数をそれぞれ「S」と「W」(対「N」と「E」) に変換するには、「if」を使用します。
疑似コードを実行可能にするためだけに、Python を使用できます...:
def translate(frac, islatitude):
if islatitude: decorate = "NS"
else: decorate = "EW"
if frac < 0:
dec = decorate[1]
frac = abs(frac)
else:
dec = decorate[0]
degrees = int(frac)
minutes = int((frac - degrees) * 60)
return "%d %d %s" % (degrees, minutes, dec)
たとえば、次のようになります。
print translate(51.501690392607, True),
print translate(-0.126342773437, False)
放出する
51 30 N 0 7 W
装飾 (度と分の記号) は、出力デバイスの文字セットのサポートに依存します。また、W 座標の 7 対 5 分の円弧は、指定した入力数値に対して正しい結果のようです。