sql >> Database >  >> RDS >> Mysql

Straal van 40 kilometer met behulp van breedte- en lengtegraad

Ik gebruik deze query om alle punten binnen een $radius . te krijgen rond $lat /$lng :

SELECT
    *,
    ( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radians({$lat}) ) * sin( radians( `lat` ) ) ) ) AS distance
FROM `positions`
HAVING distance <= {$radius}
ORDER BY distance ASC

6371 is de straal van de aarde im km. En ik heb het niet uitgevonden:http:/ /code.google.com/intl/en/apis/maps/articles/phpsqlsearch.html https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql (edit:URL gewijzigd)




  1. SQLite Inner Join

  2. (My)SQL volledige join met drie tabellen

  3. Gebruik variabele ingesteld door psql meta-commando in DO-blok

  4. Wat is de snelste manier om een ​​MySQL-tabel te pollen voor nieuwe rijen?