[Python]经纬度转换



原创文章,欢迎转载。转载请注明:转载自 祥的博客

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


经纬度转换

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

请按任意键继续. . .


赞赏码New

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python 经纬度转换为平面坐标需要借助第三方库,比较常用的是 pyproj 和 geopy。 pyproj 提供了工具来处理各种投影方式的坐标系转换,可以将经纬度转换为平面坐标。其中最常用的投影方式是 UTM 投影,可以将地球划分成若干个区域,每个区域采用不同的投影方式。使用 pyproj 将经纬度转换为 UTM 坐标,即可得到平面坐标。 geopy 是一个用于地理编码和反地址编码的 Python 库,其中包含多种投影方式的坐标系转换。使用 geopy,可以轻松地将经纬度转换为平面坐标,同时支持多种坐标系和单位。 使用这些库,可以快速实现 Python 经纬度转换为平面坐标的功能,方便地处理地理空间数据。 ### 回答2: Python是一种动态、面向对象、解释性语言,广泛应用于数据处理、科学计算和计算机编程等领域。在地理信息系统(GIS)的应用中,经纬度是一种常用的地理数据表示方式。但是,经纬度坐标系由于地球是一个球体而非一个平面,因此需要将其通过数学转换为平面坐标系,才能进行地图展示、地理分析等操作。 Python提供了许多库和工具,可以实现经纬度转换为平面坐标的功能。其中,比较常用的有两种方式: 一、使用Proj库 Proj库是一个地图投影库,可以将地球上的经纬度坐标转换为平面坐标。使用前需要安装proj和pyproj库。 使用方法如下: ```python import pyproj # 实例化一个Proj对象 proj = pyproj.Proj(proj='utm', zone=49, ellps='WGS84') # 指定经纬度 longitude = 127.96 latitude = 45.32 # 使用Proj对象进行经纬度转平面坐标 result = proj(longitude, latitude) # 输出结果 print(result) ``` 其中,proj参数指定投影方式,zone参数指定投影带,ellps参数指定参考椭球体。 二、使用GeographicLib库 GeographicLib库是一个开源的地理计算库,提供了很多地理计算的函数,包括经纬度转换为平面坐标。 使用方法如下: ```python from geographiclib.geodesic import Geodesic # 指定两个坐标点 lon1, lat1 = 127.96, 45.32 lon2, lat2 = 128.04, 45.44 # 使用Geodesic库计算两点间距离、角等参数 g = Geodesic.WGS84.Inverse(lat1, lon1, lat2, lon2) distance = g['s12'] # 计算两点距离对应的平面坐标 x, y = Geodesic.WGS84.Forward(lat1, lon1, g['azi1'], distance)[:2] # 输出结果 print(x, y) ``` 其中,Inverse函数用于计算两点间的距离、方位角等参数,Forward函数用于将经纬度坐标转换为平面坐标。 综上所述,Python有多种库可以实现经纬度转换为平面坐标的功能。在实际应用中,可以根据具体的要求和数据形态选择合适的方法。 ### 回答3: Python是一种功能强大的编程语言,可以在各种应用程序中广泛使用。在地理信息系统(GIS)应用程序中,常常需要将经纬度坐标转换为平面坐标,以进行空间分析和可视化。 Python中有许多库可以实现将经纬度坐标转换为平面坐标的操作,包括PyProj、GeoPy和GDAL等等。在这里,我们以使用PyProj库来进行说明。 PyProj库是一个开源的Python库,可以用来进行地理空间数据的投影转换。在使用前需要先安装库,在命令行中输入pip install pyproj即可安装。下面通过一个具体的例子来展示如何使用该库进行经纬度转换。 需要将经纬度坐标(113.321,23.134)转换为平面坐标。首先我们需要选择一个合适的投影,商业应用中常用的有高斯-克吕格投影(Gauss-Kruger projection)和通用横轴墨卡托投影(Universal Transverse Mercator,UTM)等。这里以UTM投影为例。 在PyProj中,UTM投影通常使用通过EPSG代码来指定。需要导入pyproj库,使用一个转换器(Transformer)来将经纬度坐标转换为平面坐标。 代码如下: ```Python import pyproj # 设置UTM投影下的EPSG编码 utm_epsg = 32651 # 创建转换器:从WGS84经纬度坐标到UTM平面坐标 wgs84_to_utm = pyproj.Transformer.from_crs(4326, utm_epsg, always_xy=True) # 输入经纬度坐标 longitude, latitude = 113.321, 23.134 # 使用转换器进行转换 easting, northing = wgs84_to_utm.transform(longitude, latitude) # 输出平面坐标 print(easting, northing) ``` 输出结果为(831550.4546757987, 2552638.1182371756),表示该经纬度坐标在UTM投影下对应的平面坐标为(831550.45,2552638.12)。 总之,使用Python进行经纬度坐标转换为平面坐标的操作并不复杂,只需要选择合适的投影和库,按照一定的步骤操作即可完成。同时,需要注意的是投影转换会引入一定程的误差,因此在精要求较高的业务场景中需要谨慎地进行选择和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值