Bagaimana Anda menghitung jarak antara dua penanda di Google maps V3? (Mirip dengan distanceFrom
fungsi inV2.)
Terima kasih..
javascript
google-maps-api-3
Waheed
sumber
sumber
Jawaban:
Jika Anda ingin menghitungnya sendiri, maka Anda bisa menggunakan rumus Haversine:
sumber
p1.lat()
danp1.lng()
menganggap bahwa input data Anda adalahgoogle.maps.LatLng
objek. Jika Anda hanya memiliki data mentah seperti{lat: __, lon: __}
maka Anda akan menggunakanp1.lat
, misalnya.Sebenarnya ada metode di GMap3. Ini adalah metode statis
google.maps.geometry.spherical
namespace.Dibutuhkan sebagai argumen dua
LatLng
objek dan akan menggunakan jari-jari Earth default 6378137 meter, meskipun jari-jari default dapat diganti dengan nilai khusus jika perlu.Pastikan Anda memasukkan:
di bagian kepala Anda.
Panggilannya adalah:
sumber
Contoh menggunakan GPS lintang / bujur 2 titik.
sumber
Cukup tambahkan ini ke awal kode JavaScript Anda:
dan kemudian gunakan fungsi seperti ini:
sumber
sumber
script
tag dan memanggil metode-metode itu. Suka bereaksi asli.Berikut ini adalah implementasi c # dari forumula ini
sumber
Dengan google Anda dapat melakukannya dengan menggunakan api bulat ,
google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);
.Namun, jika ketepatan proyeksi bola atau solusi haversine tidak cukup tepat untuk Anda (misalnya jika Anda dekat dengan kutub atau menghitung jarak yang lebih jauh), Anda harus menggunakan perpustakaan yang berbeda.
Sebagian besar informasi tentang subjek saya temukan di Wikipedia di sini .
Trik untuk melihat apakah presisi dari algoritma yang diberikan memadai adalah dengan mengisi radius maksimum dan minimum bumi dan melihat apakah perbedaannya dapat menyebabkan masalah untuk use case Anda. Banyak detail lainnya dapat ditemukan di artikel ini
Pada akhirnya google api atau haversine akan melayani sebagian besar tujuan tanpa masalah.
sumber
Menggunakan PHP, Anda dapat menghitung jarak menggunakan fungsi sederhana ini:
sumber
K
saat itu akan memberi Anda jarak dalam Km. Periksa.SOLUSI OFFLINE - Algoritma Haversine
Referensi: https://en.wikipedia.org/wiki/Great-circle_distance
sumber
Harus melakukannya ... Cara skrip tindakan
sumber
Dalam kasus saya, yang terbaik adalah menghitung ini dalam SQL Server, karena saya ingin mengambil lokasi saat ini dan kemudian mencari semua kode pos dalam jarak tertentu dari lokasi saat ini. Saya juga punya DB yang berisi daftar kode pos dan panjang lat mereka. Bersulang
sumber
sumber
Cukup mudah menggunakan layanan Google Distance Matrix
Langkah pertama adalah mengaktifkan layanan Distance Matrix dari google API console. mengembalikan jarak antara satu set lokasi. Dan terapkan fungsi sederhana ini
Di mana origin1 adalah lokasi dan tujuan AndaA adalah lokasi tujuan. Anda dapat menambahkan dua atau lebih data di atas.
Rad Dokumentasi Lengkap dengan sebuah contoh
sumber
Saya menemukan versi online yang 80% benar tetapi terhubung dengan parameter yang salah dan tidak konsisten dalam menggunakan input, versi ini memperbaiki yang sepenuhnya
sumber
Untuk menghitung jarak di Google Maps, Anda dapat menggunakan API Arah. Itu akan menjadi salah satu cara termudah untuk melakukannya. Untuk mendapatkan data dari Google Server, Anda dapat menggunakan Retrofit atau Volley. Keduanya memiliki keunggulan masing-masing. Lihatlah kode berikut di mana saya telah menggunakan retrofit untuk mengimplementasikannya:
Di atas adalah kode fungsi build_retrofit_and_get_response untuk menghitung jarak. Di bawah ini adalah Retrofit Interface yang sesuai:
}
Saya harap ini menjelaskan pertanyaan Anda. Semua yang terbaik :)
Sumber: Kalkulator Jarak Google Maps
sumber