Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算两点之间的距离-Java_Java_Geometry_Distance - Fatal编程技术网

计算两点之间的距离-Java

计算两点之间的距离-Java,java,geometry,distance,Java,Geometry,Distance,我继承了一个代码,它编写了一个小函数来计算两点之间的距离。我想知道,它是做什么的。我知道lat-long数据是十进制的。如果这个计算是正确的,谁能提出一些见解 private double calculateDistance(QuoteItem quoteItem, RouteInfo routeInfo) { final double distance = ((Math.max(routeInfo.getLatitude(), quoteItem

我继承了一个代码,它编写了一个小函数来计算两点之间的距离。我想知道,它是做什么的。我知道lat-long数据是十进制的。如果这个计算是正确的,谁能提出一些见解

     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

我曾在一些程序中使用过这种方法,我希望得到一个快速而肮脏的距离估计值,重点是快速,因为它不涉及平方根。例如,我曾经使用它对像素颜色之间的差异进行过非常粗略的(不正确但足够正确)的计算,我必须对包含两幅图像的像素进行实时重复计算,并且速度的需要超过了精度的需要