Rumah > Java > javaTutorial > teks badan

Bagaimanakah anda mengira jarak dan membuat kotak sempadan menggunakan titik latitud-longitud di Jawa?

Barbara Streisand
Lepaskan: 2024-11-02 04:30:29
asal
187 orang telah melayarinya

How do you calculate distance and create bounding boxes using latitude-longitude points in Java?

Mengira Jarak dan Kotak Sempadan Menggunakan Titik Latitud-Longitud dalam Java

Soalan ini menangani keperluan untuk mengukur jarak antara dua titik dan mencipta kotak sempadan di sekeliling titik pertama, dengan mengambil kira jarak tertentu di kedua-dua arah utara dan timur. Untuk mencapai matlamat ini, kita perlu menggunakan formula jarak bulatan hebat, juga dikenali sebagai formula Haversine. Formula ini mengira jarak di Bumi sfera dengan tepat.

Di bawah ialah pelaksanaan Java bagi formula Haversine:

<code class="java">public static double distFrom(double lat1, double lng1, double lat2, double lng2) {
    double earthRadius = 3958.75; // miles (or 6371.0 kilometers)
    double dLat = Math.toRadians(lat2 - lat1);
    double dLng = Math.toRadians(lng2 - lng1);
    double sindLat = Math.sin(dLat / 2);
    double sindLng = Math.sin(dLng / 2);
    double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
            * Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double dist = earthRadius * c;

    return dist;
}</code>
Salin selepas log masuk

Setelah jarak antara dua titik dikira, kita boleh menentukan koordinat penjuru kanan sebelah atas kotak sempadan dengan menambah jarak yang diberikan pada kedua-dua latitud dan longitud titik pertama.

Contoh:

Diberi titik permulaan (37.7749, -122.4194) dan jarak 0.5 batu, sudut kanan atas kotak sempadan akan dikira seperti berikut:

<code class="java">double lat = 37.7749 + 0.009045; // Calculated using the Haversine formula
double lng = -122.4194 + 0.012990; // Calculated using the Haversine formula</code>
Salin selepas log masuk

Kotak sempadan yang terhasil akan ditakrifkan oleh koordinat: (37.7749 , -122.4194) dan (lat, lng).

Atas ialah kandungan terperinci Bagaimanakah anda mengira jarak dan membuat kotak sempadan menggunakan titik latitud-longitud di Jawa?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!