python通过经纬度算出距离_Python中如何利用经纬度进行距离计算

前些天由于工作中需求,要计算经纬度之间的距离,当我去网上搜索距离计算的方法时,发现很多文章中的方法乍一看都是很不同的,同是进行距离计算,为啥这么不一样呢?后来才发现问题在于很多文章没有进行相关的原理说明,直接上了一段代码,让人看了云里雾里的。

其实经纬度属于球面坐标,而我们常规的距离是在平面维度上的,因此,在进行距离计算之前,首先需将球面坐标转换为平面坐标,这样之后才能进行平面距离的测算,计算出来的距离单位就是米了,符合我们的常规认知。(我之前查到的一些方法中,有些是直接调包,有些是十进制和弧度互相做转换,初次接触时可能不是那么好理解背后原理)

以下是亲身实践后,总结的一些可行的计算方法。

一、这种方法按照以上原理,一步一步进行。即先做坐标转换,再进行平面距离计算。

1、这里的坐标转换,可以使用pyproj包中的Transformer功能,以下是代码:

def axis_conversion(data,lat,lon):

#注意lat 在前,lon在后,不能写反

lon = data[lon].values

lat = data[lat].values

transformer = Transformer.from_crs("epsg:4326", "epsg:3857")

#这里将epsg4326转换为epsg3857

#关于坐标系的知识可以参考这个网址:https://www.cnblogs.com/E7868A/p/11460865.html

x3, y3

你可能感兴趣的:(python通过经纬度算出距离)