」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何根據緯度和經度計算距離並建立邊界框?

如何根據緯度和經度計算距離並建立邊界框?

發佈於2024-11-16
瀏覽:877

How to Calculate Distance and Create a Bounding Box from Latitude and Longitude?

測量距離並根據緯度和經度創建邊界框

計算兩個地理坐標(緯度和經度)之間的距離對於以下領域至關重要各種應用程序,例如地圖和導航。大圓距離,也稱為半正弦公式,可以精確估計地球表面兩點之間的距離。

確定距離後,下一步就是定義邊界框圍繞某個特定點。此框用於將點封裝在特定地理區域內。要建立此框,我們需要找到位於原始點以北和以東給定距離的點。

Java 實現

以下Java 程式碼片段提供半正矢公式的實現,用於計算兩點之間的距離並創建邊界框:

import java.lang.Math;

public class DistanceBoundingBox {

    public static void main(String[] args) {
        double lat1 = 37.386051; // Latitude of the origin point
        double lng1 = -122.083855; // Longitude of the origin point

        double distance = 10; // Distance in miles to extend the bounding box
        
        double lat2 = lat1   distance / 69; // Calculate the northernmost point
        double lng2 = lng1   distance / Math.cos(lat1 / 57.2957795) / 69; // Calculate the easternmost point

        System.out.println("Distance between the two points: "   distance);
        System.out.println("North: "   lat2);
        System.out.println("East: "   lng2);
    }
}

用法:

在main方法中輸入兩點的經緯度座標。程式碼將計算點之間的大圓距離並將其列印到控制台。它還將計算距原始點給定距離的最北端和最東端點。

其他注意事項:

  • 距離計算如下英里。如果需要公里,請將結果乘以 1.60934。
  • 半正弦公式假設地球是完美的球體。為了獲得更高的準確性,請考慮使用 Vincenty 公式,該公式考慮了地球的橢球形狀。
  • 此實作不處理輸入驗證。確保輸入座標是有效的緯度和經度值。
最新教學 更多>
  • 如何使用 CSS 建立倒數計時器
    如何使用 CSS 建立倒數計時器
    Written by Carlos Mucuho✏️ Countdown timers are a popular feature on many websites, enhancing functionality for events, sales, and user engagement. Wh...
    程式設計 發佈於2024-11-16
  • ## 像素完美縮小可以在瀏覽器大小調整期間保存影像品質嗎?
    ## 像素完美縮小可以在瀏覽器大小調整期間保存影像品質嗎?
    透過縮小尺寸重新取樣會降低影像品質? 此處的目標是縮小影像的大小,同時在瀏覽器環境中保持其品質。使用 HTML5 畫布縮小影像時會出現此問題,導致影像品質下降。 縮小尺寸與插值縮小尺寸和插值是不同的技術。縮小是指透過組合來源影像中的像素以在目標影像中建立較少的像素來減小影像尺寸,而插值是指在放大時在...
    程式設計 發佈於2024-11-16
  • Python 3.x 的 super() 函數在沒有參數的情況下如何運作,有哪些潛在的陷阱以及如何避免它們?
    Python 3.x 的 super() 函數在沒有參數的情況下如何運作,有哪些潛在的陷阱以及如何避免它們?
    揭開Python 3.x神奇Super()的秘密Python 3.x引入了super()函數的一個特殊方面:可以在沒有參數的情況下呼叫它。這種看似平凡的行為隱藏了編譯時魔法和執行時間支援的強大組合,提供了巨大的靈活性和效率。 隱藏的編譯時魔法透過無參數的 super() 調用,Python 編譯器在...
    程式設計 發佈於2024-11-16
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-16
  • PHP如何將變數轉換為字串?
    PHP如何將變數轉換為字串?
    PHP中的字串轉換Java和.NET程式設計師可能習慣toString()方法,它提供了一種便捷的轉換方式任何物件到字串表示形式。 PHP 透過轉換運算子提供類似的功能。 PHP 的轉換運算子要將 PHP 變數轉換為字串,可以使用 (string) 轉換運算子。此語法允許您將任何類型的變數明確轉換為...
    程式設計 發佈於2024-11-16
  • 如何修復「無法將 MySQL 日期/時間值轉換為 System.DateTime」錯誤?
    如何修復「無法將 MySQL 日期/時間值轉換為 System.DateTime」錯誤?
    了解「無法將MySQL 日期/時間值轉換為System.DateTime」錯誤從MySQL 資料庫檢索資料有時會導致錯誤「無法將MySQL 日期/時間值轉換為System.DateTime」。當從資料庫檢索的資料的 DbType 與 .NET 資料類型的對應屬性不相容時,就會發生這種情況。 修正轉換...
    程式設計 發佈於2024-11-16
  • 如何使用 PDO 準備語句將多行插入資料庫?
    如何使用 PDO 準備語句將多行插入資料庫?
    使用PDO 準備好的語句插入多行使用單一準備好的語句將多行插入資料庫不僅是可能的,而且推薦用於使用單一插入查詢的方法第一種方法涉及使用具有多個值的單一INSERT 查詢:INSERT INTO Table (col1, col2, col3) VALUES ('abc', 'def', 'ghi'...
    程式設計 發佈於2024-11-16
  • Java中如何計算兩個日期之間的天數?
    Java中如何計算兩個日期之間的天數?
    在Java 中計算兩個日期之間的天數在Java 程式語言中,計算兩個日期之間的天數可以很簡單任務。但是,當日期儲存為字串時,需要仔細轉換才能準確處理它們。 將字串日期轉換為日期物件要有效地處理日期,您可以將它們從字串轉換為 Date 或 LocalDate 類型。 Java 提供了各種類別和方法來促...
    程式設計 發佈於2024-11-16
  • 如何使用“...”標記在 C++ 可變參數模板中打包和解包參數?
    如何使用“...”標記在 C++ 可變參數模板中打包和解包參數?
    可變參數範本中「...」標記的語法規則在C 中,可變參數範本可以建構接受參數數量可變。 「...」標記在此上下文中起著至關重要的作用,充當參數包或參數解包器。 省略號放置的語法規則The “...”標記的位置決定了其功能:Pack : 當它出現在名稱的左邊時,「...」表示參數套件: ...thin...
    程式設計 發佈於2024-11-16
  • 如何有效地從 JavaScript 中的另一個陣列中存在的陣列中刪除元素?
    如何有效地從 JavaScript 中的另一個陣列中存在的陣列中刪除元素?
    高效刪除與另一個陣列相符的陣列元素在JavaScript 中,可能需要刪除一個陣列中存在於另一個陣列中的元素。這可以有效地實現,而無需借助循環和拼接。 jQuery 方法使用jQuery,可以利用grep() 和inArray() 函數:myArray = $.grep(myArray, funct...
    程式設計 發佈於2024-11-16
  • 很棒的免費 Tailwind 登陸頁面模板
    很棒的免費 Tailwind 登陸頁面模板
    幾個月前,我開源了一個 tailwind 登陸頁面模板列表,從那時起它就變得越來越流行,所以這裡是存儲庫中的一些頂級 tailwind 登陸頁面。 你在 Github 上查看它們並複製資料夾 從Github獲取⭐️ 或您也可以從網頁目錄下載 從網路下載 1.Pixa AI - Pi...
    程式設計 發佈於2024-11-16
  • 如何修復 MySQL 中的「鎖定等待超時超出」錯誤:解鎖卡住的表
    如何修復 MySQL 中的「鎖定等待超時超出」錯誤:解鎖卡住的表
    解鎖「卡住」的MySQL 表:解決「Lock Wait Timeout Exceeded」問題當遇到「Lock wait timeout Exceeded; try restarted」時在MySQL 中使用InnoDB 表時出現「事務」錯誤,很可能事務已被卡住。以下是修復表並解決卡住事務的方法:1...
    程式設計 發佈於2024-11-16
  • 如何修復 Mac OS X 上 Python 2.7 的 OpenSSL 相容性問題?
    如何修復 Mac OS X 上 Python 2.7 的 OpenSSL 相容性問題?
    Mac OS X 上 Python 2.7 中的 OpenSSL 相容性問題排查Python 利用 OpenSSL 進行安全通訊。 Python 使用的 OpenSSL 版本可能因係統配置而異。當遇到終端機和 Python 使用的 OpenSSL 版本不一致時,例如昇級 OpenSSL 而沒有看到 ...
    程式設計 發佈於2024-11-16
  • 如何在 Chrome 擴充功能的 CSS 中載入本機圖片?
    如何在 Chrome 擴充功能的 CSS 中載入本機圖片?
    Google Chrome 擴充功能中的本地圖像載入問題排查儘管在Chrome 擴充功能中合併了本地圖像,但用戶在使用CSS 顯示它們時遇到了困難。這個問題需要解決。 核心問題在於 Chrome 的 i18n 支持,它允許 CSS 引用擴展資源。要解決此問題,請考慮以下方法:將映像放置在擴充功能內的...
    程式設計 發佈於2024-11-16
  • 如何計算MySQL中參與調查的員工百分比?
    如何計算MySQL中參與調查的員工百分比?
    在MySQL 中計算百分比在包含員工和調查資料的MySQL 資料庫中,使用者試圖計算參與調查的員工百分比是基於記錄的調查數量的調查。 原始查詢嘗試使用以下語句得出百分比:SELECT group_name, employees, surveys, COUNT( surveys ) A...
    程式設計 發佈於2024-11-16

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3