计算两点之间的距离-Java
我继承了一个代码,它编写了一个小函数来计算两点之间的距离。我想知道,它是做什么的。我知道lat-long数据是十进制的。如果这个计算是正确的,谁能提出一些见解计算两点之间的距离-Java,java,geometry,distance,Java,Geometry,Distance,我继承了一个代码,它编写了一个小函数来计算两点之间的距离。我想知道,它是做什么的。我知道lat-long数据是十进制的。如果这个计算是正确的,谁能提出一些见解 private double calculateDistance(QuoteItem quoteItem, RouteInfo routeInfo) { final double distance = ((Math.max(routeInfo.getLatitude(), quoteItem
private double calculateDistance(QuoteItem quoteItem, RouteInfo routeInfo) {
final double distance =
((Math.max(routeInfo.getLatitude(), quoteItem.getLatitude()) - Math.min (routeInfo.getLatitude(), quoteItem.getLatitude())) +
(Math.max(routeInfo.getLongitude(), quoteItem.getLongitude()) - Math.min(routeInfo.getLongitude(), quoteItem.getLongitude()))) * 60.0;
return distance;
}
这是计算的一种变体,它不是真正的欧几里德斜边距离计算,而是直角三角形两边乘以某个乘数60的简单和。我通常认为它写得更简单
Math.abs(p1.x - p2.x) + Math.abs(p1.y - p2.y)
这基本上就是你的计算结果,除了你还要乘以一些比例因子,60.0
我曾在一些程序中使用过这种方法,我希望得到一个快速而肮脏的距离估计值,重点是快速,因为它不涉及平方根。例如,我曾经使用它对像素颜色之间的差异进行过非常粗略的(不正确但足够正确)的计算,我必须对包含两幅图像的像素进行实时重复计算,并且速度的需要超过了精度的需要