簡體   English   中英

計算兩點之間的距離 - Java

[英]Calculate Distance between two points- Java

我繼承了一個代碼,它有這個小函數編寫來計算兩點之間的距離。我想知道它是做什么的。 我知道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。

我已經在程序中使用了這個程序,我希望得到快速而骯臟的距離估計,並強調快速,因為它不涉及平方根。 例如,我使用它一次非常粗糙(並且不正確但足夠正確用於目的)計算像素顏色之間的差異,其中我必須對包含兩個圖像的像素重復進行實時計算,並且需要因為速度超過了對准確性的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM