[Python]經緯度轉換

  • 2020 年 3 月 10 日
  • 筆記

原創文章

原文鏈接:https://blog.csdn.net/humanking7/article/details/101610559


文章目錄

  • @[toc]

  • 1.原理
  • 2. 源碼及測試結果
    • 2.1. 程式源碼
    • 2.2. 測試結果
      • 文本提示

經緯度轉換

1.原理

# 度分秒制 轉換為 小數形式    decNum = 度 + 分/60 + 秒/3600    # 小數形式 轉換為 度分秒制  decNum = I_Part + D_Part  # I_Part: 整數部分  # D_Part: 小數部分  度 = I_Part  分 = D_Part*3600 // 60  # 整除 60  秒 = D_Part*3600 % 60  # 取余  # 或  秒 = D_Part*3600 - 分*60

2. 源碼及測試結果

2.1. 程式源碼

#-*- coding:utf-8 -*-  # 經緯度轉換    # [十進位小數] 轉換為 [度分秒]  def LatLng_Dec2Rad(decNum):      NumIntegral = int(decNum)  # 整數部分      NumDecimal = decNum - NumIntegral  # 小數部分        tmp = NumDecimal * 3600      degree = NumIntegral  # 度      minute = int(tmp//60) # 分      second = tmp - minute*60  # 秒 tmp%3600        return degree, minute, second    # [度分秒] 轉換為 [十進位小數]  def LatLng_Rad2Dec(d,m,s):      decNum = d + m/60.0 + s/3600.0      return decNum      if __name__ == "__main__":        lng_decNum = 113.211  # 要轉換的經度        t = LatLng_Dec2Rad(lng_decNum)      print(t)        k = LatLng_Rad2Dec(t[0],t[1],t[2])      print(k)

2.2. 測試結果

文本提示

(113, 12, 39.59999999999468)  113.211    請按任意鍵繼續. . .