문제

Google지도는 나에게 다음과 같은 소수점 표기법의 위도와 긴 위치를 제공합니다.

38.203655,-76.113281

코디로 변환하는 방법 (도, 분, 초)

도움이 되었습니까?

해결책

38.203655는 소수점 값의 정도입니다. 60 분은 학위와 1 분 만에 60 초입니다 (1도 == 60 분 == 3600s).

따라서 값의 분수 부분 (예 : 0.203655)을 취한 다음 60 분, 즉 12.2193 (12.2193)을 곱한 다음 분의 분수 부분, 즉 0.2193 = 13.158000 초 동안 반복하십시오.

파이썬의 예 :

def deg_to_dms(deg):
    d = int(deg)
    md = abs(deg - d) * 60
    m = int(md)
    sd = (md - m) * 60
    return [d, m, sd]

print deg_to_dms(38.203655)
print deg_to_dms(-76.113281)

다른 팁

JavaScript에서 다른 GEO 관련 기능이 필요한 경우 다음 라이브러리를 사용할 수 있습니다.

http://www.movable-type.co.uk/scripts/latlong.html

다음 기능을 제공합니다.

  • DMS에서 10 진수 위도/경도 변환
  • 거리 계산
  • 베어링 계산
  • 교차점 계산

트릭을 수행하는 파이썬 라이브러리 :

https://pypi.python.org/pypi/latlon/1.0.2

이것이 솔루션에 도움이 될 것이라고 생각합니다.

def deg_min_sec(self,degrees=0.0):
        if type(degrees) != 'float':
            try:
                degrees = float(degrees)
            except:
                print '\nERROR: Could not convert %s to float.' % (type(degrees))
                return 0
        minutes = degrees % 1.0 * 60
        seconds = minutes % 1.0 * 60

        return (degrees, minutes, seconds)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top