将地球看做一个标准球体,计算点到线段的距离。

计算两点间的球面距离

/**

*

* a点经度,a点纬度,b点经度,b点纬度

*

*/

public static double calcP2P(double alon, double alat, double blon, double blat) {

double R = 6378.137;// 地球半径(千米)

// 判断点是在北半球还是南半球,本程序中输入的数据若为负则表示在南边球

double distance = 0.0D;

double _alat = (alat) * (Math.PI / 180); // 弧度

double _alon = (alon) * (Math.PI / 180);

double _blat = (blat) * (Math.PI / 180);

double _blon = (blon) * (Math.PI / 180);

double c = Math.sin(_alat) * Math.sin(_blat) + Math.cos(_alat) * Math.cos(_blat) * Math.cos(_alon - _blon); // Java中三角函数角度以弧度制表示

if (c > 1) {

c = 1;

}

distance = Math.acos(c) * R; // 弧长公式:弧长 = 弧度 * 半径

if (distance <= 0.01) { // GPS误差

distance = 0.0D;

}

return distance;

}

计算点到线段的距离

/**

*

* x,y--点的经度和纬度

* x1,y1--线段某个端点的经度和纬度

* x2,y2--线段另外一个端点的经度和纬度

*

*/

public static double calcP2L(double x, double y, double x1, double y1, double x2, double y2) {

double d1 = (x2 - x1) * (x - x1) + (y2 - y1) * (y - y1);

if (d1

return calcP2P(x, y, x1, y1);

}

double d2 = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);

if (d1 >= d2) {

return calcP2P(x, y, x2, y2);

}

double r = d1 / d2;

double px = x1 + (x2 - x1) * r;

double py = y1 + (y2 - y1) * r;

return calcP2P(x, y, px, py);

}

java 点与线的距离_计算地图上点与线段距离相关推荐

  1. php 地图两点距离计算,计算地图上两点间的距离PHP类

    计算地图上两点间的距离,使用的是谷歌地图 class GeoHelper { /** * @param int $lat1 * @param int $lon1 * @param int $lat2 ...

  2. php 计算两点时间距离,PHP计算地球上两点之间的距离(示例详解)

    给定经度和纬度,求地球上两点之间的距离.首先我们需要了解该问题的解决思路,然后再用PHP代码来实现计算. 此问题可以用半正矢(haversine)公式求解: 大圆距离或正交距离是球面(或地球表面)上两 ...

  3. JAVA 计算地球上任意两点(经纬度)距离

    /*** 计算地球上任意两点(经纬度)距离* * @param long1* 第一点经度* @param lat1* 第一点纬度* @param long2* 第二点经度* @param lat2* ...

  4. 给定经纬度计算距离_根据经纬度计算地球上两点之间的距离js实现代码

    利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面 ...

  5. 根据经纬度计算地球上两点之间的距离——Haversine公式介绍及计算步骤

    目录 摘要 1.半正矢公式(Haversine Formula)介绍 2.半正矢公式应用 3.半正矢公式计算 3.1 主要思路 3.2 计算步骤 3.2.1 平面向量计算方法 3.2.2 空间向量计算 ...

  6. 计算地图两个点的距离 经纬度距离计算

    一.java public class DistanceUtil {/*** 转化为弧度(rad)*/private static double rad(double d) {return d * M ...

  7. 由经纬度计算地球上任意两点的距离

    由经纬度计算地球上任意两点的距离 在地球上,城市的地理位置.GPS定位.一些地标的地理位置等是由经纬度给出的,本文主要根据两个地理位置的经纬度,来计算两个地理位置之间的距离. %计算城市间距离 zb= ...

  8. 求两条轨迹间的hausdorff距离_题型 | 圆上有n个点到直线距离为d?

    圆上有n个点到直线的距离为d 圆 上到直线 的距离为 的点有( )个 方法一:常规方法,画图分析 由图象可以明显看出,圆在直线上方的部分内没有满足题意的点,在直线下方的部分内有两个满足题意的点. 但是 ...

  9. 地图测试距离的软件,‎App Store 上的“距离 - 在地图上绘制并测量距离”

    沿地图绘制路线以测量距离,使用此应用轻松解决.现在有面积测量和自定义系数. 用法 ---- 触摸即可.在地图上绘制一条路线以测定距离.放大镜将帮您进行精确的绘制和测量. ◆ 在移动和测量模式之间切换. ...

最新文章

  1. 基于DL的计算机视觉方法热度高涨,传统方法就可以偏废?
  2. 视觉(12)Active Vision Based Robot Navigation System
  3. 帮助你构建自适应布局的30款优秀 jQuery 插件(下篇)
  4. Win10如何打开软键盘?
  5. gazebo仿真环境加载多个机器人
  6. VLDB 2021 EAB最佳论文:深度解析机器学习的基数估计为何无法实现?
  7. python3.X 使用pip 离线安装whl包(转载)
  8. html自动加https,http自动跳转https的配置方法
  9. RxJava Agera 从源码简要分析基本调用流程(2)
  10. vim 编辑器基本使用
  11. 05 jQuery的DOM操作
  12. Linux用户登录日志查询
  13. 微波天线及各种天线概念解析
  14. C#—— 身份证验证方法
  15. 企业需要关注的零信任 24 问
  16. 无法弹出U盘的几种解决方法
  17. git merge fast-forward squash no-ff
  18. MySQL单表数据量过大的处理方式经验
  19. Python画中国地图-数据导入
  20. 谁能和乔布斯比勤奋?乔布斯的睡眠时间

热门文章

  1. php内打开网址,网站内部跳转外部网站go.php
  2. java基础入门-预定义类与自定义类
  3. stm32f103zet6linux,stm32f103zet6定时器详解及应用
  4. php开启path_info,Nginx + php-fpm 开启 PATH_INFO 模式
  5. 常考的 21 条 Linux 命令
  6. Redis中主、从库宕机如何恢复?
  7. 想让好友不停地擦手机屏幕?微信头像这样设置就行了!
  8. MacOS 终于可以完美使用 Podman 了!
  9. 2020 蚂蚁面试指南!
  10. Spring Boot + Dataway :接口不用写,配配就出来?