经纬度相关的一些计算

2023-11-11

欢迎访问我的个人博客: sky的技术小屋

(1)已知两个位置的经纬度,计算其间地理距离。

private static Double CalculateDistance(ArrayList<Double> latAndLngUser1,
			ArrayList<Double> latAndLngUser2) {
		// TODO Auto-generated method stub
		Double EARTH_RADIUS = 6378.137;
		
		Double radLat1 = latAndLngUser1.get(0) * Math.PI / 180.0;
		Double radLat2 = latAndLngUser2.get(0) * Math.PI / 180.0;
		Double a = radLat1 - radLat2;
		Double b = latAndLngUser1.get(1) * Math.PI / 180.0 - latAndLngUser2.get(1) * Math.PI / 180.0;
		Double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2))) + 
				Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2);
		s = s * EARTH_RADIUS;
		s = Math.round(s * 10000.0) / 10000.0;
		return s;
	}

(2)已知多个位置的经纬度数组,计算这些位置的地理中心。

	private static ArrayList<Double> CalculateCenter(
			ArrayList<ArrayList<Double>> latAndLngArray) {
		// TODO Auto-generated method stub
		ArrayList<Double> center = new ArrayList<Double>();
		Double X = 0.0, Y = 0.0, Z = 0.0;
		for (int i = 0; i < latAndLngArray.size(); i++) {
			Double lat = latAndLngArray.get(i).get(0) * Math.PI / 180;
			Double lng = latAndLngArray.get(i).get(1) * Math.PI / 180;
			X += Math.cos(lat) * Math.cos(lng);
			Y += Math.cos(lat) * Math.sin(lng);
			Z += Math.sin(lat);
		}
		X = X / latAndLngArray.size();
		Y = Y / latAndLngArray.size();
		Z = Z / latAndLngArray.size();
		Double A = Math.atan2(Y, X);
		Double B = Math.sqrt(X * X + Y * Y);
		Double C = Math.atan2(Z, B);
		Double centerLng = A * 180 / Math.PI;
		Double centerLat = C * 180 / Math.PI;
		center.add(centerLat);
		center.add(centerLng);
		return center;
	}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

经纬度相关的一些计算 的相关文章

  • bpmn-js起步

    通过本文逐步熟悉bpmn js 快速介绍 bpmn js是一个BPMN2 0渲染工具包和web建模器 使用JavaScript编写 在不需要后端服务器支持的前提下向现代浏览器内嵌入BPMN2 0流程图 这使得它很容易的嵌入到任何web应用中
  • 爬虫基础篇之Scrapy抓取京东

    虚拟环境 同一台服务器上不同的项目可能依赖的包不同版本 新版本默认覆盖旧版本 可能导致其他项目无法运行 通过虚拟环境 完全隔离各个项目各个版本的依赖包 实现运行环境互不影响 virtualenv pip install virtualenv
  • Citespace教程笔记

    1 Citespace分析和解读策略 课程连接 citespace教程 陈超美老师亲自教学 哔哩哔哩 bilibili 分析结果那些重要 那些次要 要从主到次地分析 2 Citespace软件界面简介 2 1 Citespace功能参数界面
  • java web和jsp页面的区别

    javaweb是使用java语言进行web系统开发 web系统开发 Java在web开发上处于领导地位 现在主流的是MVC的三层架构 而jsp就是页面表现层的首选 因为它出现的比较早 技术相对成熟和普及 这就是最为流行的J2EE技术 关系就
  • 最小二乘法详细推导过程

    转载自 http blog csdn net marsjohn article details 54911788 在数据的统计分析中 数据之间即变量x与Y之间的相关性研究非常重要 通过在直角坐标系中做散点图的方式我们会发现很多统计数据近似一
  • NOI-OJ 1.13 ID:11 回文素数

    NOI OJ 1 13 ID 11 回文素数 总时间限制 5000ms 内存限制 65536kB 描述 一个数如果从左往右读和从右往左读数字是相同的 则称这个数是回文数 如121 1221 15651都是回文数 给定位数n 找出所有既是回文
  • pr不支持mov怎么办_Premiere不支持MOV怎么办?怎么快速解决?

    原标题 Premiere不支持MOV怎么办 怎么快速解决 现在网上视频素材的质量参差不齐 而且下载的渠道很多 所以不少视频下载到本地后 都因为编码不规范而不能导入premiere中 一些MOV格式的视频也是这样 premiere是不支持的而
  • 【数据结构常见七大排序(一)】—插入排序篇【直接插入排序】And【希尔排序】

    目录 1 排序的概念及其运用 1 1排序的概念 1 2排序运用 1 3常见的七大排序 2 直接插入排序 2 1基本思想 2 2直接插入排序 2 3动图助解 2 4直接插入排序源码 2 5直接插入排序的特性总结 3 希尔排序 缩小增量排序 3
  • 【Java练习题】输出n行杨辉三角

    1 题目描述 杨辉三角的两个边都是1 内部其它都是肩上两个数的和 2 做题思路 杨辉三角开头和结尾都是1 杨辉三角第i行第j列元素是上一行i 1的元素和它前一个元素的和 公式表示 list i j list i 1 j list i 1 j
  • 最小二乘法——拟合平面方程(深度相机外参标定、地面标定)

    1 最小二乘法 最小二乘法 又称最小平方法 是一种数学优化技术 它通过最小化误差的平方和寻找数据的最佳函数匹配 利用最小二乘法可以简便地求得未知的数据 并使得这些求得的数据与实际数据之间误差的平方和为最小 最小二乘法还可用于曲线拟合 其他一
  • IDDPM官方gituhb项目--训练

    在完成IDDPM论文学习后 对github上的官方仓库进行学习 通过具体的代码理解算法实现过程中的一些细节 官方仓库代码基于pytorch实现 链接为https github com openai improved diffusion 本笔

随机推荐

  • 【论文阅读】POI2Vec: Geographical Latent Representation for Predicting Future Visitors

    POI2Vec Geographical Latent Representation for Predicting Future Visitors Shanshan Feng Gao Cong Bo An Yeow Meng Chee 20
  • 少儿编程和机器人编程哪个更好一点

    少儿编程和机器人编程哪个更好 孩子的学习一直都是家长们非常关心和重视一件事 很多的家长在培养孩子学习的时候 会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于少儿编程和机器人编程哪个
  • 2021-4-4 sql注入

    user 函数 user 这个函数 是取得 当前登陆的用户 root localhost exists 函数 exist 检查是否存在 对语句结果检查 select exists select 1 返回布尔值 0或1 0是假 1是真 1 判
  • 百度基础架构部-分布式存储组面试经历

    2016年2月25日 今天去的比较早 HR说下去两点面试 我提前两个小时就去了 防止迟到 因为一直用java 所以主要准备了java的知识 但是面试并没有问 全部问的基础知识 第一面的大哥非常好 开始问了我以下几个问题 linux系统基本命
  • @Slf4j

    早上好 朋友们 今天讲一下 Slf4j的使用 这里面仅仅描述一下如何使用 Slf4j表示打印日志的注解 类似于springboot自带的日志打印功能 但是springboot自带的日志打印功能还需要写以下代码 Logger log Logg
  • 禅道配置smtp却无法发送邮件问题

    大无语事件 在配置禅道smtp参数后 点击测试提示报错 如上图 SMTP 错误 无法连接到 SMTP 主机 请确认禅道机器 1 能ping通smtp服务器 如果不能ping通 请查看网络状态 或查看域名解析是否正确 或联系网管 2 使用te
  • maven更新jar包更新不下来的问题

    maven拉取jar 如果第一次没拉取成功 在本地仓库的目录中生成了临时文件 在第二次拉取的时候 maven检测到目录中有相关的临时文件 就认为这个jar包拉取有问题 不再请求网路拉取 所以 将目录下的临时文件删除再重新刷新maven 一个
  • Brief. Bioinformatics2023

    文章标题 Designing antimicrobial peptides using deep learning and molecular dynamic simulations 代码 https github com gc js An
  • Python中Pip的安装操作

    工具 原料 电脑 互联网 Python 方法 步骤 1 新建一个文本文档 起名为get pip 后缀名该为 py 2 打开网址https bootstrap pypa io get pip py 复制所有文字到我们新建的文件get pip
  • 梯度下降法中学习率的影响(附代码实现)

    Rosenbrock s 函数是优化问题的基准问题 f x i 1 n 1 100 x x 1 x i 2 2 x i 1 2 f x sum i 1 n 1 100 x x 1 x i 2 2 x i 1 2 f x i 1 n 1 10
  • 目标检测之focal loss

    Focal Loss for Dense Object DetectionTsung Yi Lin Priya Goyal Ross Girshick Kaiming He Piotr Dollar Facebook AI Research
  • PHPstorm等系列IDE永久破解

    1 安装phpstorm 安装包请自行官网下载 http www jetbrains com phpstorm download 2 下载JetbrainsCrack jar文件 破解补丁无需使用注册码 下载地址 http idea lan
  • window 和 linux 安装 Tesseract-OCR

    一 Window 安装 Tesseract OCR 1 安装 tesseract ocr w64 setup 5 3 1 20230401 exe 下载地址 https digi bib uni mannheim de tesseract
  • stm32之pwm输出

    1 定义 脉冲宽度调制 PWM 是英文 Pulse Width Modulation 的缩写 简称脉宽调制 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术 广泛应用在从测量 通信到功率控制与变换的许多领域中 2 输出来源
  • 获得网站的静态资源 如css js 图片等的一些小坑

    通过某些方式拿到了源代码 是f12 审查元素的那种源代码 通过url请求也好 selenium 啥的也好 总之拿到了源代码 我个人偏好用java来处理 用的jsoup解析工具 css 有两种存放方式 上图可知一种直接获得href就可以下载
  • 专利与论文-0:目录

    1 为什么要写专利 专利的好处 CSDN 2 什么是专利 专利的几种类型 CSDN 3 专利的特点是什么 什么不能申请专利 CSDN 4 专利申请流程与生命周期及费用 CSDN 5 专利说明书 的撰写与注意事项 CSDN 6 专利权利要求书
  • python爬虫系列8--Scrapy开发环境搭建和简单使用介绍

    简介 参考地址 http python jobbole com 86405 Python开发的一个快速 高层次的屏幕抓取和web抓取框架 用于抓取web站点并从页面中提取结构化的数据 Scrapy吸引人的地方在于它是一个框架 任何人都可以根
  • spring-boot-maven-plugin not found 解决方案

    今天尝试使用IDEA 搭建Spring Boot 项目 pom xml 核心文件如下
  • GLSL 简介

    GLSL OpenGL Shading Language 也称作 GLslang 是一个以C语言为基础的高阶着色语言 它是由 OpenGL ARB 所建立 提供开发者对绘图管线更多的直接控制 而无需使用汇编语言或硬件规格语言 目录 隐藏 1
  • 经纬度相关的一些计算

    欢迎访问我的个人博客 sky的技术小屋 1 已知两个位置的经纬度 计算其间地理距离 private static Double CalculateDistance ArrayList