Memperkenalkan Pengiraan Jarak Berasaskan Latitud dan Longitud
Mengira jarak antara dua titik di permukaan Bumi menggunakan koordinat latitud dan longitudnya ialah tugas asas dalam pelbagai aplikasi. Di bawah, kami akan meneroka selok-belok pengiraan jarak ini menggunakan coretan kod Java dan menyelidiki pelaksanaan yang dipertingkatkan yang menyumbang kepada perbezaan ketinggian.
Mengira Jarak Menggunakan Coretan Kod Java
Kod yang disediakan oleh Dommer menggunakan formula yang dipermudahkan untuk mengira jarak antara dua titik di permukaan Bumi:
<code class="java">double temp = Math.cos(Math.toRadians(latA)) * Math.cos(Math.toRadians(latB)) * Math.cos(Math.toRadians((latB) - (latA))) + Math.sin(Math.toRadians(latA)) * Math.sin(Math.toRadians(latB)); return temp * RADIUS * Math.PI / 180;</code>
Formula ini menganggap Bumi sfera dan menghasilkan hasil yang munasabah untuk jarak yang kecil. Walau bagaimanapun, ia gagal untuk mempertimbangkan perbezaan ketinggian, yang boleh menyebabkan ketidaktepatan untuk jarak yang ketara.
Memperkenalkan Formula Haversine untuk Pengiraan Jarak Sedar Ketinggian
Untuk menangani batasan daripada formula yang digunakan oleh Dommer, kita beralih kepada formula Haversine, yang menggabungkan model yang lebih tepat untuk mewakili bentuk Bumi. Formula ini secara jelas menjelaskan perbezaan jarak dan ketinggian antara dua titik:
<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>
Formula ini menyediakan perwakilan jarak yang lebih tepat, menjadikannya berharga untuk aplikasi yang memerlukan pengiraan geografi yang tepat.
Atas ialah kandungan terperinci Bagaimana Mengira Jarak Antara Dua Titik di Bumi Menggunakan Latitud dan Longitud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!