Rumah > Java > javaTutorial > Bagaimana untuk Mengira Jarak Antara Dua Titik Menggunakan Latitud, Longitud dan Altitud?

Bagaimana untuk Mengira Jarak Antara Dua Titik Menggunakan Latitud, Longitud dan Altitud?

Linda Hamilton
Lepaskan: 2024-11-02 04:18:30
asal
523 orang telah melayarinya

How to Calculate Distance Between Two Points Using Latitude, Longitude, and Altitude?

Mengira Jarak antara Dua Titik Menggunakan Latitud dan Longitud

Untuk mengira jarak antara dua titik dengan tepat berdasarkan latitud dan longitudnya, adalah penting untuk mempertimbangkan kelengkungan permukaan bumi. Kaedah Haversine, formula yang terkenal, menangani kelengkungan ini dan memberikan hasil yang tepat.

Kod Dommer

Kod Dommer menggunakan formula Haversine untuk mengira jarak. Walau bagaimanapun, ia tidak mengambil kira sebarang perbezaan ketinggian antara kedua-dua titik.

Pelaksanaan Disyorkan

Untuk trek GPS atau aplikasi dengan ketinggian merupakan faktor, pertimbangkan ini diubah suai pelaksanaan:

<code class="java">public static double distance(double lat1, double lat2, double lon1,
        double lon2, double el1, double el2) {

    final int R = 6371; // Radius of the earth
    
    double latDistance = Math.toRadians(lat2 - lat1);
    double lonDistance = Math.toRadians(lon2 - lon1);
    double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
            + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
            * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double distance = R * c * 1000; // convert to meters

    double height = el1 - el2;

    distance = Math.pow(distance, 2) + Math.pow(height, 2);

    return Math.sqrt(distance);
}</code>
Salin selepas log masuk

Kod ini menggabungkan kedua-dua formula Haversine dan perbezaan ketinggian untuk mengira jarak antara dua titik dengan tepat.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Jarak Antara Dua Titik Menggunakan Latitud, Longitud dan Altitud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan