首页 > 编程语言 >Python 根据经纬度坐标计算位置

Python 根据经纬度坐标计算位置

时间:2023-02-02 15:57:00浏览次数:45  
标签:__ distance lat1 经纬度 lat2 Python 坐标 lng2 lng1

示例代码 

from math import radians, cos, sin, asin, sqrt


# 公式计算两点间距离(m)
def geodistance(lng1, lat1, lng2, lat2):
    # lng1,lat1,lng2,lat2 = (116.37, 40.04, 116.43, 40.08)
    lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)])  # 经纬度转换成弧度
    dlon = lng2 - lng1
    dlat = lat2 - lat1
    a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2
    distance = 2 * asin(sqrt(a)) * 6371 * 1000  # 地球平均半径,6371km
    distance = round(distance / 1000, 3)
    return distance


if __name__ == "__main__":
    t = geodistance(116.37, 40.04, 116.43, 40.08)
    print t # 6.772KM

 

#调用geopy包中的方法

from geopy.distance import geodesic

print(geodesic((30.28708,120.12802999999997), (28.7427,115.86572000000001)).m) #计算两个坐标直线距离
print(geodesic((30.28708,120.12802999999997), (28.7427,115.86572000000001)).km) #计算两个坐标直线距离
# 返回 447.2497993542003 千米


# 南昌:华东交通大学(120.12802999999997,30.28708)
# 杭州:浙江工商大学(115.86572000000001,28.7427)

 

标签:__,distance,lat1,经纬度,lat2,Python,坐标,lng2,lng1
From: https://www.cnblogs.com/zhaoyingjie/p/17086253.html

相关文章

  • Python字符串如何转为bytes对象
    1,字符串转换byte字节指的是计算机上面用来表示存储值的一种计量单位,但是它放在python里面的话就是一种数据类型,这个数据类型的名称为bytes。可以将其看做是二进制字节格......
  • Python中time库的使用(日期时间)
    time库是python中处理时间的标准库。计算机时间的表达:time()、ctime()、gmtime();提供获取系统时间并格式化输出功能:strftime()、strptime()提供系统级精确计......
  • 2、Python基础(函数)
    #格式化代码快捷键Ctrl+Alt+L#函数的定义​deff1():print("你好")​​#函数的调用f1()​​#函数的参数#使用函数计算1+2的值​d......
  • python入门之元组(tuple)
    """元组tuple1.由一系列变量组成的不可变系列容器2.不可变是指一但创建,不可以再添加/删除/修改元素3.列表用[],元组用()4.列表和元......
  • 单一资产VaR风险--基于python
    数据源:使用 AKShare包。它是一个免费、开源的Python财经数据接口包。网址https://www.akshare.xyz/index.html一、获取数据:计算日收益率:importpandasaspdimport......
  • 单一资产VBA风险--基于python处理
    数据来源:AKShare包;介绍:https://www.akshare.xyz/index.html;它是一个免费、开源的Python财经数据接口包。一、计算日收益率;importpandasaspdimportnumpyasnpim......
  • 多资产VBA风险--基于python处理
    一、数据准备,先在excel表格上计算每日的波动率;excel数据为:  二、数据导入:importpandasaspdimportnumpyasnpimportakshareasakimportscipy.statsass......
  • Linux下Python2.x升级Python3.7
    一、查看当前Python版本[root@localhost~]#python-VPython2.7.5二、下载新的python包并安装进入Python官网(https://www.python.org),选择需要的版本。此处我选择Py......
  • Python用PrettyTable输出漂亮的表格
     https://linuxops.org/blog/python/prettytable.html https://github.com/jazzband/prettytable PrettyTable      PrettyTableletsyouprinttablesi......
  • 基于pythondetcp多个客户端连接服务器
    壹:TCP是面向运输层的协议。使用TCP协议之前,必须先建立TCP连接,在传输完成后,必须释放已经建立的TCP连接。每条TCP连接只能有两个端,每一条TCP连接只能是点对点的。TCP提供可......