Sen Haversine formülü aramak gerekir, ama iyi bir başlangıç olabilir:
Bkz Section 'MySQL ile Bulma yerler' :
Burada en yakın 20 konumu bulabileceğiniz SQL deyimi 37, -122 koordinatına 25 mil yarıçapı. Bu satırın enlem/boylamına ve hedef enlem/boylamına bağlı olarak mesafeyi hesaplar ve sonra sadece mesafe değerinin 25'ten az olduğu satırları sorar, tüm sorguyu mesafeye göre sıralar ve bunu 20 sonuçla sınırlar. Mil yerine kilometre kullanarak arama yapmak için ben çok operasyonun bu tür SpatiaLite veya PostGIS kullanarak öneriyoruz 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;
Öneriniz için teşekkür ederiz. Burada yeni bir soru yayınladım: http://stackoverflow.com/questions/4697624/querying-for-things-near-a-geolocation – Genadinik
Bu benim için hesaplanan herhangi bir mesafeyi geri getirmiyor, sadece 'NULL' . –
Sonuçların tam noktasında döndürülmemesi. Bu sonuç, yan tümcelere sahip olmayan NULL olarak geri dönüyor. – Maykonn