java 根据经纬度 坐标 计算两点之间的距离

简介:

根据经纬度,坐标,计算两点之间的距离:

参数格式如下:每一个param的两个值之间用分号分割

@param1  positionOne =aa.bbbb;cc.dddd

@param2  positionOne =ee.bbbb;gg.dddd

public static double getDistance(String positionOne, String positionTwo)

{
double long1;
double lat1;
double long2;
double lat2;
double distance = 0d;
if (positionOne != null && positionOne.length() > 0
&& positionTwo != null && positionTwo.length() > 0)
{
String positionArrayOne[] = positionOne.split(";");
String positionArrayTwo[] = positionTwo.split(";");
try
{
long1 = Double.parseDouble(positionArrayOne[0]);
lat1 = Double.parseDouble(positionArrayOne[1]);
long2 = Double.parseDouble(positionArrayTwo[0]);
lat2 = Double.parseDouble(positionArrayTwo[1]);
if (long1 >= 0 && lat1 >= 0 && long2 >= 0 && lat2 >= 0)
{
double a, b, R;
R = 6378137; // 地球半径
lat1 = lat1 * Math.PI / 180.0;
lat2 = lat2 * Math.PI / 180.0;
a = lat1 - lat2;
b = (long1 - long2) * Math.PI / 180.0;
double sa2, sb2;
sa2 = Math.sin(a / 2.0);
sb2 = Math.sin(b / 2.0);
distance = 2
* R
* Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat1)
* Math.cos(lat2) * sb2 * sb2));
}
}
catch (Exception e)
{
return distance;
}
}
return distance;
}
相关文章
|
4月前
|
算法 Java 流计算
Java【算法分享 02】道格拉斯-普克 Douglas-Peucker 抽稀算法分析及15w个坐标点抽稀到3.7w耗时从360s+优化到365ms接近1000倍的速度提升(并行流+多线程+泛型)
Java【算法分享 02】道格拉斯-普克 Douglas-Peucker 抽稀算法分析及15w个坐标点抽稀到3.7w耗时从360s+优化到365ms接近1000倍的速度提升(并行流+多线程+泛型)
88 0
|
11月前
|
Java 定位技术 Maven
Java:计算地球上两个经纬度坐标之间的距离-geodesy和geotools实现
Java:计算地球上两个经纬度坐标之间的距离-geodesy和geotools实现
860 0
|
11月前
|
编解码 Java 图形学
java 坐标体系与绘图
java 坐标体系与绘图 内容分享。
244 0
|
算法 Java
java实现经纬度坐标是否在范围内的算法
java实现经纬度坐标是否在范围内的算法
java实现经纬度坐标是否在范围内的算法
|
Java
Java初学者作业——编写 Java 程序,定义 Java 类 (Point) 用来表示坐标,坐标范围在(0,0)到(100,100)以内,并显示合法的坐标在控制台。
Java初学者作业——编写 Java 程序,定义 Java 类 (Point) 用来表示坐标,坐标范围在(0,0)到(100,100)以内,并显示合法的坐标在控制台。
466 0
Java初学者作业——编写 Java 程序,定义 Java 类 (Point) 用来表示坐标,坐标范围在(0,0)到(100,100)以内,并显示合法的坐标在控制台。
|
JavaScript Java
java、js实现百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gisdoer/article/details/82684617 java、js实现...
3045 0
|
Java
java实现判断一个经纬度坐标是否在一个多边形内(经自己亲测)
1.在高德地图上绘制的多边形;经纬度逗号分隔格式;上面是用来方便存坐标的对象;下面是方法测试;直接复制代码即可运行 public class Point { private Double x; private Double y; pu...
4394 0
|
Java Linux Windows
[工具04]java实现获取鼠标的坐标
本篇博客其实没什么难度可言,在这里分享给大家,是因为有时候我们需要这个工具,java作为跨平台语言的优势在这个软件就可以体现出来,不需修改就可以在windows、mac、linux上使用这个软件。 这个小工具主要是使用MouseInfo类实时获取鼠标的信息,然后再JDialog上显示出来。
1834 0
|
1天前
|
安全 Java
java多线程(一)(火车售票)
java多线程(一)(火车售票)
|
1天前
|
安全 Java 调度
Java并发编程:深入理解线程与锁
【4月更文挑战第18天】本文探讨了Java中的线程和锁机制,包括线程的创建(通过Thread类、Runnable接口或Callable/Future)及其生命周期。Java提供多种锁机制,如`synchronized`关键字、ReentrantLock和ReadWriteLock,以确保并发访问共享资源的安全。此外,文章还介绍了高级并发工具,如Semaphore(控制并发线程数)、CountDownLatch(线程间等待)和CyclicBarrier(同步多个线程)。掌握这些知识对于编写高效、正确的并发程序至关重要。