在百度地图API开发中已知两个点之间的经纬度坐标计算其距离

本文主要是介绍在百度地图API开发中已知两个点之间的经纬度坐标计算其距离,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以往网上给出了计算方法,但是double类型的数后面有很多位小数,现在给出一个函数,其值跟百度地图APP软件的距离一样

public String getLatLngDistance(LatLng start, LatLng end){
  //自己实现距离算法:
  /**
   * 计算两点之间距离
   * @param start
   * @param end
   * @return String  多少m ,  多少km
   */
  
   double lat1 = (Math.PI/180)*start.latitude;
   double lat2 = (Math.PI/180)*end.latitude;
   
   double lon1 = (Math.PI/180)*start.longitude;
   double lon2 = (Math.PI/180)*end.longitude;
   
//       double Lat1r = (Math.PI/180)*(gp1.getLatitudeE6()/1E6);
//       double Lat2r = (Math.PI/180)*(gp2.getLatitudeE6()/1E6);
//       double Lon1r = (Math.PI/180)*(gp1.getLongitudeE6()/1E6);
//       double Lon2r = (Math.PI/180)*(gp2.getLongitudeE6()/1E6);
   
   //地球半径
   double R = 6371.004;
   
   //两点间距离 m,如果想要米的话,结果*1000就可以了
   double dis =  Math.acos(Math.sin(lat1)*Math.sin(lat2)+Math.cos(lat1)*Math.cos(lat2)*Math.cos(lon2-lon1))*R;
   NumberFormat nFormat = NumberFormat.getNumberInstance();  //数字格式化对象
   if(dis < 1){               //当小于1千米的时候用,用米做单位保留一位小数
    
    nFormat.setMaximumFractionDigits(1);    //已可以设置为0,这样跟百度地图APP中计算的一样 
    dis *= 1000;
    
    return nFormat.format(dis)+"m";
   }else{
    nFormat.setMaximumFractionDigits(2);
    return nFormat.format(dis)+"km";
   }
   
  

 }
 

这篇关于在百度地图API开发中已知两个点之间的经纬度坐标计算其距离的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136669

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现