Anda harus mencari rumus Haversine, tetapi awal yang baik bisa jadi:
- Membuat Pencari Toko dengan PHP, MySQL &Google Maps - Lihat Bagian 'Menemukan Lokasi dengan MySQL'
- Penelusuran Geo/Spasial dengan MySQL
Mengutip dari url pertama:
Berikut pernyataan SQL yang akan menemukan 20 lokasi terdekat yang berada dalam radius 25 mil ke koordinat 37, -122. Ini menghitung jarak berdasarkan garis lintang/garis bujur dari baris tersebut dan garis lintang/garis bujur target, dan kemudian hanya meminta baris yang nilai jaraknya kurang dari 25, mengurutkan seluruh kueri berdasarkan jarak, dan membatasinya hingga 20 hasil. Untuk menelusuri menurut kilometer, bukan mil, ganti 3959 dengan 6371.
SELECT
id,
( 3959
* acos( cos( radians(37) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians(-122) )
+ sin( radians(37) )
* sin( radians( lat ) )
)
)
AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;