总结三个坐标相关公式

因为需要用到三角函数,导入math库

import math

两个坐标计算距离的函数

def distance(Alongitude, Alatitude, Blongitude, Blatitude):AEarth = 6378137.0DEG_TO_RAD = 1.7453292519943e-2RAD_to_DEG = 57.295779513082startLat = Alatitude * DEG_TO_RADendLat = Blatitude * DEG_TO_RADdLat = (Blatitude - Alatitude) * DEG_TO_RADdLon = (Blongitude - Alongitude) * DEG_TO_RADa = math.sin(dLat / 2) * (math.sin(dLat / 2)) + math.sin(dLon / 2) * math.sin(dLon / 2) * math.cos(startLat) * math.cos(endLat)c = 2 * math.asin(min(1.0, math.sqrt(a)))return AEarth * c

两坐标计算角度的函数

def degree(Alongitude, Alatitude, Blongitude, Blatitude):radLatA = math.radians(Alatitude)radLonA = math.radians(Alongitude)radLatB = math.radians(Blatitude)radLonB = math.radians(Blongitude)dLon = radLonB - radLonAy = math.sin(dLon) * math.cos(radLatB)x = math.cos(radLatA) * math.sin(radLatB) - math.sin(radLatA) * math.cos(radLatB) * math.cos(dLon)brng = math.degrees(math.atan2(y, x))brng = (brng + 360) % 360return brng

给定第一点经纬度、航向角和距离,计算第二点坐标函数

def CalculateCoordinates(lon, lat, brng, dist):lat1 = lat * math.pi / 180lon1 = lon * math.pi / 180brg = brng * math.pi / 180# 扁率flat = 298.257223563# 地球 半长轴a = 6378137.0# 地球 半短轴b = 6356752.314245f = 1 / flatsb = math.sin(brg)cb = math.cos(brg)tu1 = (1 - f) * math.tan(lat1)cu1 = 1 / math.sqrt((1 + tu1 * tu1))su1 = tu1 * cu1s2 = math.atan2(tu1, cb)sa = cu1 * sbcsa = 1 - sa * saus = csa * (a * a - b * b) / (b * b)A = 1 + us / 16384 * (4096 + us * (-768 + us * (320 - 175 * us)))B = us / 1024 * (256 + us * (-128 + us * (74 - 47 * us)))s1 = dist / (b * A)s1p = 2 * math.pics1m = 0.0ss1 = 0.0cs1 = 0.0ds1 = 0.0#while abs(s1 - s1p) > 1e-12:cs1m = math.cos(2 * s2 + s1)ss1 = math.sin(s1)cs1 = math.cos(s1)ds1 = B * ss1 * (cs1m + B / 4 * (cs1 * (-1 + 2 * cs1m * cs1m) - B / 6 * cs1m * (-3 + 4 * ss1 * ss1) * (-3 + 4 * cs1m * cs1m)))s1p = s1s1 = dist / (b * A) + ds1t = su1 * ss1 - cu1 * cs1 * cblat2 = math.atan2(su1 * cs1 + cu1 * ss1 * cb, (1 - f) * math.sqrt(sa * sa + t * t))l2 = math.atan2(ss1 * sb, cu1 * cs1 - su1 * ss1 * cb)c = f / 16 * csa * (4 + f * (4 - 3 * csa))l = l2 - (1 - c) * f * sa * (s1 + c * ss1 * (cs1m + c * cs1 * (-1 + 2 * cs1m * cs1m)))lon2 = lon1 + lLongitude = lon2 * 180 / math.piLatitude = lat2 * 180 / math.pireturn Longitude, Latitude

python计算两经纬度坐标距离和角度以及给定第一个坐标、距离和航向角计算第二个坐标相关推荐

  1. 经纬度计算距离html,js版谷歌地图计算两经纬度坐标点的距离

    球面上两点间大圆劣弧的距离html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. java版谷歌地图计算两经纬度坐标点的距离

    球面上两点间大圆劣弧的距离 public class GoogleMapHelper {private static double EARTH_RADIUS = 6378.137; //地球半径//将 ...

  3. 批量计算两经纬度点间的距离、方位角、中点坐标

    前言 如何批量计算两点间距离,下面介绍一个简单的方法.不需要编写代码,不需要专业GIS软件.下面详细介绍过程. 首先,在EXCEL软件中整理需要计算的经纬度坐标,如下图格式. 计算过程 新建任务 启动 ...

  4. H5 移动端 获取腾讯地图计算两经纬度的实际距离(可批量)_多地打卡

    文章目录 一.H5移动端 1. 安装vue-jsonp 2. 引入腾讯sdk 3. 实例化 4. 二点求距离 5. 多点求距离 文档地址: https://lbs.qq.com/service/web ...

  5. 小程序 获取腾讯地图计算两经纬度的实际距离(可批量)_多地打卡

    文章目录 一.小程序 1. 安装vue-jsonp 2. 引入腾讯sdk 3. 实例化 4. 二点求距离 5. 多点求距离 文档地址: https://lbs.qq.com/service/webSe ...

  6. 计算两个向量间的欧氏距离_用Numpy实现常见距离度量

    设 和 为两个向量,求它们之间的距离. 这里用Numpy实现,设 和 为 ndarray <numpy.ndarray>,它们的shape都是(N,) 为所求的距离,是个浮点数( floa ...

  7. 磁力机航向角计算与补偿

    地理坐标系下该点的磁场强度为(M,0,D),磁力计测得的三轴磁场强度为(mx,my,mz). 当我们认为飞机是完全水平放在地上的时候,即Z轴和Zb轴是平行的时候,完全不用考虑垂直方向了.我们只用考虑X ...

  8. 电子罗盘-航向角计算

    坐标变换 手机初始状态accelerometer 与 magnetometer 读数为 (假定初始状态为水平放置,如上图所示) G1=⎡⎣⎢ax1ay1az1⎤⎦⎥=⎡⎣⎢00g⎤⎦⎥(1)(1)G1 ...

  9. Java 计算两经纬度间的距离

    之前在开发一个自动售货机设备,在投入生产使用时,使用到了根据经纬度计算出当前位置和目标位置的直线距离,这个距离不是路程距离,只是两坐标的直线距离,仅供参考.实际运用还要具体业务具体实现. 下面是实现两 ...

最新文章

  1. 将台式机组成云服务器_云桌面是什么?用了两年云桌面的真实感受
  2. Openldap命令详解
  3. 解决XP IIS(HTTP 500内部服务器错误)
  4. java 四舍五入保留小数
  5. java跑酷游戏_HTML5游戏实战(1):50行代码实现正面跑酷游戏
  6. 翻译题9寒假1周赛题
  7. 【汇正财经】扬帆起航,医美市场行业规模扩张
  8. 第一章 操作系统引论之多道批处理系统
  9. Android图片选取和剪裁头像的相关问题
  10. 前台请求后台接口数据后日期少一天Bug解决
  11. mae python实现_使用Python进行机器学习:从0到1,构建回归模型(附完整教程)
  12. 设计模式之禅读书笔记—行为类模式
  13. 【嵌入式模块】FT232RL——一个带有ISP功能的USB转TTL模块
  14. python爬虫笔记(学习T)
  15. win10上部署elasticsearch8.1.1
  16. USB驱动始终不能成功下载安装
  17. 如何使用视频合并分割软件将MP4视频合并分割
  18. macbook air php 内存,紧急抢救性拆解喝了150毫升咖啡的苹果MacBook Air超薄笔记本!...
  19. Elasticsearch 7.2 安装方法 及常见错误以及详细配置介绍
  20. 小型机和PC服务器到底有什么区别?(摘自走入小型机世界-orian)

热门文章

  1. 为所有人开发人工智能工具
  2. 双非本科到大厂,贫困家庭到深圳买房,我的逆袭之路
  3. 这八家科技公司放弃了被收购的大交易,结果……
  4. 安卓中如何获取输入法的高度
  5. PHP的学习--新特性
  6. 如何使用dbx分析core文件_[转]使用DBX分析AIX 下的 CoreDump
  7. 为什么Unity按钮点击失灵了
  8. 通过命令查看CentOS版本的几种方法,经过搜集整理得到
  9. TCP/IP协议族详解
  10. mac安装win10_在SSD里安装「Windows to go」